Mention some recent changes.
[rsync/rsync.git] / clientserver.c
index 49238b1..88f341e 100644 (file)
@@ -55,7 +55,7 @@ extern char *logfile_format;
 extern char *files_from;
 extern char *tmpdir;
 extern struct chmod_mode_struct *chmod_modes;
-extern struct filter_list_struct daemon_filter_list;
+extern filter_rule_list daemon_filter_list;
 extern char curr_dir[MAXPATHLEN];
 #ifdef ICONV_OPTION
 extern char *iconv_opt;
@@ -387,16 +387,16 @@ static int read_arg_from_pipe(int fd, char *buf, int limit)
        char *bp = buf, *eob = buf + limit - 1;
 
        while (1) {
-           int got = read(fd, bp, 1);
-           if (got != 1) {
-               if (got < 0 && errno == EINTR)
-                       continue;
-               return -1;
-           }
-           if (*bp == '\0')
-               break;
-           if (bp < eob)
-               bp++;
+               int got = read(fd, bp, 1);
+               if (got != 1) {
+                       if (got < 0 && errno == EINTR)
+                               continue;
+                       return -1;
+               }
+               if (*bp == '\0')
+                       break;
+               if (bp < eob)
+                       bp++;
        }
        *bp = '\0';
 
@@ -416,13 +416,10 @@ static int path_failure(int f_out, const char *dir, BOOL was_chdir)
 static int add_a_group(int f_out, const char *gname)
 {
        gid_t gid;
-       if (!name_to_gid(gname, &gid)) {
-               if (!isDigit(gname)) {
-                       rprintf(FLOG, "Invalid gid %s\n", gname);
-                       io_printf(f_out, "@ERROR: invalid gid %s\n", gname);
-                       return -1;
-               }
-               gid = atol(gname);
+       if (!group_to_gid(gname, &gid, True)) {
+               rprintf(FLOG, "Invalid gid %s\n", gname);
+               io_printf(f_out, "@ERROR: invalid gid %s\n", gname);
+               return -1;
        }
        if (gid_count == MAX_GID_LIST) {
                rprintf(FLOG, "Too many groups specified via gid parameter.\n");
@@ -558,13 +555,10 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
 
        p = *lp_uid(i) ? lp_uid(i) : am_root ? NOBODY_USER : NULL;
        if (p) {
-               if (!name_to_uid(p, &uid)) {
-                       if (!isDigit(p)) {
-                               rprintf(FLOG, "Invalid uid %s\n", p);
-                               io_printf(f_out, "@ERROR: invalid uid %s\n", p);
-                               return -1;
-                       }
-                       uid = atol(p);
+               if (!user_to_uid(p, &uid, True)) {
+                       rprintf(FLOG, "Invalid uid %s\n", p);
+                       io_printf(f_out, "@ERROR: invalid uid %s\n", p);
+                       return -1;
                }
                set_uid = 1;
        } else
@@ -626,24 +620,24 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
                set_filter_dir(module_dir, module_dirlen);
 
        p = lp_filter(i);
-       parse_rule(&daemon_filter_list, p, MATCHFLG_WORD_SPLIT,
+       parse_filter_str(&daemon_filter_list, p, rule_template(FILTRULE_WORD_SPLIT),
                   XFLG_ABS_IF_SLASH | XFLG_DIR2WILD3);
 
        p = lp_include_from(i);
-       parse_filter_file(&daemon_filter_list, p, MATCHFLG_INCLUDE,
+       parse_filter_file(&daemon_filter_list, p, rule_template(FILTRULE_INCLUDE),
            XFLG_ABS_IF_SLASH | XFLG_DIR2WILD3 | XFLG_OLD_PREFIXES | XFLG_FATAL_ERRORS);
 
        p = lp_include(i);
-       parse_rule(&daemon_filter_list, p,
-                  MATCHFLG_INCLUDE | MATCHFLG_WORD_SPLIT,
+       parse_filter_str(&daemon_filter_list, p,
+                  rule_template(FILTRULE_INCLUDE | FILTRULE_WORD_SPLIT),
                   XFLG_ABS_IF_SLASH | XFLG_DIR2WILD3 | XFLG_OLD_PREFIXES);
 
        p = lp_exclude_from(i);
-       parse_filter_file(&daemon_filter_list, p, 0,
+       parse_filter_file(&daemon_filter_list, p, rule_template(0),
            XFLG_ABS_IF_SLASH | XFLG_DIR2WILD3 | XFLG_OLD_PREFIXES | XFLG_FATAL_ERRORS);
 
        p = lp_exclude(i);
-       parse_rule(&daemon_filter_list, p, MATCHFLG_WORD_SPLIT,
+       parse_filter_str(&daemon_filter_list, p, rule_template(FILTRULE_WORD_SPLIT),
                   XFLG_ABS_IF_SLASH | XFLG_DIR2WILD3 | XFLG_OLD_PREFIXES);
 
        log_init(1);