@@ -151,6 +151,7 @@ lws_get_addresses(struct lws_vhost *vh, void *ads, char *name,
151151 return 0 ;
152152 } else
153153#endif
154+ #if defined(LWS_WITH_IPV4 )
154155 {
155156 addr4 .sin_family = AF_INET ;
156157 addr4 .sin_addr = ((struct sockaddr_in * )ads )-> sin_addr ;
@@ -174,13 +175,16 @@ lws_get_addresses(struct lws_vhost *vh, void *ads, char *name,
174175#endif
175176 }
176177 }
178+ #endif
177179
178180 if (addr4 .sin_family == AF_UNSPEC )
179181 return -1 ;
180182
183+ #if defined(LWS_WITH_IPV4 )
181184 if (lws_plat_inet_ntop (AF_INET , & addr4 .sin_addr , rip ,
182185 (socklen_t )rip_len ) == NULL )
183186 return -1 ;
187+ #endif
184188
185189 return 0 ;
186190}
@@ -293,7 +297,9 @@ lws_socket_bind(struct lws_vhost *vhost, struct lws *wsi,
293297#if defined(LWS_WITH_IPV6 ) && !defined(LWS_PLAT_OPTEE )
294298 struct sockaddr_in6 serv_addr6 ;
295299#endif
300+ #if defined(LWS_WITH_IPV4 )
296301 struct sockaddr_in serv_addr4 ;
302+ #endif
297303#ifndef LWS_PLAT_OPTEE
298304 socklen_t len = sizeof (struct sockaddr_storage );
299305#endif
@@ -377,6 +383,7 @@ lws_socket_bind(struct lws_vhost *vhost, struct lws *wsi,
377383#endif
378384#endif
379385
386+ #if defined(LWS_WITH_IPV4 )
380387 case AF_INET :
381388 v = (struct sockaddr * )& serv_addr4 ;
382389 n = sizeof (serv_addr4 );
@@ -402,6 +409,7 @@ lws_socket_bind(struct lws_vhost *vhost, struct lws *wsi,
402409#endif
403410 serv_addr4 .sin_port = htons ((uint16_t )(unsigned int )port );
404411 break ;
412+ #endif
405413 default :
406414 return -1 ;
407415 } /* switch */
@@ -500,9 +508,13 @@ lws_socket_bind(struct lws_vhost *vhost, struct lws *wsi,
500508 } else
501509#endif
502510#if defined(LWS_WITH_IPV6 )
511+ #if defined(LWS_WITH_IPV4 )
503512 port = (sin .ss_family == AF_INET6 ) ?
504513 ntohs (((struct sockaddr_in6 * )psin )-> sin6_port ) :
505514 ntohs (((struct sockaddr_in * )psin )-> sin_port );
515+ #else
516+ port = ntohs (((struct sockaddr_in6 * )psin )-> sin6_port );
517+ #endif
506518#else
507519 {
508520 struct sockaddr_in sain ;
@@ -949,11 +961,15 @@ lws_sa46_parse_numeric_address(const char *ads, lws_sockaddr46 *sa46)
949961 if (n != 4 )
950962 return -1 ;
951963
964+ #if defined(LWS_WITH_IPV4 )
952965 sa46 -> sa4 .sin_family = AF_INET ;
953966 memcpy (& sa46 -> sa4 .sin_addr .s_addr , a ,
954967 sizeof (sa46 -> sa4 .sin_addr .s_addr ));
955968
956969 return 0 ;
970+ #else
971+ return -1 ;
972+ #endif
957973}
958974
959975int
@@ -1033,9 +1049,11 @@ lws_sa46_write_numeric_address(lws_sockaddr46 *sa46, char *buf, size_t len)
10331049 return lws_write_numeric_address (
10341050 (uint8_t * )& sa46 -> sa6 .sin6_addr , 16 , buf , len );
10351051#endif
1052+ #if defined(LWS_WITH_IPV4 )
10361053 if (sa46 -> sa4 .sin_family == AF_INET )
10371054 return lws_write_numeric_address (
10381055 (uint8_t * )& sa46 -> sa4 .sin_addr , 4 , buf , len );
1056+ #endif
10391057
10401058#if defined(LWS_WITH_UNIX_SOCK )
10411059 if (sa46 -> sa4 .sin_family == AF_UNIX )
@@ -1056,27 +1074,35 @@ lws_sa46_write_numeric_address(lws_sockaddr46 *sa46, char *buf, size_t len)
10561074int
10571075lws_sa46_compare_ads (const lws_sockaddr46 * sa46a , const lws_sockaddr46 * sa46b )
10581076{
1077+ #if defined(LWS_WITH_IPV4 )
10591078 uint8_t norm1 [16 ], norm2 [16 ];
1079+ #endif
10601080 const uint8_t * p1 , * p2 ;
10611081
1082+ #if defined(LWS_WITH_IPV4 )
10621083 if (sa46a -> sa4 .sin_family == AF_INET ) {
10631084 p1 = norm1 ;
10641085 lws_4to6 (norm1 , (const uint8_t * )& sa46a -> sa4 .sin_addr );
1086+ } else
1087+ #endif
10651088#if defined(LWS_WITH_IPV6 )
1066- } else if (sa46a -> sa4 .sin_family == AF_INET6 ) {
1089+ if (sa46a -> sa4 .sin_family == AF_INET6 ) {
10671090 p1 = (const uint8_t * )& sa46a -> sa6 .sin6_addr ;
1068- #endif
10691091 } else
1092+ #endif
10701093 return 1 ;
10711094
1095+ #if defined(LWS_WITH_IPV4 )
10721096 if (sa46b -> sa4 .sin_family == AF_INET ) {
10731097 p2 = norm2 ;
10741098 lws_4to6 (norm2 , (const uint8_t * )& sa46b -> sa4 .sin_addr );
1099+ } else
1100+ #endif
10751101#if defined(LWS_WITH_IPV6 )
1076- } else if (sa46b -> sa4 .sin_family == AF_INET6 ) {
1102+ if (sa46b -> sa4 .sin_family == AF_INET6 ) {
10771103 p2 = (const uint8_t * )& sa46b -> sa6 .sin6_addr ;
1078- #endif
10791104 } else
1105+ #endif
10801106 return 1 ;
10811107
10821108 return memcmp (p1 , p2 , 16 );
@@ -1111,9 +1137,14 @@ int
11111137lws_sa46_on_net (const lws_sockaddr46 * sa46a , const lws_sockaddr46 * sa46_net ,
11121138 int net_len )
11131139{
1140+ #if defined(LWS_WITH_IPV4 )
11141141 uint8_t mask = 0xff , norm [16 ];
1142+ #else
1143+ uint8_t mask = 0xff ;
1144+ #endif
11151145 const uint8_t * p1 , * p2 ;
11161146
1147+ #if defined(LWS_WITH_IPV4 )
11171148 if (sa46a -> sa4 .sin_family == AF_INET ) {
11181149 p1 = (uint8_t * )& sa46a -> sa4 .sin_addr ;
11191150 if (sa46_net -> sa4 .sin_family == AF_INET6 ) {
@@ -1122,14 +1153,16 @@ lws_sa46_on_net(const lws_sockaddr46 *sa46a, const lws_sockaddr46 *sa46_net,
11221153 lws_4to6 (norm , p1 );
11231154 p1 = norm ;
11241155 }
1156+ } else
1157+ #endif
11251158#if defined(LWS_WITH_IPV6 )
1159+ if (sa46a -> sa4 .sin_family == AF_INET6 ) {
1160+ p1 = (uint8_t * )& sa46a -> sa6 .sin6_addr ;
11261161 } else
1127- if (sa46a -> sa4 .sin_family == AF_INET6 ) {
1128- p1 = (uint8_t * )& sa46a -> sa6 .sin6_addr ;
11291162#endif
1130- } else
1131- return 1 ;
1163+ return 1 ;
11321164
1165+ #if defined(LWS_WITH_IPV4 )
11331166 if (sa46_net -> sa4 .sin_family == AF_INET ) {
11341167 p2 = (uint8_t * )& sa46_net -> sa4 .sin_addr ;
11351168 if (sa46a -> sa4 .sin_family == AF_INET6 ) {
@@ -1140,13 +1173,14 @@ lws_sa46_on_net(const lws_sockaddr46 *sa46a, const lws_sockaddr46 *sa46_net,
11401173 /* because the mask length is for net v4 address */
11411174 net_len += 12 * 8 ;
11421175 }
1176+ } else
1177+ #endif
11431178#if defined(LWS_WITH_IPV6 )
1179+ if (sa46a -> sa4 .sin_family == AF_INET6 ) {
1180+ p2 = (uint8_t * )& sa46_net -> sa6 .sin6_addr ;
11441181 } else
1145- if (sa46a -> sa4 .sin_family == AF_INET6 ) {
1146- p2 = (uint8_t * )& sa46_net -> sa6 .sin6_addr ;
11471182#endif
1148- } else
1149- return 1 ;
1183+ return 1 ;
11501184
11511185 while (net_len > 0 ) {
11521186 if (net_len < 8 )
@@ -1166,10 +1200,13 @@ lws_sa46_copy_address(lws_sockaddr46 *sa46a, const void *in, int af)
11661200{
11671201 sa46a -> sa4 .sin_family = (sa_family_t )af ;
11681202
1203+ #if defined(LWS_WITH_IPV4 )
11691204 if (af == AF_INET )
11701205 memcpy (& sa46a -> sa4 .sin_addr , in , 4 );
1206+ else
1207+ #endif
11711208#if defined(LWS_WITH_IPV6 )
1172- else if (af == AF_INET6 )
1209+ if (af == AF_INET6 )
11731210 memcpy (& sa46a -> sa6 .sin6_addr , in , sizeof (sa46a -> sa6 .sin6_addr ));
11741211#endif
11751212}
@@ -1252,22 +1289,25 @@ lws_is_lan_address(const char *ads)
12521289 if (lws_sa46_parse_numeric_address (ads , & sa46 ) < 0 )
12531290 return 0 ;
12541291
1292+ #if defined(LWS_WITH_IPV4 )
12551293 if (sa46 .sa4 .sin_family == AF_INET ) {
12561294 uint8_t * p = (uint8_t * )& sa46 .sa4 .sin_addr .s_addr ;
12571295
12581296 /* 10.0.0.0/8 */
12591297 if (p [0 ] == 10 )
12601298 return 1 ;
12611299 /* 172.16.0.0/12 */
1262- if (p [0 ] == 172 && ( p [1 ] >= 16 && p [1 ] <= 31 ) )
1300+ if (p [0 ] == 172 && p [1 ] >= 16 && p [1 ] <= 31 )
12631301 return 1 ;
12641302 /* 192.168.0.0/16 */
12651303 if (p [0 ] == 192 && p [1 ] == 168 )
12661304 return 1 ;
12671305 /* 127.0.0.0/8 */
12681306 if (p [0 ] == 127 )
12691307 return 1 ;
1270- } else if (sa46 .sa4 .sin_family == AF_INET6 ) {
1308+ } else
1309+ #endif
1310+ if (sa46 .sa4 .sin_family == AF_INET6 ) {
12711311#if defined(LWS_WITH_IPV6 )
12721312 uint8_t * p = (uint8_t * )& sa46 .sa6 .sin6_addr .s6_addr ;
12731313
0 commit comments