]> granicus.if.org Git - curl/commitdiff
add debug messages for fopen() failures
authorYang Tse <yangsita@gmail.com>
Fri, 16 Feb 2007 19:41:25 +0000 (19:41 +0000)
committerYang Tse <yangsita@gmail.com>
Fri, 16 Feb 2007 19:41:25 +0000 (19:41 +0000)
tests/server/util.c

index ce2bee6397ae3e4af7c59d58ef2f4ddd3462fb93..d3d976c1396ad4447b369bb77c602bedff5b277e 100644 (file)
@@ -65,8 +65,14 @@ extern const char *serverlogfile;
 void logmsg(const char *msg, ...)
 {
   va_list ap;
-  char buffer[256]; /* possible overflow if you pass in a huge string */
+  char buffer[512]; /* possible overflow if you pass in a huge string */
   FILE *logfp;
+  int error;
+
+  if (!serverlogfile) {
+    fprintf(stderr, "Error: serverlogfile not set\n");
+    return;
+  }
 
   struct timeval tv = curlx_tvnow();
   time_t sec = tv.tv_sec;
@@ -86,13 +92,20 @@ void logmsg(const char *msg, ...)
     fprintf(logfp, "%s %s\n", timebuf, buffer);
     fclose(logfp);
   }
+  else {
+    error = ERRNO;
+    fprintf(stderr, "fopen() failed with error: %d %s\n",
+            error, strerror(error));
+    fprintf(stderr, "Error opening file: %s\n", serverlogfile);
+    fprintf(stderr, "Msg not logged: %s %s\n", timebuf, buffer);
+  }
 }
 
 #ifdef WIN32
 /* use instead of perror() on generic windows */
 void win32_perror (const char *msg)
 {
-  char buf[256];
+  char buf[512];
   DWORD err = SOCKERRNO;
 
   if (!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err,