Alien-uv

 view release on metacpan or  search on metacpan

libuv/src/unix/aix-common.c  view on Meta::CPAN

  for (i = 0; i < count; ++i) {
    uv__free(cpu_infos[i].model);
  }

  uv__free(cpu_infos);
}


int uv_interface_addresses(uv_interface_address_t** addresses, int* count) {
  uv_interface_address_t* address;
  int sockfd, inet6, size = 1;
  struct ifconf ifc;
  struct ifreq *ifr, *p, flg;
  struct sockaddr_dl* sa_addr;

  *count = 0;
  *addresses = NULL;

  if (0 > (sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP))) {
    return UV__ERR(errno);
  }

libuv/src/unix/aix-common.c  view on Meta::CPAN

  ifr = ifc.ifc_req;
  while ((char*)ifr < (char*)ifc.ifc_req + ifc.ifc_len) {
    p = ifr;
    ifr = (struct ifreq*)
      ((char*)ifr + sizeof(ifr->ifr_name) + ADDR_SIZE(ifr->ifr_addr));

    if (!(p->ifr_addr.sa_family == AF_INET6 ||
          p->ifr_addr.sa_family == AF_INET))
      continue;

    inet6 = (p->ifr_addr.sa_family == AF_INET6);

    memcpy(flg.ifr_name, p->ifr_name, sizeof(flg.ifr_name));
    if (ioctl(sockfd, SIOCGIFFLAGS, &flg) == -1) {
      uv__close(sockfd);
      return UV_ENOSYS;
    }

    if (!(flg.ifr_flags & IFF_UP && flg.ifr_flags & IFF_RUNNING))
      continue;

    /* All conditions above must match count loop */

    address->name = uv__strdup(p->ifr_name);

    if (inet6)
      address->address.address6 = *((struct sockaddr_in6*) &p->ifr_addr);
    else
      address->address.address4 = *((struct sockaddr_in*) &p->ifr_addr);

    sa_addr = (struct sockaddr_dl*) &p->ifr_addr;
    memcpy(address->phys_addr, LLADDR(sa_addr), sizeof(address->phys_addr));

    if (ioctl(sockfd, SIOCGIFNETMASK, p) == -1) {
      uv__close(sockfd);
      return UV_ENOSYS;
    }

    if (inet6)
      address->netmask.netmask6 = *((struct sockaddr_in6*) &p->ifr_addr);
    else
      address->netmask.netmask4 = *((struct sockaddr_in*) &p->ifr_addr);

    address->is_internal = flg.ifr_flags & IFF_LOOPBACK ? 1 : 0;

    address++;
  }

#undef ADDR_SIZE

libuv/test/test-udp-ipv6.c  view on Meta::CPAN


static int send_cb_called;
static int recv_cb_called;
static int close_cb_called;

#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
static int can_ipv6_ipv4_dual(void) {
  int v6only;
  size_t size = sizeof(int);

  if (sysctlbyname("net.inet6.ip6.v6only", &v6only, &size, NULL, 0))
    return 0;

  return v6only != 1;
}
#endif


static void alloc_cb(uv_handle_t* handle,
                     size_t suggested_size,
                     uv_buf_t* buf) {



( run in 0.251 second using v1.01-cache-2.11-cpan-87723dcf8b7 )