> From: Claus Lensbøl <cl...@fab-it.dk>
> I am running openbsd 5.6 GENERIC.MP#333 amd64.
> Using isc-dhcp-server 4.3.0.

I had no route to host w/ ISC DHCP 4.3.0 on OpenBSD 4.9 -- the
patch at end of message got it working.  Hint was need for
'%<IF>' using ping6.

I applied the patch on OpenBSD 5.5 w/o checking whether
it's needed -- still works.  I don't know about 5.6 (as he
ducks his head).

NOTE: patch applies to ISC tar archive -- I did not start from
ports, so I don't know if it'll apply to patched ports source.
Try it if you like.  Good luck.

-Ed

# BEGIN PATCH
diff -u -r dhcp-4.3.0-orig/common/socket.c dhcp-4.3.0/common/socket.c
--- dhcp-4.3.0-orig/common/socket.c     Fri Jan 31 14:20:49 2014
+++ dhcp-4.3.0/common/socket.c  Tue Aug 18 15:11:42 2015
@@ -787,9 +787,19 @@
        memcpy(&dst, to, sizeof(dst));
        m.msg_name = &dst;
        m.msg_namelen = sizeof(dst);
+       /*
+        * For OpenBSD 4.9, needing interface index: this works in
+        * my usage on small LAN; might not be complete or correct
+        * Works w/ OpenBSD 5.5 -- did not check if still needed!
+        * The preprocessor test is added . . .
+        */
+#if defined(__OpenBSD__)
+       dst.sin6_scope_id = ifindex = if_nametoindex(interface->name);
+#else  /* ! defined(__OpenBSD__) */
        ifindex = if_nametoindex(interface->name);
        if (no_global_v6_socket)
                dst.sin6_scope_id = ifindex;
+#endif /* ! defined(__OpenBSD__) */

        /*
         * Set the data buffer we're sending. (Using this wacky

Reply via email to