Skip to content

Add support for extension lsetstat@openssh.com #651

Description

@quite

This extension is for doing chmod, chtimes, and chown on symlinks. That is on the actual symlink, not on what it points to. See https://github.com/openssh/openssh-portable/blob/master/PROTOCOL#L508

Good insights from @puellanivis in #648 (comment):

I would definitely suggest going for targeting v2 for extensions. I already have quite a few, but I hadn’t seen this lsetstat@openssh.com one yet.

Probably need to think on how I expect an extended type request gets sent. sftp.Client should probably support it through a direct LSetStat call… or rather the various chown chtimes etc should have an L prefix varient.

Though utimensat isn’t going to be possible, even lsetstat@openssh.com only has second precision through the File Attributes specification.

I got utimensat from reading the openssh sftp-server implementation. But yeah, the fact that it uses utimensat to set it, does not mean that there is ns (nanosecond) precision in the protocol on the wire.

Openssh's sftp-server here: https://github.com/openssh/openssh-portable/blob/master/sftp-server.c#L1460

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions