soup-auth-manager: add soup_auth_manager_use_auth()
[platform/upstream/libsoup.git] / libsoup / soup-message-private.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2000-2003, Ximian, Inc.
4  */
5
6 #ifndef SOUP_MESSAGE_PRIVATE_H
7 #define SOUP_MESSAGE_PRIVATE_H 1
8
9 #include "soup-message.h"
10 #include "soup-auth.h"
11 #include "soup-content-processor.h"
12 #include "soup-content-sniffer.h"
13 #include "soup-session.h"
14
15 typedef struct {
16         gpointer           io_data;
17
18         SoupChunkAllocator chunk_allocator;
19         gpointer           chunk_allocator_data;
20         GDestroyNotify     chunk_allocator_dnotify;
21
22         guint              msg_flags;
23         gboolean           server_side;
24
25         SoupContentSniffer *sniffer;
26         gsize              bytes_for_sniffing;
27
28         SoupHTTPVersion    http_version, orig_http_version;
29
30         SoupURI           *uri;
31         SoupAddress       *addr;
32
33         SoupAuth          *auth, *proxy_auth;
34         SoupConnection    *connection;
35
36         GSList            *disabled_features;
37
38         SoupURI           *first_party;
39
40         GTlsCertificate      *tls_certificate;
41         GTlsCertificateFlags  tls_errors;
42
43         SoupRequest       *request;
44 } SoupMessagePrivate;
45 #define SOUP_MESSAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SOUP_TYPE_MESSAGE, SoupMessagePrivate))
46
47 void             soup_message_cleanup_response (SoupMessage      *msg);
48
49
50 typedef void     (*SoupMessageGetHeadersFn)  (SoupMessage      *msg,
51                                               GString          *headers,
52                                               SoupEncoding     *encoding,
53                                               gpointer          user_data);
54 typedef guint    (*SoupMessageParseHeadersFn)(SoupMessage      *msg,
55                                               char             *headers,
56                                               guint             header_len,
57                                               SoupEncoding     *encoding,
58                                               gpointer          user_data,
59                                               GError          **error);
60 typedef void     (*SoupMessageCompletionFn)  (SoupMessage      *msg,
61                                               gpointer          user_data);
62
63
64 void soup_message_send_request (SoupMessageQueueItem      *item,
65                                 SoupMessageCompletionFn    completion_cb,
66                                 gpointer                   user_data);
67 void soup_message_read_request (SoupMessage               *msg,
68                                 SoupSocket                *sock,
69                                 SoupMessageCompletionFn    completion_cb,
70                                 gpointer                   user_data);
71
72 void soup_message_io_client    (SoupMessageQueueItem      *item,
73                                 GIOStream                 *iostream,
74                                 GMainContext              *async_context,
75                                 SoupMessageGetHeadersFn    get_headers_cb,
76                                 SoupMessageParseHeadersFn  parse_headers_cb,
77                                 gpointer                   headers_data,
78                                 SoupMessageCompletionFn    completion_cb,
79                                 gpointer                   user_data);
80 void soup_message_io_server    (SoupMessage               *msg,
81                                 GIOStream                 *iostream,
82                                 GMainContext              *async_context,
83                                 SoupMessageGetHeadersFn    get_headers_cb,
84                                 SoupMessageParseHeadersFn  parse_headers_cb,
85                                 gpointer                   headers_data,
86                                 SoupMessageCompletionFn    completion_cb,
87                                 gpointer                   user_data);
88 void soup_message_io_cleanup   (SoupMessage               *msg);
89
90 /* Auth handling */
91 void           soup_message_set_auth       (SoupMessage *msg,
92                                             SoupAuth    *auth);
93 SoupAuth      *soup_message_get_auth       (SoupMessage *msg);
94 void           soup_message_set_proxy_auth (SoupMessage *msg,
95                                             SoupAuth    *auth);
96 SoupAuth      *soup_message_get_proxy_auth (SoupMessage *msg);
97
98 /* I/O */
99 void                soup_message_io_stop        (SoupMessage          *msg);
100 void                soup_message_io_finished    (SoupMessage          *msg);
101 void                soup_message_io_pause       (SoupMessage          *msg);
102 void                soup_message_io_unpause     (SoupMessage          *msg);
103 gboolean            soup_message_io_in_progress (SoupMessage          *msg);
104
105 gboolean soup_message_io_run_until_write  (SoupMessage   *msg,
106                                            GCancellable  *cancellable,
107                                            GError       **error);
108 gboolean soup_message_io_run_until_read   (SoupMessage   *msg,
109                                            GCancellable  *cancellable,
110                                            GError       **error);
111 gboolean soup_message_io_run_until_finish (SoupMessage   *msg,
112                                            GCancellable  *cancellable,
113                                            GError       **error);
114
115 typedef gboolean (*SoupMessageSourceFunc) (SoupMessage *, gpointer);
116 GSource *soup_message_io_get_source       (SoupMessage           *msg,
117                                            GCancellable          *cancellable,
118                                            SoupMessageSourceFunc  callback,
119                                            gpointer               user_data);
120
121 GInputStream *soup_message_io_get_response_istream (SoupMessage  *msg,
122                                                     GError      **error);
123
124 gboolean soup_message_disables_feature (SoupMessage *msg,
125                                         gpointer     feature);
126
127 void soup_message_set_https_status (SoupMessage    *msg,
128                                     SoupConnection *conn);
129
130 void soup_message_network_event (SoupMessage         *msg,
131                                  GSocketClientEvent   event,
132                                  GIOStream           *connection);
133
134 GInputStream *soup_message_setup_body_istream (GInputStream *body_stream,
135                                                SoupMessage *msg,
136                                                SoupSession *session,
137                                                SoupProcessingStage start_at_stage);
138
139 void soup_message_set_soup_request (SoupMessage *msg,
140                                     SoupRequest *req);
141
142 SoupConnection *soup_message_get_connection (SoupMessage    *msg);
143 void            soup_message_set_connection (SoupMessage    *msg,
144                                              SoupConnection *conn);
145
146 #endif /* SOUP_MESSAGE_PRIVATE_H */