From 8d72ef6e5258fe6a3174db822e5a6b1f7a32e252 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 17 Jul 1998 05:37:18 +0000 Subject: [PATCH] use error to detect lockfile open failures vs. max connections reached and report an appropriate error message --- clientserver.c | 13 ++++++++++--- connection.c | 5 ++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/clientserver.c b/clientserver.c index 92d9b2c0..0723560e 100644 --- a/clientserver.c +++ b/clientserver.c @@ -132,9 +132,16 @@ static int rsync_module(int fd, int i) } if (!claim_connection(lp_lock_file(), lp_max_connections())) { - rprintf(FERROR,"max connections (%d) reached\n", - lp_max_connections()); - io_printf(fd,"@ERROR: max connections (%d) reached - try again later\n", lp_max_connections()); + if (errno) { + rprintf(FERROR,"failed to open lock file %s : %s\n", + lp_lock_file(), strerror(errno)); + io_printf(fd,"@ERROR: failed to open lock file %s : %s\n", + lp_lock_file(), strerror(errno)); + } else { + rprintf(FERROR,"max connections (%d) reached\n", + lp_max_connections()); + io_printf(fd,"@ERROR: max connections (%d) reached - try again later\n", lp_max_connections()); + } return -1; } diff --git a/connection.c b/connection.c index 1025c8fc..ec726075 100644 --- a/connection.c +++ b/connection.c @@ -29,7 +29,7 @@ int claim_connection(char *fname,int max_connections) if (max_connections <= 0) return 1; - + fd = open(fname,O_RDWR|O_CREAT, 0600); if (fd == -1) { @@ -41,6 +41,9 @@ int claim_connection(char *fname,int max_connections) if (lock_range(fd, i*4, 4)) return 1; } + /* only interested in open failures */ + errno = 0; + close(fd); return 0; } -- 2.34.1