*** empty log message ***
authorMatthew Mondor <mmondor@pulsar-zone.net>
Tue, 28 Sep 2004 20:59:11 +0000 (20:59 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Tue, 28 Sep 2004 20:59:11 +0000 (20:59 +0000)
mmsoftware/apache-mmstat/apache-mmstat.c

index 8a9c68e..40b2979 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: apache-mmstat.c,v 1.3 2004/06/05 07:08:00 mmondor Exp $ */
+/* $Id: apache-mmstat.c,v 1.4 2004/09/28 20:59:11 mmondor Exp $ */
 
 /*
  * Copyright (C) 2003, Matthew Mondor
@@ -36,6 +36,7 @@
 
 
 #include <sys/types.h>
+#include <errno.h>
 #include <stdlib.h>
 #include <fcntl.h>
 #include <unistd.h>
 
 
 
-int main(int, char **);
-static void log_parse(mmstat_t *, char *);
-static void sighandler(int);
+int            main(int, char **);
+
+static void    log_parse(mmstat_t *, char *);
+static void    sighandler(int);
 
 
 
@@ -95,11 +97,12 @@ static bool LOG_REQUEST;    /* F */
 
 
 
-int main(int argc, char **argv)
+int
+main(int argc, char **argv)
 {
-    char *linebuf;
-    mmstat_t mms;
-    struct sigaction act;
+    char               *linebuf;
+    mmstat_t           mms;
+    struct sigaction   act;
 
     /* Setup a signal handler for SIGSEGV so that we prevent core dumping if
      * we ever crash.
@@ -115,7 +118,7 @@ int main(int argc, char **argv)
      * stdin, of course, which we'll read logs from later on.
      */
     {
-       int fd;
+       int     fd;
 
        if ((fd = open("/dev/null", O_RDWR)) != -1) {
            dup2(fd, 1);
@@ -150,9 +153,9 @@ int main(int argc, char **argv)
      * drop privileges already.
      */
     {
-       uid_t uid;
-       gid_t *gids;
-       int ngids;
+       uid_t   uid;
+       gid_t   *gids;
+       int     ngids;
 
        if ((uid = mmgetuid(argv[ARG_USER])) == -1) {
            syslog(LOG_NOTICE, "%s: Unknown user '%s'", argv[ARG_COMMAND],
@@ -226,7 +229,8 @@ int main(int argc, char **argv)
 
 
 /* ARGSUSED */
-static void sighandler(int sig)
+static void
+sighandler(int sig)
 {
     /* We only catch SIGSEGV with this handler, and exit normally. */
     exit(EXIT_SUCCESS);
@@ -236,15 +240,18 @@ static void sighandler(int sig)
 /* When we get called, privileges have been revoked and mmstat(3) has been
  * successfully initialized.
  */
-static void log_parse(mmstat_t *mms, char *line)
+static void
+log_parse(mmstat_t *mms, char *line)
 {
-    char *cols[COL_MAX + 1];
+    char       *cols[COL_MAX + 1];
 
     /* We'll exit if the pipe is closed by apache */
     while (fgets(line, LINESIZ - 1, stdin) == line) {
-       size_t len;
-       int status = 1;
-       char *ptr;
+       size_t  len;
+       int     status;
+       char    *ptr;
+
+       status = 1;
 
        /* Strip ending "\n". If there are none, we ignore the line as it
         * consists of an abnormally long request which exceeds LINESIZ.
@@ -258,7 +265,8 @@ static void log_parse(mmstat_t *mms, char *line)
        len = mm_strlen(line);
        if (len > 0 && line[len - 1] == '\n')
            line[len - 1] = '\0';
-       else continue;
+       else
+           continue;
 
        /* Strip dangerous characters from line */
        for (ptr = line; *ptr != '\0'; ptr++) {
@@ -309,7 +317,7 @@ static void log_parse(mmstat_t *mms, char *line)
        switch (status) {
        case 200:       /* Success */
            {
-               long bytes;
+               long    bytes;
 
                bytes = atol(cols[COL_BYTES]);
 
@@ -386,6 +394,7 @@ static void log_parse(mmstat_t *mms, char *line)
        /* Close transaction, that is, commit any changes. Once this is
         * called, the statistics are relayed to the mmstat(8) daemon.
         */
-       mmstat_transact(mms, FALSE);
+       if (!mmstat_transact(mms, FALSE))
+           syslog(LOG_NOTICE, "mmstat error - %s", strerror(errno));
     }
 }