!#!@!!!

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

Reply via email to