]> code.citadel.org Git - citadel.git/blob - citadel/getutline.c
* Makefile.in, configure.in, getutline.c, sysdep.c:
[citadel.git] / citadel / getutline.c
1 /*
2  * getutline.c: not-quite-compatible replacement for getutline(3)
3  * by nathan bryant, feb 1999
4  *
5  * $Id$
6  */
7
8 #include "sysdep.h"
9 #ifdef HAVE_UTMP_H
10 #include <stdio.h>
11 #include <sys/types.h>
12 #include <utmp.h>
13 #include <paths.h>
14 #include <string.h>
15
16 struct utmp *getutline(struct utmp *ut)
17 {
18   static struct utmp retval;
19   FILE *utmp;
20
21   if ((utmp = fopen(_PATH_UTMP, "rb")) == NULL)
22     return NULL;
23
24   do
25     if (!fread(&retval, sizeof retval, 1, utmp))
26       {
27         fclose(utmp);
28         return NULL;
29       }
30   while (strcmp(ut->ut_line, retval.ut_line));
31
32   fclose(utmp);
33   return &retval;
34 }
35 #endif /* HAVE_UTMP_H */