From cc8ed39b240180b58810784f844e253263594ac3 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Tue, 5 Oct 1999 16:24:54 +0000 Subject: Initial revision --- miscutils/dutmp.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 miscutils/dutmp.c (limited to 'miscutils/dutmp.c') diff --git a/miscutils/dutmp.c b/miscutils/dutmp.c new file mode 100644 index 000000000..e92b6700f --- /dev/null +++ b/miscutils/dutmp.c @@ -0,0 +1,47 @@ +/* + * public domain -- Dave 'Kill a Cop' Cinege + * + * dutmp + * Takes utmp formated file on stdin and dumps it's contents + * out in colon delimited fields. Easy to 'cut' for shell based + * versions of 'who', 'last', etc. IP Addr is output in hex, + * little endian on x86. + * + * made against libc6 + */ + +#include "internal.h" +#include +#include + +const char dutmp_usage[] = "dutmp\n" +"\n" +"\tDump file or stdin utmp file format to stdout, pipe delimited.\n" +"\tdutmp /var/run/utmp\n"; + +extern int +dutmp_fn(const struct FileInfo * i) +{ + +FILE * f = stdin; +struct utmp * ut = (struct utmp *) malloc(sizeof(struct utmp) ); + + if ( i ) + if (! (f = fopen(i->source, "r"))) { + name_and_error(i->source); + return 1; + } + + while (fread (ut, 1, sizeof(struct utmp), f)) { + //printf("%d:%d:%s:%s:%s:%s:%d:%d:%ld:%ld:%ld:%x\n", + printf("%d|%d|%s|%s|%s|%s|%d|%d|%ld|%ld|%ld|%x\n", + ut->ut_type, ut->ut_pid, ut->ut_line, + ut->ut_id, ut->ut_user, ut->ut_host, + ut->ut_exit.e_termination, ut->ut_exit.e_exit, + ut->ut_session, + ut->ut_tv.tv_sec, ut->ut_tv.tv_usec, + ut->ut_addr); + } + +return 0; +} -- cgit v1.2.3