]> The Tcpdump Group git mirrors - libpcap/commitdiff
Don't mark loopback devices as "connection status unknown".
authorGuy Harris <[email protected]>
Tue, 1 May 2018 07:32:32 +0000 (00:32 -0700)
committerGuy Harris <[email protected]>
Tue, 1 May 2018 07:32:32 +0000 (00:32 -0700)
It's not unknown, it's *inapplicable*.

pcap-bpf.c

index e06f80731c0d4e1a1796933883bf6548a2245de2..9f4c62b5845b01d059014612c0fcf5234efed86f 100644 (file)
@@ -2804,8 +2804,22 @@ static int
 get_if_flags(const char *name _U_, bpf_u_int32 *flags _U_, char *errbuf _U_)
 {
        /*
 get_if_flags(const char *name _U_, bpf_u_int32 *flags _U_, char *errbuf _U_)
 {
        /*
-        * Nothing we can do.
+        * Nothing we can do other than mark loopback devices as "the
+        * connected/disconnected status doesn't apply".
+        *
+        * XXX - on Solaris, can we do what the dladm command does,
+        * i.e. get a connected/disconnected indication from a kstat?
+        * (Note that you can also get the link speed, and possibly
+        * other information, from a kstat as well.)
         */
         */
+       if (*flags & PCAP_IF_LOOPBACK) {
+               /*
+                * Loopback devices aren't wireless, and "connected"/
+                * "disconnected" doesn't apply to them.
+                */
+               *flags |= PCAP_IF_CONNECTION_STATUS_NOT_APPLICABLE;
+               return (0);
+       }
        return (0);
 }
 #endif
        return (0);
 }
 #endif