diff options
Diffstat (limited to 'lib/ssh/src/ssh_xfer.erl')
-rw-r--r-- | lib/ssh/src/ssh_xfer.erl | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/lib/ssh/src/ssh_xfer.erl b/lib/ssh/src/ssh_xfer.erl index 2292beaf68..d89b59100f 100644 --- a/lib/ssh/src/ssh_xfer.erl +++ b/lib/ssh/src/ssh_xfer.erl @@ -117,13 +117,20 @@ rename(XF, ReqID, OldPath, NewPath, Flags) -> true -> (<<>>) end, - xf_request(XF, ?SSH_FXP_RENAME, - [?uint32(ReqID), - ?string_utf8(OldPath), - ?string_utf8(NewPath), - FlagBits]). - - + Ext = XF#ssh_xfer.ext, + ExtRename = "posix-rename@openssh.com", + case lists:member({ExtRename, "1"}, Ext) of + true -> + extended(XF, ReqID, ExtRename, + [?string_utf8(OldPath), + ?string_utf8(NewPath)]); + false -> + xf_request(XF, ?SSH_FXP_RENAME, + [?uint32(ReqID), + ?string_utf8(OldPath), + ?string_utf8(NewPath), + FlagBits]) + end. %% Create directory mkdir(XF, ReqID, Path, Attrs) -> @@ -222,7 +229,7 @@ extended(XF, ReqID, Request, Data) -> xf_request(XF, ?SSH_FXP_EXTENDED, [?uint32(ReqID), ?string(Request), - ?binary(Data)]). + Data]). %% Send xfer request to connection manager |