soup-hsts-policy.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
  2. /*
  3. * Copyright (C) 2016, 2017, 2018 Igalia S.L.
  4. * Copyright (C) 2017, 2018 Metrological Group B.V.
  5. */
  6. #ifndef __SOUP_HSTS_POLICY_H__
  7. #define __SOUP_HSTS_POLICY_H__ 1
  8. #include <libsoup/soup-types.h>
  9. G_BEGIN_DECLS
  10. struct _SoupHSTSPolicy {
  11. char *domain;
  12. unsigned long max_age;
  13. SoupDate *expires;
  14. gboolean include_subdomains;
  15. };
  16. SOUP_AVAILABLE_IN_2_68
  17. GType soup_hsts_policy_get_type (void);
  18. #define SOUP_TYPE_HSTS_POLICY (soup_hsts_policy_get_type())
  19. #define SOUP_HSTS_POLICY_MAX_AGE_PAST (0)
  20. SOUP_AVAILABLE_IN_2_68
  21. SoupHSTSPolicy *soup_hsts_policy_new (const char *domain,
  22. unsigned long max_age,
  23. gboolean include_subdomains);
  24. SOUP_AVAILABLE_IN_2_68
  25. SoupHSTSPolicy *soup_hsts_policy_new_full (const char *domain,
  26. unsigned long max_age,
  27. SoupDate *expires,
  28. gboolean include_subdomains);
  29. SOUP_AVAILABLE_IN_2_68
  30. SoupHSTSPolicy *soup_hsts_policy_new_session_policy (const char *domain,
  31. gboolean include_subdomains);
  32. SOUP_AVAILABLE_IN_2_68
  33. SoupHSTSPolicy *soup_hsts_policy_new_from_response (SoupMessage *msg);
  34. SOUP_AVAILABLE_IN_2_68
  35. SoupHSTSPolicy *soup_hsts_policy_copy (SoupHSTSPolicy *policy);
  36. SOUP_AVAILABLE_IN_2_68
  37. gboolean soup_hsts_policy_equal (SoupHSTSPolicy *policy1,
  38. SoupHSTSPolicy *policy2);
  39. SOUP_AVAILABLE_IN_2_68
  40. const char *soup_hsts_policy_get_domain (SoupHSTSPolicy *policy);
  41. SOUP_AVAILABLE_IN_2_68
  42. gboolean soup_hsts_policy_is_expired (SoupHSTSPolicy *policy);
  43. SOUP_AVAILABLE_IN_2_68
  44. gboolean soup_hsts_policy_includes_subdomains (SoupHSTSPolicy *policy);
  45. SOUP_AVAILABLE_IN_2_68
  46. gboolean soup_hsts_policy_is_session_policy (SoupHSTSPolicy *policy);
  47. SOUP_AVAILABLE_IN_2_68
  48. void soup_hsts_policy_free (SoupHSTSPolicy *policy);
  49. G_END_DECLS
  50. #endif /* __SOUP_HSTS_POLICY_H__ */