| diff -Naur libutempter-1.1.6.orig/utempter.c libutempter-1.1.6/utempter.c |
| --- libutempter-1.1.6.orig/utempter.c 2010-11-04 13:14:53.000000000 -0400 |
| +++ libutempter-1.1.6/utempter.c 2014-06-20 16:37:09.762403323 -0400 |
| @@ -34,13 +34,7 @@ |
| #include <sys/stat.h> |
| #include <utmp.h> |
| |
| -#ifdef __GLIBC__ |
| # include <pty.h> |
| -#elif defined(__FreeBSD__) |
| -# include <libutil.h> |
| -#else |
| -# error Unsupported platform |
| -#endif /* __GLIBC__ || __FreeBSD__ */ |
| |
| #define DEV_PREFIX "/dev/" |
| #define DEV_PREFIX_LEN (sizeof(DEV_PREFIX)-1) |
| @@ -106,17 +100,12 @@ |
| |
| static int |
| write_uwtmp_record(const char *user, const char *term, const char *host, |
| -#ifdef __GLIBC__ |
| pid_t pid, |
| -#endif |
| int add) |
| { |
| struct utmp ut; |
| struct timeval tv; |
| - |
| -#ifdef __GLIBC__ |
| size_t offset; |
| -#endif |
| |
| memset(&ut, 0, sizeof(ut)); |
| |
| @@ -128,8 +117,6 @@ |
| if (host) |
| strncpy(ut.ut_host, host, sizeof(ut.ut_host)); |
| |
| -#ifdef __GLIBC__ |
| - |
| offset = (strlen(term) <= sizeof(ut.ut_id)) ? 0 : |
| strlen(term) - sizeof(ut.ut_id); |
| strncpy(ut.ut_id, term + offset, sizeof(ut.ut_id)); |
| @@ -156,27 +143,6 @@ |
| |
| (void) updwtmp(_PATH_WTMP, &ut); |
| |
| -#elif defined(__FreeBSD__) |
| - |
| - ut.ut_time = tv.tv_sec; |
| - |
| - if (add) |
| - { |
| - login(&ut); |
| - } else |
| - { |
| - if (logout(term) != 1) |
| - { |
| -#ifdef UTEMPTER_DEBUG |
| - fprintf(stderr, "utempter: logout: %s\n", |
| - strerror(errno)); |
| -#endif |
| - exit(EXIT_FAILURE); |
| - } |
| - } |
| - |
| -#endif /* __GLIBC__ || __FreeBSD__ */ |
| - |
| #ifdef UTEMPTER_DEBUG |
| fprintf(stderr, |
| "utempter: DEBUG: utmp/wtmp record %s for terminal '%s'\n", |
| @@ -255,8 +221,6 @@ |
| validate_device(device); |
| |
| return write_uwtmp_record(pw->pw_name, device + DEV_PREFIX_LEN, host, |
| -#ifdef __GLIBC__ |
| pid, |
| -#endif |
| add); |
| } |