1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-29 19:09:01 +00:00

Consider IFF_LOOPBACK before IFF_BROADCAST.

The IPv6 loopback interface on AIX has both IFF_BROADCAST and IFF_LOOPBACK set. Checking IFF_BROADCAST first erroneously makes it appear as an Ethernet device.
This commit is contained in:
david
2011-09-26 22:26:50 +00:00
parent d5b0b9bf43
commit 8d964ad4e9
2 changed files with 24 additions and 3 deletions

View File

@@ -575,6 +575,27 @@ o Allowed reading interface indexes that exceed 255 on Linux.
&idx, &bits, &scope, &flags, name);
if (strcmp(name, entry->intf_name) == 0) {
o Gave priority to the IFF_LOOPBACK flag when setting interface type.
--- libdnet-stripped/src/intf.c
+++ libdnet-stripped/src/intf.c
@@ -374,12 +374,12 @@ intf_set(intf_t *intf, const struct intf_entry *entry)
static void
_intf_set_type(struct intf_entry *entry)
{
- if ((entry->intf_flags & INTF_FLAG_BROADCAST) != 0)
+ if ((entry->intf_flags & INTF_FLAG_LOOPBACK) != 0)
+ entry->intf_type = INTF_TYPE_LOOPBACK;
+ else if ((entry->intf_flags & INTF_FLAG_BROADCAST) != 0)
entry->intf_type = INTF_TYPE_ETH;
else if ((entry->intf_flags & INTF_FLAG_POINTOPOINT) != 0)
entry->intf_type = INTF_TYPE_TUN;
- else if ((entry->intf_flags & INTF_FLAG_LOOPBACK) != 0)
- entry->intf_type = INTF_TYPE_LOOPBACK;
else
entry->intf_type = INTF_TYPE_OTHER;
}
===CHANGES ALREADY MERGED TO UPSTREAM LIBDNET GO BELOW THIS LINE===
o Fixed the ip6_pack_hdr macro with respect to traffic class and flow

View File

@@ -374,12 +374,12 @@ intf_set(intf_t *intf, const struct intf_entry *entry)
static void
_intf_set_type(struct intf_entry *entry)
{
if ((entry->intf_flags & INTF_FLAG_BROADCAST) != 0)
if ((entry->intf_flags & INTF_FLAG_LOOPBACK) != 0)
entry->intf_type = INTF_TYPE_LOOPBACK;
else if ((entry->intf_flags & INTF_FLAG_BROADCAST) != 0)
entry->intf_type = INTF_TYPE_ETH;
else if ((entry->intf_flags & INTF_FLAG_POINTOPOINT) != 0)
entry->intf_type = INTF_TYPE_TUN;
else if ((entry->intf_flags & INTF_FLAG_LOOPBACK) != 0)
entry->intf_type = INTF_TYPE_LOOPBACK;
else
entry->intf_type = INTF_TYPE_OTHER;
}