Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/dhcpcd/dist/src Import dhcpcd-8.0.1 with the fo...



details:   https://anonhg.NetBSD.org/src/rev/2758a3da28cf
branches:  trunk
changeset: 457957:2758a3da28cf
user:      roy <roy%NetBSD.org@localhost>
date:      Thu Jul 25 08:53:54 2019 +0000

description:
Import dhcpcd-8.0.1 with the following changes:

  *  Compile fixes for various build options on various platforms
  *  IPv4LL is fixed on NetBSD-8
  *  Script buffers are freed on forking

diffstat:

 external/bsd/dhcpcd/dist/src/defs.h   |   2 +-
 external/bsd/dhcpcd/dist/src/ipv4.c   |   6 ++++--
 external/bsd/dhcpcd/dist/src/ipv4ll.c |  13 +++++++++----
 external/bsd/dhcpcd/dist/src/script.c |   2 +-
 4 files changed, 15 insertions(+), 8 deletions(-)

diffs (96 lines):

diff -r 01e6836a6251 -r 2758a3da28cf external/bsd/dhcpcd/dist/src/defs.h
--- a/external/bsd/dhcpcd/dist/src/defs.h       Thu Jul 25 08:35:36 2019 +0000
+++ b/external/bsd/dhcpcd/dist/src/defs.h       Thu Jul 25 08:53:54 2019 +0000
@@ -29,7 +29,7 @@
 #define CONFIG_H
 
 #define PACKAGE                        "dhcpcd"
-#define VERSION                        "8.0.0"
+#define VERSION                        "8.0.1"
 
 #ifndef CONFIG
 # define CONFIG                        SYSCONFDIR "/" PACKAGE ".conf"
diff -r 01e6836a6251 -r 2758a3da28cf external/bsd/dhcpcd/dist/src/ipv4.c
--- a/external/bsd/dhcpcd/dist/src/ipv4.c       Thu Jul 25 08:35:36 2019 +0000
+++ b/external/bsd/dhcpcd/dist/src/ipv4.c       Thu Jul 25 08:53:54 2019 +0000
@@ -453,9 +453,7 @@
 inet_getroutes(struct dhcpcd_ctx *ctx, rb_tree_t *routes)
 {
        struct interface *ifp;
-#ifdef IPV4LL
        bool have_default = false;
-#endif
 
        TAILQ_FOREACH(ifp, ctx->ifaces, next) {
                if (!ifp->active)
@@ -504,6 +502,8 @@
 #ifdef ARP
        if (!keeparp)
                arp_freeaddr(addr->iface, &addr->addr);
+#else
+       UNUSED(keeparp);
 #endif
 
        state = IPV4_STATE(addr->iface);
@@ -541,7 +541,9 @@
            ifo->options & DHCPCD_INFORM ||
            (ifo->options & DHCPCD_STATIC && ifo->req_addr.s_addr == 0))
                return 0;
+#ifdef ARP
        arp_freeaddr(ifp, &state->addr->addr);
+#endif
        r = ipv4_deladdr(state->addr, 0);
        return r;
 }
diff -r 01e6836a6251 -r 2758a3da28cf external/bsd/dhcpcd/dist/src/ipv4ll.c
--- a/external/bsd/dhcpcd/dist/src/ipv4ll.c     Thu Jul 25 08:35:36 2019 +0000
+++ b/external/bsd/dhcpcd/dist/src/ipv4ll.c     Thu Jul 25 08:53:54 2019 +0000
@@ -298,7 +298,7 @@
        state = IPV4LL_STATE(ifp);
        assert(state != NULL);
        assert(state->arp == astate);
-       ipv4ll_not_found_arp(astate);
+       ipv4ll_not_found(ifp);
 }
 
 static void
@@ -552,19 +552,24 @@
 
        ifp = ia->iface;
        state = IPV4LL_STATE(ifp);
-       if (state == NULL || state->addr == NULL ||
-           !IN_ARE_ADDR_EQUAL(&state->addr->addr, &ia->addr))
+       if (state == NULL)
                return;
 
-       if (cmd == RTM_DELADDR) {
+       if (cmd == RTM_DELADDR &&
+           state->addr != NULL &&
+           IN_ARE_ADDR_EQUAL(&state->addr->addr, &ia->addr))
+       {
                loginfox("%s: pid %d deleted IP address %s",
                    ifp->name, pid, ia->saddr);
                ipv4ll_defend_failed(ifp);
+               return;
        }
 
 #ifdef IN_IFF_DUPLICATED
        if (cmd != RTM_NEWADDR)
                return;
+       if (!IN_ARE_ADDR_EQUAL(&state->pickedaddr, &ia->addr))
+               return;
        if (!(ia->addr_flags & IN_IFF_NOTUSEABLE))
                ipv4ll_not_found(ifp);
        else if (ia->addr_flags & IN_IFF_DUPLICATED) {
diff -r 01e6836a6251 -r 2758a3da28cf external/bsd/dhcpcd/dist/src/script.c
--- a/external/bsd/dhcpcd/dist/src/script.c     Thu Jul 25 08:35:36 2019 +0000
+++ b/external/bsd/dhcpcd/dist/src/script.c     Thu Jul 25 08:53:54 2019 +0000
@@ -180,7 +180,7 @@
        char **env, **envp, *buf, *bufp, *endp, *path;
        size_t nenv;
        long buf_pos, i;
-       int protocol;
+       int protocol = PROTO_LINK;
        const struct if_options *ifo = ifp->options;
        const struct interface *ifp2;
        int af;



Home | Main Index | Thread Index | Old Index