nmh-1.2 has not been updated for the new utmpx implementation.  The
patch is not terribly large.  I haven't figured how to conditionally
patch for Current, vs. leaving it alone on other releases.  Here's the
patch anyway.
------------------------ Patch follows ---------------------------------

--- uip/rcvtty.c.orig   2010-09-18 14:23:38.000000000 -0400
+++ uip/rcvtty.c        2010-09-18 14:27:18.000000000 -0400
@@ -23,7 +23,7 @@
 #include <signal.h>
 #include <fcntl.h>
 
-#include <utmp.h>
+#include <utmpx.h>
 
 #ifndef HAVE_GETUTENT
 # ifndef UTMP_FILE
@@ -93,9 +93,9 @@
     char *cp, *user, buf[BUFSIZ], tty[BUFSIZ];
     char **argp, **arguments, *vec[MAXARGS];
 #ifdef HAVE_GETUTENT
-    struct utmp * utp;
+    struct utmpx * utp;
 #else
-    struct utmp ut;
+    struct utmpx ut;
     register FILE *uf;
 #endif
 
@@ -181,9 +181,9 @@
               utp->ut_type == USER_PROCESS 
               &&
 #endif
-               utp->ut_name[0] != 0
+               utp->ut_user[0] != 0
                && utp->ut_line[0] != 0
-               && strncmp (user, utp->ut_name, sizeof(utp->ut_name)) == 0) {
+               && strncmp (user, utp->ut_user, sizeof(utp->ut_user)) == 0) {
             strncpy (tty, utp->ut_line, sizeof(utp->ut_line));
            alert (tty, md);
         }
@@ -193,8 +193,8 @@
     if ((uf = fopen (UTMP_FILE, "r")) == NULL)
        exit (RCV_MBX);
     while (fread ((char *) &ut, sizeof(ut), 1, uf) == 1)
-       if (ut.ut_name[0] != 0
-               && strncmp (user, ut.ut_name, sizeof(ut.ut_name)) == 0) {
+       if (ut.ut_user[0] != 0
+               && strncmp (user, ut.ut_user, sizeof(ut.ut_user)) == 0) {
            strncpy (tty, ut.ut_line, sizeof(ut.ut_line));
            alert (tty, md);
        }
--- uip/slocal.c.orig   2010-09-18 14:24:09.000000000 -0400
+++ uip/slocal.c        2010-09-18 14:29:11.000000000 -0400
@@ -64,7 +64,7 @@
 #endif
 #endif
 
-#include <utmp.h>
+#include <utmpx.h>
 
 #ifndef HAVE_GETUTENT
 # ifndef UTMP_FILE
@@ -957,7 +957,7 @@
 static int
 logged_in (void)
 {
-    struct utmp * utp;
+    struct utmpx * utp;
 
     if (utmped)
         return utmped;
@@ -970,8 +970,8 @@
                utp->ut_type == USER_PROCESS
                 &&
 #endif
-               utp->ut_name[0] != 0
-                && strncmp (user, utp->ut_name, sizeof(utp->ut_name)) == 0) {
+               utp->ut_user[0] != 0
+                && strncmp (user, utp->ut_user, sizeof(utp->ut_user)) == 0) {
             if (debug)
                 continue;
             endutent();
@@ -986,7 +986,7 @@
 static int
 logged_in (void)
 {
-    struct utmp ut;
+    struct utmpx ut;
     FILE *uf;
 
     if (utmped)
@@ -996,8 +996,8 @@
        return NOTOK;
 
     while (fread ((char *) &ut, sizeof(ut), 1, uf) == 1) {
-       if (ut.ut_name[0] != 0
-           && strncmp (user, ut.ut_name, sizeof(ut.ut_name)) == 0) {
+       if (ut.ut_user[0] != 0
+           && strncmp (user, ut.ut_user, sizeof(ut.ut_user)) == 0) {
            if (debug)
                continue;
            fclose (uf);
---------------------- Patch precedes --------------------------------      
-- 
Best regards,
Derek Tattersall
d...@mebtel.net         dlt...@yahoo.com                 dtatt...@gmail.com
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to