chiark / gitweb /
www-cgi/: Coding style fixes
[userv-utils.git] / www-cgi / ucgicommon.c
index 73565b5f07e4d51d5e15bdec0e75d1a5e1bc6fe5..6ae266dcce97ff90dbb873e7edd5baaea1307480 100644 (file)
@@ -37,18 +37,20 @@ static void outerror(void) {
 }
 
 void syserror(const char *m) {
-  if (printf("Content-Type: text/plain\n\n"
+  if (printf("Content-Type: text/plain\n"
+            "Status: 500\n\n"
             "ucgi: system call error:\n"
             "%s: %s\n",
             m,strerror(errno))==EOF || fflush(stdout)) outerror();
   exit(0);
 }
 
-void error(const char *m) {
-  if (printf("Content-Type: text/plain\n\n"
+void error(const char *m, int st) {
+  if (printf("Content-Type: text/plain\n"
+            "Status: %d\n\n"
             "ucgi: error:\n"
             "%s\n",
-            m)==EOF || fflush(stdout)) outerror();
+            st, m)==EOF || fflush(stdout)) outerror();
   exit(0);
 }
 
@@ -72,8 +74,7 @@ void xsetenv(const char *en, const char *ev, int overwrite) {
   if (setenv(en,ev,overwrite)) syserror("setenv");
 }
 
-const char **load_filters(unsigned flags, const char *first, ...)
-{
+const char **load_filters(unsigned flags, const char *first, ...) {
   va_list ap;
   const char *name, *p, *q, **v;
   char *pp;
@@ -104,7 +105,7 @@ opened:
     l= strlen(buf);
     if (buf[l - 1] == '\n') buf[--l]= 0;
     if (l + 1 == sizeof(buf))
-      error("line too long in environment filter file");
+      error("line too long in environment filter file", 500);
     p= buf; q= p + l;
     while (isspace((unsigned char)*p)) p++;
     while (q > p && isspace((unsigned char)q[-1])) q--;
@@ -128,8 +129,7 @@ opened:
 static int envvar_match(unsigned flags, const char *en,
                        const char *const *patv,
                        const char *const *defaults,
-                       const char **ev)
-{
+                       const char **ev) {
   const char *const *patp;
   const char *q, *pat;
   int acceptp;
@@ -146,7 +146,7 @@ static int envvar_match(unsigned flags, const char *en,
        rc= envvar_match(flags, en, defaults, 0, ev);
        if (rc) return rc;
       } else
-       error("unknown pattern directive");
+       error("unknown pattern directive", 500);
       continue;
     }
 
@@ -191,8 +191,7 @@ void filter_environment(unsigned flags, const char *prefix_in,
                        void (*foundone)(const char *fulln,
                                         const char *en, const char *ev,
                                         void *p),
-                       void *p)
-{
+                       void *p) {
   char *const *ep;
   const char *en, *ev;
   char enbuf[MAX_ENVVAR_NAME];
@@ -208,7 +207,7 @@ void filter_environment(unsigned flags, const char *prefix_in,
     if (envvar_match(flags, en + pn, patv, defaults, &ev) > 0) {
       n= strcspn(en, "=");
       if (n >= sizeof(enbuf))
-       error("environment variable name too long");
+       error("environment variable name too long", 500);
       memcpy(enbuf, en, n);
       enbuf[n]= 0;
       D( if (debugmode)