home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / cmd / uucp / logent.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  1.8 KB  |  116 lines

  1. #include "uucp.h"
  2. #include <sys/types.h>
  3. #include <time.h>
  4.  
  5.  
  6. char Tmplog[MAXFULLNAME] = "";
  7. FILE *Lp = NULL;
  8.  
  9. /*******
  10.  *    logent(text, status)    make log entry
  11.  *    char *text, *status;
  12.  *
  13.  *    return code - none
  14.  */
  15.  
  16. logent(text, status)
  17. char *text, *status;
  18. {
  19.     int n;
  20.     FILE *fp;
  21.     if (Lp != NULL) {
  22.         /*  make entry in existing temp log file  */
  23.         mlogent(Lp, status, text);
  24.         return;
  25.     }
  26.  
  27.     if (ulockf(LOGLOCK, 10l) == 0) {
  28.         if ((fp = fopen(LOGFILE, "a")) == NULL) {
  29.             rmlock(LOGLOCK);
  30.         }
  31.         else {
  32.             mlogent(fp, status, text);
  33.             fclose(fp);
  34.             rmlock(LOGLOCK);
  35.             return;
  36.         }
  37.     }
  38.  
  39.     /*  make a temp log file  */
  40.     for (n = 0; n < 10; n++) {
  41.         sprintf(Tmplog, "%s/LOG.%05d.%1d", LOGDIR, getpid(), n);
  42.         if (access(Tmplog, 0) == -1)
  43.             break;
  44.     }
  45.     if ((Lp = fopen(Tmplog, "w")) == NULL)
  46.         return;
  47.     chmod(Tmplog, 0222);
  48.     setbuf(Lp, NULL);
  49.     mlogent(Lp, status, text);
  50.     return;
  51. }
  52.  
  53. /***
  54.  *    mlogent(fp, status, text)  - make a log entry
  55.  */
  56.  
  57. mlogent(fp, status, text)
  58. char *text, *status;
  59. FILE *fp;
  60. {
  61.     struct tm *tp;
  62.     extern struct tm *localtime();
  63.     time_t clock;
  64.     time(&clock);
  65.     tp = localtime(&clock);
  66.     fprintf(fp, "%s %s ", User, Rmtname);
  67.     fprintf(fp, "(%d/%d-%d:%d) ", tp->tm_mon + 1,
  68.         tp->tm_mday, tp->tm_hour, tp->tm_min);
  69.     fprintf(fp, "%s (%s)\n", status, text);
  70.     return;
  71. }
  72.  
  73. /***
  74.  *    logcls()    close log file
  75.  *
  76.  *    return codes:  none
  77.  */
  78.  
  79. logcls()
  80. {
  81.     if (Lp != NULL) {
  82.         fclose(Lp);
  83.         chmod(Tmplog, 0666);
  84.     }
  85.     return;
  86. }
  87.  
  88.  
  89. /***
  90.  *    syslog(text)    make system log entry
  91.  *    char *text;
  92.  *
  93.  *    return codes - none
  94.  */
  95.  
  96. syslog(text)
  97. char *text;
  98. {
  99.     struct tm *tp;
  100.     extern struct tm *localtime();
  101.     time_t clock;
  102.     FILE *fp;
  103.  
  104.     time(&clock);
  105.     tp = localtime(&clock);
  106.     fp = fopen(SYSLOG, "a");
  107.     if (fp == NULL)
  108.         return;
  109.     fprintf(fp, "%s %s ", User, Rmtname);
  110.     fprintf(fp, "(%d/%d-%d:%d) ", tp->tm_mon + 1,
  111.         tp->tm_mday, tp->tm_hour, tp->tm_min);
  112.     fprintf(fp, "%s\n", text);
  113.     fclose(fp);
  114.     return;
  115. }
  116.