* Rewrote vCtdlLogPrintf() to NOT use any buffers at all, only v*printf() type functi...
authorArt Cancro <ajc@citadel.org>
Fri, 23 Jul 2010 20:23:18 +0000 (20:23 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 23 Jul 2010 20:23:18 +0000 (20:23 +0000)
citadel/context.c
citadel/context.h
citadel/sysdep.c

index 5f964be4a0e443dc378c0593fc5c7e6699eadde5..06615b7e2c3db38887e97a02a882287020beae04 100644 (file)
@@ -345,7 +345,6 @@ void RemoveContext (CitContext *con)
 
        FreeStrBuf(&con->MigrateBuf);
        FreeStrBuf(&con->ReadBuf);
-       FreeStrBuf(&con->lBuf);
        CtdlLogPrintf(CTDL_DEBUG, "Done with RemoveContext()\n");
 }
 
@@ -368,7 +367,6 @@ CitContext *CreateNewContext(void) {
                return NULL;
        }
        memset(me, 0, sizeof(CitContext));
-       me->lBuf = NewStrBufPlain(NULL, SIZ);
        /* Give the contaxt a name. Hopefully makes it easier to track */
        strcpy (me->user.fullname, "SYS_notauth");
        
@@ -435,7 +433,6 @@ void CtdlFillSystemContext(CitContext *context, char *name)
        long len;
 
        memset(context, 0, sizeof(CitContext));
-       context->lBuf = NewStrBuf();
        context->internal_pgm = 1;
        context->cs_pid = 0;
        strcpy (sysname, "SYS_");
@@ -466,7 +463,6 @@ void CtdlClearSystemContext(void)
 {
        CitContext *CCC = CC;
 
-       FreeStrBuf(&CCC->lBuf);
        memset(CCC, 0, sizeof(CitContext));
        citthread_setspecific(MyConKey, NULL);
 }
@@ -594,7 +590,6 @@ void InitializeMasterCC(void) {
        memset(&masterCC, 0, sizeof( CitContext));
        masterCC.internal_pgm = 1;
        masterCC.cs_pid = 0;
-       masterCC.lBuf = NewStrBuf ();
 }
 
 
index 322061e65471e47a135420c28beada3f4000d0b9..7a71d3b96eb04c79bed04a840b071a75995f5ec9 100644 (file)
@@ -28,8 +28,6 @@ struct CitContext {
        int state;              /* thread state (see CON_ values below) */
        int kill_me;            /* Set to nonzero to flag for termination */
 
-       StrBuf *lBuf;
-
        const char *Pos;        /* Our read position inside of the ReadBuf */
        StrBuf *ReadBuf;        /* Our block buffered read buffer */
        StrBuf *MigrateBuf;        /* Our block buffered read buffer */
index 963af9df6aa84e3d081182cb9d954e51136d93f6..9dce3a3ae0a94c973a897e31407417fcdb1a8c53 100644 (file)
@@ -120,78 +120,47 @@ void vCtdlLogPrintf(enum LogLevel loglevel, const char *format, va_list arg_ptr)
                struct timeval tv;
                struct tm tim;
                time_t unixtime;
-               StrBuf *lBuf;
                CitContext *CCC = CC;
                ThreadTSD *cTSD = CTP;
                CtdlThreadNode *node = NULL;
                long lwpid = 0;
 
-               if (cTSD != NULL) 
+               if (cTSD != NULL) {
                        node = cTSD->self;
-               if ((node != NULL) && (node->reltid != 0))
-               {
+               }
+
+               if ((node != NULL) && (node->reltid != 0)) {
                        lwpid = node->reltid;
                }
 
                gettimeofday(&tv, NULL);
+
                /* Promote to time_t; types differ on some OSes (like darwin) */
                unixtime = tv.tv_sec;
                localtime_r(&unixtime, &tim);
 
-               if ((CCC != NULL) && (CCC != &masterCC))
-                       lBuf = CCC->lBuf;
-               else 
-                       lBuf = NewStrBuf();
-               if (lBuf == NULL) {
-                       char buf[SIZ], buf2[SIZ];
-                       
-                       if ((CCC != NULL) && (CCC->cs_pid != 0)) {
-                               sprintf(buf,
-                                       "%04d/%02d/%02d %2d:%02d:%02d.%06ld xx [%3d] ",
-                                       tim.tm_year + 1900, tim.tm_mon + 1,
-                                       tim.tm_mday, tim.tm_hour, tim.tm_min,
-                                       tim.tm_sec, (long)tv.tv_usec,
-                                       CCC->cs_pid);
-                       } else {
-                               sprintf(buf,
-                                       "%04d/%02d/%02d %2d:%02d:%02d.%06ld xx ",
-                                       tim.tm_year + 1900, tim.tm_mon + 1,
-                                       tim.tm_mday, tim.tm_hour, tim.tm_min,
-                                       tim.tm_sec, (long)tv.tv_usec);
-                       }
-                       vsnprintf(buf2, SIZ, format, arg_ptr);   
+               fprintf(stderr,
+                       "%04d/%02d/%02d %2d:%02d:%02d.%06ld ",
+                       tim.tm_year + 1900, tim.tm_mon + 1,
+                       tim.tm_mday, tim.tm_hour, tim.tm_min,
+                       tim.tm_sec, (long)tv.tv_usec
+               );
 
-                       fprintf(stderr, ":%s%s", buf, buf2);
+               if (lwpid != 0) {
+                       fprintf(stderr, "[LWP:%ld] ", lwpid);
                }
-               else {
-                       StrBufPrintf(lBuf,
-                                    "%04d/%02d/%02d %2d:%02d:%02d.%06ld ",
-                                    tim.tm_year + 1900, tim.tm_mon + 1,
-                                    tim.tm_mday, tim.tm_hour, tim.tm_min,
-                                    tim.tm_sec, (long)tv.tv_usec);
-
                        
-                       if (lwpid != 0)
-                               StrBufAppendPrintf(lBuf,
-                                                  "[LWP:%d] ",
-                                                  lwpid);
-                               
-                       if (CCC != NULL) {
-                               if (CCC->cs_pid != 0)
-                                       StrBufAppendPrintf(lBuf,
-                                                          "[%3d] ",
-                                                          CCC->cs_pid);
-                               else if (CCC->user.usernum != 0)
-                                       StrBufAppendPrintf(lBuf,
-                                                          "[:%d] ",
-                                                          CCC->user.usernum);
+               if (CCC != NULL) {
+                       if (CCC->cs_pid != 0) {
+                               fprintf(stderr, "[%3d] ", CCC->cs_pid);
+                       }
+                       else if (CCC->user.usernum != 0) {
+                               fprintf(stderr, "[:%ld] ", CCC->user.usernum);
                        }
-                       StrBufVAppendPrintf(lBuf, format, arg_ptr);   
-                       fwrite(ChrPtr(lBuf), 1, StrLength(lBuf), stderr);
                }
-               fflush(stderr);
-               if (CCC == NULL) FreeStrBuf(&lBuf);
 
+               vfprintf(stderr, format, arg_ptr);   
+               fflush(stderr);
        }
 }