Procházet zdrojové kódy

when the user asked for a rendezvous port that the hidden service
didn't want to provide, we were sending an IP address back along
with the end cell. fortunately, it was zero. but stop that anyway.


svn:r5022

Roger Dingledine před 20 roky
rodič
revize
8b0d37096b
1 změnil soubory, kde provedl 2 přidání a 3 odebrání
  1. 2 3
      src/or/connection_edge.c

+ 2 - 3
src/or/connection_edge.c

@@ -190,9 +190,8 @@ connection_edge_end(connection_t *conn, char reason, crypt_path_t *cpath_layer)
   }
 
   payload[0] = reason;
-  if (reason == END_STREAM_REASON_EXITPOLICY) {
-    /* this is safe even for rend circs, because they never fail
-     * because of exitpolicy */
+  if (reason == END_STREAM_REASON_EXITPOLICY &&
+      !connection_edge_is_rendezvous_stream(conn)) {
     set_uint32(payload+1, htonl(conn->addr));
     set_uint32(payload+5, htonl(MAX_DNS_ENTRY_AGE)); /* XXXXfill with a real TTL*/
     payload_len += 8;