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

Diff for /src/usr.bin/ssh/sftp.c between version 1.188 and 1.189

version 1.188, 2018/11/16 03:26:01 version 1.189, 2019/01/16 23:23:45
Line 256 
Line 256 
         printf("Available commands:\n"          printf("Available commands:\n"
             "bye                                Quit sftp\n"              "bye                                Quit sftp\n"
             "cd path                            Change remote directory to 'path'\n"              "cd path                            Change remote directory to 'path'\n"
             "chgrp grp path                     Change group of file 'path' to 'grp'\n"              "chgrp [-h] grp path                Change group of file 'path' to 'grp'\n"
             "chmod mode path                    Change permissions of file 'path' to 'mode'\n"              "chmod [-h] mode path               Change permissions of file 'path' to 'mode'\n"
             "chown own path                     Change owner of file 'path' to 'own'\n"              "chown [-h] own path                Change owner of file 'path' to 'own'\n"
             "df [-hi] [path]                    Display statistics for current directory or\n"              "df [-hi] [path]                    Display statistics for current directory or\n"
             "                                   filesystem containing 'path'\n"              "                                   filesystem containing 'path'\n"
             "exit                               Quit sftp\n"              "exit                               Quit sftp\n"
Line 540 
Line 540 
 }  }
   
 static int  static int
   parse_ch_flags(const char *cmd, char **argv, int argc, int *hflag)
   {
           extern int opterr, optind, optopt, optreset;
           int ch;
   
           optind = optreset = 1;
           opterr = 0;
   
           *hflag = 0;
           while ((ch = getopt(argc, argv, "h")) != -1) {
                   switch (ch) {
                   case 'h':
                           *hflag = 1;
                           break;
                   default:
                           error("%s: Invalid flag -%c", cmd, optopt);
                           return -1;
                   }
           }
   
           return optind;
   }
   
   static int
 parse_no_flags(const char *cmd, char **argv, int argc)  parse_no_flags(const char *cmd, char **argv, int argc)
 {  {
         extern int opterr, optind, optopt, optreset;          extern int opterr, optind, optopt, optreset;
Line 1428 
Line 1452 
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case I_CHOWN:          case I_CHOWN:
         case I_CHGRP:          case I_CHGRP:
                 if ((optidx = parse_no_flags(cmd, argv, argc)) == -1)                  if ((optidx = parse_ch_flags(cmd, argv, argc, hflag)) == -1)
                         return -1;                          return -1;
                 /* Get numeric arg (mandatory) */                  /* Get numeric arg (mandatory) */
                 if (argc - optidx < 1)                  if (argc - optidx < 1)
Line 1647 
Line 1671 
                         if (!quiet)                          if (!quiet)
                                 mprintf("Changing mode on %s\n",                                  mprintf("Changing mode on %s\n",
                                     g.gl_pathv[i]);                                      g.gl_pathv[i]);
                         err = do_setstat(conn, g.gl_pathv[i], &a);                          err = (hflag ? do_lsetstat : do_setstat)(conn,
                               g.gl_pathv[i], &a);
                         if (err != 0 && err_abort)                          if (err != 0 && err_abort)
                                 break;                                  break;
                 }                  }
Line 1657 
Line 1682 
                 path1 = make_absolute(path1, *pwd);                  path1 = make_absolute(path1, *pwd);
                 remote_glob(conn, path1, GLOB_NOCHECK, NULL, &g);                  remote_glob(conn, path1, GLOB_NOCHECK, NULL, &g);
                 for (i = 0; g.gl_pathv[i] && !interrupted; i++) {                  for (i = 0; g.gl_pathv[i] && !interrupted; i++) {
                         if (!(aa = do_stat(conn, g.gl_pathv[i], 0))) {                          if (!(aa = (hflag ? do_lstat : do_stat)(conn,
                               g.gl_pathv[i], 0))) {
                                 if (err_abort) {                                  if (err_abort) {
                                         err = -1;                                          err = -1;
                                         break;                                          break;
Line 1685 
Line 1711 
                                             g.gl_pathv[i]);                                              g.gl_pathv[i]);
                                 aa->gid = n_arg;                                  aa->gid = n_arg;
                         }                          }
                         err = do_setstat(conn, g.gl_pathv[i], aa);                          err = (hflag ? do_lsetstat : do_setstat)(conn,
                               g.gl_pathv[i], aa);
                         if (err != 0 && err_abort)                          if (err != 0 && err_abort)
                                 break;                                  break;
                 }                  }

Legend:
Removed from v.1.188  
changed lines
  Added in v.1.189