mirror of
https://github.com/phpseclib/phpseclib.git
synced 2024-12-27 11:52:48 +00:00
update rename
This commit is contained in:
parent
6303fbac9e
commit
5fcba4627f
@ -3040,7 +3040,9 @@ class Net_SFTP extends Net_SSH2
|
||||
}
|
||||
|
||||
/**
|
||||
* Renames a file or a directory on the SFTP server
|
||||
* Renames a file or a directory on the SFTP server.
|
||||
*
|
||||
* If the file already exists this will return false
|
||||
*
|
||||
* @param string $oldname
|
||||
* @param string $newname
|
||||
@ -3053,11 +3055,6 @@ class Net_SFTP extends Net_SSH2
|
||||
return false;
|
||||
}
|
||||
|
||||
// in SFTP v5+
|
||||
// Add support for better control of the rename operation.
|
||||
// so we'll just need to add \0\0\0\0 after
|
||||
// by default if the destination file already exists it fails
|
||||
// but in v5+ you can pass a SSH_FXF_RENAME_OVERWRITE flag
|
||||
if (!$this->_precheck()) {
|
||||
return false;
|
||||
}
|
||||
@ -3070,6 +3067,18 @@ class Net_SFTP extends Net_SSH2
|
||||
|
||||
// http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3
|
||||
$packet = pack('Na*Na*', strlen($oldname), $oldname, strlen($newname), $newname);
|
||||
if ($this->version >= 5) {
|
||||
/* quoting https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-05#section-6.5 ,
|
||||
|
||||
'flags' is 0 or a combination of:
|
||||
|
||||
SSH_FXP_RENAME_OVERWRITE 0x00000001
|
||||
SSH_FXP_RENAME_ATOMIC 0x00000002
|
||||
SSH_FXP_RENAME_NATIVE 0x00000004
|
||||
|
||||
(none of these are currently supported) */
|
||||
$packet.= "\0\0\0\0";
|
||||
}
|
||||
if (!$this->_send_sftp_packet(NET_SFTP_RENAME, $packet)) {
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user