X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/4cdf25e42e344bac2576aca13a1a336cff33f8f5..0c515f17c44344813e8949fbb684b357ad70cfdf:/clientserver.c diff --git a/clientserver.c b/clientserver.c index 62d049d7..18d9494e 100644 --- a/clientserver.c +++ b/clientserver.c @@ -99,9 +99,22 @@ static int rsync_module(int fd, int i) uid_t uid; gid_t gid; char *p; + char *addr = client_addr(fd); + char *host = client_name(fd); + + if (!allow_access(addr, host, lp_hosts_allow(i), lp_hosts_deny(i))) { + rprintf(FERROR,"rsync denied on module %s from %s (%s)\n", + lp_name(i), client_name(fd), client_addr(fd)); + return -1; + } + + if (!claim_connection(lp_lock_file(), lp_max_connections())) { + rprintf(FERROR,"ERROR: max connections reached\n"); + return -1; + } rprintf(FINFO,"rsync on module %s from %s (%s)\n", - lp_name(i), client_name(fd), client_addr(fd)); + lp_name(i), host, addr); module_id = i;