Here's a diff that updates to the latest version (3.9, released
October 2025) which removes the need for some of the patches that have
made their way upstream; also completes the partial removal of DECnet
code in the prior patches (and in the man pages), and adds use of
pledge and unveil.

-- 
Jim Lippard        [email protected]       http://www.discord.org/
GPG Key ID: 0x99FD5CD6


Only in /usr/ports/net/arpwatch: CVS
diff -urp /usr/ports/net/arpwatch/Makefile 
/usr/ports/mystuff/net/arpwatch/Makefile
--- /usr/ports/net/arpwatch/Makefile    Sun Dec 17 08:27:32 2023
+++ /usr/ports/mystuff/net/arpwatch/Makefile    Thu Jun 25 18:23:52 2026
@@ -1,10 +1,10 @@
 COMMENT=       monitor arp & rarp requests
 
-DISTNAME=      arpwatch-2.1a15
-REVISION=      21
+DISTNAME=      arpwatch-3.9
+#REVISION=     0
 CATEGORIES=    net
 
-SITES=         ftp://ftp.ee.lbl.gov/
+SITES=         https://ee.lbl.gov/downloads/arpwatch/
 
 MAINTAINER=    Jasper Lievisse Adriaanse <[email protected]>
 
@@ -16,6 +16,8 @@ WANTLIB=              c pcap
 CONFIGURE_STYLE=       gnu
 MAKE_FLAGS+=           ARPDIR=${LOCALSTATEDIR}/arpwatch
 
+CONFIGURE_ARGS+= --enable-zeropad
+
 # this provides an up-to-date pregenerated ethercodes.dat file
 RUN_DEPENDS=   net/arp-scan,-mac
 
@@ -27,7 +29,8 @@ pre-build:
        ${SUBST_CMD} ${WRKSRC}/arpsnmp.8 ${WRKSRC}/arpwatch.8
 
 do-install:
-       @sed -i 's,awk -f ,awk -f ${EXAMPLESDIR}/', ${WRKSRC}/massagevendor
+       @sed -i 's,awk -f ,awk -f ${EXAMPLESDIR}/', ${WRKSRC}/massagevendor-old
+       @sed -i 's,awk -f ,awk -f ${EXAMPLESDIR}/', ${WRKSRC}/massagevendor.py
        ${INSTALL_PROGRAM} ${WRKSRC}/arpwatch ${PREFIX}/sbin
        ${INSTALL_PROGRAM} ${WRKSRC}/arpsnmp ${PREFIX}/sbin
        ${INSTALL_MAN} ${WRKSRC}/arpwatch.8 ${PREFIX}/man/man8
@@ -36,6 +39,7 @@ do-install:
        ${INSTALL_DATA} ${WRKSRC}/*.awk ${EXAMPLESDIR}
        @${INSTALL_DATA} /dev/null ${EXAMPLESDIR}/arp.dat
        @${INSTALL_SCRIPT} ${WRKSRC}/arp2ethers ${EXAMPLESDIR}
-       @${INSTALL_SCRIPT} ${WRKSRC}/massagevendor ${EXAMPLESDIR}
+       @${INSTALL_SCRIPT} ${WRKSRC}/massagevendor-old ${EXAMPLESDIR}
+       @${INSTALL_SCRIPT} ${WRKSRC}/massagevendor.py ${EXAMPLESDIR}
 
 .include <bsd.port.mk>
diff -urp /usr/ports/net/arpwatch/distinfo 
/usr/ports/mystuff/net/arpwatch/distinfo
--- /usr/ports/net/arpwatch/distinfo    Tue Nov  3 08:51:24 2015
+++ /usr/ports/mystuff/net/arpwatch/distinfo    Thu Jun 25 18:23:27 2026
@@ -1,2 +1,3 @@
-SHA256 (arpwatch-2.1a15.tar.gz) = wd+XN+IIqWph+pLdrYP0tNm+ZviZLzyRfp7fSwX/WJg=
-SIZE (arpwatch-2.1a15.tar.gz) = 202729
+SHA256 (arpwatch-3.9.tar.gz) = 
832d20a5a508d9694a84a17e2627de3b3aa8b42b19ebdd97e264c511168f6eb4
+SIZE (arpwatch-3.9.tar.gz) = 117466
+
Only in /usr/ports/net/arpwatch/patches: CVS
diff -urp /usr/ports/net/arpwatch/patches/patch-arpsnmp.8 
/usr/ports/mystuff/net/arpwatch/patches/patch-arpsnmp.8
--- /usr/ports/net/arpwatch/patches/patch-arpsnmp.8     Sun Dec 17 08:27:32 2023
+++ /usr/ports/mystuff/net/arpwatch/patches/patch-arpsnmp.8     Fri Jun 26 
09:31:13 2026
@@ -1,12 +1,19 @@
 Index: arpsnmp.8
---- arpsnmp.8.orig
-+++ arpsnmp.8
-@@ -69,7 +69,7 @@ man page for details on the report messages generated 
- .na
- .nh
- .nf
--/usr/operator/arpwatch - default directory
-+${LOCALSTATEDIR}/arpwatch - default directory
- arp.dat - ethernet/ip address database
- ethercodes.dat - vendor ethernet block list
- .ad
+--- arpsnmp.8.in.orig  Sun Dec  1 12:01:07 2019
++++ arpsnmp.8.in       Fri Jun 26 09:27:53 2026
+@@ -77,7 +77,7 @@
+ flag is used to specify the
+ .B arpwatch
+ working directory. This defaults to
+-.Ar /usr/local/arpwatch .
++.Ar ${LOCALSTATEDIR}/arpwatch .
+ .Pp
+ The
+ .Fl f
+@@ -152,6 +152,3 @@
+ the
+ .Ar arp.dat
+ file.
+-.Pp
+-Attempts are made to suppress DECnet flip flops but they
+-aren't always successful.
diff -urp /usr/ports/net/arpwatch/patches/patch-arpwatch.8 
/usr/ports/mystuff/net/arpwatch/patches/patch-arpwatch.8
--- /usr/ports/net/arpwatch/patches/patch-arpwatch.8    Sun Dec 17 08:27:32 2023
+++ /usr/ports/mystuff/net/arpwatch/patches/patch-arpwatch.8    Fri Jun 26 
09:30:28 2026
@@ -1,43 +1,80 @@
 Add -u flag, to drop privileges to that user given
 
 Index: arpwatch.8
---- arpwatch.8.orig
-+++ arpwatch.8
-@@ -43,6 +43,9 @@ arpwatch - keep track of ethernet/ip address pairings
- ]] [
- .B -r
- .I file
-+] [
-+.B -u
-+.I username
- ]
- .ad
- .SH DESCRIPTION
-@@ -94,6 +97,18 @@ of reading from the network. In this case,
- .B arpwatch
+--- arpwatch.8.in.orig Sat Dec  2 17:48:53 2023
++++ arpwatch.8.in      Fri Jun 26 09:27:35 2026
+@@ -43,6 +43,7 @@
+ .Op Fl n Ar net[/width]
+ .Op Fl x Ar net[/width]
+ .Op Fl r Ar file
++.Op Fl u Ar username
+ .Sh DESCRIPTION
+ .Nm
+ keeps track of ethernet/ip address pairings. It syslogs activity
+@@ -78,7 +79,7 @@
+ flag is used to specify the
+ .Nm
+ working directory. This defaults to
+-.Ar /usr/local/arpwatch .
++.Ar ${LOCALSTATEDIR}/arpwatch .
+ .Pp
+ The
+ .Fl f
+@@ -134,6 +135,18 @@
+ .Nm
  does not fork.
- .LP
+ .Pp
 +The
-+.B -u
++.Fl u
 +flag instructs
-+.B arpwatch
++.Xr arpwatch
 +to drop root privileges and change the UID to
-+.I username
++.It Pa username
 +and GID to the primary group of
-+.I username .
++.It Pa username .
 +This is recommended for security reasons, but
-+.I username
++.It Pa username
 +has to have write access to the default directory.
-+.LP
++.Pp
  Note that an empty
- .I arp.dat
+ .Ar arp.dat
  file must be created before the first time you run
-@@ -152,7 +167,7 @@ addresses was a DECnet address.
- .na
- .nh
- .nf
--/usr/operator/arpwatch - default directory
-+${LOCALSTATEDIR}/arpwatch - default directory
- arp.dat - ethernet/ip address database
- ethercodes.dat - vendor ethernet block list
- .ad
+@@ -187,8 +200,6 @@
+ .It Ic "flip flop"
+ The ethernet address has changed from the most recently seen address to
+ the second most recently seen address.
+-(If either the old or new ethernet address is a DECnet address and it
+-is less than 24 hours, the email version of the report is suppressed.)
+ .TP
+ .It Ic "changed ethernet address"
+ The host switched to a new ethernet address.
+@@ -211,9 +222,6 @@
+ The ethernet address has changed from the most recently seen address to
+ the third (or greater) least recently seen address.
+ (This is similar to a flip flop.)
+-.It Ic "suppressed DECnet flip flop"
+-A "flip flop" report was suppressed because one of the two
+-addresses was a DECnet address.
+ .Sh SIGNALS
+ Normally
+ .Nm
+@@ -222,8 +230,8 @@
+ once every 15 minutes.
+ The SIGHUP signal causes it to update immediately.
+ .Sh FILES
+-.Bl -tag -width ".Pa /usr/local/arpwatch" -compact
+-.It Pa /usr/local/arpwatch
++.Bl -tag -width ".Pa ${LOCALSTATEDIR}/arpwatch" -compact
++.It Pa ${LOCALSTATEDIR}/arpwatch
+ default directory
+ .It Pa arp.dat
+ default ethernet/ip address database
+@@ -247,8 +255,5 @@
+ .Sh BUGS
+ Please send bug reports to
+ .Aq [email protected] .
+-.Pp
+-Attempts are made to suppress DECnet flip flops but they
+-aren't always successful.
+ .Pp
+ Most error messages are posted using syslog.
diff -urp /usr/ports/net/arpwatch/patches/patch-arpwatch_c 
/usr/ports/mystuff/net/arpwatch/patches/patch-arpwatch_c
--- /usr/ports/net/arpwatch/patches/patch-arpwatch_c    Fri Mar 11 12:45:45 2022
+++ /usr/ports/mystuff/net/arpwatch/patches/patch-arpwatch_c    Fri Jun 26 
09:34:36 2026
@@ -1,11 +1,12 @@
 - Do not bail if the interface does not have an IP assigned.
 - time_t format string fixes
 - add -u flag, to drop privileges to that user
+- pledge and unveil
 
 Index: arpwatch.c
---- arpwatch.c.orig
-+++ arpwatch.c
-@@ -63,6 +63,9 @@ struct rtentry;
+--- arpwatch.c.orig    Sun Dec  3 11:10:05 2023
++++ arpwatch.c Thu Jun 25 07:29:02 2026
+@@ -72,6 +72,9 @@
  #include <syslog.h>
  #include <unistd.h>
  
@@ -15,9 +16,9 @@ Index: arpwatch.c
  #include <pcap.h>
  
  #include "gnuc.h"
-@@ -141,6 +144,24 @@ int       sanity_ether(struct ether_header *, struct 
ether_a
- int   sanity_fddi(struct fddi_header *, struct ether_arp *, int);
- __dead        void usage(void) __attribute__((volatile));
+@@ -172,6 +175,24 @@
+ int   toskip(u_int32_t);
+ void  usage(void) __attribute__((noreturn));
  
 +void dropprivileges(const char* user)
 +{
@@ -40,25 +41,25 @@ Index: arpwatch.c
  int
  main(int argc, char **argv)
  {
-@@ -153,6 +174,7 @@ main(int argc, char **argv)
-       register char *interface, *rfilename;
+@@ -183,6 +204,7 @@
+       char *interface, *rfilename;
        struct bpf_program code;
        char errbuf[PCAP_ERRBUF_SIZE];
 +      char* username = NULL;
  
        if (argv[0] == NULL)
                prog = "arpwatch";
-@@ -170,7 +192,7 @@ main(int argc, char **argv)
+@@ -200,7 +222,7 @@
        interface = NULL;
        rfilename = NULL;
        pd = NULL;
--      while ((op = getopt(argc, argv, "df:i:n:Nr:")) != EOF)
-+      while ((op = getopt(argc, argv, "df:i:n:Nr:u:")) != EOF)
+-      while ((op = getopt(argc, argv, "CdD:Ff:i:n:NpP:qr:svw:W:x:zZ")) != EOF)
++      while ((op = getopt(argc, argv, "CdD:Ff:i:n:NpP:qr:u:svw:W:x:zZ")) != 
EOF)
                switch (op) {
  
-               case 'd':
-@@ -202,6 +224,19 @@ main(int argc, char **argv)
-                       rfilename = optarg;
+               case 'C':
+@@ -285,6 +307,19 @@
+                       zeropad = 1;
                        break;
  
 +              case 'u':
@@ -77,23 +78,8 @@ Index: arpwatch.c
                default:
                        usage();
                }
-@@ -223,9 +258,11 @@ main(int argc, char **argv)
- 
-               /* Determine network and netmask */
-               if (pcap_lookupnet(interface, &net, &netmask, errbuf) < 0) {
--                      (void)fprintf(stderr, "%s: bad interface %s: %s\n",
--                          prog, interface, errbuf);
--                      exit(1);
-+                      (void)fprintf(stderr,
-+                          "%s: WARNING: cannot determine net/mask: %s\n",
-+                          prog, errbuf);
-+                      net = 0;
-+                      netmask = 0;
+@@ -381,13 +416,32 @@
                }
- 
-               /* Drop into the background if not debugging */
-@@ -279,12 +316,16 @@ main(int argc, char **argv)
- #endif
        }
  
 +      if ( username ) {
@@ -109,32 +95,65 @@ Index: arpwatch.c
 +              setuid(getuid());
 +      }
  
++       /* unveil */
++       /* r for /, x for sendmail, rwc for /tmp and arpdir, rw for /dev/null 
*/
++        if (unveil ("/", "r") == -1)
++               lg(LOG_ERR, "unveil /");
++        if (unveil ("/tmp", "rwc") == -1)
++               lg(LOG_ERR, "unveil /tmp");
++        if (unveil ("/dev/null", "rw") == -1)
++               lg(LOG_ERR, "unveil /dev/null");
++        if (unveil ("/usr/sbin/sendmail", "x") == -1)
++               lg(LOG_ERR, "unveil /usr/sbin/sendmail");
++        if (unveil (arpdir, "rwc") == -1)
++               lg(LOG_ERR, "unveil %s", arpdir);
++        if (unveil(NULL, NULL) == -1)
++               lg(LOG_ERR, "unveil");
++
        /* Must be ethernet or fddi */
        linktype = pcap_datalink(pd);
-@@ -401,7 +442,7 @@ process_ether(register u_char *u, register const struc
+       if (linktype != DLT_EN10MB && linktype != DLT_FDDI) {
+@@ -405,6 +459,13 @@
+               lg(LOG_ERR, "pcap_setfilter: %s", pcap_geterr(pd));
+               exit(1);
+       }
++
++       /* pledge not used earlier because prior need of pcap_filter BIOCSETF, 
not in bpf promise */
++       if (pledge ("stdio rpath wpath cpath inet dns proc exec tty bpf", 
NULL) == -1) {
++              lg(LOG_ERR, "pledge: %s", strerror(errno));
++                exit(1);
++       }
++
+       if (rfilename == NULL)
+               lg(LOG_INFO, "listening on %s", interface);
+ 
+@@ -513,8 +574,8 @@
        t = h->ts.tv_sec;
        can_checkpoint = 0;
        if (!ent_add(sia, sea, t, NULL))
--              syslog(LOG_ERR, "ent_add(%s, %s, %ld) failed",
-+              syslog(LOG_ERR, "ent_add(%s, %s, %lld) failed",
-                   intoa(sia), e2str(sea), t);
+-              lg(LOG_ERR, "ent_add(%s, %s, %ld) failed",
+-                  intoa(sia), e2str(sea), (u_long)t);
++              lg(LOG_ERR, "ent_add(%s, %s, %lld) failed",
++                  intoa(sia), e2str(sea), t);
        can_checkpoint = 1;
- }
-@@ -550,7 +591,7 @@ process_fddi(register u_char *u, register const struct
+ 
+       if (docheckpoint) {
+@@ -673,8 +734,8 @@
        t = h->ts.tv_sec;
        can_checkpoint = 0;
        if (!ent_add(sia, sea, t, NULL))
--              syslog(LOG_ERR, "ent_add(%s, %s, %ld) failed",
-+              syslog(LOG_ERR, "ent_add(%s, %s, %lld) failed",
-                   intoa(sia), e2str(sea), t);
+-              lg(LOG_ERR, "ent_add(%s, %s, %ld) failed",
+-                  intoa(sia), e2str(sea), (u_long)t);
++              lg(LOG_ERR, "ent_add(%s, %s, %lld) failed",
++                  intoa(sia), e2str(sea), t);
        can_checkpoint = 1;
- }
-@@ -750,7 +791,7 @@ usage(void)
-       extern char version[];
  
-       (void)fprintf(stderr, "Version %s\n", version);
--      (void)fprintf(stderr, "usage: %s [-dN] [-f datafile] [-i interface]"
-+      (void)fprintf(stderr, "usage: %s [-dN] [-f datafile] [-i interface] [-u 
username]"
-           " [-n net[/width]] [-r file]\n", prog);
+       if (docheckpoint) {
+@@ -944,6 +1005,6 @@
+           "usage: %s [-CdFNpqsvzZ] [-D arpdir] [-f datafile]"
+           " [-i interface]\n\t"
+           " [-P pidfile] [-w watcher@email] [-W watchee@email]\n\t"
+-          " [-n net[/width]] [-x net[/width]] [-r file]\n", prog);
++          " [-n net[/width]] [-x net[/width]] [-r file] [-u username]\n", 
prog);
        exit(1);
  }
diff -urp /usr/ports/net/arpwatch/patches/patch-db_c 
/usr/ports/mystuff/net/arpwatch/patches/patch-db_c
--- /usr/ports/net/arpwatch/patches/patch-db_c  Fri Mar 11 12:45:45 2022
+++ /usr/ports/mystuff/net/arpwatch/patches/patch-db_c  Thu Jun 25 18:23:27 2026
@@ -4,34 +4,35 @@ https://sources.debian.org/patches/arpwatch/2.1a15-6/2
 remove DECnet remnants
 
 Index: db.c
---- db.c.orig
-+++ db.c
-@@ -95,6 +95,11 @@ ent_add(register u_int32_t a, register u_char *e, time
-       u_char *e2;
+--- db.c.orig  2026-04-12 15:35:26
++++ db.c       2026-04-12 15:40:46
+@@ -108,6 +108,11 @@
        time_t t2;
+       char *host;
  
 +      /* Ignore 0.0.0.0 */
 +      if (a == 0) {
-+              return(1);
++              return(1);
 +      }
 +
        /* Lookup ip address */
        ap = ainfo_find(a);
  
-@@ -124,14 +129,11 @@ ent_add(register u_int32_t a, register u_char *e, time
-               ep = ap->elist[1];
-               if (MEMCMP(e, ep->e, 6) == 0) {
-                       /*
--                       * Suppress report when less than
--                       * FLIPFLOP_DELTA and one of the two ethernet
--                       * addresses is a DECnet logical.
-+                       * Suppress report when less than FLIPFLOP_DELTA.
+@@ -193,12 +198,11 @@
                         */
                        t2 = ap->elist[0]->t;
                        e2 = ap->elist[0]->e;
 -                      if (t - t2 < FLIPFLIP_DELTA &&
--                          (isdecnet(e) || isdecnet(e2)))
-+                      if (t - t2 < FLIPFLIP_DELTA)
-                               dosyslog(LOG_INFO,
-                                   "suppressed DECnet flip flop", a, e, e2);
-                       else
+-                          (isdecnet(e) || isdecnet(e2))) {
+-                              if (!quiet)
+-                                  dosyslog(LOG_INFO,
+-                                      "suppressed DECnet flip flop",
+-                                      a, e, e2);
++                      if (t - t2 < FLIPFLIP_DELTA) {
++                        if (!quiet)
++                          dosyslog(LOG_INFO,
++                                   "suppressed flip flop",
++                                   a, e, e2);
+                       } else if (!suppress)
+                               report("flip flop", a, e, e2, &t, &t2);
+                       ap->elist[1] = ap->elist[0];
diff -urp /usr/ports/net/arpwatch/patches/patch-ec_c 
/usr/ports/mystuff/net/arpwatch/patches/patch-ec_c
--- /usr/ports/net/arpwatch/patches/patch-ec_c  Fri Mar 11 12:45:45 2022
+++ /usr/ports/mystuff/net/arpwatch/patches/patch-ec_c  Thu Jun 25 18:23:27 2026
@@ -1,14 +1,14 @@
-zero-pad MAC address to match ifconfig(8) output
-https://sources.debian.org/patches/arpwatch/2.1a15-6/33_bug315215_zero-pad-MAC/
+[no longer needed: zero-pad MAC address to match ifconfig(8) output
+https://sources.debian.org/patches/arpwatch/2.1a15-6/33_bug315215_zero-pad-MAC/]
 
 remove DECnet remnants
 
 use a red-black tree instead of linked list for searching vendor IDs
 
 Index: ec.c
---- ec.c.orig
-+++ ec.c
-@@ -58,20 +58,28 @@ struct rtentry;
+--- ec.c.orig  Mon May 27 10:59:50 2024
++++ ec.c       Mon May 27 13:41:10 2024
+@@ -66,20 +66,28 @@
  #include "arpwatch.h"
  #include "ec.h"
  #include "util.h"
@@ -17,14 +17,14 @@ Index: ec.c
  /* Basic data structure */
 -struct ecent {
 +struct ecnode {
-+      RB_ENTRY(ecnode) entry;
++        RB_ENTRY(ecnode) entry;
        u_int32_t o;            /* first 3 octets */
        char *text;             /* associated text */
  };
  
 -static struct ecent *list;
--static u_int ec_last = 0;
--static u_int ec_len = 0;
+-static u_int ec_last;
+-static u_int ec_len;
 -
  /* Forwards */
 -static int ec_a2o(char *, u_int32_t *);
@@ -34,7 +34,7 @@ Index: ec.c
 +int
 +ocmp(struct ecnode *e1, struct ecnode *e2)
 +{
-+      return (e1->o < e2->o ? -1 : e1->o > e2->o);
++  return (e1->o < e2->o ? -1 : e1->o > e2->o ? 1 : 0);
 +}
 +
 +RB_HEAD(ectree, ecnode) head = RB_INITIALIZER(&head);
@@ -42,27 +42,32 @@ Index: ec.c
 +
  /* Convert an 3 octets from an ethernet address to a u_int32_t */
  static int
- ec_a2o(register char *cp, register u_int32_t *op)
-@@ -91,23 +99,18 @@ ec_a2o(register char *cp, register u_int32_t *op)
+ ec_a2o(char *cp, u_int32_t *op)
+@@ -99,28 +107,18 @@
  int
- ec_add(register u_int32_t o, register char *text)
+ ec_add(u_int32_t o, const char *text)
  {
-+      struct ecnode *n;
+-      struct ecent *olist;
++        struct ecnode *n;
  
 -      if (ec_last >= ec_len) {
 -              if (list == NULL) {
 -                      ec_len = 512;
+-                      olist = NULL;
 -                      list = malloc(ec_len * sizeof(*list));
 -              } else {
 -                      ec_len *= 2;
--                      list = realloc(list, ec_len * sizeof(*list));
+-                      olist = list;
+-                      list = realloc(olist, ec_len * sizeof(*list));
 -              }
 -              if (list == NULL) {
--                      syslog(LOG_ERR, "ec_add(): malloc: %m");
+-                      if (olist != NULL)
+-                              free(olist);
+-                      lg(LOG_ERR, "ec_add(): malloc: %s", strerror(errno));
 -                      exit(1);
 -              }
 +      if ((n = malloc(sizeof(struct ecnode))) == NULL) {
-+              syslog(LOG_ERR, "%s: malloc\n", __func__);
++              syslog(LOG_ERR, "%s: malloc\n", __func__);
 +              return (0);
        }
 -      list[ec_last].o = o;
@@ -73,21 +78,21 @@ Index: ec.c
 +      n->text = savestr(text);
 +
 +      RB_INSERT(ectree, &head, n);
-+
++      
        return (1);
  }
  
-@@ -115,16 +118,16 @@ ec_add(register u_int32_t o, register char *text)
+@@ -128,16 +126,16 @@
  char *
- ec_find(register u_char *e)
+ ec_find(const u_char *e)
  {
 -      u_int32_t o;
--      register int i;
-+      struct ecnode find, *res;
+-      int i;
++        struct ecnode find, *res;
 +      u_int32_t o = 0;
  
 -      o = 0;
-       BCOPY(e, &o, 3);
+       memmove(&o, e, 3);
 -      for (i = 0; i < ec_last; ++i)
 -              if (list[i].o == o)
 -                      return (list[i].text);
@@ -96,36 +101,26 @@ Index: ec.c
 +      find.o = o;
 +      res = RB_FIND(ectree, &head, &find);
 +      if (res == NULL)
-+              return (NULL);
++              return (NULL);
 +      else
-+              return res->text;
++              return res->text;
  }
  
  /* Loop through the ethernet code database */
-@@ -182,17 +185,6 @@ ec_loop(register FILE *f, ec_process fn, register cons
-       return (1);
- }
+@@ -193,16 +191,6 @@
+       }
  
+       return (1);
+-}
+-
 -/* DECnet local logical address prefix */
 -static u_char decnet[3] = { 0xaa, 0x0, 0x4 };
 -
 -/* Returns true if an ethernet address is decnet, else false */
 -int
--isdecnet(register u_char *e)
+-isdecnet(const u_char *e)
 -{
--
--      return (MEMCMP(e, decnet, sizeof(decnet)) == 0);
--}
--
- /* Convert an ascii ethernet string to ethernet address */
- int
- str2e(register char *str, register u_char *e)
-@@ -218,7 +210,7 @@ e2str(register u_char *e)
- {
-       static char str[32];
- 
--      (void)sprintf(str, "%x:%x:%x:%x:%x:%x",
-+      (void)sprintf(str, "%02x:%02x:%02x:%02x:%02x:%02x",
-           e[0], e[1], e[2], e[3], e[4], e[5]);
-       return (str);
+-      return (memcmp(e, decnet, sizeof(decnet)) == 0);
  }
+ 
+ /* Convert an ascii ethernet string to ethernet address */
Only in /usr/ports/mystuff/net/arpwatch/patches: patch-ec_h
Only in /usr/ports/net/arpwatch/patches: patch-report_c
Only in /usr/ports/net/arpwatch/pkg: CVS
diff -urp /usr/ports/net/arpwatch/pkg/PLIST 
/usr/ports/mystuff/net/arpwatch/pkg/PLIST
--- /usr/ports/net/arpwatch/pkg/PLIST   Mon Nov 27 23:29:22 2023
+++ /usr/ports/mystuff/net/arpwatch/pkg/PLIST   Thu Jun 25 18:23:27 2026
@@ -19,6 +19,7 @@ share/examples/arpwatch/d.awk
 share/examples/arpwatch/duplicates.awk
 share/examples/arpwatch/e.awk
 share/examples/arpwatch/euppertolower.awk
-share/examples/arpwatch/massagevendor
+share/examples/arpwatch/massagevendor-old
+share/examples/arpwatch/massagevendor.py
 share/examples/arpwatch/p.awk
 @rcscript ${RCDIR}/arpwatch

Reply via email to