diff options
Diffstat (limited to 'libsoup/soup-hsts-enforcer.h')
-rw-r--r-- | libsoup/soup-hsts-enforcer.h | 59 |
1 files changed, 40 insertions, 19 deletions
diff --git a/libsoup/soup-hsts-enforcer.h b/libsoup/soup-hsts-enforcer.h index 1253e234..fbceab46 100644 --- a/libsoup/soup-hsts-enforcer.h +++ b/libsoup/soup-hsts-enforcer.h @@ -1,6 +1,7 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* - * Copyright (C) 2016 Igalia S.L. + * Copyright (C) 2016, 2017, 2018 Igalia S.L. + * Copyright (C) 2017, 2018 Metrological Group B.V. */ #ifndef SOUP_HSTS_ENFORCER_H @@ -11,43 +12,63 @@ G_BEGIN_DECLS #define SOUP_TYPE_HSTS_ENFORCER (soup_hsts_enforcer_get_type ()) -#define SOUP_HSTS_ENFORCER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_HSTS_ENFORCER, SoupHstsEnforcer)) -#define SOUP_HSTS_ENFORCER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_HSTS_ENFORCER, SoupHstsEnforcerClass)) +#define SOUP_HSTS_ENFORCER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_HSTS_ENFORCER, SoupHSTSEnforcer)) +#define SOUP_HSTS_ENFORCER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_HSTS_ENFORCER, SoupHSTSEnforcerClass)) #define SOUP_IS_HSTS_ENFORCER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_HSTS_ENFORCER)) #define SOUP_IS_HSTS_ENFORCER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_HSTS_ENFORCER)) -#define SOUP_HSTS_ENFORCER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_HSTS_ENFORCER, SoupHstsEnforcerClass)) +#define SOUP_HSTS_ENFORCER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_HSTS_ENFORCER, SoupHSTSEnforcerClass)) -struct _SoupHstsEnforcer { +typedef struct _SoupHSTSEnforcerPrivate SoupHSTSEnforcerPrivate; + +struct _SoupHSTSEnforcer { GObject parent; + SoupHSTSEnforcerPrivate *priv; }; +/** + * SoupHSTSEnforcerClass: + * @parent_class: The parent class. + * @is_persistent: The @is_persistent function advertises whether the enforcer is persistent or + * whether changes made to it will be lost when the underlying #SoupSession is finished. + * @has_valid_policy: The @has_valid_policy function is called to check whether there is a valid + * policy for the given domain. This method should return %TRUE for #SoupHSTSEnforcer to + * change the scheme of the #SoupURI in the #SoupMessage to HTTPS. Implementations might want to + * chain up to the @has_valid_policy in the parent class to check, for instance, for runtime + * policies. + * @changed: the class closure for the #SoupHSTSEnforcer::changed signal. + **/ typedef struct { GObjectClass parent_class; - gboolean (*is_persistent) (SoupHstsEnforcer *hsts_enforcer); + gboolean (*is_persistent) (SoupHSTSEnforcer *hsts_enforcer); + gboolean (*has_valid_policy) (SoupHSTSEnforcer *hsts_enforcer, const char *domain); /* signals */ - void (*changed) (SoupHstsEnforcer *jar, - SoupHstsPolicy *old_policy, - SoupHstsPolicy *new_policy); + void (*changed) (SoupHSTSEnforcer *jar, + SoupHSTSPolicy *old_policy, + SoupHSTSPolicy *new_policy); /* Padding for future expansion */ void (*_libsoup_reserved1) (void); void (*_libsoup_reserved2) (void); -} SoupHstsEnforcerClass; + void (*_libsoup_reserved3) (void); + void (*_libsoup_reserved4) (void); +} SoupHSTSEnforcerClass; -SOUP_AVAILABLE_IN_2_54 +SOUP_AVAILABLE_IN_2_64 GType soup_hsts_enforcer_get_type (void); -SOUP_AVAILABLE_IN_2_54 -SoupHstsEnforcer *soup_hsts_enforcer_new (void); -SOUP_AVAILABLE_IN_2_54 -gboolean soup_hsts_enforcer_is_persistent (SoupHstsEnforcer *hsts_enforcer); - -SOUP_AVAILABLE_IN_2_54 -void soup_hsts_enforcer_set_session_policy (SoupHstsEnforcer *hsts_enforcer, +SOUP_AVAILABLE_IN_2_64 +SoupHSTSEnforcer *soup_hsts_enforcer_new (void); +SOUP_AVAILABLE_IN_2_64 +gboolean soup_hsts_enforcer_is_persistent (SoupHSTSEnforcer *hsts_enforcer); +SOUP_AVAILABLE_IN_2_64 +gboolean soup_hsts_enforcer_has_valid_policy (SoupHSTSEnforcer *hsts_enforcer, + const char *domain); +SOUP_AVAILABLE_IN_2_64 +void soup_hsts_enforcer_set_session_policy (SoupHSTSEnforcer *hsts_enforcer, const char *domain, - gboolean include_sub_domains); + gboolean include_subdomains); G_END_DECLS #endif /* SOUP_HSTS_ENFORCER_H */ |