summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2006-02-23 15:06:54 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2006-02-23 15:06:54 +0000
commitd4d3e5ee1c9edb67844b693be0202ee5968d61c3 (patch)
treef8583d475d39172ff3b19473812ff6ce72de8452 /desktop
parent70fbf97688666f6ab37c4cc427f1e8c9929cc4b1 (diff)
downloadnetsurf-d4d3e5ee1c9edb67844b693be0202ee5968d61c3.tar.gz
netsurf-d4d3e5ee1c9edb67844b693be0202ee5968d61c3.tar.bz2
[project @ 2006-02-23 15:06:53 by jmb]
Handle invalid SSL certificates better - UI still needs work. Modify fetch callback data parameter type to remove compiler warnings. Constify things. Lose global ssl_verify_certificates option. Fix issue when closing a dialog without input focus. svn path=/import/netsurf/; revision=2092
Diffstat (limited to 'desktop')
-rw-r--r--desktop/401login.h2
-rw-r--r--desktop/browser.c25
-rw-r--r--desktop/gui.h8
-rw-r--r--desktop/options.c3
-rw-r--r--desktop/options.h1
5 files changed, 32 insertions, 7 deletions
diff --git a/desktop/401login.h b/desktop/401login.h
index fc94d971b..9e6030ab4 100644
--- a/desktop/401login.h
+++ b/desktop/401login.h
@@ -15,7 +15,7 @@
#ifdef WITH_AUTH
void gui_401login_open(struct browser_window *bw, struct content *c,
- char *realm);
+ const char *realm);
#endif
diff --git a/desktop/browser.c b/desktop/browser.c
index 8440bbaba..61d2cc490 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -60,7 +60,7 @@ static void browser_window_stop_throbber(struct browser_window *bw);
static void browser_window_set_status(struct browser_window *bw,
const char *text);
static void browser_window_set_pointer(gui_pointer_shape shape);
-static void download_window_callback(fetch_msg msg, void *p, const char *data,
+static void download_window_callback(fetch_msg msg, void *p, const void *data,
unsigned long size);
static void browser_window_mouse_action_html(struct browser_window *bw,
browser_mouse_state mouse, int x, int y);
@@ -429,6 +429,24 @@ void browser_window_callback(content_msg msg, struct content *c,
break;
#endif
+#ifdef WITH_SSL
+ case CONTENT_MSG_SSL:
+ gui_cert_verify(bw, c, data.ssl.certs, data.ssl.num);
+ if (c == bw->loading_content)
+ bw->loading_content = 0;
+ else if (c == bw->current_content) {
+ bw->current_content = 0;
+ bw->caret_callback = NULL;
+ bw->paste_callback = NULL;
+ bw->scrolling_box = NULL;
+ selection_init(bw->sel, NULL);
+ }
+ browser_window_stop_throbber(bw);
+ free(bw->referer);
+ bw->referer = 0;
+ break;
+#endif
+
case CONTENT_MSG_REFRESH:
schedule(data.delay * 100,
browser_window_refresh, bw);
@@ -689,7 +707,7 @@ void browser_window_destroy(struct browser_window *bw)
* Callback for fetch for download window fetches.
*/
-void download_window_callback(fetch_msg msg, void *p, const char *data,
+void download_window_callback(fetch_msg msg, void *p, const void *data,
unsigned long size)
{
struct gui_download_window *download_window = p;
@@ -713,6 +731,9 @@ void download_window_callback(fetch_msg msg, void *p, const char *data,
case FETCH_REDIRECT:
case FETCH_NOTMODIFIED:
case FETCH_AUTH:
+#ifdef WITH_SSL
+ case FETCH_CERT_ERR:
+#endif
default:
/* not possible */
assert(0);
diff --git a/desktop/gui.h b/desktop/gui.h
index dd7486e80..8016fefd7 100644
--- a/desktop/gui.h
+++ b/desktop/gui.h
@@ -38,6 +38,7 @@ typedef enum { GUI_POINTER_DEFAULT, GUI_POINTER_POINT, GUI_POINTER_CARET,
GUI_POINTER_MOVE } gui_pointer_shape;
#include <stdbool.h>
+#include "netsurf/utils/config.h"
#include "netsurf/content/content.h"
#include "netsurf/desktop/browser.h"
@@ -106,5 +107,12 @@ bool gui_search_term_highlighted(struct gui_window *g,
unsigned start_offset, unsigned end_offset,
unsigned *start_idx, unsigned *end_idx);
+#ifdef WITH_SSL
+struct ssl_cert_info;
+
+void gui_cert_verify(struct browser_window *bw, struct content *c,
+ const struct ssl_cert_info *certs, unsigned long num);
+#endif
+
#endif
diff --git a/desktop/options.c b/desktop/options.c
index 5ae615703..0aa3fc065 100644
--- a/desktop/options.c
+++ b/desktop/options.c
@@ -54,8 +54,6 @@ int option_font_size = 100;
int option_font_min_size = 70;
/** Accept-Language header. */
char *option_accept_language = 0;
-/** Enable verification of SSL certificates. */
-bool option_ssl_verify_certificates = true;
/** Preferred maximum size of memory cache / bytes. */
int option_memory_cache_size = 2 * 1024 * 1024;
/** Preferred expiry age of disc cache / days. */
@@ -96,7 +94,6 @@ struct {
{ "font_size", OPTION_INTEGER, &option_font_size },
{ "font_min_size", OPTION_INTEGER, &option_font_min_size },
{ "accept_language", OPTION_STRING, &option_accept_language },
- { "ssl_verify_certificates", OPTION_BOOL, &option_ssl_verify_certificates },
{ "memory_cache_size", OPTION_INTEGER, &option_memory_cache_size },
{ "disc_cache_age", OPTION_INTEGER, &option_disc_cache_age },
{ "block_advertisements", OPTION_BOOL, &option_block_ads },
diff --git a/desktop/options.h b/desktop/options.h
index f31be7c45..49d956a0d 100644
--- a/desktop/options.h
+++ b/desktop/options.h
@@ -38,7 +38,6 @@ extern char *option_http_proxy_auth_pass;
extern int option_font_size;
extern int option_font_min_size;
extern char *option_accept_language;
-extern bool option_ssl_verify_certificates;
extern int option_memory_cache_size;
extern int option_disc_cache_age;
extern bool option_block_ads;