There are two inconsistencies with the ifconfig(8) switch(4) configuring:
1) Datapath ID is an unsigned 64 bit integer, not a signed one;
2) ifconfig(8) man pages says that the parameter is "datapath" not
   "datapathid";

This diff fixes both problems and let us configure the datapath id
correctly.

ok?


Index: brconfig.c
===================================================================
RCS file: /home/obsdcvs/src/sbin/ifconfig/brconfig.c,v
retrieving revision 1.11
diff -u -p -r1.11 brconfig.c
--- brconfig.c  3 Sep 2016 17:13:48 -0000       1.11
+++ brconfig.c  17 Oct 2016 10:11:25 -0000
@@ -1051,7 +1051,7 @@ switch_datapathid(const char *arg, int d
        char *endptr;
 
        errno = 0;
-       newdpid = strtoll(arg, &endptr, 0);
+       newdpid = strtoull(arg, &endptr, 0);
        if (arg[0] == '\0' || endptr[0] != '\0' || errno == ERANGE)
                errx(1, "invalid arg for datapath-id: %s", arg);
 
Index: ifconfig.c
===================================================================
RCS file: /home/obsdcvs/src/sbin/ifconfig/ifconfig.c,v
retrieving revision 1.330
diff -u -p -r1.330 ifconfig.c
--- ifconfig.c  3 Sep 2016 13:46:57 -0000       1.330
+++ ifconfig.c  17 Oct 2016 09:48:33 -0000
@@ -517,7 +517,7 @@ const struct        cmd {
        { "-roaming",   0,              0,              umb_roaming },
        { "patch",      NEXTARG,        0,              setpair },
        { "-patch",     1,              0,              unsetpair },
-       { "datapathid", NEXTARG,        0,              switch_datapathid },
+       { "datapath",   NEXTARG,        0,              switch_datapathid },
        { "portno",     NEXTARG2,       0,              NULL, switch_portno },
        { "addlocal",   NEXTARG,        0,              addlocal },
 #else /* SMALL */

Reply via email to