pop_log.c
上传用户:dayuan858
上传日期:2007-01-04
资源大小:194k
文件大小:2k
源码类别:

网络编程

开发平台:

Unix_Linux

  1. /*
  2.  * Copyright (c) 1989 Regents of the University of California.
  3.  * All rights reserved.  The Berkeley software License Agreement
  4.  * specifies the terms and conditions for redistribution.
  5.  */
  6. /*
  7.  * Copyright (c) 1997 by Qualcomm Incorporated.
  8.  */
  9. #include <config.h>
  10. #include <stdio.h>
  11. #include <sys/types.h>
  12. #ifdef __STDC__
  13. #include <stdlib.h>
  14. #include <stdarg.h>
  15. #else
  16. #include <varargs.h>
  17. #endif
  18. #include "popper.h"
  19. /* 
  20.  *  log:    Make a log entry
  21.  */
  22. static char msgbuf[MAXLINELEN];
  23. #ifdef __STDC__
  24. pop_log(POP *p, int stat, const char *format,...)
  25. #else
  26. pop_log(va_alist)
  27. va_dcl
  28. #endif
  29. {
  30.     va_list     ap;
  31. #ifndef __STDC__
  32.     POP     *   p;
  33.     int         stat;
  34.     char    *   format;
  35. #endif
  36. #ifdef PYRAMID
  37.     char    *   arg1, *arg2, *arg3, *arg4, *arg5, *arg6;
  38. #endif
  39.     char    *   date_time;
  40.     time_t clock;
  41.     /* Get the information in to msgbuf */
  42. #ifdef __STDC__
  43.     va_start(ap,format);
  44. #else
  45.     va_start(ap);
  46.     p = va_arg(ap,POP *);
  47.     stat = va_arg(ap,int);
  48.     format = va_arg(ap,char *);
  49. #endif
  50. #ifdef HAVE_VPRINTF
  51.         vsprintf(msgbuf,format,ap);
  52. #else
  53.     arg1 = va_arg(ap, char *);
  54.     arg2 = va_arg(ap, char *);
  55.     arg3 = va_arg(ap, char *);
  56.     arg4 = va_arg(ap, char *);
  57.     arg5 = va_arg(ap, char *);
  58.     arg6 = va_arg(ap, char *);
  59. # ifdef PYRAMID
  60.         (void)sprintf(msgbuf,format, arg1, arg2, arg3, arg4, arg5, arg6);
  61. # else
  62.         (void)sprintf (msgbuf,format,((int *)ap)[0],((int *)ap)[1],((int *)ap)[2],
  63.                 ((int *)ap)[3],((int *)ap)[4],((int *)ap)[5]);
  64. # endif
  65.     va_end(ap);
  66. #endif
  67.     if (p->debug && p->trace) {
  68. clock = time(0);
  69. date_time = (char *)ctime(&clock);
  70. date_time[strlen(date_time) - 1] = '';
  71. (void)fprintf(p->trace,"%s [%d] %sn",date_time, getpid(), msgbuf);
  72.         (void)fprintf(p->trace,"%s n", date_time);
  73.         (void)fflush(p->trace);
  74.     }
  75.     else {
  76.         syslog (stat,"%s",msgbuf);
  77.     }
  78.     return(stat);
  79. }