[BACK]Return to sftp-client.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/sftp-client.c between version 1.80 and 1.81

version 1.80, 2008/01/21 19:20:17 version 1.81, 2008/03/23 12:54:01
Line 59 
Line 59 
         u_int num_requests;          u_int num_requests;
         u_int version;          u_int version;
         u_int msg_id;          u_int msg_id;
   #define SFTP_EXT_POSIX_RENAME   1
           u_int exts;
 };  };
   
 static void  static void
Line 233 
Line 235 
 struct sftp_conn *  struct sftp_conn *
 do_init(int fd_in, int fd_out, u_int transfer_buflen, u_int num_requests)  do_init(int fd_in, int fd_out, u_int transfer_buflen, u_int num_requests)
 {  {
         u_int type;          u_int type, exts = 0;
         int version;          int version;
         Buffer msg;          Buffer msg;
         struct sftp_conn *ret;          struct sftp_conn *ret;
Line 264 
Line 266 
                 char *value = buffer_get_string(&msg, NULL);                  char *value = buffer_get_string(&msg, NULL);
   
                 debug2("Init extension: \"%s\"", name);                  debug2("Init extension: \"%s\"", name);
                   if (strcmp(name, "posix-rename@openssh.com") == 0)
                           exts |= SFTP_EXT_POSIX_RENAME;
                 xfree(name);                  xfree(name);
                 xfree(value);                  xfree(value);
         }          }
Line 277 
Line 281 
         ret->num_requests = num_requests;          ret->num_requests = num_requests;
         ret->version = version;          ret->version = version;
         ret->msg_id = 1;          ret->msg_id = 1;
           ret->exts = exts;
   
         /* Some filexfer v.0 servers don't support large packets */          /* Some filexfer v.0 servers don't support large packets */
         if (version == 0)          if (version == 0)
Line 633 
Line 638 
   
         /* Send rename request */          /* Send rename request */
         id = conn->msg_id++;          id = conn->msg_id++;
         buffer_put_char(&msg, SSH2_FXP_RENAME);          if ((conn->exts & SFTP_EXT_POSIX_RENAME)) {
         buffer_put_int(&msg, id);                  buffer_put_char(&msg, SSH2_FXP_EXTENDED);
                   buffer_put_int(&msg, id);
                   buffer_put_cstring(&msg, "posix-rename@openssh.com");
           } else {
                   buffer_put_char(&msg, SSH2_FXP_RENAME);
                   buffer_put_int(&msg, id);
           }
         buffer_put_cstring(&msg, oldpath);          buffer_put_cstring(&msg, oldpath);
         buffer_put_cstring(&msg, newpath);          buffer_put_cstring(&msg, newpath);
         send_msg(conn->fd_out, &msg);          send_msg(conn->fd_out, &msg);
         debug3("Sent message SSH2_FXP_RENAME \"%s\" -> \"%s\"", oldpath,          debug3("Sent message %s \"%s\" -> \"%s\"",
             newpath);              (conn->exts & SFTP_EXT_POSIX_RENAME) ? "posix-rename@openssh.com" :
               "SSH2_FXP_RENAME", oldpath, newpath);
         buffer_free(&msg);          buffer_free(&msg);
   
         status = get_status(conn->fd_in, id);          status = get_status(conn->fd_in, id);

Legend:
Removed from v.1.80  
changed lines
  Added in v.1.81