|
|
1.1 root 1: /* /sccs/src/cmd/uucp/s.utility.c
2: utility.c 1.1 8/30/84 17:37:47
3: */
4: #include "uucp.h"
5: VERSION(@(#)utility.c 1.1);
6:
7: static void logError();
8:
9: #define TY_ASSERT 1
10: #define TY_ERROR 2
11:
12: /*
13: * produce an assert error message
14: * input:
15: * s1 - string 1
16: * s2 - string 2
17: * i1 - integer 1 (usually errno)
18: * sid - sccsid string of calling module
19: * file - __FILE of calling module
20: * line - __LINE__ of calling module
21: */
22: void
23: assert(s1, s2, i1, sid, file, line)
24: char *s1, *s2, *file, *sid;
25: {
26: logError(s1, s2, i1, TY_ASSERT, sid, file, line);
27: }
28:
29:
30: /*
31: * produce an assert error message
32: * input: -- same as assert
33: */
34: void
35: errent(s1, s2, i1, sid, file, line)
36: char *s1, *s2, *sid, *file;
37: {
38: logError(s1, s2, i1, TY_ERROR, sid, file, line);
39: }
40:
41: #define EFORMAT "%sERROR (%.9s) pid: %d (%s) %s %s (%d) [SCCSID: %s, FILE: %s, LINE: %d]\n"
42:
43: static
44: void
45: logError(s1, s2, i1, type, sid, file, line)
46: char *s1, *s2, *sid, *file;
47: {
48: register FILE *errlog;
49: char text[BUFSIZ];
50: int pid;
51:
52: if (Debug)
53: errlog = stderr;
54: else {
55: errlog = fopen(ERRLOG, "a");
56: }
57: if (errlog == NULL)
58: return;
59: (void) chmod(ERRLOG, 0666);
60:
61: pid = getpid();
62:
63: (void) fprintf(errlog, EFORMAT, type == TY_ASSERT ? "ASSERT " : " ",
64: Progname, pid, timeStamp(), s1, s2, i1, sid, file, line);
65:
66: (void) fclose(errlog);
67: (void) sprintf(text, " %sERROR %.100s %.100s (%.9s)",
68: type == TY_ASSERT ? "ASSERT " : " ",
69: s1, s2, Progname);
70: if (type == TY_ASSERT)
71: systat(Rmtname, SS_ASSERT_ERROR, text, Retrytime);
72: return;
73: }
74:
75:
76: /* timeStamp - create standard time string
77: * return
78: * pointer to time string
79: */
80:
81: char *
82: timeStamp()
83: {
84: register struct tm *tp;
85: time_t clock;
86: static char str[20];
87:
88: (void) time(&clock);
89: tp = localtime(&clock);
90: (void) sprintf(str, "%d/%d-%d:%2.2d:%2.2d", tp->tm_mon + 1,
91: tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec);
92: return(str);
93: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.