version 1.105, 2017/07/20 18:39:16 |
version 1.106, 2017/07/22 17:05:14 |
|
|
|
|
pidlist = calloc(listlen + 1, sizeof(struct pidinfo)); |
pidlist = calloc(listlen + 1, sizeof(struct pidinfo)); |
if (pidlist == NULL) |
if (pidlist == NULL) |
err(1, "calloc"); |
err(1, NULL); |
|
|
signal(SIGCHLD, child_killer); |
signal(SIGCHLD, child_killer); |
|
|
|
|
continue; |
continue; |
errline = strdup(tmp); |
errline = strdup(tmp); |
if (errline == NULL) |
if (errline == NULL) |
err(1, "strdup"); |
err(1, NULL); |
working = calloc(1, sizeof(*working)); |
working = calloc(1, sizeof(*working)); |
if (working == NULL) |
if (working == NULL) |
err(1, "calloc"); |
err(1, NULL); |
|
|
q = parse = missing_field(sob(line), errline, lineno); |
q = parse = missing_field(sob(line), errline, lineno); |
*(parse = son(line)) = '\0'; |
*(parse = son(line)) = '\0'; |
working->log = strdup(q); |
working->log = strdup(q); |
if (working->log == NULL) |
if (working->log == NULL) |
err(1, "strdup"); |
err(1, NULL); |
|
|
if ((working->logbase = strrchr(working->log, '/')) != NULL) |
if ((working->logbase = strrchr(working->log, '/')) != NULL) |
working->logbase++; |
working->logbase++; |
|
|
} |
} |
working->pidfile = strdup(q); |
working->pidfile = strdup(q); |
if (working->pidfile == NULL) |
if (working->pidfile == NULL) |
err(1, "strdup"); |
err(1, NULL); |
} else if (*q == '"' && (tmp = strchr(q + 1, '"'))) { |
} else if (*q == '"' && (tmp = strchr(q + 1, '"'))) { |
*(parse = tmp) = '\0'; |
*(parse = tmp) = '\0'; |
if (*++q != '\0') { |
if (*++q != '\0') { |
working->runcmd = strdup(q); |
working->runcmd = strdup(q); |
if (working->runcmd == NULL) |
if (working->runcmd == NULL) |
err(1, "strdup"); |
err(1, NULL); |
} |
} |
working->pidfile = NULL; |
working->pidfile = NULL; |
working->signal = -1; |
working->signal = -1; |
|
|
*(parse = son(parse)) = '\0'; |
*(parse = son(parse)) = '\0'; |
working->whom = strdup(q); |
working->whom = strdup(q); |
if (working->whom == NULL) |
if (working->whom == NULL) |
err(1, "strdup"); |
err(1, NULL); |
} else { |
} else { |
warnx("%s:%d: unrecognized field: %s" |
warnx("%s:%d: unrecognized field: %s" |
" --> skipping", |
" --> skipping", |
|
|
*(working->logbase - 1) = '\0'; |
*(working->logbase - 1) = '\0'; |
if ((asprintf(&working->backdir, "%s/%s", |
if ((asprintf(&working->backdir, "%s/%s", |
working->log, arcdir)) == -1) |
working->log, arcdir)) == -1) |
err(1, "malloc"); |
err(1, NULL); |
*(working->logbase - 1) = '/'; |
*(working->logbase - 1) = '/'; |
} |
} |
/* Ignore arcdir if it doesn't exist. */ |
/* Ignore arcdir if it doesn't exist. */ |
|
|
|
|
flog = strdup(ent->log); |
flog = strdup(ent->log); |
if (flog == NULL) |
if (flog == NULL) |
err(1, "strdup"); |
err(1, NULL); |
|
|
for (p = flog; *p != '\0'; p++) { |
for (p = flog; *p != '\0'; p++) { |
if (*p == '/') |
if (*p == '/') |
|
|
if (sb.st_size > osize) { |
if (sb.st_size > osize) { |
rb = malloc(sb.st_size - osize); |
rb = malloc(sb.st_size - osize); |
if (rb == NULL) |
if (rb == NULL) |
err(1, "malloc"); |
err(1, NULL); |
|
|
/* Open logfile, seek. */ |
/* Open logfile, seek. */ |
fp = fopen(ent->log, "r"); |
fp = fopen(ent->log, "r"); |