Yeah, I saw this with arp-scan too. Anyone else seeing similar issues, if you need a fix right away:- rebuild relevant packages (either the affected port itself or some library dependency). If you can't figure it out, wait for a new package snapshot, I have bumped REVISION for everything which I think needs it so that when you "pkg_add -u" against newly built packages you'll pick up the rebuilt versions.
On 2011-11-15, Christiano F. Haesbaert <haesba...@haesbaert.org> wrote: > On 15 November 2011 16:21, Thomas Jeunet <clep...@gmail.com> wrote: >> Hello, >> >> I'm using nmap on openbsd, following -current, and recently it stopped >> working. >> I get the following message : >> >> Starting Nmap 5.51 ( http://nmap.org ) at 2011-11-15 19:05 CET >> Warning: Unable to get hardware address for interface em0 -- skipping it. >> WARNING: Unable to find appropriate interface for system route to <IP >> of gateway> >> nexthost: failed to determine route to <target> >> QUITTING! >> >> The message comes from nmap-5.51/nmap-5.51/libnetutil/netutil.cc : >> if (eth_get(ethsd, ðaddr) != 0) { >> ? netutil_error("Warning: Unable to get hardware address for interface %s >> ? continue; >> } >> and eth_get is defined in libdnet-1.12/libdnet-1.12/src/eth-bsd.c : >> int >> eth_get(eth_t *e, eth_addr_t *ea) >> { >> ? ?struct if_msghdr *ifm; >> ? ?struct sockaddr_dl *sdl; >> ? ?struct addr ha; >> ? ?u_char *p, *buf; >> ? ?size_t len; >> ? ?int mib[] = { CTL_NET, AF_ROUTE, 0, AF_LINK, NET_RT_IFLIST, 0 }; >> >> ? ?if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) >> ? ? ? ?return (-1); >> >> ? ?if ((buf = malloc(len)) == NULL) >> ? ? ? ?return (-1); >> >> ? ?if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) { >> ? ? ? ?free(buf); >> ? ? ? ?return (-1); >> ? ?} >> ? ?for (p = buf; p < buf + len; p += ifm->ifm_msglen) { >> ? ? ? ?ifm = (struct if_msghdr *)p; >> ? ? ? ?sdl = (struct sockaddr_dl *)(ifm + 1); >> >> ? ? ? ?if (ifm->ifm_type != RTM_IFINFO || >> ? ? ? ? ? ?(ifm->ifm_addrs & RTA_IFP) == 0) >> ? ? ? ? ? ?continue; >> >> ? ? ? ?if (sdl->sdl_family != AF_LINK || sdl->sdl_nlen == 0 || >> ? ? ? ? ? ?memcmp(sdl->sdl_data, e->device, sdl->sdl_nlen) != 0) >> ? ? ? ? ? ?continue; >> >> ? ? ? ?if (addr_ston((struct sockaddr *)sdl, &ha) == 0) >> ? ? ? ? ? ?break; >> ? ?} >> ? ?free(buf); >> >> ? ?if (p >= buf + len) { >> ? ? ? ?errno = ESRCH; >> ? ? ? ?return (-1); >> ? ?} >> ? ?memcpy(ea, &ha.addr_eth, sizeof(*ea)); >> >> ? ?return (0); >> } >> >> Is anyone also facing this issue? Anyone having a clue on why whould >> eth_get fail? >> >> >> Cheers, >> best regards >> -- >> Thomas Jeunet >> >> > > Rebuild libdnet, there was a change in an ioctl. > libdnet version is being bumped so others should not see this anymore. > >