diff options
author | Heiko Hund <heiko.hund@sophos.com> | 2012-07-30 11:05:22 +0200 |
---|---|---|
committer | David Sommerseth <dazo@users.sourceforge.net> | 2012-07-30 15:49:55 +0200 |
commit | 4f879daeb9b1b709c80d01e4872b30e23747c4a8 (patch) | |
tree | 3e308349ca4dacb25654d18a26a7470af1dc189a /src/openvpn | |
parent | 6dcb1265c601b53d2bb221f5087ef5ad2626f94b (diff) | |
download | openvpn-4f879daeb9b1b709c80d01e4872b30e23747c4a8.tar.gz openvpn-4f879daeb9b1b709c80d01e4872b30e23747c4a8.tar.xz openvpn-4f879daeb9b1b709c80d01e4872b30e23747c4a8.zip |
fix regression with --http-proxy[-*] options
Commit af1bf85a introducing the --management-query-proxy option
broke the initialization of HTTP proxy options by not assigning
the allocated object to the options element in the function
init_http_proxy_options_once().
Signed-off-by: Heiko Hund <heiko.hund@sophos.com>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Message-Id: 1343639122-8658-1-git-send-email-heiko.hund@sophos.com
URL: http://article.gmane.org/gmane.network.openvpn.devel/6913
Signed-off-by: David Sommerseth <dazo@users.sourceforge.net>
Diffstat (limited to 'src/openvpn')
-rw-r--r-- | src/openvpn/init.c | 3 | ||||
-rw-r--r-- | src/openvpn/options.c | 8 | ||||
-rw-r--r-- | src/openvpn/proxy.c | 12 | ||||
-rw-r--r-- | src/openvpn/proxy.h | 2 |
4 files changed, 12 insertions, 13 deletions
diff --git a/src/openvpn/init.c b/src/openvpn/init.c index 2f84375..270ee6a 100644 --- a/src/openvpn/init.c +++ b/src/openvpn/init.c @@ -144,12 +144,11 @@ management_callback_proxy_cmd (void *arg, const char **p) msg (M_WARN, "HTTP proxy support only works for TCP based connections"); return false; } - ho = init_http_proxy_options_once (ce->http_proxy_options, gc); + ho = init_http_proxy_options_once (&ce->http_proxy_options, gc); ho->server = string_alloc (p[2], gc); ho->port = port; ho->retry = true; ho->auth_retry = (p[4] && streq (p[4], "nct") ? PAR_NCT : PAR_ALL); - ce->http_proxy_options = ho; ret = true; #endif } diff --git a/src/openvpn/options.c b/src/openvpn/options.c index cd1cb1c..9f4ddbb 100644 --- a/src/openvpn/options.c +++ b/src/openvpn/options.c @@ -4879,7 +4879,7 @@ add_option (struct options *options, goto err; } - ho = init_http_proxy_options_once (options->ce.http_proxy_options, &options->gc); + ho = init_http_proxy_options_once (&options->ce.http_proxy_options, &options->gc); ho->server = p[1]; ho->port = port; @@ -4914,7 +4914,7 @@ add_option (struct options *options, { struct http_proxy_options *ho; VERIFY_PERMISSION (OPT_P_GENERAL|OPT_P_CONNECTION); - ho = init_http_proxy_options_once (options->ce.http_proxy_options, &options->gc); + ho = init_http_proxy_options_once (&options->ce.http_proxy_options, &options->gc); ho->retry = true; } else if (streq (p[0], "http-proxy-timeout") && p[1]) @@ -4922,7 +4922,7 @@ add_option (struct options *options, struct http_proxy_options *ho; VERIFY_PERMISSION (OPT_P_GENERAL|OPT_P_CONNECTION); - ho = init_http_proxy_options_once (options->ce.http_proxy_options, &options->gc); + ho = init_http_proxy_options_once (&options->ce.http_proxy_options, &options->gc); ho->timeout = positive_atoi (p[1]); } else if (streq (p[0], "http-proxy-option") && p[1]) @@ -4930,7 +4930,7 @@ add_option (struct options *options, struct http_proxy_options *ho; VERIFY_PERMISSION (OPT_P_GENERAL|OPT_P_CONNECTION); - ho = init_http_proxy_options_once (options->ce.http_proxy_options, &options->gc); + ho = init_http_proxy_options_once (&options->ce.http_proxy_options, &options->gc); if (streq (p[1], "VERSION") && p[2]) { diff --git a/src/openvpn/proxy.c b/src/openvpn/proxy.c index 28ce019..363d8a7 100644 --- a/src/openvpn/proxy.c +++ b/src/openvpn/proxy.c @@ -47,17 +47,17 @@ #define UP_TYPE_PROXY "HTTP Proxy" struct http_proxy_options * -init_http_proxy_options_once (struct http_proxy_options *hpo, +init_http_proxy_options_once (struct http_proxy_options **hpo, struct gc_arena *gc) { - if (!hpo) + if (!*hpo) { - ALLOC_OBJ_CLEAR_GC (hpo, struct http_proxy_options, gc); + ALLOC_OBJ_CLEAR_GC (*hpo, struct http_proxy_options, gc); /* http proxy defaults */ - hpo->timeout = 5; - hpo->http_version = "1.0"; + (*hpo)->timeout = 5; + (*hpo)->http_version = "1.0"; } - return hpo; + return *hpo; } diff --git a/src/openvpn/proxy.h b/src/openvpn/proxy.h index dc62261..5e476f1 100644 --- a/src/openvpn/proxy.h +++ b/src/openvpn/proxy.h @@ -70,7 +70,7 @@ struct http_proxy_info { bool queried_creds; }; -struct http_proxy_options *init_http_proxy_options_once (struct http_proxy_options *hpo, +struct http_proxy_options *init_http_proxy_options_once (struct http_proxy_options **hpo, struct gc_arena *gc); struct http_proxy_info *http_proxy_new (const struct http_proxy_options *o); |