diff options
author | Dan Winship <danw@src.gnome.org> | 2008-10-01 21:53:26 +0000 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2008-10-01 21:53:26 +0000 |
commit | 264eb7480e3a1c5762e4eb51f8273e6e438ff87b (patch) | |
tree | dfbcf59e3123dbebec3a70a42e9e89a7ab8974e8 /libsoup/soup-message-headers.h | |
parent | 91d657fb12308d51608dd3f6b6c4b3fa6b117bee (diff) | |
download | libsoup-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.h | 31 |
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, |