Browse Source

resolve domain so we can bypass domain with geoip

pull/1476/head
Daniel 7 years ago
committed by Max Lv
parent
commit
54acbba2a7
1 changed files with 20 additions and 0 deletions
  1. 20
      src/local.c

20
src/local.c

@ -601,6 +601,26 @@ server_recv_cb(EV_P_ ev_io *w, int revents)
memcpy(host, buf->data + 4 + 1, name_len);
host[name_len] = '\0';
sprintf(port, "%d", p);
struct sockaddr_storage storage;
memset(&storage, 0, sizeof(struct sockaddr_storage));
// resolve domain so we can bypass domain with geoip
if (get_sockaddr(host, port, &storage, 0, ipv6first) != -1) {
switch(((struct sockaddr*)&storage)->sa_family) {
case AF_INET: {
struct sockaddr_in *addr_in = (struct sockaddr_in *)&storage;
dns_ntop(AF_INET, &(addr_in->sin_addr), ip, INET_ADDRSTRLEN);
break;
}
case AF_INET6: {
struct sockaddr_in6 *addr_in6 = (struct sockaddr_in6 *)&storage;
dns_ntop(AF_INET6, &(addr_in6->sin6_addr), ip, INET6_ADDRSTRLEN);
break;
}
default:
break;
}
}
}
} else if (atyp == 4) {
// IP V6

Loading…
Cancel
Save