--- lib/inndcomm.c Fri May 9 08:25:27 2003 +++ lib/inndcomm.c Tue Jul 22 09:42:36 2003 @@ -53,7 +53,7 @@ ** Get ready to talk to the server. */ int -ICCopen(void) +ICCopen(char *sockpath) { int mask, oerrno, fd; @@ -110,10 +110,13 @@ /* Name the server's socket. */ memset(&ICCserv, 0, sizeof ICCserv); ICCserv.sun_family = AF_UNIX; - strlcpy(ICCserv.sun_path, innconf->pathrun, sizeof(ICCserv.sun_path)); - strlcat(ICCserv.sun_path, "/", sizeof(ICCserv.sun_path)); - strlcat(ICCserv.sun_path, _PATH_NEWSCONTROL, sizeof(ICCserv.sun_path)); - + if (sockpath == NULL) { + strlcpy(ICCserv.sun_path, innconf->pathrun, sizeof(ICCserv.sun_path)); + strlcat(ICCserv.sun_path, "/", sizeof(ICCserv.sun_path)); + strlcat(ICCserv.sun_path, _PATH_NEWSCONTROL, sizeof(ICCserv.sun_path)); + } else { + (void)strlcpy(ICCserv.sun_path, sockpath, sizeof(ICCserv.sun_path)); + } #else /* !HAVE_UNIX_DOMAIN_SOCKETS */ /* Make a named pipe and open it. */