]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Have edge connections use fetch_from_evbuffer_socks when appropriate.
authorNick Mathewson <nickm@torproject.org>
Tue, 4 Aug 2009 16:30:53 +0000 (09:30 -0700)
committerNick Mathewson <nickm@torproject.org>
Mon, 27 Sep 2010 16:29:42 +0000 (12:29 -0400)
src/or/connection_edge.c

index 03aded388da774d3737589824bf7a3b78240ea09..1488f5a8942ccc4aaeb2865cd49dde10b475bbad 100644 (file)
@@ -1895,8 +1895,14 @@ connection_ap_handshake_process_socks(edge_connection_t *conn)
 
   log_debug(LD_APP,"entered.");
 
-  sockshere = fetch_from_buf_socks(conn->_base.inbuf, socks,
-                                   options->TestSocks, options->SafeSocks);
+  IF_HAS_BUFFEREVENT(TO_CONN(conn), {
+    struct evbuffer *input = bufferevent_get_input(conn->_base.bufev);
+    sockshere = fetch_from_evbuffer_socks(input, socks,
+                                     options->TestSocks, options->SafeSocks);
+  }) ELSE_IF_NO_BUFFEREVENT {
+    sockshere = fetch_from_buf_socks(conn->_base.inbuf, socks,
+                                     options->TestSocks, options->SafeSocks);
+  };
   if (sockshere == 0) {
     if (socks->replylen) {
       connection_write_to_buf(socks->reply, socks->replylen, TO_CONN(conn));