* Copyright (c) 1983, 1988 Regents of the University of California.
* %sccs.include.redist.c%
"@(#) Copyright (c) 1983, 1988 Regents of the University of California.\n\
static char sccsid
[] = "@(#)implogd.c 5.9 (Berkeley) %G%";
#include <netimp/if_imp.h>
* Socket address, internet style, with
* unused space taken by timestamp and packet
register int len
, log
, s
;
openlog("implogd", LOG_PID
|LOG_ODELAY
|LOG_PERROR
, LOG_DAEMON
);
log
= open(_PATH_IMPLOG
, O_CREAT
|O_WRONLY
|O_APPEND
, 0644);
syslog(LOG_ERR
, "%s: %m\n", _PATH_IMPLOG
);
from
.sin_time
= time((time_t *)NULL
);
from
.sin_len
= sizeof(time_t);
(void)write(log
, (char *)&from
, sizeof(from
));
if ((s
= socket(AF_IMPLINK
, SOCK_RAW
, 0)) < 0) {
syslog(LOG_ERR
, "socket: %m\n");
(void) open("/", O_RDONLY
, 0);
tt
= open(_PATH_TTY
, O_RDWR
, 0);
for (fromlen
= sizeof(from
);;) {
len
= recvfrom(s
, request
, sizeof(request
), 0,
syslog(LOG_ERR
, "recvfrom: %m\n");
if (len
== 0 || len
> IMPMTU
) /* sanity */
from
.sin_time
= time((time_t *)NULL
);
(void)write(log
, (char *)&from
, sizeof(from
));
(void)write(log
, request
, len
);