diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2020-05-22 10:37:15 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2020-05-22 10:37:27 +0100 |
commit | b28d3c267510d2e80e4730f71ff1fa5f61795499 (patch) | |
tree | bd44fbb5d2810cb46169ba3f8fea47d11dc5d998 /desktop | |
parent | c2f73310d011a7e6b02f6dbedf96826c21a1b88f (diff) | |
download | netsurf-b28d3c267510d2e80e4730f71ff1fa5f61795499.tar.gz netsurf-b28d3c267510d2e80e4730f71ff1fa5f61795499.tar.bz2 |
query/ssl: Include link to view certificate details
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/browser_window.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/desktop/browser_window.c b/desktop/browser_window.c index 60f8d8947..2dcd0791d 100644 --- a/desktop/browser_window.c +++ b/desktop/browser_window.c @@ -1125,6 +1125,7 @@ browser_window__handle_bad_certs(struct browser_window *bw, /* Initially we don't know WHY the SSL cert was bad */ const char *reason = messages_get_sslcode(SSL_CERT_ERR_UNKNOWN); size_t depth; + nsurl *chainurl = NULL; memset(¶ms, 0, sizeof(params)); @@ -1157,6 +1158,20 @@ browser_window__handle_bad_certs(struct browser_window *bw, goto out; } + err = cert_chain_to_query(bw->loading_cert_chain, &chainurl); + + if (err != NSERROR_OK) { + goto out; + } + + err = fetch_multipart_data_new_kv(¶ms.post_multipart, + "chainurl", + nsurl_access(chainurl)); + + if (err != NSERROR_OK) { + goto out; + } + /* Now we issue the fetch */ bw->internal_nav = true; err = browser_window__navigate_internal(bw, ¶ms); @@ -1166,6 +1181,8 @@ browser_window__handle_bad_certs(struct browser_window *bw, out: browser_window__free_fetch_parameters(¶ms); + if (chainurl != NULL) + nsurl_unref(chainurl); return err; } |