[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.13 and 1.14

version 1.13, 2001/03/14 08:57:14 version 1.14, 2001/03/16 08:16:17
Line 180 
Line 180 
 }  }
   
 Attrib *  Attrib *
 get_decode_stat(int fd, u_int expected_id)  get_decode_stat(int fd, u_int expected_id, int quiet)
 {  {
         Buffer msg;          Buffer msg;
         u_int type, id;          u_int type, id;
Line 198 
Line 198 
         if (type == SSH2_FXP_STATUS) {          if (type == SSH2_FXP_STATUS) {
                 int status = buffer_get_int(&msg);                  int status = buffer_get_int(&msg);
   
                 error("Couldn't stat remote file: %s", fx2txt(status));                  if (quiet)
                           debug("Couldn't stat remote file: %s", fx2txt(status));
                   else
                           error("Couldn't stat remote file: %s", fx2txt(status));
                 return(NULL);                  return(NULL);
         } else if (type != SSH2_FXP_ATTRS) {          } else if (type != SSH2_FXP_ATTRS) {
                 fatal("Expected SSH2_FXP_ATTRS(%d) packet, got %d",                  fatal("Expected SSH2_FXP_ATTRS(%d) packet, got %d",
Line 455 
Line 458 
 }  }
   
 Attrib *  Attrib *
 do_stat(int fd_in, int fd_out, char *path)  do_stat(int fd_in, int fd_out, char *path, int quiet)
 {  {
         u_int id;          u_int id;
   
         id = msg_id++;          id = msg_id++;
         send_string_request(fd_out, id, SSH2_FXP_STAT, path, strlen(path));          send_string_request(fd_out, id, SSH2_FXP_STAT, path, strlen(path));
         return(get_decode_stat(fd_in, id));          return(get_decode_stat(fd_in, id, quiet));
 }  }
   
 Attrib *  Attrib *
 do_lstat(int fd_in, int fd_out, char *path)  do_lstat(int fd_in, int fd_out, char *path, int quiet)
 {  {
         u_int id;          u_int id;
   
         id = msg_id++;          id = msg_id++;
         send_string_request(fd_out, id, SSH2_FXP_LSTAT, path, strlen(path));          send_string_request(fd_out, id, SSH2_FXP_LSTAT, path, strlen(path));
         return(get_decode_stat(fd_in, id));          return(get_decode_stat(fd_in, id, quiet));
 }  }
   
 Attrib *  Attrib *
 do_fstat(int fd_in, int fd_out, char *handle,  do_fstat(int fd_in, int fd_out, char *handle, u_int handle_len, int quiet)
     u_int handle_len)  
 {  {
         u_int id;          u_int id;
   
         id = msg_id++;          id = msg_id++;
         send_string_request(fd_out, id, SSH2_FXP_FSTAT, handle, handle_len);          send_string_request(fd_out, id, SSH2_FXP_FSTAT, handle, handle_len);
         return(get_decode_stat(fd_in, id));          return(get_decode_stat(fd_in, id, quiet));
 }  }
   
 int  int
Line 677 
Line 679 
         Attrib junk, *a;          Attrib junk, *a;
         int status;          int status;
   
         a = do_stat(fd_in, fd_out, remote_path);          a = do_stat(fd_in, fd_out, remote_path, 0);
         if (a == NULL)          if (a == NULL)
                 return(-1);                  return(-1);
   
Line 687 
Line 689 
         else          else
                 mode = 0666;                  mode = 0666;
   
           if ((a->flags & SSH2_FILEXFER_ATTR_PERMISSIONS) &&
               (a->perm & S_IFDIR)) {
                   error("Cannot download a directory: %s", remote_path);
                   return(-1);
           }
   
         local_fd = open(local_path, O_WRONLY | O_CREAT | O_TRUNC, mode);          local_fd = open(local_path, O_WRONLY | O_CREAT | O_TRUNC, mode);
         if (local_fd == -1) {          if (local_fd == -1) {
                 error("Couldn't open local file \"%s\" for writing: %s",                  error("Couldn't open local file \"%s\" for writing: %s",
                     local_path, strerror(errno));                      local_path, strerror(errno));
                 return(errno);                  return(-1);
         }          }
   
         buffer_init(&msg);          buffer_init(&msg);

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14