home *** CD-ROM | disk | FTP | other *** search
- #include "uucp.h"
- #include <sys/types.h>
- #include <time.h>
-
-
- char Tmplog[MAXFULLNAME] = "";
- FILE *Lp = NULL;
-
- /*******
- * logent(text, status) make log entry
- * char *text, *status;
- *
- * return code - none
- */
-
- logent(text, status)
- char *text, *status;
- {
- int n;
- FILE *fp;
- if (Lp != NULL) {
- /* make entry in existing temp log file */
- mlogent(Lp, status, text);
- return;
- }
-
- if (ulockf(LOGLOCK, 10l) == 0) {
- if ((fp = fopen(LOGFILE, "a")) == NULL) {
- rmlock(LOGLOCK);
- }
- else {
- mlogent(fp, status, text);
- fclose(fp);
- rmlock(LOGLOCK);
- return;
- }
- }
-
- /* make a temp log file */
- for (n = 0; n < 10; n++) {
- sprintf(Tmplog, "%s/LOG.%05d.%1d", LOGDIR, getpid(), n);
- if (access(Tmplog, 0) == -1)
- break;
- }
- if ((Lp = fopen(Tmplog, "w")) == NULL)
- return;
- chmod(Tmplog, 0222);
- setbuf(Lp, NULL);
- mlogent(Lp, status, text);
- return;
- }
-
- /***
- * mlogent(fp, status, text) - make a log entry
- */
-
- mlogent(fp, status, text)
- char *text, *status;
- FILE *fp;
- {
- struct tm *tp;
- extern struct tm *localtime();
- time_t clock;
- time(&clock);
- tp = localtime(&clock);
- fprintf(fp, "%s %s ", User, Rmtname);
- fprintf(fp, "(%d/%d-%d:%d) ", tp->tm_mon + 1,
- tp->tm_mday, tp->tm_hour, tp->tm_min);
- fprintf(fp, "%s (%s)\n", status, text);
- return;
- }
-
- /***
- * logcls() close log file
- *
- * return codes: none
- */
-
- logcls()
- {
- if (Lp != NULL) {
- fclose(Lp);
- chmod(Tmplog, 0666);
- }
- return;
- }
-
-
- /***
- * syslog(text) make system log entry
- * char *text;
- *
- * return codes - none
- */
-
- syslog(text)
- char *text;
- {
- struct tm *tp;
- extern struct tm *localtime();
- time_t clock;
- FILE *fp;
-
- time(&clock);
- tp = localtime(&clock);
- fp = fopen(SYSLOG, "a");
- if (fp == NULL)
- return;
- fprintf(fp, "%s %s ", User, Rmtname);
- fprintf(fp, "(%d/%d-%d:%d) ", tp->tm_mon + 1,
- tp->tm_mday, tp->tm_hour, tp->tm_min);
- fprintf(fp, "%s\n", text);
- fclose(fp);
- return;
- }
-