diff options
-rw-r--r-- | usr.sbin/lpr/common_source/startdaemon.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/usr.sbin/lpr/common_source/startdaemon.c b/usr.sbin/lpr/common_source/startdaemon.c index c9c978e..16ec7ce 100644 --- a/usr.sbin/lpr/common_source/startdaemon.c +++ b/usr.sbin/lpr/common_source/startdaemon.c @@ -64,6 +64,7 @@ startdaemon(const struct printer *pp) { struct sockaddr_un un; register int s, n; + int connectres; char c; s = socket(PF_LOCAL, SOCK_STREAM, 0); @@ -78,13 +79,14 @@ startdaemon(const struct printer *pp) #define SUN_LEN(unp) (strlen((unp)->sun_path) + 2) #endif seteuid(euid); - if (connect(s, (struct sockaddr *)&un, SUN_LEN(&un)) < 0) { - seteuid(uid); - warn("connect"); + connectres = connect(s, (struct sockaddr *)&un, SUN_LEN(&un)); + seteuid(uid); + if (connectres < 0) { + warn("Unable to connect to %s", _PATH_SOCKETNAME); + warnx("Check to see if the master 'lpd' process is running."); (void) close(s); return(0); } - seteuid(uid); /* * Avoid overruns without putting artificial limitations on |