Git init
[profile/ivi/libsoup2.4.git] / libsoup / soup-auth-domain.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2007 Novell, Inc.
4  */
5
6 #ifndef SOUP_AUTH_DOMAIN_H
7 #define SOUP_AUTH_DOMAIN_H 1
8
9 #include <libsoup/soup-types.h>
10
11 G_BEGIN_DECLS
12
13 #define SOUP_TYPE_AUTH_DOMAIN            (soup_auth_domain_get_type ())
14 #define SOUP_AUTH_DOMAIN(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_AUTH_DOMAIN, SoupAuthDomain))
15 #define SOUP_AUTH_DOMAIN_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_AUTH_DOMAIN, SoupAuthDomainClass))
16 #define SOUP_IS_AUTH_DOMAIN(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_AUTH_DOMAIN))
17 #define SOUP_IS_AUTH_DOMAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_AUTH_DOMAIN))
18 #define SOUP_AUTH_DOMAIN_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_AUTH_DOMAIN, SoupAuthDomainClass))
19
20 struct _SoupAuthDomain {
21         GObject parent;
22
23 };
24
25 typedef struct {
26         GObjectClass parent_class;
27
28         char *   (*accepts)        (SoupAuthDomain *domain,
29                                     SoupMessage    *msg,
30                                     const char     *header);
31         char *   (*challenge)      (SoupAuthDomain *domain,
32                                     SoupMessage    *msg);
33         gboolean (*check_password) (SoupAuthDomain *domain,
34                                     SoupMessage    *msg,
35                                     const char     *username,
36                                     const char     *password);
37
38         /* Padding for future expansion */
39         void (*_libsoup_reserved2) (void);
40         void (*_libsoup_reserved3) (void);
41         void (*_libsoup_reserved4) (void);
42 } SoupAuthDomainClass;
43
44 #define SOUP_AUTH_DOMAIN_REALM       "realm"
45 #define SOUP_AUTH_DOMAIN_PROXY       "proxy"
46 #define SOUP_AUTH_DOMAIN_ADD_PATH    "add-path"
47 #define SOUP_AUTH_DOMAIN_REMOVE_PATH "remove-path"
48 #define SOUP_AUTH_DOMAIN_FILTER      "filter"
49 #define SOUP_AUTH_DOMAIN_FILTER_DATA "filter-data"
50 #define SOUP_AUTH_DOMAIN_GENERIC_AUTH_CALLBACK "generic-auth-callback"
51 #define SOUP_AUTH_DOMAIN_GENERIC_AUTH_DATA     "generic-auth-data"
52
53 typedef gboolean (*SoupAuthDomainFilter) (SoupAuthDomain *domain,
54                                           SoupMessage    *msg,
55                                           gpointer        user_data);
56
57 typedef gboolean (*SoupAuthDomainGenericAuthCallback) (SoupAuthDomain *domain,
58                                                        SoupMessage    *msg,
59                                                        const char     *username,
60                                                        gpointer        user_data);
61
62 GType       soup_auth_domain_get_type    (void);
63
64 void        soup_auth_domain_add_path    (SoupAuthDomain       *domain,
65                                           const char           *path);
66 void        soup_auth_domain_remove_path (SoupAuthDomain       *domain,
67                                           const char           *path);
68
69 void        soup_auth_domain_set_filter  (SoupAuthDomain       *domain,
70                                           SoupAuthDomainFilter  filter,
71                                           gpointer              filter_data,
72                                           GDestroyNotify        dnotify);
73
74 const char *soup_auth_domain_get_realm   (SoupAuthDomain       *domain);
75
76 void        soup_auth_domain_set_generic_auth_callback (SoupAuthDomain *domain,
77                                                         SoupAuthDomainGenericAuthCallback auth_callback,
78                                                         gpointer        auth_data,
79                                                         GDestroyNotify  dnotify);
80 gboolean    soup_auth_domain_check_password (SoupAuthDomain    *domain,
81                                              SoupMessage       *msg,
82                                              const char        *username,
83                                              const char        *password);
84
85 gboolean    soup_auth_domain_covers      (SoupAuthDomain       *domain,
86                                           SoupMessage          *msg);
87 char       *soup_auth_domain_accepts     (SoupAuthDomain       *domain,
88                                           SoupMessage          *msg);
89 void        soup_auth_domain_challenge   (SoupAuthDomain       *domain,
90                                           SoupMessage          *msg);
91
92 /* protected */
93 gboolean    soup_auth_domain_try_generic_auth_callback (SoupAuthDomain *domain,
94                                                         SoupMessage    *msg,
95                                                         const char     *username);
96
97 G_END_DECLS
98
99 #endif /* SOUP_AUTH_DOMAIN_H */