diff options
author | Daniel Stenberg <daniel@haxx.se> | 2003-05-22 22:39:38 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2003-05-22 22:39:38 +0000 |
commit | a39d77227fe9d74db74fee259329e4b4a086fcce (patch) | |
tree | 5873d4dc03de132ef16a957980019e070f6b4e7c /lib/http_digest.c | |
parent | 9f69deec7d071fbad247574b2fec9263bc020954 (diff) | |
download | curl-a39d77227fe9d74db74fee259329e4b4a086fcce.tar.gz |
Better Digest stuff
Diffstat (limited to 'lib/http_digest.c')
-rw-r--r-- | lib/http_digest.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/http_digest.c b/lib/http_digest.c index 2aeb3b8e9..7f62c26b4 100644 --- a/lib/http_digest.c +++ b/lib/http_digest.c @@ -65,7 +65,8 @@ CURLdigest Curl_input_digest(struct connectdata *conn, if(checkprefix("Digest", header)) { header += strlen("Digest"); - data->state.digest.algo = CURLDIGESTALGO_MD5; /* default algorithm */ + /* clear off any former leftovers and init to defaults */ + Curl_digest_cleanup(data); while(more) { char value[32]; @@ -207,4 +208,21 @@ CURLcode Curl_output_digest(struct connectdata *conn, return CURLE_OK; } +void Curl_digest_cleanup(struct SessionHandle *data) +{ + if(data->state.digest.nonce) + free(data->state.digest.nonce); + data->state.digest.nonce = NULL; + + if(data->state.digest.cnonce) + free(data->state.digest.cnonce); + data->state.digest.cnonce = NULL; + + if(data->state.digest.realm) + free(data->state.digest.realm); + data->state.digest.realm = NULL; + + data->state.digest.algo = CURLDIGESTALGO_MD5; /* default algorithm */ +} + #endif |