1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; 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-filter-input-stream.h" 10 #include "soup-message.h" 11 #include "soup-client-message-io.h" 12 #include "auth/soup-auth.h" 13 #include "content-sniffer/soup-content-sniffer.h" 14 #include "soup-session.h" 15 16 void soup_message_set_status (SoupMessage *msg, 17 guint status_code, 18 const char *reason_phrase); 19 void soup_message_cleanup_response (SoupMessage *msg); 20 21 typedef void (*SoupMessageGetHeadersFn) (SoupMessage *msg, 22 GString *headers, 23 SoupEncoding *encoding, 24 gpointer user_data); 25 typedef guint (*SoupMessageParseHeadersFn)(SoupMessage *msg, 26 char *headers, 27 guint header_len, 28 SoupEncoding *encoding, 29 gpointer user_data, 30 GError **error); 31 32 void soup_message_send_item (SoupMessage *msg, 33 SoupMessageQueueItem *item, 34 SoupMessageIOCompletionFn completion_cb, 35 gpointer user_data); 36 37 /* Auth handling */ 38 void soup_message_set_auth (SoupMessage *msg, 39 SoupAuth *auth); 40 SoupAuth *soup_message_get_auth (SoupMessage *msg); 41 void soup_message_set_proxy_auth (SoupMessage *msg, 42 SoupAuth *auth); 43 SoupAuth *soup_message_get_proxy_auth (SoupMessage *msg); 44 GUri *soup_message_get_uri_for_auth (SoupMessage *msg); 45 46 /* I/O */ 47 void soup_message_io_run (SoupMessage *msg, 48 gboolean blocking); 49 void soup_message_io_finished (SoupMessage *msg); 50 void soup_message_io_pause (SoupMessage *msg); 51 void soup_message_io_unpause (SoupMessage *msg); 52 gboolean soup_message_is_io_paused (SoupMessage *msg); 53 gboolean soup_message_io_in_progress (SoupMessage *msg); 54 55 gboolean soup_message_io_skip (SoupMessage *msg, 56 gboolean blocking, 57 GCancellable *cancellable, 58 GError **error); 59 60 gboolean soup_message_io_run_until_read (SoupMessage *msg, 61 GCancellable *cancellable, 62 GError **error); 63 void soup_message_io_run_until_read_async (SoupMessage *msg, 64 int io_priority, 65 GCancellable *cancellable, 66 GAsyncReadyCallback callback, 67 gpointer user_data); 68 gboolean soup_message_io_run_until_read_finish (SoupMessage *msg, 69 GAsyncResult *result, 70 GError **error); 71 72 GInputStream *soup_message_io_get_response_istream (SoupMessage *msg, 73 GError **error); 74 75 GCancellable *soup_message_io_get_cancellable (SoupMessage *msg); 76 77 void soup_message_wrote_headers (SoupMessage *msg); 78 void soup_message_wrote_body_data (SoupMessage *msg, 79 gsize chunk_size); 80 void soup_message_wrote_body (SoupMessage *msg); 81 void soup_message_got_informational (SoupMessage *msg); 82 void soup_message_got_headers (SoupMessage *msg); 83 void soup_message_got_body (SoupMessage *msg); 84 void soup_message_content_sniffed (SoupMessage *msg, 85 const char *content_type, 86 GHashTable *params); 87 void soup_message_starting (SoupMessage *msg); 88 void soup_message_restarted (SoupMessage *msg); 89 void soup_message_finished (SoupMessage *msg); 90 gboolean soup_message_authenticate (SoupMessage *msg, 91 SoupAuth *auth, 92 gboolean retrying); 93 void soup_message_hsts_enforced (SoupMessage *msg); 94 95 gboolean soup_message_disables_feature (SoupMessage *msg, 96 gpointer feature); 97 98 GList *soup_message_get_disabled_features (SoupMessage *msg); 99 100 SoupConnection *soup_message_get_connection (SoupMessage *msg); 101 void soup_message_set_connection (SoupMessage *msg, 102 SoupConnection *conn); 103 void soup_message_transfer_connection (SoupMessage *preconnect_msg, 104 SoupMessage *msg); 105 void soup_message_set_is_preconnect (SoupMessage *msg, 106 gboolean is_preconnect); 107 gboolean soup_message_has_pending_tls_cert_request (SoupMessage *msg); 108 gboolean soup_message_has_pending_tls_cert_pass_request (SoupMessage *msg); 109 110 SoupClientMessageIO *soup_message_get_io_data (SoupMessage *msg); 111 112 void soup_message_set_content_sniffer (SoupMessage *msg, 113 SoupContentSniffer *sniffer); 114 gboolean soup_message_has_content_sniffer (SoupMessage *msg); 115 gboolean soup_message_try_sniff_content (SoupMessage *msg, 116 GInputStream *stream, 117 gboolean blocking, 118 GCancellable *cancellable, 119 GError **error); 120 GInputStream *soup_message_get_request_body_stream (SoupMessage *msg); 121 122 void soup_message_set_reason_phrase (SoupMessage *msg, 123 const char *reason_phrase); 124 125 void soup_message_set_http_version (SoupMessage *msg, 126 SoupHTTPVersion version); 127 128 typedef enum { 129 SOUP_MESSAGE_METRICS_FETCH_START, 130 SOUP_MESSAGE_METRICS_DNS_START, 131 SOUP_MESSAGE_METRICS_DNS_END, 132 SOUP_MESSAGE_METRICS_CONNECT_START, 133 SOUP_MESSAGE_METRICS_CONNECT_END, 134 SOUP_MESSAGE_METRICS_TLS_START, 135 SOUP_MESSAGE_METRICS_REQUEST_START, 136 SOUP_MESSAGE_METRICS_RESPONSE_START, 137 SOUP_MESSAGE_METRICS_RESPONSE_END 138 } SoupMessageMetricsType; 139 140 void soup_message_set_metrics_timestamp (SoupMessage *msg, 141 SoupMessageMetricsType type); 142 143 void soup_message_set_request_host_from_uri (SoupMessage *msg, 144 GUri *uri); 145 146 void soup_message_update_request_host_if_needed (SoupMessage *msg); 147 148 void soup_message_force_keep_alive_if_needed (SoupMessage *msg); 149 150 void soup_message_set_force_http1 (SoupMessage *msg, 151 gboolean force_http1); 152 153 gboolean soup_message_get_force_http1 (SoupMessage *msg); 154 155 void soup_message_set_is_misdirected_retry (SoupMessage *msg, 156 gboolean is_misdirected_retry); 157 gboolean soup_message_is_misdirected_retry (SoupMessage *msg); 158 159 #endif /* __SOUP_MESSAGE_PRIVATE_H__ */ 160