[tor-commits] [tor/master] Add a TOR_SOCKET_T_FORMAT construction for logging sockets.

nickm at torproject.org nickm at torproject.org
Fri Dec 7 19:16:51 UTC 2012


commit 1bfda600c338cd8f7d6b9acc7613b5567e6ee03f
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Nov 2 14:22:21 2012 -0400

    Add a TOR_SOCKET_T_FORMAT construction for logging sockets.
    
    We need this since win64 has a 64-bit SOCKET type.
    
    Based on a patch from yayooo for 7260, forward-ported to 0.2.4.
---
 src/common/compat.h      |   15 +++++++++++++++
 src/or/connection.c      |    2 +-
 src/or/connection_edge.c |   14 +++++++++-----
 src/or/connection_or.c   |   20 ++++++++++++--------
 src/or/control.c         |    3 ++-
 src/or/cpuworker.c       |    2 +-
 src/or/dns.c             |   17 ++++++++++-------
 src/or/main.c            |    2 +-
 src/or/relay.c           |    6 ++++--
 9 files changed, 55 insertions(+), 26 deletions(-)

diff --git a/src/common/compat.h b/src/common/compat.h
index 9ad03d3..9c544fa 100644
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@ -239,6 +239,19 @@ size_t strlcpy(char *dst, const char *src, size_t siz) ATTR_NONNULL((1,2));
 #define I64_FORMAT "%lld"
 #endif
 
+#if (SIZEOF_INTPTR_T == SIZEOF_INT)
+#define INTPTR_T_FORMAT "%d"
+#define INTPTR_PRINTF_ARG(x) ((int)(x))
+#elif (SIZEOF_INTPTR_T == SIZEOF_LONG)
+#define INTPTR_T_FORMAT "%ld"
+#define INTPTR_PRINTF_ARG(x) ((long)(x))
+#elif (SIZEOF_INTPTR_T == 8)
+#define INTPTR_T_FORMAT I64_FORMAT
+#define INTPTR_PRINTF_ARG(x) I64_PRINTF_ARG(x)
+#else
+#error Unknown: SIZEOF_INTPTR_T
+#endif
+
 /** Represents an mmaped file. Allocated via tor_mmap_file; freed with
  * tor_munmap_file. */
 typedef struct tor_mmap_t {
@@ -403,11 +416,13 @@ typedef int socklen_t;
  * any inadvertant checks for the socket being <= 0 or > 0 will probably
  * still work. */
 #define tor_socket_t intptr_t
+#define TOR_SOCKET_T_FORMAT INTPTR_T_FORMAT
 #define SOCKET_OK(s) ((SOCKET)(s) != INVALID_SOCKET)
 #define TOR_INVALID_SOCKET INVALID_SOCKET
 #else
 /** Type used for a network socket. */
 #define tor_socket_t int
+#define TOR_SOCKET_T_FORMAT "%d"
 /** Macro: true iff 's' is a possible value for a valid initialized socket. */
 #define SOCKET_OK(s) ((s) >= 0)
 /** Error/uninitialized value for a tor_socket_t. */
diff --git a/src/or/connection.c b/src/or/connection.c
index 1fbce41..2904bbf 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -1460,7 +1460,7 @@ connection_connect(connection_t *conn, const char *address,
 
   /* it succeeded. we're connected. */
   log_fn(inprogress?LOG_DEBUG:LOG_INFO, LD_NET,
-         "Connection to %s:%u %s (sock %d).",
+         "Connection to %s:%u %s (sock "TOR_SOCKET_T_FORMAT").",
          escaped_safe_str_client(address),
          port, inprogress?"in progress":"established", s);
   conn->s = s;
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index 4d528a8..ec3ac72 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -124,7 +124,8 @@ connection_edge_reached_eof(edge_connection_t *conn)
     /* it still has stuff to process. don't let it die yet. */
     return 0;
   }
-  log_info(LD_EDGE,"conn (fd %d) reached eof. Closing.", conn->base_.s);
+  log_info(LD_EDGE,"conn (fd "TOR_SOCKET_T_FORMAT") reached eof. Closing.",
+           conn->base_.s);
   if (!conn->base_.marked_for_close) {
     /* only mark it if not already marked. it's possible to
      * get the 'end' right around when the client hangs up on us. */
@@ -313,11 +314,12 @@ connection_edge_end(edge_connection_t *conn, uint8_t reason)
   }
 
   if (circ && !circ->marked_for_close) {
-    log_debug(LD_EDGE,"Sending end on conn (fd %d).",conn->base_.s);
+    log_debug(LD_EDGE,"Sending end on conn (fd "TOR_SOCKET_T_FORMAT").",
+              conn->base_.s);
     connection_edge_send_command(conn, RELAY_COMMAND_END,
                                  payload, payload_len);
   } else {
-    log_debug(LD_EDGE,"No circ to send end on conn (fd %d).",
+    log_debug(LD_EDGE,"No circ to send end on conn (fd "TOR_SOCKET_T_FORMAT").",
               conn->base_.s);
   }
 
@@ -2619,7 +2621,8 @@ connection_ap_handshake_send_begin(entry_connection_t *ap_conn)
   edge_conn->package_window = STREAMWINDOW_START;
   edge_conn->deliver_window = STREAMWINDOW_START;
   base_conn->state = AP_CONN_STATE_CONNECT_WAIT;
-  log_info(LD_APP,"Address/port sent, ap socket %d, n_circ_id %d",
+  log_info(LD_APP,"Address/port sent, ap socket "TOR_SOCKET_T_FORMAT
+           ", n_circ_id %d",
            base_conn->s, circ->base_.n_circ_id);
   control_event_stream_status(ap_conn, STREAM_EVENT_SENT_CONNECT, 0);
 
@@ -2720,7 +2723,8 @@ connection_ap_handshake_send_resolve(entry_connection_t *ap_conn)
   tor_free(base_conn->address); /* Maybe already set by dnsserv. */
   base_conn->address = tor_strdup("(Tor_internal)");
   base_conn->state = AP_CONN_STATE_RESOLVE_WAIT;
-  log_info(LD_APP,"Address sent for resolve, ap socket %d, n_circ_id %d",
+  log_info(LD_APP,"Address sent for resolve, ap socket "TOR_SOCKET_T_FORMAT
+           ", n_circ_id %d",
            base_conn->s, circ->base_.n_circ_id);
   control_event_stream_status(ap_conn, STREAM_EVENT_NEW, 0);
   control_event_stream_status(ap_conn, STREAM_EVENT_SENT_RESOLVE, 0);
diff --git a/src/or/connection_or.c b/src/or/connection_or.c
index 9cd56bb..4f86bf7 100644
--- a/src/or/connection_or.c
+++ b/src/or/connection_or.c
@@ -849,7 +849,7 @@ connection_or_group_set_badness(or_connection_t *head, int force)
           < now) {
       log_info(LD_OR,
                "Marking OR conn to %s:%d as too old for new circuits "
-               "(fd %d, %d secs old).",
+               "(fd "TOR_SOCKET_T_FORMAT", %d secs old).",
                or_conn->base_.address, or_conn->base_.port, or_conn->base_.s,
                (int)(now - or_conn->base_.timestamp_created));
       connection_or_mark_bad_for_new_circs(or_conn);
@@ -880,7 +880,7 @@ connection_or_group_set_badness(or_connection_t *head, int force)
        * and this one is open but not canonical.  Mark it bad. */
       log_info(LD_OR,
                "Marking OR conn to %s:%d as unsuitable for new circuits: "
-               "(fd %d, %d secs old).  It is not canonical, and we have "
+               "(fd "TOR_SOCKET_T_FORMAT", %d secs old).  It is not canonical, and we have "
                "another connection to that OR that is.",
                or_conn->base_.address, or_conn->base_.port, or_conn->base_.s,
                (int)(now - or_conn->base_.timestamp_created));
@@ -928,8 +928,9 @@ connection_or_group_set_badness(or_connection_t *head, int force)
       if (best->is_canonical) {
         log_info(LD_OR,
                  "Marking OR conn to %s:%d as unsuitable for new circuits: "
-                 "(fd %d, %d secs old).  We have a better canonical one "
-                 "(fd %d; %d secs old).",
+                 "(fd "TOR_SOCKET_T_FORMAT", %d secs old). "
+                 "We have a better canonical one "
+                 "(fd "TOR_SOCKET_T_FORMAT"; %d secs old).",
                  or_conn->base_.address, or_conn->base_.port, or_conn->base_.s,
                  (int)(now - or_conn->base_.timestamp_created),
                  best->base_.s, (int)(now - best->base_.timestamp_created));
@@ -938,8 +939,9 @@ connection_or_group_set_badness(or_connection_t *head, int force)
                                    &best->real_addr, CMP_EXACT)) {
         log_info(LD_OR,
                  "Marking OR conn to %s:%d as unsuitable for new circuits: "
-                 "(fd %d, %d secs old).  We have a better one with the "
-                 "same address (fd %d; %d secs old).",
+                 "(fd "TOR_SOCKET_T_FORMAT", %d secs old).  We have a better "
+                 "one with the "
+                 "same address (fd "TOR_SOCKET_T_FORMAT"; %d secs old).",
                  or_conn->base_.address, or_conn->base_.port, or_conn->base_.s,
                  (int)(now - or_conn->base_.timestamp_created),
                  best->base_.s, (int)(now - best->base_.timestamp_created));
@@ -1241,7 +1243,8 @@ connection_tls_start_handshake(or_connection_t *conn, int receiving)
   }
 #endif
   connection_start_reading(TO_CONN(conn));
-  log_debug(LD_HANDSHAKE,"starting TLS handshake on fd %d", conn->base_.s);
+  log_debug(LD_HANDSHAKE,"starting TLS handshake on fd "TOR_SOCKET_T_FORMAT,
+            conn->base_.s);
   note_crypto_pk_op(receiving ? TLS_HANDSHAKE_S : TLS_HANDSHAKE_C);
 
   IF_HAS_BUFFEREVENT(TO_CONN(conn), {
@@ -1898,7 +1901,8 @@ connection_or_process_cells_from_inbuf(or_connection_t *conn)
 
   while (1) {
     log_debug(LD_OR,
-              "%d: starting, inbuf_datalen %d (%d pending in tls object).",
+              TOR_SOCKET_T_FORMAT": starting, inbuf_datalen %d "
+              "(%d pending in tls object).",
               conn->base_.s,(int)connection_get_inbuf_len(TO_CONN(conn)),
               tor_tls_get_pending_bytes(conn->tls));
     if (connection_fetch_var_cell_from_buf(conn, &var_cell)) {
diff --git a/src/or/control.c b/src/or/control.c
index ad2f278..ff29b90 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -1220,7 +1220,8 @@ handle_control_authenticate(control_connection_t *conn, uint32_t len,
   connection_mark_for_close(TO_CONN(conn));
   return 0;
  ok:
-  log_info(LD_CONTROL, "Authenticated control connection (%d)", conn->base_.s);
+  log_info(LD_CONTROL, "Authenticated control connection ("TOR_SOCKET_T_FORMAT
+           ")", conn->base_.s);
   send_control_done(conn);
   conn->base_.state = CONTROL_CONN_STATE_OPEN;
   tor_free(password);
diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c
index 119892d..2164e52 100644
--- a/src/or/cpuworker.c
+++ b/src/or/cpuworker.c
@@ -262,7 +262,7 @@ cpuworker_main(void *data)
         log_info(LD_OR,
                  "CPU worker exiting because of error on connection to Tor "
                  "process.");
-        log_info(LD_OR,"(Error on %d was %s)",
+        log_info(LD_OR,"(Error on "TOR_SOCKET_T_FORMAT" was %s)",
                  fd, tor_socket_strerror(tor_socket_errno(fd)));
       }
       goto end;
diff --git a/src/or/dns.c b/src/or/dns.c
index 5e1d0b4..aafe5be 100644
--- a/src/or/dns.c
+++ b/src/or/dns.c
@@ -763,12 +763,13 @@ dns_resolve_impl(edge_connection_t *exitconn, int is_resolve,
         pending_connection->next = resolve->pending_connections;
         resolve->pending_connections = pending_connection;
         *made_connection_pending_out = 1;
-        log_debug(LD_EXIT,"Connection (fd %d) waiting for pending DNS "
-                  "resolve of %s", exitconn->base_.s,
+        log_debug(LD_EXIT,"Connection (fd "TOR_SOCKET_T_FORMAT") waiting "
+                  "for pending DNS resolve of %s", exitconn->base_.s,
                   escaped_safe_str(exitconn->base_.address));
         return 0;
       case CACHE_STATE_CACHED_VALID:
-        log_debug(LD_EXIT,"Connection (fd %d) found cached answer for %s",
+        log_debug(LD_EXIT,"Connection (fd "TOR_SOCKET_T_FORMAT") found "
+                  "cached answer for %s",
                   exitconn->base_.s,
                   escaped_safe_str(resolve->address));
         exitconn->address_ttl = resolve->ttl;
@@ -780,7 +781,8 @@ dns_resolve_impl(edge_connection_t *exitconn, int is_resolve,
         }
         return 1;
       case CACHE_STATE_CACHED_FAILED:
-        log_debug(LD_EXIT,"Connection (fd %d) found cached error for %s",
+        log_debug(LD_EXIT,"Connection (fd "TOR_SOCKET_T_FORMAT") found cached "
+                  "error for %s",
                   exitconn->base_.s,
                   escaped_safe_str(exitconn->base_.address));
         return -1;
@@ -891,7 +893,7 @@ connection_dns_remove(edge_connection_t *conn)
   if (pend->conn == conn) {
     resolve->pending_connections = pend->next;
     tor_free(pend);
-    log_debug(LD_EXIT, "First connection (fd %d) no longer waiting "
+    log_debug(LD_EXIT, "First connection (fd "TOR_SOCKET_T_FORMAT") no longer waiting "
               "for resolve of %s",
               conn->base_.s,
               escaped_safe_str(conn->base_.address));
@@ -903,7 +905,8 @@ connection_dns_remove(edge_connection_t *conn)
         pend->next = victim->next;
         tor_free(victim);
         log_debug(LD_EXIT,
-                  "Connection (fd %d) no longer waiting for resolve of %s",
+                  "Connection (fd "TOR_SOCKET_T_FORMAT") no longer waiting "
+                  "for resolve of %s",
                   conn->base_.s, escaped_safe_str(conn->base_.address));
         return; /* more are pending */
       }
@@ -1607,7 +1610,7 @@ launch_wildcard_check(int min_len, int max_len, const char *suffix)
 /** Launch attempts to resolve a bunch of known-good addresses (configured in
  * ServerDNSTestAddresses).  [Callback for a libevent timer] */
 static void
-launch_test_addresses(int fd, short event, void *args)
+launch_test_addresses(evutil_socket_t fd, short event, void *args)
 {
   const or_options_t *options = get_options();
   struct evdns_request *req;
diff --git a/src/or/main.c b/src/or/main.c
index 0ba28db..d4c84fb 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -812,7 +812,7 @@ conn_close_if_marked(int i)
   }
 #endif
 
-  log_debug(LD_NET,"Cleaning up connection (fd %d).",conn->s);
+  log_debug(LD_NET,"Cleaning up connection (fd "TOR_SOCKET_T_FORMAT").",conn->s);
 
   /* If the connection we are about to close was trying to connect to
   a proxy server and failed, the client won't be able to use that
diff --git a/src/or/relay.c b/src/or/relay.c
index bd99d91..7955f37 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -1151,7 +1151,8 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ,
         return 0;
       }
 /* XXX add to this log_fn the exit node's nickname? */
-      log_info(domain,"%d: end cell (%s) for stream %d. Removing stream.",
+      log_info(domain,TOR_SOCKET_T_FORMAT": end cell (%s) for stream %d. "
+               "Removing stream.",
                conn->base_.s,
                stream_end_reason_to_string(reason),
                conn->stream_id);
@@ -1473,7 +1474,8 @@ connection_edge_package_raw_inbuf(edge_connection_t *conn, int package_partial,
     connection_fetch_from_buf(payload, length, TO_CONN(conn));
   }
 
-  log_debug(domain,"(%d) Packaging %d bytes (%d waiting).", conn->base_.s,
+  log_debug(domain,TOR_SOCKET_T_FORMAT": Packaging %d bytes (%d waiting).",
+            conn->base_.s,
             (int)length, (int)connection_get_inbuf_len(TO_CONN(conn)));
 
   if (sending_optimistically && !sending_from_optimistic) {





More information about the tor-commits mailing list