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