Research V7 development
[unix-history] / usr / src / cmd / uucp / logent.c
CommitLineData
808bd6eb
N
1#include "uucp.h"
2#include <sys/types.h>
3#include <time.h>
4
5
6char Tmplog[MAXFULLNAME] = "";
7FILE *Lp = NULL;
8
9/*******
10 * logent(text, status) make log entry
11 * char *text, *status;
12 *
13 * return code - none
14 */
15
16logent(text, status)
17char *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
57mlogent(fp, status, text)
58char *text, *status;
59FILE *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
79logcls()
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
96syslog(text)
97char *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}