Преглед изворни кода

make 'connected' cells include the resolved IP

svn:r1143
Roger Dingledine пре 22 година
родитељ
комит
737b2a0bf1
2 измењених фајлова са 5 додато и 3 уклоњено
  1. 4 2
      doc/TODO
  2. 1 1
      src/or/connection_edge.c

+ 4 - 2
doc/TODO

@@ -12,9 +12,11 @@ ARMA    - arma claims
         X Abandoned
         X Abandoned
 
 
 Bugs:
 Bugs:
-        - client-side dns cache doesn't appear to be getting populated
+        - should maybe make clients exit(1) when bad things happen?
+          e.g. clock skew.
+        o client-side dns cache doesn't appear to be getting populated
           by 'connected' cells. In fact, the 'connected' cells don't even
           by 'connected' cells. In fact, the 'connected' cells don't even
-          include the IP. Oops.
+          include the IP.
         o When it can't resolve any dirservers, it is useless from then on.
         o When it can't resolve any dirservers, it is useless from then on.
           We should make it reload the RouterFile if it has no dirservers.
           We should make it reload the RouterFile if it has no dirservers.
         o Sometimes it picks a middleman node as the exit for a circuit.
         o Sometimes it picks a middleman node as the exit for a circuit.

+ 1 - 1
src/or/connection_edge.c

@@ -426,7 +426,7 @@ int connection_edge_finished_flushing(connection_t *conn) {
       /* deliver a 'connected' relay cell back through the circuit. */
       /* deliver a 'connected' relay cell back through the circuit. */
       *(uint32_t*)connected_payload = htonl(conn->addr);
       *(uint32_t*)connected_payload = htonl(conn->addr);
       if(connection_edge_send_command(conn, circuit_get_by_conn(conn),
       if(connection_edge_send_command(conn, circuit_get_by_conn(conn),
-         RELAY_COMMAND_CONNECTED, NULL, 0, NULL) < 0)
+         RELAY_COMMAND_CONNECTED, connected_payload, 4, NULL) < 0)
         return 0; /* circuit is closed, don't continue */
         return 0; /* circuit is closed, don't continue */
       assert(conn->package_window > 0);
       assert(conn->package_window > 0);
       return connection_edge_process_inbuf(conn); /* in case the server has written anything */
       return connection_edge_process_inbuf(conn); /* in case the server has written anything */