Ver código fonte

use tor_lookup_hostname for binding local addresses too

svn:r1744
Roger Dingledine 20 anos atrás
pai
commit
dd335d9bb2
1 arquivos alterados com 1 adições e 6 exclusões
  1. 1 6
      src/or/connection.c

+ 1 - 6
src/or/connection.c

@@ -257,7 +257,6 @@ void connection_expire_held_open(void)
 
 int connection_create_listener(char *bindaddress, uint16_t bindport, int type) {
   struct sockaddr_in bindaddr; /* where to bind */
-  struct hostent *rent;
   connection_t *conn;
   int s; /* the socket we're going to make */
   int one=1;
@@ -265,14 +264,10 @@ int connection_create_listener(char *bindaddress, uint16_t bindport, int type) {
   memset(&bindaddr,0,sizeof(struct sockaddr_in));
   bindaddr.sin_family = AF_INET;
   bindaddr.sin_port = htons(bindport);
-  rent = gethostbyname(bindaddress);
-  if (!rent) {
+  if(tor_lookup_hostname(bindaddress, &(bindaddr.sin_addr.s_addr)) != 0) {
     log_fn(LOG_WARN,"Can't resolve BindAddress %s",bindaddress);
     return -1;
   }
-  if(rent->h_length != 4)
-    return -1; /* XXX complain */
-  memcpy(&(bindaddr.sin_addr.s_addr),rent->h_addr,rent->h_length);
 
   s = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
   if (s < 0) {