Kaynağa Gözat

parameterize the loudness of get_interface_address()

svn:r8358
Roger Dingledine 17 yıl önce
ebeveyn
işleme
9af3175687
4 değiştirilmiş dosya ile 11 ekleme ve 9 silme
  1. 6 4
      src/common/util.c
  2. 1 1
      src/common/util.h
  3. 2 2
      src/or/config.c
  4. 2 2
      src/or/connection.c

+ 6 - 4
src/common/util.c

@@ -1770,7 +1770,7 @@ is_plausible_address(const char *name)
  * failure.
  */
 int
-get_interface_address(uint32_t *addr)
+get_interface_address(int severity, uint32_t *addr)
 {
   int sock=-1, r=-1;
   struct sockaddr_in target_addr, my_addr;
@@ -1782,7 +1782,8 @@ get_interface_address(uint32_t *addr)
   sock = socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
   if (sock < 0) {
     int e = tor_socket_errno(-1);
-    log_warn(LD_NET, "unable to create socket: %s", tor_socket_strerror(e));
+    log_fn(severity, LD_NET, "unable to create socket: %s",
+           tor_socket_strerror(e));
     goto err;
   }
 
@@ -1796,14 +1797,15 @@ get_interface_address(uint32_t *addr)
 
   if (connect(sock,(struct sockaddr *)&target_addr,sizeof(target_addr))<0) {
     int e = tor_socket_errno(sock);
-    log_warn(LD_NET, "connect() failed: %s", tor_socket_strerror(e));
+    log_fn(severity, LD_NET, "connect() failed: %s", tor_socket_strerror(e));
     goto err;
   }
 
   /* XXXX Can this be right on IPv6 clients? */
   if (getsockname(sock, (struct sockaddr*)&my_addr, &my_addr_len)) {
     int e = tor_socket_errno(sock);
-    log_warn(LD_NET, "getsockname() failed: %s", tor_socket_strerror(e));
+    log_fn(severity, LD_NET, "getsockname() failed: %s",
+           tor_socket_strerror(e));
     goto err;
   }
 

+ 1 - 1
src/common/util.h

@@ -200,7 +200,7 @@ int addr_mask_get_bits(uint32_t mask);
 int tor_inet_ntoa(struct in_addr *in, char *buf, size_t buf_len);
 char *tor_dup_addr(uint32_t addr) ATTR_MALLOC;
 int is_plausible_address(const char *name);
-int get_interface_address(uint32_t *addr);
+int get_interface_address(int severity, uint32_t *addr);
 
 /* Process helpers */
 void start_daemon(void);

+ 2 - 2
src/or/config.c

@@ -1638,7 +1638,7 @@ resolve_my_address(int warn_severity, or_options_t *options,
       log_fn(notice_severity, LD_CONFIG,
              "Could not resolve guessed local hostname '%s'. "
              "Trying something else.", hostname);
-      if (get_interface_address(&interface_ip)) {
+      if (get_interface_address(warn_severity, &interface_ip)) {
         log_fn(warn_severity, LD_CONFIG,
                "Could not get local interface IP address. Failing.");
         return -1;
@@ -1661,7 +1661,7 @@ resolve_my_address(int warn_severity, or_options_t *options,
                "resolves to a private IP address (%s).  Trying something "
                "else.", hostname, tmpbuf);
 
-        if (get_interface_address(&interface_ip)) {
+        if (get_interface_address(warn_severity, &interface_ip)) {
           log_fn(warn_severity, LD_CONFIG,
                  "Could not get local interface IP address. Too bad.");
         } else if (is_internal_IP(interface_ip, 0)) {

+ 2 - 2
src/or/connection.c

@@ -1999,7 +1999,7 @@ client_check_address_changed(int sock)
   uint32_t *ip;
 
   if (!last_interface_ip)
-    get_interface_address(&last_interface_ip);
+    get_interface_address(LOG_INFO, &last_interface_ip);
   if (!outgoing_addrs)
     outgoing_addrs = smartlist_create();
 
@@ -2017,7 +2017,7 @@ client_check_address_changed(int sock)
 
   /* Uh-oh.  We haven't connected from this address before. Has the interface
    * address changed? */
-  if (get_interface_address(&iface_ip)<0)
+  if (get_interface_address(LOG_INFO, &iface_ip)<0)
     return;
   ip = tor_malloc(sizeof(uint32_t));
   *ip = ip_out;