diff --git a/http.c b/http.c index 800982c6..2e7ce09f 100644 --- a/http.c +++ b/http.c @@ -897,7 +897,7 @@ int internal_parse_url(const char *url, char **res_proto, char **res_host, return 0; } -static void clear_cookies(struct openconnect_info *vpninfo) +void openconnect_clear_cookies(struct openconnect_info *vpninfo) { struct oc_vpn_option *opt, *next; @@ -944,7 +944,7 @@ static int handle_redirect(struct openconnect_info *vpninfo) /* Kill the existing connection, and a new one will happen */ openconnect_close_https(vpninfo, 0); - clear_cookies(vpninfo); + openconnect_clear_cookies(vpninfo); vpninfo->redirect_type = REDIR_TYPE_NEWHOST; } else free(host); diff --git a/library.c b/library.c index 0ae5e678..698b1281 100644 --- a/library.c +++ b/library.c @@ -407,6 +407,7 @@ void openconnect_reset_ssl(struct openconnect_info *vpninfo) free(vpninfo->peer_addr); vpninfo->peer_addr = NULL; } + openconnect_clear_cookies(vpninfo); } int openconnect_parse_url(struct openconnect_info *vpninfo, const char *url) diff --git a/openconnect-internal.h b/openconnect-internal.h index bf62b5d5..4589f7e5 100644 --- a/openconnect-internal.h +++ b/openconnect-internal.h @@ -612,6 +612,8 @@ int openconnect_open_utf8(struct openconnect_info *vpninfo, FILE *openconnect_fopen_utf8(struct openconnect_info *vpninfo, const char *fname, const char *mode); +void openconnect_clear_cookies(struct openconnect_info *vpninfo); + /* {gnutls,openssl}.c */ int openconnect_open_https(struct openconnect_info *vpninfo); void openconnect_close_https(struct openconnect_info *vpninfo, int final);