Files
seta75D d6fe8fe829 Init
2021-10-11 22:19:34 -03:00

94 lines
2.0 KiB
C

static char sccsid[] = "@(#)38 1.5 src/bos/usr/bin/tip/log.c, cmdtip, bos411, 9428A410j 4/10/91 09:06:22";
/*
* COMPONENT_NAME: UUCP log.c
*
* FUNCTIONS: MSGSTR, flock, logent, loginit
*
* ORIGINS: 10 26 27
*
* (C) COPYRIGHT International Business Machines Corp. 1985, 1989
* All Rights Reserved
* Licensed Materials - Property of IBM
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*/
/*
* Copyright (c) 1983 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*/
/* static char sccsid[] = "log.c 5.1 (Berkeley) 4/30/85"; */
#include <fcntl.h>
#include "tip.h"
#include <nl_types.h>
#include "tip_msg.h"
extern nl_catd catd;
#define MSGSTR(n,s) catgets(catd,MS_TIP,n,s)
#ifdef _AIX
flock(dummy1, dummy2)
int dummy1, dummy2;
{
return 1;
}
#endif
/********************************************************************/
static FILE *flog = NULL;
/*
* Log file maintenance routines
*/
logent(group, num, acu, message)
char *group, *num, *acu, *message;
{
char *user, *timestamp;
struct passwd *pwd;
long t;
struct flock flock_arg;
flock_arg.l_type = F_WRLCK;
flock_arg.l_whence = flock_arg.l_start = flock_arg.l_len = 0;
if (flog == NULL)
return;
if (fcntl(fileno(flog), F_SETLK, &flock_arg) < 0) {
perror(MSGSTR(FLOCK, "tip: flock")); /*MSG*/
return;
}
if ((user = getlogin()) == NOSTR)
if ((pwd = getpwuid(getuid())) == NOPWD)
user = "???";
else
user = pwd->pw_name;
t = time(0);
timestamp = ctime(&t);
timestamp[24] = '\0';
fprintf(flog, "%s (%s) <%s, %s, %s> %s\n",
user, timestamp, group,
#ifdef PRISTINE
"",
#else
num,
#endif
acu, message);
fflush(flog);
flock_arg.l_type = F_UNLCK;
(void) fcntl(fileno(flog), F_SETLK, &flock_arg);
}
loginit()
{
#ifdef ACULOG
flog = fopen(value(LOG), "a");
if (flog == NULL)
fprintf(stderr, MSGSTR(CANTOPEN2, "can't open log file\r\n")); /*MSG*/
#endif
}