If SOCKS_PROXY is empty, don't use a proxy - holymoly - A tor enabled gopher client written in CHICKEN scheme
(HTM) git clone git://vernunftzentrum.de/holymoly.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 2e0a144bd6c14b237e97a7844cda4d80111544e2
(DIR) parent 2807d65d10534ac55dbc94a86c70aadea97952e3
(HTM) Author: Christian Kellermann <ckeen@pestilenz.org>
Date: Tue, 24 Apr 2018 10:53:29 +0200
If SOCKS_PROXY is empty, don't use a proxy
Diffstat:
holymoly.scm | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
---
(DIR) diff --git a/holymoly.scm b/holymoly.scm
@@ -33,12 +33,13 @@
(entry-port e))))
(define proxy
- (let* ((conf
- (string-split
- (or
- (get-environment-variable "SOCKS_PROXY")
- "localhost:9050")
- ":"))
+ (and-let*
+ ((proxy-vals (or (get-environment-variable "SOCKS_PROXY")
+ "localhost:9050"))
+ (conf
+ (if (not (string-null? proxy-vals))
+ (string-split proxy-vals ":")
+ #f)) ;; no proxy configured, so abort here
(proxy-host (car conf))
(proxy-port (string->number (cadr conf))))
(make-parameter (cons proxy-host proxy-port))))
@@ -158,7 +159,9 @@
(define (request-resource server #!optional (resource index) (port gopher-port) until-eof?)
(new-status "Connecting to ~a:~a ~a " server port resource)
(condition-case
- (let-values (((i o _) (connect/socksv5 (car (proxy)) (cdr (proxy)) server port)))
+ (let-values (((i o _) (if proxy
+ (connect/socksv5 (car (proxy)) (cdr (proxy)) server port)
+ (receive (i o) (tcp-connect server port) (values i o #f)))))
(new-status "connected.")
(display (string-append resource (string #\linefeed #\return)) o)
(let ((response (if until-eof?