|  | @@ -12,8 +12,6 @@ static int connection_ap_handshake_process_socks(connection_t *conn);
 | 
	
		
			
				|  |  |  static int connection_ap_handshake_attach_circuit(connection_t *conn);
 | 
	
		
			
				|  |  |  static int connection_ap_handshake_attach_circuit_helper(connection_t *conn);
 | 
	
		
			
				|  |  |  static void connection_ap_handshake_send_begin(connection_t *ap_conn, circuit_t *circ);
 | 
	
		
			
				|  |  | -static void connection_ap_handshake_socks_reply(connection_t *conn, char *reply,
 | 
	
		
			
				|  |  | -                                                int replylen, char success);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static int connection_exit_begin_conn(cell_t *cell, circuit_t *circ);
 | 
	
		
			
				|  |  |  static void connection_edge_consider_sending_sendme(connection_t *conn);
 | 
	
	
		
			
				|  | @@ -284,6 +282,7 @@ int connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, connection
 | 
	
		
			
				|  |  |               (int)(time(NULL) - conn->timestamp_lastread));
 | 
	
		
			
				|  |  |        circuit_log_path(LOG_INFO,circ);
 | 
	
		
			
				|  |  |        connection_ap_handshake_socks_reply(conn, NULL, 0, 1);
 | 
	
		
			
				|  |  | +      conn->socks_request->has_finished = 1;
 | 
	
		
			
				|  |  |        return 0;
 | 
	
		
			
				|  |  |      } else {
 | 
	
		
			
				|  |  |        log_fn(LOG_WARN,"Got an unexpected relay command %d, in state %d (%s). Closing.",
 | 
	
	
		
			
				|  | @@ -704,6 +703,8 @@ static int connection_ap_handshake_process_socks(connection_t *conn) {
 | 
	
		
			
				|  |  |      } else {
 | 
	
		
			
				|  |  |        log_fn(LOG_DEBUG,"socks handshake not all here yet.");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    if (sockshere == -1)
 | 
	
		
			
				|  |  | +      conn->socks_request->has_finished = 1;
 | 
	
		
			
				|  |  |      return sockshere;
 | 
	
		
			
				|  |  |    } /* else socks handshake is done, continue processing */
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -848,8 +849,8 @@ static void connection_ap_handshake_send_begin(connection_t *ap_conn, circuit_t
 | 
	
		
			
				|  |  |    return;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void connection_ap_handshake_socks_reply(connection_t *conn, char *reply,
 | 
	
		
			
				|  |  | -                                               int replylen, char success) {
 | 
	
		
			
				|  |  | +void connection_ap_handshake_socks_reply(connection_t *conn, char *reply,
 | 
	
		
			
				|  |  | +                                         int replylen, char success) {
 | 
	
		
			
				|  |  |    char buf[256];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if(replylen) { /* we already have a reply in mind */
 |