You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.5 KiB
55 lines
1.5 KiB
Index: src/nntpcache.c |
|
--- src/nntpcache.c.orig 2004-04-11 13:43:56 +0200 |
|
+++ src/nntpcache.c 2006-03-06 20:21:29 +0100 |
|
@@ -1242,7 +1242,12 @@ |
|
Task = task_info_new (nc_master, "master"); |
|
watchInit(); |
|
drop_priv(ncUID, ncGID); |
|
- sprintf (PidFile, "%.127s.%.164s", con->pidFile, con->bindAddr); |
|
+ |
|
+ if (strchr(con->pidFile, (int)'/') != NULL) |
|
+ sprintf (PidFile, "%.127s", con->pidFile); |
|
+ else |
|
+ sprintf (PidFile, "%.127s.%.164s", con->pidFile, con->bindAddr); |
|
+ |
|
if (!(fh = fopen (PidFile, "w"))) |
|
logw (("couldn't open pid file '%s'", PidFile)); |
|
else |
|
@@ -1431,6 +1436,7 @@ |
|
char *config_file = con->configFile; |
|
char *access_file = con->accessFile; |
|
char *bindAddr = NULL; |
|
+ char *pidFile = NULL; |
|
struct hostent *hp; |
|
enum task_state task; |
|
char *p = NULL; |
|
@@ -1451,7 +1457,7 @@ |
|
assert(task_desc[nc_last] == NULL); |
|
task = nc_master; |
|
|
|
- while ((c = getopt (argc, argv, "ef:hnb:rc:s")) != -1) |
|
+ while ((c = getopt (argc, argv, "ef:hnb:p:rc:s")) != -1) |
|
switch (c) |
|
{ |
|
case 'a': |
|
@@ -1491,6 +1497,9 @@ |
|
case 'b': |
|
bindAddr = Sstrdup(optarg); |
|
break; |
|
+ case 'p': |
|
+ pidFile = Sstrdup(optarg); |
|
+ break; |
|
case 's': |
|
SwapWithChild = TRUE; |
|
break; |
|
@@ -1558,6 +1567,10 @@ |
|
if (con->bindAddr) free(con->bindAddr); |
|
con->bindAddr = Sstrdup(bindAddr); |
|
} |
|
+ if (pidFile) { |
|
+ if (con->pidFile) free(con->pidFile); |
|
+ con->pidFile = Sstrdup(pidFile); |
|
+ } |
|
if (chdir (con->configDir) == -1) |
|
{ |
|
loge (("couldn't set cwd to %s", con->configDir));
|
|
|