2626#include <string.h>
2727#include <assert.h>
2828
29- #include "net/sock/udp.h"
3029#include "net/sock/util.h"
3130#include "net/iana/portrange.h"
3231
33- #if defined( MODULE_DNS )
34- #include "net/dns .h"
32+ #if MODULE_GNRC_SOCK_UDP || MODULE_LWIP_SOCK_UDP
33+ # include "net/sock/udp .h"
3534#endif
3635
37- #ifdef MODULE_RANDOM
38- #include "random .h"
36+ #if MODULE_DNS
37+ # include "net/dns .h"
3938#endif
4039
41- #ifdef MODULE_FMT
42- #include "fmt.h"
40+ #if MODULE_RANDOM
41+ # include "random.h"
42+ #endif
43+
44+ #if MODULE_FMT
45+ # include "fmt.h"
4346#endif
4447
4548#define ENABLE_DEBUG 0
4851#define PORT_STR_LEN (5)
4952#define NETIF_STR_LEN (5)
5053
51- int sock_tl_ep_fmt (const struct _sock_tl_ep * endpoint ,
52- char * addr_str , uint16_t * port )
53- {
54- const void * addr_ptr ;
55- * addr_str = '\0' ;
56-
57- switch (endpoint -> family ) {
58- #ifdef SOCK_HAS_IPV4
59- case AF_INET :
60- addr_ptr = & endpoint -> addr .ipv4 ;
61- break ;
62- #endif
63- #ifdef SOCK_HAS_IPV6
64- case AF_INET6 :
65- addr_ptr = & endpoint -> addr .ipv6 ;
66- break ;
67- #endif
68- default :
69- return - ENOTSUP ;
70- }
71-
72- if (!inet_ntop (endpoint -> family , addr_ptr , addr_str , INET6_ADDRSTRLEN )) {
73- return 0 ;
74- }
75-
76- if (IS_ACTIVE (SOCK_HAS_IPV6 ) && (endpoint -> family == AF_INET6 ) && endpoint -> netif ) {
77- #ifdef MODULE_FMT
78- char * tmp = addr_str + strlen (addr_str );
79- * tmp ++ = '%' ;
80- tmp += fmt_u16_dec (tmp , endpoint -> netif );
81- * tmp = '\0' ;
82- #else
83- sprintf (addr_str + strlen (addr_str ), "%%%4u" , endpoint -> netif );
84- #endif
85- }
86-
87- if (port ) {
88- * port = endpoint -> port ;
89- }
90-
91- return strlen (addr_str );
92- }
93-
9454static char * _find_hoststart (const char * url )
9555{
9656 /* Increment CONFIG_SOCK_SCHEME_MAXLEN due to comparison with the colon after the
@@ -167,6 +127,50 @@ const char *sock_urlpath(const char *url)
167127 return _find_pathstart (hoststart );
168128}
169129
130+ #if HAVE_SOCK_TL_EP
131+ int sock_tl_ep_fmt (const struct _sock_tl_ep * endpoint ,
132+ char * addr_str , uint16_t * port )
133+ {
134+ const void * addr_ptr ;
135+ * addr_str = '\0' ;
136+
137+ switch (endpoint -> family ) {
138+ #ifdef SOCK_HAS_IPV4
139+ case AF_INET :
140+ addr_ptr = & endpoint -> addr .ipv4 ;
141+ break ;
142+ #endif
143+ #ifdef SOCK_HAS_IPV6
144+ case AF_INET6 :
145+ addr_ptr = & endpoint -> addr .ipv6 ;
146+ break ;
147+ #endif
148+ default :
149+ return - ENOTSUP ;
150+ }
151+
152+ if (!inet_ntop (endpoint -> family , addr_ptr , addr_str , INET6_ADDRSTRLEN )) {
153+ return 0 ;
154+ }
155+
156+ if (IS_ACTIVE (SOCK_HAS_IPV6 ) && (endpoint -> family == AF_INET6 ) && endpoint -> netif ) {
157+ #ifdef MODULE_FMT
158+ char * tmp = addr_str + strlen (addr_str );
159+ * tmp ++ = '%' ;
160+ tmp += fmt_u16_dec (tmp , endpoint -> netif );
161+ * tmp = '\0' ;
162+ #else
163+ sprintf (addr_str + strlen (addr_str ), "%%%4u" , endpoint -> netif );
164+ #endif
165+ }
166+
167+ if (port ) {
168+ * port = endpoint -> port ;
169+ }
170+
171+ return strlen (addr_str );
172+ }
173+
170174int _parse_port (sock_udp_ep_t * ep_out , const char * portstart )
171175{
172176 int port_len = strlen (portstart );
@@ -258,20 +262,20 @@ int sock_tl_str2ep(struct _sock_tl_ep *ep_out, const char *str)
258262 hostbuf [hostlen ] = '\0' ;
259263
260264 if (!brackets_flag ) {
261- #ifdef SOCK_HAS_IPV4
265+ # ifdef SOCK_HAS_IPV4
262266 if (inet_pton (AF_INET , hostbuf , & ep_out -> addr .ipv4 ) == 1 ) {
263267 ep_out -> family = AF_INET ;
264268 return 0 ;
265269 }
266- #endif
270+ # endif
267271 }
268272
269- #ifdef SOCK_HAS_IPV6
273+ # ifdef SOCK_HAS_IPV6
270274 if (inet_pton (AF_INET6 , hostbuf , ep_out -> addr .ipv6 ) == 1 ) {
271275 ep_out -> family = AF_INET6 ;
272276 return 0 ;
273277 }
274- #endif
278+ # endif
275279
276280 return - EINVAL ;
277281}
@@ -283,7 +287,7 @@ int sock_tl_name2ep(struct _sock_tl_ep *ep_out, const char *str)
283287 return 0 ;
284288 }
285289
286- #if defined( MODULE_SOCK_DNS ) || defined( MODULE_SOCK_DNS_MOCK )
290+ # if MODULE_SOCK_DNS || MODULE_SOCK_DNS_MOCK
287291 int family ;
288292 char hostbuf [CONFIG_SOCK_HOSTPORT_MAXLEN ];
289293 const char * host ;
@@ -314,20 +318,20 @@ int sock_tl_name2ep(struct _sock_tl_ep *ep_out, const char *str)
314318 }
315319
316320 switch (dns_query (host , & ep_out -> addr , family )) {
317- #ifdef SOCK_HAS_IPV4
321+ # ifdef SOCK_HAS_IPV4
318322 case 4 :
319323 ep_out -> family = AF_INET ;
320324 return 0 ;
321- #endif
322- #ifdef SOCK_HAS_IPV6
325+ # endif
326+ # ifdef SOCK_HAS_IPV6
323327 case 16 :
324328 ep_out -> family = AF_INET6 ;
325329 return 0 ;
326- #endif
330+ # endif
327331 default :
328332 return - EINVAL ;
329333 }
330- #endif
334+ # endif
331335 return res ;
332336}
333337
@@ -343,18 +347,19 @@ bool sock_tl_ep_equal(const struct _sock_tl_ep *a,
343347
344348 /* compare addresses */
345349 switch (a -> family ) {
346- #ifdef SOCK_HAS_IPV4
350+ # ifdef SOCK_HAS_IPV4
347351 case AF_INET :
348352 return memcmp (a -> addr .ipv4 , b -> addr .ipv4 , 4 ) == 0 ;
349- #endif
350- #ifdef SOCK_HAS_IPV6
353+ # endif
354+ # ifdef SOCK_HAS_IPV6
351355 case AF_INET6 :
352356 return memcmp (a -> addr .ipv6 , b -> addr .ipv6 , 16 ) == 0 ;
353- #endif
357+ # endif
354358 default :
355359 return false;
356360 }
357361}
362+ #endif
358363
359364#if defined(MODULE_SOCK_DTLS )
360365int sock_dtls_establish_session (sock_udp_t * sock_udp , sock_dtls_t * sock_dtls ,
0 commit comments