Go to the documentation of this file.
   29 # include <sys/socket.h> 
   35 #if defined(__CYGWIN__) || defined(__MSYS__) 
   37   RETURN_SKIP(
"FIXME: This test needs more investigation on Cygwin");
 
   39   char string_address[INET6_ADDRSTRLEN];
 
   43   unsigned int iface_index;
 
   44   const char* device_name;
 
   46   char scoped_addr[128];
 
   47   size_t scoped_addr_len;
 
   49   size_t interface_id_len;
 
   56   for (ix = 0; ix < 
count; ix++) {
 
   57     address = addresses + ix;
 
   65                              sizeof(string_address)));
 
   68     if (strncmp(string_address, 
"fe80::", 6) != 0)
 
   72     device_name = address->
name;
 
   74     scoped_addr_len = 
sizeof(scoped_addr);
 
   78     ASSERT(0 == strcmp(device_name, scoped_addr));
 
   81     interface_id_len = 
sizeof(interface_id);
 
   86     ASSERT(strtoul(interface_id, NULL, 10) == iface_index);
 
   89     ASSERT(0 == strcmp(device_name, interface_id));
 
   98     fprintf(
stderr, 
"Testing link-local address %s " 
   99             "(iface_index: 0x%02x, device_name: %s)\n",
 
  106     fprintf(
stderr, 
"Got scope_id 0x%02x\n", 
addr.sin6_scope_id);
 
  113   scoped_addr_len = 
sizeof(scoped_addr);
 
  121 #define GOOD_ADDR_LIST(X)                                                     \ 
  126     X("fe80::2acf:daff:fedd:342a")                                            \ 
  127     X("fe80:0:0:0:2acf:daff:fedd:342a")                                       \ 
  128     X("fe80:0:0:0:2acf:daff:1.2.3.4")                                         \ 
  129     X("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")                        \ 
  131 #define BAD_ADDR_LIST(X)                                                      \ 
  134     X("fe80:0:0:0:2acf:daff:fedd:342a:5678")                                  \ 
  135     X("fe80:0:0:0:2acf:daff:abcd:1.2.3.4")                                    \ 
  136     X("fe80:0:0:2acf:daff:1.2.3.4.5")                                         \ 
  137     X("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255.255")                    \ 
  139 #define TEST_GOOD(ADDR)                                                       \ 
  140     ASSERT(0 == uv_inet_pton(AF_INET6, ADDR, &addr));                         \ 
  141     ASSERT(0 == uv_inet_pton(AF_INET6, ADDR "%en1", &addr));                  \ 
  142     ASSERT(0 == uv_inet_pton(AF_INET6, ADDR "%%%%", &addr));                  \ 
  143     ASSERT(0 == uv_inet_pton(AF_INET6, ADDR "%en1:1.2.3.4", &addr));          \ 
  145 #define TEST_BAD(ADDR)                                                        \ 
  146     ASSERT(0 != uv_inet_pton(AF_INET6, ADDR, &addr));                         \ 
  147     ASSERT(0 != uv_inet_pton(AF_INET6, ADDR "%en1", &addr));                  \ 
  148     ASSERT(0 != uv_inet_pton(AF_INET6, ADDR "%%%%", &addr));                  \ 
  149     ASSERT(0 != uv_inet_pton(AF_INET6, ADDR "%en1:1.2.3.4", &addr));          \ 
  152   struct in6_addr 
addr;
 
  161 #undef GOOD_ADDR_LIST 
  168   ASSERT(
s.sin6_len == 
sizeof(s));
 
  
UV_EXTERN int uv_if_indextoname(unsigned int ifindex, char *buffer, size_t *size)
UV_EXTERN int uv_ip6_addr(const char *ip, int port, struct sockaddr_in6 *addr)
#define GOOD_ADDR_LIST(X)
UV_EXTERN int uv_interface_addresses(uv_interface_address_t **addresses, int *count)
TEST_IMPL(ip6_addr_link_local)
UV_EXTERN void uv_free_interface_addresses(uv_interface_address_t *addresses, int count)
UV_EXTERN int uv_if_indextoiid(unsigned int ifindex, char *buffer, size_t *size)
unsigned short sin6_family
#define MAKE_VALGRIND_HAPPY()
UV_EXTERN int uv_inet_ntop(int af, const void *src, char *dst, size_t size)
struct ares_in6_addr sin6_addr
#define RETURN_SKIP(explanation)
union uv_interface_address_s::@400 address
unsigned int sin6_scope_id
struct sockaddr_in6 address6
grpc
Author(s): 
autogenerated on Fri May 16 2025 03:00:26