summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2015-09-18 15:58:26 +0200
committerWerner Koch <wk@gnupg.org>2015-09-18 16:21:30 +0200
commitb4bc1c8b10c7a794fa108678b80f76366a65c47d (patch)
tree6a6d0548876822bba89b19df36ad4d8fa38ef72a /common
parentpo: Update Japanese translation. (diff)
downloadgnupg2-b4bc1c8b10c7a794fa108678b80f76366a65c47d.tar.xz
gnupg2-b4bc1c8b10c7a794fa108678b80f76366a65c47d.zip
http: Add flag to force use of TOR (part 1)
* common/http.h (HTTP_FLAG_FORCE_TOR): New. * common/http.c (http_raw_connect, send_request): Detect flag and return an error for now. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'common')
-rw-r--r--common/http.c12
-rw-r--r--common/http.h3
-rw-r--r--common/t-http.c8
3 files changed, 22 insertions, 1 deletions
diff --git a/common/http.c b/common/http.c
index c2cac169d..be5bd308a 100644
--- a/common/http.c
+++ b/common/http.c
@@ -747,6 +747,12 @@ http_raw_connect (http_t *r_hd, const char *server, unsigned short port,
*r_hd = NULL;
+ if ((flags & HTTP_FLAG_FORCE_TOR))
+ {
+ log_error ("TOR support is not yet available\n");
+ return gpg_err_make (default_errsource, GPG_ERR_NOT_IMPLEMENTED);
+ }
+
/* Create the handle. */
hd = xtrycalloc (1, sizeof *hd);
if (!hd)
@@ -1452,6 +1458,12 @@ send_request (http_t hd, const char *httphost, const char *auth,
}
#endif /*USE_TLS*/
+ if ((hd->flags & HTTP_FLAG_FORCE_TOR))
+ {
+ log_error ("TOR support is not yet available\n");
+ return gpg_err_make (default_errsource, GPG_ERR_NOT_IMPLEMENTED);
+ }
+
server = *hd->uri->host ? hd->uri->host : "localhost";
port = hd->uri->port ? hd->uri->port : 80;
diff --git a/common/http.h b/common/http.h
index fcab12a23..73a423cd5 100644
--- a/common/http.h
+++ b/common/http.h
@@ -78,8 +78,9 @@ enum
{
HTTP_FLAG_TRY_PROXY = 1, /* Try to use a proxy. */
HTTP_FLAG_SHUTDOWN = 2, /* Close sending end after the request. */
+ HTTP_FLAG_FORCE_TOR = 4, /* Force a TOR connection. */
HTTP_FLAG_LOG_RESP = 8, /* Log the server respone. */
- HTTP_FLAG_FORCE_TLS = 16, /* Force the use opf TLS. */
+ HTTP_FLAG_FORCE_TLS = 16, /* Force the use of TLS. */
HTTP_FLAG_IGNORE_CL = 32, /* Ignore content-length. */
HTTP_FLAG_IGNORE_IPv4 = 64, /* Do not use IPv4. */
HTTP_FLAG_IGNORE_IPv6 = 128 /* Do not use IPv6. */
diff --git a/common/t-http.c b/common/t-http.c
index e031ef943..41b2dd118 100644
--- a/common/t-http.c
+++ b/common/t-http.c
@@ -174,6 +174,7 @@ main (int argc, char **argv)
" --cacert FNAME expect CA certificate in file FNAME\n"
" --no-verify do not verify the certificate\n"
" --force-tls use HTTP_FLAG_FORCE_TLS\n"
+ " --force-tor use HTTP_FLAG_FORCE_TOR\n"
" --no-out do not print the content\n",
stdout);
exit (0);
@@ -217,6 +218,11 @@ main (int argc, char **argv)
my_http_flags |= HTTP_FLAG_FORCE_TLS;
argc--; argv++;
}
+ else if (!strcmp (*argv, "--force-tor"))
+ {
+ my_http_flags |= HTTP_FLAG_FORCE_TOR;
+ argc--; argv++;
+ }
else if (!strcmp (*argv, "--no-out"))
{
no_out = 1;
@@ -316,6 +322,8 @@ main (int argc, char **argv)
printf ("TLS : %s\n",
uri->use_tls? "yes":
(my_http_flags&HTTP_FLAG_FORCE_TLS)? "forced" : "no");
+ printf ("Tor : %s\n",
+ (my_http_flags&HTTP_FLAG_FORCE_TOR)? "yes" : "no");
}
fflush (stdout);