home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
OSK
/
TELECOM
/
stg_v4.lzh
/
syslog_.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-11-11
|
2KB
|
116 lines
/*
* syslog functions - semi unix compatible
*
* 92/10/28 StG - initial version
*/
/* unix already has these functions */
#ifndef _UNIX
#include "stglib.h"
#include <time.h>
char syslogbf[256];
extern int errno;
char *_prgname();
char syslog_id[64];
openlog(pcIdent,iOpts,iBogus)
char *pcIdent;
int iOpts;
int iBogus;
{
strncpy(syslog_id,pcIdent,63);
}
vsyslog(code,fmt,ap)
int code;
char *fmt;
va_list ap;
{
int hLog; /* log file */
int errno_; /* errno save */
int uid; /* user id */
long lTime; /* current time */
struct tm *psTime;
errno_=errno; /* return same errno function started with */
uid=getuid(); /* return to same uid as started with */
setuid(0); /* must be user 0 to write log file */
time(&lTime);
psTime=localtime(&lTime);
/*
stringf(syslogbf,LOG_FILE,
psTime->tm_year,psTime->tm_mon+1,psTime->tm_mday);
*/
strcpy(syslogbf,LOG_FILE);
hLog=open("/log",3);
if (hLog==ERR)
{
hLog=open(syslogbf,3);
if (hLog==ERR)
{
hLog=creat(syslogbf,3);
if (hLog==ERR)
{
return(ERR);
}
}
else
lseek(hLog,0L,2);
}
if (code<32 || code>=127)
code='?';
stringf(syslogbf,"%02d/%02d/%02d %02d:%02d:%02d %c ",
psTime->tm_year,
psTime->tm_mon+1,
psTime->tm_mday,
psTime->tm_hour,
psTime->tm_min,
psTime->tm_sec,
code);
/*
if (code!=LOG_LOGIN && code!=LOG_BADPW && code!=LOG_SMON)
{
strcat(syslogbf,_prgname());
strcat(syslogbf,": ");
}
*/
if (*syslog_id)
{
strcat(syslogbf,syslog_id);
strcat(syslogbf,": ");
}
errno=errno_; /* report correct error */
_strfmt(syslogbf+strlen(syslogbf),fmt,ap);
strcat(syslogbf,"\n");
writeln(hLog,syslogbf,200);
close(hLog);
setuid(uid);
errno=errno_;
return(0);
}
syslog(code,fmt,p)
int code;
char *fmt;
char *p;
{
return(vsyslog(code,fmt,&p));
}
#endif