Daemon supports forward-DNS lookups for simple hostnames
[rsync/rsync.git] / clientserver.c
index afd2b17..8b6b896 100644 (file)
@@ -265,7 +265,10 @@ int start_inband_exchange(int f_in, int f_out, const char *user, int argc, char
                if (strncmp(*argv, modname, modlen) == 0
                 && argv[0][modlen] == '\0')
                        sargs[sargc++] = modname; /* we send "modname/" */
-               else
+               else if (**argv == '-') {
+                       if (asprintf(sargs + sargc++, "./%s", *argv) < 0)
+                               out_of_memory("start_inband_exchange");
+               } else
                        sargs[sargc++] = *argv;
                argv++;
                argc--;
@@ -512,7 +515,7 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
        set_env_str("RSYNC_HOST_NAME", host);
        set_env_str("RSYNC_HOST_ADDR", addr);
 
-       if (!allow_access(addr, host, lp_hosts_allow(i), lp_hosts_deny(i))) {
+       if (!allow_access(addr, &host, i)) {
                rprintf(FLOG, "rsync denied on module %s from %s (%s)\n",
                        name, host, addr);
                if (!lp_list(i))