summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2020-05-22 10:37:15 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2020-05-22 10:37:27 +0100
commitb28d3c267510d2e80e4730f71ff1fa5f61795499 (patch)
treebd44fbb5d2810cb46169ba3f8fea47d11dc5d998 /desktop
parentc2f73310d011a7e6b02f6dbedf96826c21a1b88f (diff)
downloadnetsurf-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.c17
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(&params, 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(&params.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, &params);
@@ -1166,6 +1181,8 @@ browser_window__handle_bad_certs(struct browser_window *bw,
out:
browser_window__free_fetch_parameters(&params);
+ if (chainurl != NULL)
+ nsurl_unref(chainurl);
return err;
}