Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#848 No connection (socks4a regression in 3.0.18)

version 3.0.18
closed-fixed
Fabian Keil
None
5
2014-08-22
2011-12-15
qqqqqw
No

I use Privoxy with Tor and i have upgraded to Privoxy 3.0.18 (from 3.0.17).
Then i have modified config.txt (i add forward-socks4a / localhost:9050 . and enable debug 1, 1024, 4096 and 8192).
After the upgrade i can see the url requests in Privoxy window, but Privoxy don't send the requests to Tor.
I think that the problem is Privoxy because if i return to Privoxy 3.0.17 i have no problem (i'm writing with Privoxy 3.0.17).
I use Privoxy from years, but i can not understand what is the problem, maybe a new configuration in Privoxy 3.0.18?
Is some day that i see in config.txt for a problem, but nothing.
Please help me

Discussion

  • Lee
    Lee
    2011-12-15

    • status: open --> pending
     
  • Lee
    Lee
    2011-12-15

    I just tried privoxy 3.0.18 with tor & it works for me

    Start privoxy 3.0.18, and browse to
    http://config.privoxy.org/show-status

    Scroll down a bit and there's a section that starts off with
    The following options were given in the config file:

    make sure there's a "forward-socks4a / 127.0.0.1:9050 . " line there. If not, right click on the privoxy taskbar icon & left click on Edit... / Main Configuration. That should start notepad to edit your privoxy 3.0.18 config file. Add a "forward-socks4a / 127.0.0.1:9050 . " line after the
    user-manual ./doc/user-manual/
    line.

    Lee

     
  • qqqqqw
    qqqqqw
    2011-12-15

    Thank you Ler

    In show status i have forward-socks4a / localhost:9050 .

    I copy and paste my config show in http://config.privoxy.org/show-status
    The following options were given in the config file:
    forward-socks4a / localhost:9050 .
    forward 192.168.0.*:80 .
    user-manual ./doc/user-manual/
    confdir .
    logdir .
    actionsfile match-all.action
    actionsfile default.action
    actionsfile user.action
    actionsfile user2.action
    filterfile default.filter
    filterfile user.filter
    debug 1
    debug 1024
    debug 4096
    debug 8192
    debug 128
    listen-address 127.0.0.1:8118
    toggle 1
    enable-remote-toggle 0
    enable-remote-http-toggle 0
    enable-edit-actions 0
    enforce-blocks 0
    buffer-limit 4096
    forwarded-connect-retries 1
    accept-intercepted-requests 0
    allow-cgi-request-crunching 0
    split-large-forms 0
    keep-alive-timeout 5
    socket-timeout 300

    I want to underline a thing that i have not said before:
    If i forward through Privoxy 3.0.18 and Tor is close i get immediately the following error:
    "Privoxy was unable to socks4a-forward your request https://sourceforge.net:443/ through localhost: No error"
    If i forward through Privoxy 3.0.18 and Tor is open i get after some time (not immediately) the following error:
    "Privoxy was unable to socks4a-forward your request https://sourceforge.net:443/ through localhost: SOCKS4 negotiation got aborted by the server"

    So Privoxy can see if Tor is open or close, but don't send correctly the request because if i put Privoxy 3.0.17 all work fine.
    My problemm is that i don't understant why this problem is only with 3.0.18 and what cause the problem.

     
  • qqqqqw
    qqqqqw
    2011-12-15

    • status: pending --> open
     
  • Lee
    Lee
    2011-12-17

    I still can't duplicate the problem :(
    What OS and browser are you using? Does your machine have IPv6 enabled?

    Can you try changing
    forward-socks4a / localhost:9050 .
    to
    forward-socks5 / localhost:9050 .
    and see if that makes any difference?
    Both forward-socks4a and forward-socks5 work for me, but it's an easy test to try..

    If that doesn't fix it, go back to 3.0.17, get privoxy-3.0.18.zip from sourceforge and extract only privoxy.exe from the zip file to your privoxy 3.0.17 directory. That will show if it's privoxy or something in the 3.0.18 config file[s] that isn't working with tor

    Lee

     
  • Lee
    Lee
    2011-12-17

    • status: open --> pending
     
  • qqqqqw
    qqqqqw
    2011-12-17

    • status: pending --> open
     
  • qqqqqw
    qqqqqw
    2011-12-17

    Thank you Lee

    I'm on Win xp and i have try with Opera 11.60 and Internet explorer 6, no IPv6

    If in Privoxy 3.0.17 directory i replace only privoxy.exe with 3.0.18, this don't work (in Opera and in IE). So is not a config problem

    But good news
    If in config.txt in Privoxy 3.0.18 directory i change
    forward-socks4a / localhost:9050 .
    to
    forward-socks5 / localhost:9050 .
    Privoxy WORKS
    Yes, if i ONLY change 4a with 5, works
    (if i rechange 5 with 4a DON'T works)
    So in my opinion is a bug in Privoxy, i have not other explanation.
    (If you can't duplicate the problem, you can say me some test to track the problem, if you want)

     
  • Fabian Keil
    Fabian Keil
    2011-12-18

    • status: open --> pending
     
  • Fabian Keil
    Fabian Keil
    2011-12-18

    Please increase the debug level using the directives described at:
    http://www.privoxy.org/user-manual/contact.html#CONTACT-BUGS
    and attach a log excerpt that shows a complete failed request.

    It might also help to check Tor's log file for complaints.

     
  • Lee
    Lee
    2011-12-18

    Well! I can duplicate the problem using privoxy.exe from the released privoxy-3.0.18.zip

    I can find only one place in the code that produces the message
    "SOCKS4 negotiation got aborted by the server"
    and I've got it commented out in my version of privoxy.

    Fabian,
    my line 811 in gateway.c is
    else if ( 0 && (!data_is_available(sfd, csp->config->socket_timeout)) ) /* LR : skip call to data_is_available */

    Remember our discussion about speeding up privoxy and how removing the call to data_is_available helped? I haven't noticed any problems with that block of code commented out & I'm guessing that it makes privoxy a tad faster not doing the extra work.

    thoughts?

    Lee

     
  • Lee
    Lee
    2011-12-18

    • status: pending --> open
     
  • qqqqqw
    qqqqqw
    2011-12-18

    My Privoxy log when i try to connect to http://sourceforge.net with this debug enable
    debug 1
    debug 2
    debug 4
    debug 8
    debug 128
    debug 256
    debug 512
    debug 1024
    debug 4096
    debug 8192
    debug 32768

    2011-12-18 19:11:43.899 000005dc Info: Privoxy version 3.0.18
    2011-12-18 19:11:43.899 000005dc Info: Program name: C:\Programmi\Privoxy\privoxy.exe
    2011-12-18 19:11:43.909 000005dc Info: Loading filter file: .\default.filter
    2011-12-18 19:11:43.929 000005dc Info: Loading filter file: .\user.filter
    2011-12-18 19:11:43.929 000005dc Info: Loading actions file: .\match-all.action
    2011-12-18 19:11:43.940 000005dc Info: Loading actions file: .\default.action
    2011-12-18 19:11:43.980 000005dc Info: Loading actions file: .\user.action
    2011-12-18 19:11:44.010 000005dc Info: Loading actions file: .\user2.action
    2011-12-18 19:11:44.100 000005dc Connect: Initialized 100 socket slots.
    2011-12-18 19:11:44.110 000005dc Info: Listening on port 8118 on IP address 127.0.0.1
    2011-12-18 19:11:44.120 000005dc Connect: Listening for new connections ...
    2011-12-18 19:11:54.915 000005dc Connect: accepted connection from 127.0.0.1 on socket 164
    2011-12-18 19:11:54.955 000005dc Connect: Listening for new connections ...
    2011-12-18 19:11:55.015 00000730 Received: from socket 164: GET http://sourceforge.net/ HTTP/1.1\x0d\x0aUser-Agent: Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60\x0d\x0aHost: sourceforge.net\x0d\x0aAccept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\x0d\x0aAccept-Language: en\x0d\x0aAccept-Encoding: gzip, deflate\x0d\x0aProxy-Connection: Keep-Alive\x0d\x0a\x0d\x0a
    2011-12-18 19:11:55.045 00000730 Header: scan: GET http://sourceforge.net/ HTTP/1.1
    2011-12-18 19:11:55.055 00000730 Header: scan: User-Agent: Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60
    2011-12-18 19:11:55.055 00000730 Header: scan: Host: sourceforge.net
    2011-12-18 19:11:55.055 00000730 Header: scan: Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    2011-12-18 19:11:55.066 00000730 Header: scan: Accept-Language: en
    2011-12-18 19:11:55.066 00000730 Header: scan: Accept-Encoding: gzip, deflate
    2011-12-18 19:11:55.076 00000730 Header: scan: Proxy-Connection: Keep-Alive
    2011-12-18 19:11:55.086 00000730 Header: crumble crunched: Proxy-Connection: Keep-Alive!
    2011-12-18 19:11:55.086 00000730 Header: Crunching Accept-Language!
    2011-12-18 19:11:55.086 00000730 Connect: Complete client request received.
    2011-12-18 19:11:55.086 00000730 Header: New HTTP Request-Line: GET / HTTP/1.1
    2011-12-18 19:11:55.086 00000730 Request: sourceforge.net/
    2011-12-18 19:11:55.086 00000730 Connect: to sourceforge.net
    2011-12-18 19:11:55.116 00000730 Connect: Connected to localhost[127.0.0.1]:9050.
    2011-12-18 19:13:55.659 00000730 Connect: socks4_connect: SOCKS4 negotiation got aborted by the server
    2011-12-18 19:13:55.719 00000730 Crunch: Forwarding failed: http://sourceforge.net/
    127.0.0.1 - - [18/Dec/2011:19:13:55 +0100] "GET http://sourceforge.net/ HTTP/1.1" 503 8057
    2011-12-18 19:13:55.789 000005dc Connect: accepted connection from 127.0.0.1 on socket 188
    2011-12-18 19:13:55.799 000005dc Connect: Listening for new connections ...
    2011-12-18 19:13:55.889 00000368 Received: from socket 188: GET http://config.privoxy.org/error-favicon.ico HTTP/1.1\x0d\x0aUser-Agent: Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60\x0d\x0aHost: config.privoxy.org\x0d\x0aAccept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\x0d\x0aAccept-Language: en\x0d\x0aAccept-Encoding: gzip, deflate\x0d\x0aConnection: Keep-Alive\x0d\x0a\x0d\x0a
    2011-12-18 19:13:55.989 00000368 Header: scan: GET http://config.privoxy.org/error-favicon.ico HTTP/1.1
    2011-12-18 19:13:55.999 00000368 Header: scan: User-Agent: Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60
    2011-12-18 19:13:56.009 00000368 Header: scan: Host: config.privoxy.org
    2011-12-18 19:13:56.019 00000368 Header: scan: Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    2011-12-18 19:13:56.039 00000368 Header: scan: Accept-Language: en
    2011-12-18 19:13:56.039 00000368 Header: scan: Accept-Encoding: gzip, deflate
    2011-12-18 19:13:56.049 00000368 Header: scan: Connection: Keep-Alive
    2011-12-18 19:13:56.059 00000368 Header: Keeping the client header 'Connection: Keep-Alive' around. The server connection will be kept alive if possible.
    2011-12-18 19:13:56.070 00000368 Header: Crunching Accept-Language!
    2011-12-18 19:13:56.070 00000368 Connect: Complete client request received.
    2011-12-18 19:13:56.080 00000368 Header: New HTTP Request-Line: GET /error-favicon.ico HTTP/1.1
    2011-12-18 19:13:56.100 00000368 Crunch: CGI Call: http://config.privoxy.org/error-favicon.ico
    127.0.0.1 - - [18/Dec/2011:19:13:56 +0100] "GET http://config.privoxy.org/error-favicon.ico HTTP/1.1" 200 198
    2011-12-18 19:13:56.150 00000368 Connect: Waiting for the next client request on socket 188. No server socket to keep open.
    2011-12-18 19:13:57.151 00000368 Connect: No additional client request received in time on socket 188.

     
  • Fabian Keil
    Fabian Keil
    2011-12-20

    Thanks for the logfile, qqqqqw.

    Like Lee, I was able to reproduce the problem, too.

    This is clearly a regression and I'm not sure how it slipped through testing.

    While anybody should be using socks5, it would be nice if the socks4 code would work anyway.

    The whole "else if (!data_is_available(sfd, csp->config->socket_timeout))" block is at the wrong location, it belongs below the "else if (write_socket(sfd, (char *)c, csiz))" block because otherwise the server has nothing to respond to and the connection will timeout.

    Either I put the block at the wrong place from the beginning and didn't test or use the socks4 code at all, or I originally put it at the right place and tested it, but then somehow messed up the merging in git when resolving conflicts. Somehow I prefer the second version ...

     
  • Fabian Keil
    Fabian Keil
    2011-12-20

    • assigned_to: nobody --> fabiankeil
    • summary: No connection --> No connection (socks4a regression in 3.0.18)
    • status: open --> pending
     
  • Fabian Keil
    Fabian Keil
    2011-12-24

    Fixed in CVS.

     
  • Fabian Keil
    Fabian Keil
    2011-12-24

    • milestone: --> version 3.0.18
    • status: pending --> closed-fixed