aboutsummaryrefslogtreecommitdiff
path: root/src/progman.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/progman.c')
-rw-r--r--src/progman.c136
1 files changed, 1 insertions, 135 deletions
diff --git a/src/progman.c b/src/progman.c
index 8c33db8..216fb72 100644
--- a/src/progman.c
+++ b/src/progman.c
@@ -1,5 +1,5 @@
/* This file is part of GNU Pies.
- Copyright (C) 2007-2013 Sergey Poznyakoff
+ Copyright (C) 2007-2016 Sergey Poznyakoff
GNU Pies is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -2469,138 +2469,4 @@ progman_stop_tag (const char *name)
struct prog *prog = progman_locate (name);
progman_stop_component (prog);
}
-
-void
-progman_dump_stats (const char *filename)
-{
- FILE *fp;
- struct prog *prog;
- char *tmpfile = NULL;
-
- if (asprintf (&tmpfile, "%s.%lu", filename, (unsigned long) getpid ()) == -1)
- {
- logmsg (LOG_ERR, "%s", strerror (ENOMEM));
- return;
- }
- logmsg (LOG_INFO, _("dumping statistics to `%s'"), tmpfile);
- fp = fopen (tmpfile, "w");
- if (!fp)
- {
- logmsg (LOG_ERR, _("cannot open file `%s' for writing: %s"),
- tmpfile, strerror (errno));
- return;
- }
-
- for (prog = proghead; prog; prog = prog->next)
- {
- int i;
- char fbuf[5];
- int fidx = 0;
-
- fprintf (fp, "%-16s ", prog->tag);
- switch (prog->type)
- {
- case TYPE_COMPONENT:
- switch (prog->v.p.comp->mode)
- {
- case pies_comp_exec:
- fbuf[fidx++] = 'C';
- break;
-
- case pies_comp_once:
- fbuf[fidx++] = 'c';
- break;
-
- case pies_comp_accept:
- fbuf[fidx++] = 'A';
- break;
-
- case pies_comp_inetd:
- fbuf[fidx++] = 'I';
- break;
-
- case pies_comp_pass_fd:
- fbuf[fidx++] = 'P';
-
- default:
- break;
- }
-
- switch (prog->v.p.status)
- {
- case status_enabled:
- fbuf[fidx++] = (prog->pid != 0) ? 'R' : ' ';
- break;
-
- case status_disabled:
- fbuf[fidx++] = 'D';
- break;
-
- case status_listener:
- fbuf[fidx++] = 'L';
- break;
-
- case status_sleeping:
- fbuf[fidx++] = 's';
- break;
-
- case status_stopping:
- fbuf[fidx++] = 'S';
- break;
-
- case status_finished:
- fbuf[fidx++] = 'f';
- }
- break;
-
- case TYPE_REDIRECTOR:
- fbuf[fidx++] = 'R';
- break;
-
- case TYPE_COMMAND:
- fbuf[fidx++] = 'E';
- }
- fbuf[fidx++] = 0;
- fprintf (fp, "%-8.8s ", fbuf);
-
- switch (prog->type)
- {
- case TYPE_COMPONENT:
- if (prog->pid)
- fprintf (fp, "%10lu ", (unsigned long) prog->pid);
- else if (prog->v.p.status == status_listener
- && prog->v.p.comp->socket_url)
- fprintf (fp, "%-10s ", prog->v.p.comp->socket_url->string);
- else
- fprintf (fp, "%-10s ", "N/A");
-
- if (prog->v.p.status == status_sleeping)
- {
- time_t t = prog->v.p.timestamp + SLEEPTIME;
- fprintftime (fp, "%H:%M:%S", localtime (&t), 0, 0);
- }
-
- for (i = 0; i < prog->v.p.comp->argc; i++)
- fprintf (fp, " %s", quotearg (prog->v.p.comp->argv[i]));
- break;
-
- case TYPE_REDIRECTOR:
- fprintf (fp, "%10lu ", (unsigned long) prog->pid);
- break;
-
- case TYPE_COMMAND:
- fprintf (fp, "%s", prog->v.c.command);
- }
- fputc ('\n', fp);
- }
- fclose (fp);
- unlink (filename);
- if (rename (tmpfile, filename))
- {
- logmsg (LOG_ERR, _("cannot rename %s to %s: %s"), tmpfile, filename,
- strerror (errno));
- unlink (tmpfile);
- }
- free (tmpfile);
-}
/* EOF */

Return to:

Send suggestions and report system problems to the System administrator.