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

Diff for /src/usr.bin/rdistd/server.c between version 1.21 and 1.22

version 1.21, 2009/10/27 23:59:42 version 1.22, 2011/04/10 15:47:28
Line 41 
Line 41 
 int     catname = 0;            /* cat name to target name */  int     catname = 0;            /* cat name to target name */
 char    *sptarget[32];          /* stack of saved ptarget's for directories */  char    *sptarget[32];          /* stack of saved ptarget's for directories */
 char   *fromhost = NULL;        /* Client hostname */  char   *fromhost = NULL;        /* Client hostname */
 static long min_freespace = 0;  /* Minimium free space on a filesystem */  static int64_t min_freespace = 0; /* Minimium free space on a filesystem */
 static long min_freefiles = 0;  /* Minimium free # files on a filesystem */  static int64_t min_freefiles = 0; /* Minimium free # files on a filesystem */
 int     oumask;                 /* Old umask */  int     oumask;                 /* Old umask */
   
 static int cattarget(char *);  static int cattarget(char *);
Line 656 
Line 656 
         case S_IFIFO:          case S_IFIFO:
 #endif  #endif
 #endif  #endif
                 (void) sendcmd(QC_YES, "%ld %ld %o %s %s",                  (void) sendcmd(QC_YES, "%lld %ld %o %s %s",
                                (long) stb.st_size, stb.st_mtime,                                 (long long) stb.st_size, stb.st_mtime,
                                stb.st_mode & 07777,                                 stb.st_mode & 07777,
                                getusername(stb.st_uid, target, options),                                 getusername(stb.st_uid, target, options),
                                getgroupname(stb.st_gid, target, options));                                 getgroupname(stb.st_gid, target, options));
Line 794 
Line 794 
         wrerr = 0;          wrerr = 0;
         olderrno = 0;          olderrno = 0;
         for (i = 0; i < size; i += BUFSIZ) {          for (i = 0; i < size; i += BUFSIZ) {
                 int amt = BUFSIZ;                  off_t amt = BUFSIZ;
   
                 cp = buf;                  cp = buf;
                 if (i + amt > size)                  if (i + amt > size)
                         amt = size - i;                          amt = size - i;
                 do {                  do {
                         int j;                          ssize_t j;
   
                         j = readrem(cp, amt);                          j = readrem(cp, amt);
                         if (j <= 0) {                          if (j <= 0) {
Line 1330 
Line 1330 
 {  {
         char *cp = cmd;          char *cp = cmd;
         char *estr;          char *estr;
           const char *errstr;
   
         switch (*cp++) {          switch (*cp++) {
         case SC_HOSTNAME:       /* Set hostname */          case SC_HOSTNAME:       /* Set hostname */
Line 1346 
Line 1347 
                 break;                  break;
   
         case SC_FREESPACE:      /* Minimium free space */          case SC_FREESPACE:      /* Minimium free space */
                 if (!isdigit((unsigned char)*cp)) {                  min_freespace = (int64_t)strtonum(cp, 0, LLONG_MAX, &errstr);
                         fatalerr("Expected digit, got '%s'.", cp);                  if (errstr)
                         return;                          fatalerr("Minimum free space is %s: '%s'", errstr,
                 }                                  optarg);
                 min_freespace = (unsigned long) atoi(cp);  
                 break;                  break;
   
         case SC_FREEFILES:      /* Minimium free files */          case SC_FREEFILES:      /* Minimium free files */
                 if (!isdigit((unsigned char)*cp)) {                  min_freefiles = (int64_t)strtonum(cp, 0, LLONG_MAX, &errstr);
                         fatalerr("Expected digit, got '%s'.", cp);                  if (errstr)
                         return;                          fatalerr("Minimum free files is %s: '%s'", errstr,
                 }                                  optarg);
                 min_freefiles = (unsigned long) atoi(cp);  
                 break;                  break;
   
         case SC_LOGGING:        /* Logging options */          case SC_LOGGING:        /* Logging options */
Line 1396 
Line 1395 
         char *owner, *group, *file;          char *owner, *group, *file;
         char new[MAXPATHLEN];          char new[MAXPATHLEN];
         char fileb[MAXPATHLEN];          char fileb[MAXPATHLEN];
         long freespace = -1, freefiles = -1;          int64_t freespace = -1, freefiles = -1;
         char *cp = cmd;          char *cp = cmd;
   
         /*          /*
Line 1420 
Line 1419 
         /*          /*
          * Get file size           * Get file size
          */           */
         size = strtol(cp, &cp, 10);          size = (off_t) strtoll(cp, &cp, 10);
         if (*cp++ != ' ') {          if (*cp++ != ' ') {
                 error("recvit: size not delimited");                  error("recvit: size not delimited");
                 return;                  return;
Line 1429 
Line 1428 
         /*          /*
          * Get modification time           * Get modification time
          */           */
         mtime = strtol(cp, &cp, 10);          mtime = (time_t) strtol(cp, &cp, 10);
         if (*cp++ != ' ') {          if (*cp++ != ' ') {
                 error("recvit: mtime not delimited");                  error("recvit: mtime not delimited");
                 return;                  return;
Line 1478 
Line 1477 
         file = fileb;          file = fileb;
   
         debugmsg(DM_MISC,          debugmsg(DM_MISC,
                  "recvit: opts = %04o mode = %04o size = %d mtime = %d",                   "recvit: opts = %04o mode = %04o size = %lld mtime = %d",
                  opts, mode, size, mtime);                   opts, mode, (long long) size, mtime);
         debugmsg(DM_MISC,          debugmsg(DM_MISC,
        "recvit: owner = '%s' group = '%s' file = '%s' catname = %d isdir = %d",         "recvit: owner = '%s' group = '%s' file = '%s' catname = %d isdir = %d",
                  owner, group, file, catname, (type == S_IFDIR) ? 1 : 0);                   owner, group, file, catname, (type == S_IFDIR) ? 1 : 0);
Line 1523 
Line 1522 
          */           */
         if (min_freespace || min_freefiles) {          if (min_freespace || min_freefiles) {
                 /* Convert file size to kilobytes */                  /* Convert file size to kilobytes */
                 long fsize = (long) (size / 1024);                  int64_t fsize = (int64_t)size / 1024;
   
                 if (getfilesysinfo(target, &freespace, &freefiles) != 0)                  if (getfilesysinfo(target, &freespace, &freefiles) != 0)
                         return;                          return;
Line 1535 
Line 1534 
                 if (min_freespace && (freespace >= 0) &&                  if (min_freespace && (freespace >= 0) &&
                     (freespace - fsize < min_freespace)) {                      (freespace - fsize < min_freespace)) {
                         error(                          error(
                      "%s: Not enough free space on filesystem: min %d free %d",                       "%s: Not enough free space on filesystem: min %lld "
                               target, min_freespace, freespace);                       "free %lld", target, min_freespace, freespace);
                         return;                          return;
                 }                  }
                 if (min_freefiles && (freefiles >= 0) &&                  if (min_freefiles && (freefiles >= 0) &&
                     (freefiles - 1 < min_freefiles)) {                      (freefiles - 1 < min_freefiles)) {
                         error(                          error(
                      "%s: Not enough free files on filesystem: min %d free %d",                       "%s: Not enough free files on filesystem: min %lld free "
                               target, min_freefiles, freefiles);                       "%lld", target, min_freefiles, freefiles);
                         return;                          return;
                 }                  }
         }          }

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22