11#include "localip.h"
22#include "common/io/io.h"
33#include "common/netif/netif.h"
4+ #include "util/stringUtils.h"
45
56#include <string.h>
67#include <ctype.h>
@@ -56,15 +57,15 @@ const char* ffDetectLocalIps(const FFLocalIpOptions* options, FFlist* results)
5657 if (getifaddrs (& ifAddrStruct ) < 0 )
5758 return "getifaddrs(&ifAddrStruct) failed" ;
5859
59- FF_STRBUF_AUTO_DESTROY defaultRouteIface = ffStrbufCreate ();
60- ffNetifGetDefaultRoute (& defaultRouteIface );
60+ const char * defaultRouteIface = ffNetifGetDefaultRoute ();
6161
6262 for (struct ifaddrs * ifa = ifAddrStruct ; ifa ; ifa = ifa -> ifa_next )
6363 {
6464 if (!ifa -> ifa_addr || !(ifa -> ifa_flags & IFF_RUNNING ))
6565 continue ;
6666
67- if (options -> defaultRouteOnly && !ffStrbufEqualS (& defaultRouteIface , ifa -> ifa_name ))
67+ bool isDefaultRoute = ffStrEquals (defaultRouteIface , ifa -> ifa_name );
68+ if (options -> defaultRouteOnly && !isDefaultRoute )
6869 continue ;
6970
7071 if ((ifa -> ifa_flags & IFF_LOOPBACK ) && !(options -> showType & FF_LOCALIP_TYPE_LOOP_BIT ))
@@ -81,7 +82,7 @@ const char* ffDetectLocalIps(const FFLocalIpOptions* options, FFlist* results)
8182 struct sockaddr_in * ipv4 = (struct sockaddr_in * ) ifa -> ifa_addr ;
8283 char addressBuffer [INET_ADDRSTRLEN ];
8384 inet_ntop (AF_INET , & ipv4 -> sin_addr , addressBuffer , INET_ADDRSTRLEN );
84- addNewIp (results , ifa -> ifa_name , addressBuffer , AF_INET , ffStrbufEqualS ( & defaultRouteIface , ifa -> ifa_name ) );
85+ addNewIp (results , ifa -> ifa_name , addressBuffer , AF_INET , isDefaultRoute );
8586 }
8687 else if (ifa -> ifa_addr -> sa_family == AF_INET6 )
8788 {
@@ -91,7 +92,7 @@ const char* ffDetectLocalIps(const FFLocalIpOptions* options, FFlist* results)
9192 struct sockaddr_in6 * ipv6 = (struct sockaddr_in6 * )ifa -> ifa_addr ;
9293 char addressBuffer [INET6_ADDRSTRLEN ];
9394 inet_ntop (AF_INET6 , & ipv6 -> sin6_addr , addressBuffer , INET6_ADDRSTRLEN );
94- addNewIp (results , ifa -> ifa_name , addressBuffer , AF_INET6 , ffStrbufEqualS ( & defaultRouteIface , ifa -> ifa_name ) );
95+ addNewIp (results , ifa -> ifa_name , addressBuffer , AF_INET6 , isDefaultRoute );
9596 }
9697 #if defined(__FreeBSD__ ) || defined(__APPLE__ )
9798 else if (ifa -> ifa_addr -> sa_family == AF_LINK )
@@ -103,7 +104,7 @@ const char* ffDetectLocalIps(const FFLocalIpOptions* options, FFlist* results)
103104 uint8_t * ptr = (uint8_t * ) LLADDR ((struct sockaddr_dl * )ifa -> ifa_addr );
104105 snprintf (addressBuffer , sizeof (addressBuffer ), "%02x:%02x:%02x:%02x:%02x:%02x" ,
105106 ptr [0 ], ptr [1 ], ptr [2 ], ptr [3 ], ptr [4 ], ptr [5 ]);
106- addNewIp (results , ifa -> ifa_name , addressBuffer , -1 , ffStrbufEqualS ( & defaultRouteIface , ifa -> ifa_name ) );
107+ addNewIp (results , ifa -> ifa_name , addressBuffer , -1 , isDefaultRoute );
107108 }
108109 #else
109110 else if (ifa -> ifa_addr -> sa_family == AF_PACKET )
@@ -115,7 +116,7 @@ const char* ffDetectLocalIps(const FFLocalIpOptions* options, FFlist* results)
115116 uint8_t * ptr = ((struct sockaddr_ll * )ifa -> ifa_addr )-> sll_addr ;
116117 snprintf (addressBuffer , sizeof (addressBuffer ), "%02x:%02x:%02x:%02x:%02x:%02x" ,
117118 ptr [0 ], ptr [1 ], ptr [2 ], ptr [3 ], ptr [4 ], ptr [5 ]);
118- addNewIp (results , ifa -> ifa_name , addressBuffer , -1 , ffStrbufEqualS ( & defaultRouteIface , ifa -> ifa_name ) );
119+ addNewIp (results , ifa -> ifa_name , addressBuffer , -1 , isDefaultRoute );
119120 }
120121 #endif
121122 }
0 commit comments