This brings SFTPv4 support to the sftp client & server. I split them up so it's easy to see & merge just server support if we decide to not do the client. I also haven't touched scp. There are concerns over the SFTPv4 spec being a bit bloated. I discuss those in the server patch, but the tl;dr is that I think we can include the new features we want (e.g. better timestamps) while omitting the parts we don't (e.g. text mode & ACLs). This keeps the actual code size manageable. Implementation wise, I thought about making the code more object-oriented (i.e. structs of func pointers for each SFTP version), but after comparing the actual spec differences, it seems that things are minor enough that inlining the version tests isn't terrible. A few funcs are a little bit harder to follow (largely the file attribute serializers), but all the rest seem to be OK. Or, it at least seems better when compared to the amount of duplicated logic we'd have if there were v3 & v4 variants of these functions. NB: The patch series might not apply cleanly because they're based on other SFTP features I've posted to the mailing list. I can easily respin once those get merged ;). Mike Frysinger (4): scp/sftp: add -V for setting SFTP protocol version add SFTPv4 constants & handle error & file mode strings sftp-server: initial experimental SFTPv4 support [incomplete] sftp-client: initial experimental SFTPv4 support PROTOCOL | 6 +- scp.c | 13 +++- sftp-client.c | 117 +++++++++++++++++++++------- sftp-common.c | 211 ++++++++++++++++++++++++++++++++++++++++---------- sftp-common.h | 17 +++- sftp-server.c | 198 ++++++++++++++++++++++++++++++++++++---------- sftp.c | 83 +++++++++++++------- sftp.h | 30 +++++-- 8 files changed, 524 insertions(+), 151 deletions(-) -- 2.33.0 _______________________________________________ openssh-unix-dev mailing list openssh-unix-dev@xxxxxxxxxxx https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev