@@ -85,12 +85,15 @@ const char* ffDetectLocalIps(const FFLocalIpOptions* options, FFlist* results)
8585 char addressBuffer [INET_ADDRSTRLEN + 4 ];
8686 inet_ntop (AF_INET , & ipv4 -> sin_addr , addressBuffer , INET_ADDRSTRLEN );
8787
88- struct sockaddr_in * netmask = (struct sockaddr_in * ) ifa -> ifa_netmask ;
89- int cidr = __builtin_popcount (netmask -> sin_addr .s_addr );
90- if (cidr != 0 )
88+ if (options -> showType & FF_LOCALIP_TYPE_PREFIX_LEN_BIT )
9189 {
92- size_t len = strlen (addressBuffer );
93- snprintf (addressBuffer + len , 4 , "/%d" , cidr );
90+ struct sockaddr_in * netmask = (struct sockaddr_in * ) ifa -> ifa_netmask ;
91+ int cidr = __builtin_popcount (netmask -> sin_addr .s_addr );
92+ if (cidr != 0 )
93+ {
94+ size_t len = strlen (addressBuffer );
95+ snprintf (addressBuffer + len , 4 , "/%d" , cidr );
96+ }
9497 }
9598
9699 addNewIp (results , ifa -> ifa_name , addressBuffer , AF_INET , isDefaultRoute );
@@ -104,14 +107,17 @@ const char* ffDetectLocalIps(const FFLocalIpOptions* options, FFlist* results)
104107 char addressBuffer [INET6_ADDRSTRLEN + 4 ];
105108 inet_ntop (AF_INET6 , & ipv6 -> sin6_addr , addressBuffer , INET6_ADDRSTRLEN );
106109
107- struct sockaddr_in6 * netmask = (struct sockaddr_in6 * ) ifa -> ifa_netmask ;
108- int cidr = 0 ;
109- for (uint32_t i = 0 ; i < sizeof (netmask -> sin6_addr .s6_addr32 ) / sizeof (netmask -> sin6_addr .s6_addr32 [0 ]); ++ i )
110- cidr += __builtin_popcount (netmask -> sin6_addr .s6_addr32 [i ]);
111- if (cidr != 0 )
110+ if (options -> showType & FF_LOCALIP_TYPE_PREFIX_LEN_BIT )
112111 {
113- size_t len = strlen (addressBuffer );
114- snprintf (addressBuffer + len , 4 , "/%d" , cidr );
112+ struct sockaddr_in6 * netmask = (struct sockaddr_in6 * ) ifa -> ifa_netmask ;
113+ int cidr = 0 ;
114+ for (uint32_t i = 0 ; i < sizeof (netmask -> sin6_addr .s6_addr32 ) / sizeof (netmask -> sin6_addr .s6_addr32 [0 ]); ++ i )
115+ cidr += __builtin_popcount (netmask -> sin6_addr .s6_addr32 [i ]);
116+ if (cidr != 0 )
117+ {
118+ size_t len = strlen (addressBuffer );
119+ snprintf (addressBuffer + len , 4 , "/%d" , cidr );
120+ }
115121 }
116122
117123 addNewIp (results , ifa -> ifa_name , addressBuffer , AF_INET6 , isDefaultRoute );
0 commit comments