about summary refs log tree commit diff stats
path: root/xxxterm.h
diff options
context:
space:
mode:
authorElias Norberg <xyzzy@kudzu.se>2012-01-27 12:02:25 +0100
committerElias Norberg <xyzzy@kudzu.se>2012-02-11 01:04:23 +0100
commit246f40ff8e24f85140591d7c2e592f944c8fc855 (patch)
treef39b1575d3838f5ec33db2d3c002dda17b828bab /xxxterm.h
parent68d48040d0c70a260ec19073a6a17d76eeff874a (diff)
downloadxombrero-246f40ff8e24f85140591d7c2e592f944c8fc855.tar.gz
Add initial support for Strict-Transport-Security
Strict-Transport-Security is a HTTP-flag that a server
can specify to force all future requests to that server
to be done via https.

The flag 'enable_strict_transport' specifies if STS should be
used or not. Default is TRUE.
Diffstat (limited to 'xxxterm.h')
-rw-r--r--xxxterm.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/xxxterm.h b/xxxterm.h
index 4c7c4d4..3da786a 100644
--- a/xxxterm.h
+++ b/xxxterm.h
@@ -283,6 +283,19 @@ struct history {
 RB_HEAD(history_list, history);
 RB_PROTOTYPE(history_list, history, entry, history_rb_cmp);
 
+#define XT_STS_FLAGS_INCLUDE_SUBDOMAINS		(1)
+#define XT_STS_FLAGS_EXPAND			(2)
+#define XT_STS_FILE				("strict-transport")
+
+struct strict_transport {
+	RB_ENTRY(strict_transport)	entry;
+	gchar				*host;
+	time_t				timeout;
+	int				flags;
+};
+RB_HEAD(strict_transport_tree, strict_transport);
+RB_PROTOTYPE(strict_transport_tree, strict_transport, entry, strict_transport_rb_cmp);
+
 /* utility */
 #define XT_NAME			("XXXTerm")
 #define XT_CB_HANDLED		(TRUE)
@@ -582,6 +595,7 @@ extern int	cookie_policy;
 extern char	*ssl_ca_file;
 extern char	*resource_dir;
 extern gboolean	ssl_strict_certs;
+extern gboolean	enable_strict_transport;
 extern int	append_next;
 extern char	*home;
 extern char	*search_string;
@@ -647,6 +661,7 @@ extern struct about_type	about_list[];
 extern struct domain_list	c_wl;
 extern struct domain_list	js_wl;
 extern struct domain_list	pl_wl;
+extern struct strict_transport_tree	st_tree;
 extern struct alias_list	aliases;
 extern struct mime_type_list	mtl;
 extern struct keybinding_list	kbl;