summaryrefslogtreecommitdiff
path: root/libsoup/soup-message-headers.h
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2008-10-01 21:53:26 +0000
committerDan Winship <danw@src.gnome.org>2008-10-01 21:53:26 +0000
commit264eb7480e3a1c5762e4eb51f8273e6e438ff87b (patch)
treedfbcf59e3123dbebec3a70a42e9e89a7ab8974e8 /libsoup/soup-message-headers.h
parent91d657fb12308d51608dd3f6b6c4b3fa6b117bee (diff)
downloadlibsoup-264eb7480e3a1c5762e4eb51f8273e6e438ff87b.tar.gz
New type and methods for working with multipart HTTP bodies (eg,
* libsoup/soup-multipart.c: New type and methods for working with multipart HTTP bodies (eg, multipart/form-data and multipart/byte-ranges) * libsoup/soup-message-headers.c (soup_message_headers_get_ranges) (soup_message_headers_set_ranges) (soup_message_headers_set_range) (soup_message_headers_get_content_range) (soup_message_headers_set_content_range): New methods for dealing with the Range and Content-Range headers. * libsoup/soup-form.h (SOUP_FORM_MIME_TYPE_URLENCODED) (SOUP_FORM_MIME_TYPE_MULTIPART): #define these MIME types here * libsoup/soup-form.c (soup_form_decode_multipart): new utility for parsing multipart/form-data forms. (soup_form_request_new_from_multipart): new utility for constructing multipart/form-data forms * libsoup/soup-headers.c (soup_headers_parse): this is now non-static, for use by soup-multipart * libsoup/soup-message-server-io.c (get_response_headers) (handle_partial_get): if the client requested a partial GET, and the SoupServer is returning the full body, rebuild the response to include only the requested range instead * tests/forms-test.c: renamed from query-test and updated to do both application/x-www-form-urlencoded and multipart/form-data tests * tests/range-test.c: test of Range/Content-Range functionality svn path=/trunk/; revision=1176
Diffstat (limited to 'libsoup/soup-message-headers.h')
-rw-r--r--libsoup/soup-message-headers.h31
1 files changed, 30 insertions, 1 deletions
diff --git a/libsoup/soup-message-headers.h b/libsoup/soup-message-headers.h
index 212fd5c2..6572f396 100644
--- a/libsoup/soup-message-headers.h
+++ b/libsoup/soup-message-headers.h
@@ -14,7 +14,8 @@ GType soup_message_headers_get_type (void);
typedef enum {
SOUP_MESSAGE_HEADERS_REQUEST,
- SOUP_MESSAGE_HEADERS_RESPONSE
+ SOUP_MESSAGE_HEADERS_RESPONSE,
+ SOUP_MESSAGE_HEADERS_MULTIPART
} SoupMessageHeadersType;
SoupMessageHeaders *soup_message_headers_new (SoupMessageHeadersType type);
@@ -82,6 +83,34 @@ SoupExpectation soup_message_headers_get_expectations (SoupMessageHeaders *hd
void soup_message_headers_set_expectations (SoupMessageHeaders *hdrs,
SoupExpectation expectations);
+typedef struct {
+ goffset start;
+ goffset end;
+} SoupRange;
+
+gboolean soup_message_headers_get_ranges (SoupMessageHeaders *hdrs,
+ goffset total_length,
+ SoupRange **ranges,
+ int *length);
+void soup_message_headers_free_ranges (SoupMessageHeaders *hdrs,
+ SoupRange *ranges);
+void soup_message_headers_set_ranges (SoupMessageHeaders *hdrs,
+ SoupRange *ranges,
+ int length);
+void soup_message_headers_set_range (SoupMessageHeaders *hdrs,
+ goffset start,
+ goffset end);
+
+gboolean soup_message_headers_get_content_range (SoupMessageHeaders *hdrs,
+ goffset *start,
+ goffset *end,
+ goffset *total_length);
+void soup_message_headers_set_content_range (SoupMessageHeaders *hdrs,
+ goffset start,
+ goffset end,
+ goffset total_length);
+
+
const char *soup_message_headers_get_content_type (SoupMessageHeaders *hdrs,
GHashTable **params);
void soup_message_headers_set_content_type (SoupMessageHeaders *hdrs,