!#!@!!! Thorsten Glaser wrote in <pine.bsm.4.64l.2008072204090.25...@herc.mirbsd.org>: |Steffen Nurpmeso dixit: | ||+ socks5_proxy = (char*)-1; | |Don’t do that, that is not portable.
Really?? This i do not understand. || cleanup: ||- if (socks5_proxy != NULL) { ||+ if (socks5_proxy != (char*)-1) { || FREE(socks5_new_url); || FREE(socks5_protocol); || FREE(socks5_host); | |If this is just for freeing… free(3) takes NULL as no-op. |Otherwise, find a better way to flag this. | |Your patch also changes something wrt. socks5_orig_url. That is just plain terrible! What a mess. Thanks a lot for looking into the patch, Thorsten! Well, at least this shows i use lynx exclusively via -socks5_proxy ever since the functionality is there. Fixed, and tested with _and_without_ -socks5_proxy. (The patch applies to the git snapshot, not the dev5 ball, due to manual page, the former has the first, the latter the, hmm, latter. -.B \-socks5\-proxy=URL -.B \-socks5-proxy=URL Ciao, and a nice weekend. Good night. --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)
diff --git a/WWW/Library/Implementation/HTTCP.c b/WWW/Library/Implementation/HTTCP.c index 2834c2c7..49be41f3 100644 --- a/WWW/Library/Implementation/HTTCP.c +++ b/WWW/Library/Implementation/HTTCP.c @@ -1847,8 +1847,13 @@ int HTDoConnect(const char *url, *s = -1; /* nothing is open yet */ - /* In case of a present SOCKS5 proxy, marshal */ - if ((socks5_orig_url = socks5_proxy) != NULL) { + /* In case of a present SOCKS5 proxy, marshal. + * Perform a getenv(3) lookup only once */ + if (socks5_proxy == NULL && + (socks5_proxy = getenv("SOCKS5_PROXY")) == NULL) + socks5_proxy = (char*)-1; + + if (socks5_proxy != (char*)-1) { int xport; xport = default_port; @@ -2264,7 +2269,7 @@ int HTDoConnect(const char *url, #endif /* INET6 */ /* Now if this was a SOCKS5 proxy connection, go for the real one */ - if (status >= 0 && socks5_orig_url != NULL) { + if (status >= 0 && socks5_proxy != (char*)-1) { unsigned char pbuf[4 + 1 + 255 + 2]; unsigned i; @@ -2393,7 +2398,7 @@ int HTDoConnect(const char *url, } cleanup: - if (socks5_proxy != NULL) { + if (socks5_proxy != (char*)-1) { FREE(socks5_new_url); FREE(socks5_protocol); FREE(socks5_host); diff --git a/lynx.man b/lynx.man index 14927858..4b8ca61a 100644 --- a/lynx.man +++ b/lynx.man @@ -805,9 +805,16 @@ If enabled the transfer rate is shown in bytes/second. If disabled, no transfer rate is shown. Use lynx.cfg or the options menu to select KB/second and/or ETA. .TP -.B \-socks5\-proxy=URL -(Via which) SOCKS5 proxy to connect. -This controls the builtin SOCKS5 support, and is therefore unrelated to +.B \-socks5_proxy=URL +(Via which) SOCKS5 proxy to connect: any network traffic, including all +DNS resolutions but the one for URL itself, will be redirected through +the SOCKS5 proxy. +URL may be given as \*(``proxy.example.com\*('', +\*(``proxy.example.com:1080\*('', \*(``192.168.0.1\*('', or +\*(``192.168.0.1:1080\*('' (and IPv6 notation if so supported). +A SOCKS5 proxy may also be specified via the environment variable +.B SOCKS5_PROXY . +This option controls the builtin SOCKS5 support, which is unrelated to the option \fB\-nosocks\fP. .TP .B \-soft_dquotes @@ -1138,6 +1145,11 @@ wais_proxy .IP See \fBLynx Users Guide\fR for additional details and examples. .TP +.B SOCKS5_PROXY +Is inspected if +.B \-socks5_proxy +has not been used (for the same content). +.TP .B SSL_CERT_DIR Set to the directory containing trusted certificates. .TP diff --git a/src/LYMain.c b/src/LYMain.c index 6d5166d4..45fc3ce2 100644 --- a/src/LYMain.c +++ b/src/LYMain.c @@ -3916,7 +3916,7 @@ saves session to that file on exit" ), #endif PARSE_STR( - "socks5-proxy", 2|NEED_LYSTRING_ARG, socks5_proxy, + "socks5_proxy", 2|NEED_LYSTRING_ARG, socks5_proxy, "=URL\n(via which) SOCKS5 proxy to connect (unrelated to -nosocks!)" ), PARSE_SET(
_______________________________________________ Lynx-dev mailing list Lynx-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/lynx-dev