summaryrefslogtreecommitdiff
path: root/libsoup/soup-message.h
Commit message (Collapse)AuthorAgeFilesLines
* Split SoupMessage into client and server partscarlosgc/split-ioCarlos Garcia Campos2020-10-191-35/+6
| | | | Add SoupServerMessage and move there all the server only functionality.
* message: remove soup_message_set_requestcarlosgc/request-body-streamCarlos Garcia Campos2020-10-081-6/+0
|
* message: add support for stream based request bodyCarlos Garcia Campos2020-10-081-0/+10
| | | | | | Add soup_message_set_request_body() that takes a GInputStream and soup_message_set_request_body_from_bytes() for convenience that creates a GMemoryInputStream for the given bytes.
* Replace SoupBuffer with GBytesPatrick Griffis2020-09-191-3/+3
|
* Delete SoupAddressPatrick Griffis2020-09-191-3/+0
|
* Reorganize source treePatrick Griffis2020-09-191-4/+4
|
* Remove deprecated SoupChunkAllocator APIsPatrick Griffis2020-09-191-14/+0
|
* Remove deprecated SoupMessageBody APIPatrick Griffis2020-09-191-9/+6
|
* soup-message: make soup_message_disables_feature_by_type() publicCarlos Garcia Campos2020-07-061-0/+4
| | | | | Renamed as soup_message_is_feature_disabled(). We need this in WebKit to check if cookies are available in an existing SoupMessage.
* Expose support for same-site cookiesPatrick Griffis2020-01-211-0/+12
| | | | | | | | | | This adds API for web browsers to set extra information to support same-site cookies. Note that usage of SoupSession alone does not provide enough information to reasonably use these at the moment and require manually setting the information with the extra context a browser may have.
* Do not include the header exclusion guards in the introspectionCorentin Noël2018-06-131-3/+3
|
* Add API to disable using cached credentials for a particular SoupMessageCarlos Garcia Campos2016-12-031-1/+2
| | | | | | | | | | | | | | | | | | Add SOUP_MESSAGE_DO_NOT_USE_AUTH_CACHE new flag to tell the SoupAuthManager that it shoudn't use cached credentials to authenticate a particular message, and that credentials shouldn't be cached either after a successful authentication. When SOUP_MESSAGE_DO_NOT_USE_AUTH_CACHE flag is present for a message, we never query the cached credentials on message starting callback, so that the SoupAuth is not set there. The SoupAuth is now always set on the message after authenticate, and the Authorization header updated right before the message is re-queued when SOUP_MESSAGE_DO_NOT_USE_AUTH_CACHE is used. This patch also updates soup_message_set_auth() to no longer update the Authorization header, but just set the SoupAuth handling the case of setting the same SoupAuth twice. https://bugzilla.gnome.org/show_bug.cgi?id=774033
* Mark all remaining methods with SOUP_AVAILABLE_IN_2_4Ignacio Casal Quinteiro2015-11-091-0/+29
| | | | | | | | This way we can as well redefine _SOUP_EXTERN on msvc builds with the right extern value needed for it. This is the same we do on glib and gtk+ https://bugzilla.gnome.org/show_bug.cgi?id=757146
* Add SoupMessage flag SOUP_MESSAGE_IGNORE_CONNECTION_LIMITSCarlos Garcia Campos2015-03-021-7/+8
| | | | | | | | | | | It ensures that a new connection will be created for the message if there aren't any idle connections available and the current number of connections have reached any of the limits. When a new dedicated connection is created, it's automatically removed when the message is unqueued, without switching to idle state to make sure it can't be reused. https://bugzilla.gnome.org/show_bug.cgi?id=744720
* Add SoupMessage::starting signalCarlos Garcia Campos2015-03-021-1/+5
| | | | | | | It's similar to the SoupSession::request-started signal, but it's also emitted for cached resources. https://bugzilla.gnome.org/show_bug.cgi?id=731153
* SoupMessage: add :request-body-data and :response-body-data propertiesDan Winship2013-11-171-15/+17
| | | | | | | Make it easier to use the request and response bodies from introspection by providing accessors to get them as GBytes. https://bugzilla.gnome.org/show_bug.cgi?id=704105
* soup-message-queue: add a priority system to the message queueSergio Villar Senin2013-04-171-0/+18
| | | | | | | | Clients can specify a priority for each message added to the SoupSession, which will determine the order in which it is processed by the session's message processing queue. https://bugzilla.gnome.org/show_bug.cgi?id=696277
* Rename LIBSOUP_DISABLE_DEPRECATED to SOUP_DISABLE_DEPRECATEDDan Winship2013-01-041-2/+2
| | | | | | | | | GNOME_MAINTAINER_MODE_DEFINES apparently sets LIBSOUP_DISABLE_DEPRECATED, which is now causing various jhbuild modules to break. "Fix" this by renaming the define (which is only still there because gtk-doc complains if it's not). The *right* way to get deprecation warnings/errors now is to define SOUP_VERSION_MIN_REQUIRED.
* Add back LIBSOUP_DISABLE_DEPRECATEDDan Winship2012-12-281-0/+2
| | | | | | gtk-doc expects "Deprecated:" notes in docs to be matched up with some deprecation-guard #define. So even though we don't want people to use it any more, add LIBSOUP_DISABLE_DEPRECATED back.
* soup-message: deprecate soup_message_set_chunk_allocator()Dan Winship2012-12-171-0/+1
| | | | | | This was added as a hacky way to avoid extra memcpy()s in certain use cases by reading data directly into a caller-provided buffer. However, SoupRequest now provides a vastly simpler way of doing this.
* SoupMessage: add soup_message_get_soup_request()Dan Winship2012-12-101-0/+3
| | | | | | When dealing with SoupMessage-related signals in SoupRequest-using code, it's useful to be able to get the message's associated SoupRequest.
* Add per-version deprecation/availability warningsDan Winship2012-11-081-0/+6
| | | | | | | | | | | Add SOUP_VERSION_X_XX, SOUP_VERSION_MIN_REQUIRED, and SOUP_VERSION_MAX_ALLOWED, to enable version-based warnings. Tag all functions with appropriate SOUP_AVAILABLE_IN_ and SOUP_DEPRECATED_IN_ macros. Also, fix up some "Since" tags to not refer to unstable releases or non-.0 point releases.
* SoupMessage: Add SOUP_MESSAGE_IDEMPOTENT flagMilan Crha2012-08-191-1/+2
| | | | | | | In particular, this lets the app indicate that it's OK to use an existing connection when sending a POST. https://bugzilla.gnome.org/show_bug.cgi?id=681493
* Force some SoupMessages to use a fresh SoupConnectionDan Winship2011-12-221-1/+2
| | | | | | | | | | Add a new SOUP_MESSAGE_NEW_CONNECTION flag, and insist on getting a brand new SoupConnection for any message that has that flag set, or that uses a non-idempotent method. Add a test to misc-test for this. https://bugzilla.gnome.org/show_bug.cgi?id=578990
* SoupSession: add some API for handling redirectionsDan Winship2011-11-051-0/+4
|
* Add SOUP_MESSAGE_CAN_REBUILD, for regeneratable streamed request bodiesDan Winship2011-08-161-0/+1
| | | | | | | | | | | | | | Long ago, soup_message_body_set_accumulate() was made into a no-op on request bodies, because otherwise there would be no body available to send if the request was restarted. Add a SOUP_MESSAGE_CAN_REBUILD flag, that indicates that the caller takes responsibility for handling this, and properly discard chunks if that is set. Also update chunk-test to test this, and (finally!) remove the FIXME there, since we are now testing the !accumulate codepath again properly. https://bugzilla.gnome.org/show_bug.cgi?id=656650
* [gi] annotate nicks for the elements of HTTPVersion enumJohn (J5) Palmieri2010-12-131-2/+2
| | | | | | * GI was parsing as HTTPVersion.SOUP_HTTP_1_0 as HTTPVersion.0 * GI now parses as HTTPVersion.HTTP_1_0 (identifiers can't start with a number so we append HTTP for good measure)
* Add SoupMessage:tls-certificate and SoupMessage:tls-errorsDan Winship2010-12-071-3/+11
| | | | | These provide more information about the certificate on the other end of a TLS connection.
* Add properties for request/response body/headersDan Winship2010-04-271-8/+12
| | | | | | | For use with gobject-introspection in bindings that can't read fields directly. Patch from Colin Walters. http://bugzilla.gnome.org/show_bug.cgi?id=551441
* New SoupMessageFlag to report whether it has dealt with a trusted certificateGustavo Noronha Silva2010-02-211-3/+4
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=610374
* Implement acceptance policies in SoupCookieJarXan Lopez2010-02-031-0/+4
| | | | | | | | | | | | Through the "accept-policy" property in the jar we can now set one among three predetermined policies: accept all cookies (SOUP_COOKIE_JAR_ACCEPT_ALWAYS), accept none (SOUP_COOKIE_JAR_ACCEPT_NEVER) and only accept cookies set by the main document we are loading (SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY). A new property, "first-party", is added to SoupMessage so that the application using libsoup can inform us of what is the main document URI for each message that is requested.
* Content-Encoding supportDan Winship2009-12-161-1/+2
| | | | | | | | | Adds SoupContentDecoder, which provides support for decoding "gzip" Content-Encoding. For now other types are not supported and can't be added. The SoupCoding interface is private because it will eventually be replaced with something GConverter-based. https://bugzilla.gnome.org/show_bug.cgi?id=522772
* Add soup_message_disable_feature()Dan Winship2009-08-091-0/+3
| | | | | | | | | This allows you to disable specific SoupSessionFeatures for particular messages. Also update tests/sniffing-test to test it out. http://bugzilla.gnome.org/show_bug.cgi?id=574773
* Implement content sniffingGustavo Noronha Silva2009-07-021-0/+1
| | | | | | | | | | | | | | | | The implementation is based on the draft spec on Content-Type Processing Model (draft-abarth-mime-sniff-01). It is a spinoff from the HTML5 spec. Soup now provides a SoupContentSniffer session feature, which hooks into the message I/O, and delays emissions of the got-chunk signal to be able to figure out the Content-Type of messages from the actual content received, in some cases. GIO is also used to sniff content, whenever the spec allows further sniffing. http://bugzilla.gnome.org/show_bug.cgi?id=572589
* Change the SoupURI properties to SoupAddress properties.Dan Winship2008-10-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libsoup/soup-connection.c: Change the SoupURI properties to SoupAddress properties. * libsoup/soup-address.c (soup_address_resolve_async) (soup_address_resolve_sync): Redo slightly so that multiple simultaneous attempts to resolve the same address won't cause problems. (soup_address_hash_by_name, soup_address_equal_by_name): (soup_address_hash_by_ip, soup_address_equal_by_ip): methods to hash addresses by name or IP address * libsoup/soup-message.c (soup_message_get_address): gets a SoupAddress corresponding to the message's URI * libsoup/soup-auth-manager.c (SoupAuthHost): hash hosts by soup_address_hash_by_name() rather than by URI. * libsoup/soup-session.c (soup_session_get_connection): pass addresses to soup_connection_new(), not URIs. (SoupSessionHost): hash hosts by soup_address_hash_by_ip() rather than by URI. This requires that the addresses will have already been resolved by the SoupSession subclasses before calling soup_session_get_connection(), but also means that now requests made to different virtual hosts on the same IP address can share a connection. * libsoup/soup-message-queue.c (SoupMessageQueueItem): add address-resolving state * libsoup/soup-session-sync.c (process_queue_item): resolve the message's address before getting a connection * libsoup/soup-session-async.c (run_queue, resolve_msg_addr) (resolved_msg_addr): resolve the message's address before getting a connection (request_restarted): if the message gets requeued to a different host, we'll need to re-resolve the address. * libsoup/soup-uri.c (soup_uri_copy_root, soup_uri_host_hash) (soup_uri_host_equal): No longer needed * libsoup/soup-dns.c (do_async_callback): disconnect from the cancellable before invoking the callback * tests/proxy-test.c (tests): fix the 403 example; hostnames are resolved by the session now, even when sending to a proxy, so we need to use a hostname that actually exists svn path=/trunk/; revision=1179
* libsoup/soup-auth-manager-ntlm.c libsoup/soup-auth-manager.cDan Winship2008-09-261-1/+1
| | | | | | | | | | | | | | | | | | * libsoup/soup-auth-manager-ntlm.c * libsoup/soup-auth-manager.c * libsoup/soup-cookie-jar.c * libsoup/soup-dns.c * libsoup/soup-logger.c: * libsoup/soup-message-body.h: * libsoup/soup-message.h * libsoup/soup-misc.h: * libsoup/soup-xmlrpc.h: * tests/continue-test.c: * tests/ntlm-test.c: Fix warnings pointed out by gcc -pedantic. #553976, Sander Dijkhuis. svn path=/trunk/; revision=1167
* New, replaces SOUP_MESSAGE_OVERWRITE_CHUNKS, but can be set on either theDan Winship2008-04-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libsoup/soup-message-body.c (soup_message_body_set_accumulate) (soup_message_body_get_accumulate): New, replaces SOUP_MESSAGE_OVERWRITE_CHUNKS, but can be set on either the incoming or outgoing message body. (soup_message_body_get_chunk): update to still dtrt if !accumulate (soup_message_body_got_chunk, soup_message_body_wrote_chunk): New methods to handle accumulating/discarding chunks. * libsoup/soup-message-io.c (read_body_chunk): Use soup_message_body_got_chunk. (io_write): Use soup_message_body_wrote_chunk, to discard unneeded chunks after writing them. Fixes most of #522146. * libsoup/soup-message.c (soup_message_class_init): add a new flag, "server-side", to indicate whether the message is client-side or server-side, and update several methods to use it. (got_body): Update for accumulate (soup_message_set_flags): If the caller changes OVERWRITE_CHUNKS, update the corresponding accumulate flag. * libsoup/soup-message.h (SOUP_MESSAGE_OVERWRITE_CHUNKS): deprecated now * tests/chunk-test.c (do_request_test): Use soup_message_body_set_accumulate() now, and verify that the chunks are being discarded appropriately. (do_response_test): Use soup_message_body_set_accumulate() instead of OVERWRITE_CHUNKS. * tests/pull-api.c (do_fully_async_test) (do_synchronously_async_test): Use soup_message_body_set_accumulate(). svn path=/trunk/; revision=1126
* add a new signal "wrote-body-data" to address the problem thatDan Winship2008-04-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | * libsoup/soup-message.c: add a new signal "wrote-body-data" to address the problem that "wrote-chunk" is not usable for progress info (especially with non-chunked encoding). #525101, suggested by Christian Kellner. * libsoup/soup-message-io.c (write_data): emit wrote-body-data as appropriate. (io_write): update so that (a) Content-Length writes can be done in multiple chunks (as long as the caller explicitly sets the Content-Length header beforehand), and (b) the body data doesn't get copied an extra time. Based on a patch from Christian. * libsoup/soup-message-client-io.c (get_request_headers): Don't update the Content-Length header if it's already set, even if it doesn't match the (current) body length. * tests/chunk-test.c: test some chunk-encoding-related behavior svn path=/trunk/; revision=1120
* de-constify msg->reason_phrase; it's no more const than any other structDan Winship2008-03-291-1/+1
| | | | | | | | | | | | | | | | * libsoup/soup-message.h (SoupMessage): de-constify msg->reason_phrase; it's no more const than any other struct field. * libsoup/soup-message.c (finalize) (soup_message_cleanup_response, soup_message_set_status) (soup_message_set_status_full): don't need to cast reason_phase to non-const when freeing it now * libsoup/soup-message-client-io.c (parse_response_headers): Likewise, remove reason-phrase non-const casts svn path=/trunk/; revision=1118
* use an underscore for struct definitions. Fixes bug #518317.Benjamin Otte2008-02-251-1/+1
| | | | | | | | | | | | | | | | | | | | 2008-02-25 Benjamin Otte <otte@gnome.org> * libsoup/soup-address.h: * libsoup/soup-auth-domain.h: * libsoup/soup-auth.h: * libsoup/soup-message.h: * libsoup/soup-server.h: * libsoup/soup-session-async.h: * libsoup/soup-session-sync.h: * libsoup/soup-session.h: * libsoup/soup-socket.h: * libsoup/soup-types.h: * libsoup/soup-uri.h: use an underscore for struct definitions. Fixes bug #518317. svn path=/trunk/; revision=1093
* New method that lets the application set a callback function to use toDan Winship2008-02-071-0/+9
| | | | | | | | | | | | | | | | | | | | | | * libsoup/soup-message.c (soup_message_set_chunk_allocator): New method that lets the application set a callback function to use to allocate SoupBuffers for reading into, so as to avoid needing extra copies. * libsoup/soup-message-body.c (soup_buffer_new_with_owner): new, to create a SoupBuffer pointing to memory owned by another object, with a GDestroyNotify to unref/free that object when the SoupBuffer is freed. (soup_buffer_get_owner): Returns the owner of a buffer created with soup_buffer_new_with_owner. (soup_buffer_free, etc): update SoupBuffer code for owned buffers. Suggested by Wouter Cloetens, #513810. * tests/simple-httpd.c (do_get): Use mmap() and soup_buffer_new_with_owner(), as a demo/test. svn path=/trunk/; revision=1075
* Merge libsoup-2.4 branch to trunkDan Winship2008-01-151-249/+41
| | | | | | * Merge libsoup-2.4 branch to trunk svn path=/trunk/; revision=1041
* add G_BEGIN_DECLS / G_END_DECLS to all installed headers so that libsoupJonathon Jongsma2007-06-011-0/+4
| | | | | | | | | 2007-05-16 Jonathon Jongsma <jjongsma@gnome.org> * libsoup/*.h: add G_BEGIN_DECLS / G_END_DECLS to all installed headers so that libsoup can be used from C++ programs. #438776 svn path=/trunk/; revision=925
* initialize encoding to SOUP_TRANSFER_CONTENT_LENGTH rather thanDan Winship2006-07-211-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libsoup/soup-server-message.c (soup_server_message_init): initialize encoding to SOUP_TRANSFER_CONTENT_LENGTH rather than SOUP_TRANSFER_UNKNOWN, since SOUP_TRANSFER_UNKNOWN has never actually worked here, and so there was an undocumented requirement that you manually set the encoding on every response (which SoupServer itself was not doing on internal errors). Problem pointed out by Dennis Jacobfeuerborn on libsoup-list. (soup_server_message_set_encoding): reject the new SoupTransferEncoding values, for compatibility * libsoup/soup-message.h (SoupTransferEncoding): Clarify that SOUP_TRANSFER_UNKNOWN is essentially an error value, since in the public API, it always has been, due to bugs. Add some new values, currently just for internal use: SOUP_TRANSFER_NONE (for cases like HEAD which never have a body), SOUP_TRANSFER_EOF (to replace SOUP_TRANSFER_UNKNOWN), and SOUP_TRANSFER_BYTERANGES (which isn't actually implemented yet). * libsoup/soup-message.c (soup_message_get_request_encoding, soup_message_get_response_encoding): figure out the body encoding being used by the request/response, including all the tricky cases like HEAD/1xx/etc. (soup_message_is_keepalive): if the response encoding is SOUP_TRANSFER_EOF, then the message isn't keepalive. * libsoup/soup-message-client-io.c (parse_response_headers): use soup_message_get_response_encoding. * libsoup/soup-message-server-io.c (parse_request_headers): use soup_message_get_request_encoding. (get_response_headers): use both soup_server_message_get_encoding and soup_message_get_response_encoding, to properly distinguish between the wire encoding and the alleged-by-headers encoding (which differ for HEAD, etc). * libsoup/soup-message-io.c (io_error, read_body_chunk): s/SOUP_TRANSFER_UNKNOWN/SOUP_TRANSFER_EOF/. (io_body_state): if encoding is SOUP_TRANSFER_NONE, jump right to SOUP_MESSAGE_IO_STATE_FINISHING. * libsoup/soup-server.c (request_finished): Check soup_socket_is_connected() *before* soup_message_is_keepalive(), since the message will be invalid if the client unexpectedly dropped the connection. * tests/simple-httpd.c (server_callback): handle HEAD requests. Remove no-longer-necessary soup_server_message_set_encoding() call. * tests/get.c: add -d (debug) flag to print headers, and -h flag to do a HEAD rather than GET
* tests if IO is currently in progress on a message.Dan Winship2006-05-261-1/+1
| | | | | | | | | | * libsoup/soup-message-io.c (soup_message_io_in_progress): tests if IO is currently in progress on a message. * libsoup/soup-session-async.c (run_queue): don't process messages that are io_in_progress. #342545, fix based on analysis from Wang Xin. (In the future we may want to re-fix this by adding a REQUEUED message status separate from QUEUED.)
* add/fix gtk-doc comments, make functions match prototypes, etcDan Winship2005-06-141-33/+123
| | | | | | | * libsoup/*.[ch]: add/fix gtk-doc comments, make functions match prototypes, etc * docs/reference/*: update, fix, etc
* require glib-2.0 >= 2.4.0Dan Winship2005-04-111-4/+0
| | | | | | | | | | | | * configure.in: require glib-2.0 >= 2.4.0 * libsoup/*.c: use G_DEFINE_TYPE and g_type_class_add_private/G_TYPE_INSTANCE_GET_PRIVATE * libsoup/soup-types.h: kill SOUP_MAKE_TYPE and SOUP_MAKE_TYPE_WITH_IFACE * tests/revserver.c: use GThread. (patch from tml)
* add/fix lots of gtk-doc commentsDan Winship2004-08-261-14/+0
| | | | | | | | | | | | | | | * libsoup/*: add/fix lots of gtk-doc comments * libsoup/soup-misc.c (soup_str_case_hash, soup_str_case_equal): Fix bug noticed while documenting. (We were using the locale-case-insensitive functions rather than the g_ascii_ ones.) * libsoup/soup-message.h (SoupMessageFlags): remove the (never implemented) NO_PIPELINE and NO_COOKIE flags. * docs/reference/tmpl/*.sgml: Regenerate, fill in some stuff. There are still problems here with gtk-doc not recognizing many of the objects in libsoup...
* Lots of thread-safety stuff, primarly so you can disconnect a socket fromDan Winship2003-12-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libsoup/soup-socket.c: Lots of thread-safety stuff, primarly so you can disconnect a socket from one thread while doing I/O in another. * libsoup/soup-message-io.c (soup_message_io_cancel): Split into soup_message_io_stop() and io_cleanup(), to separate out the "stop reading/writing" and "free data" phases to allow thread-safe synchronous cancellation. (soup_message_io_finished): call both soup_message_io_stop() and io_cleanup() (io_error): Only set SOUP_STATUS_IO_ERROR on the message if it doesn't already have a transport error status (eg, CANCELLED). (new_iostate): Call io_cleanup() if needed. * libsoup/soup-status.h: add "SOUP_STATUS_NONE" for 0, to make it clearer that it's not a status. * libsoup/soup-message.c (finalize, restarted, finished, soup_message_set_uri): s/soup_message_io_cancel/soup_message_io_stop/ (soup_message_cleanup_response): s/0/SOUP_STATUS_NONE/ * libsoup/soup-connection.c (send_request): Remove soup_message_io_cancel call. * libsoup/soup-session-sync.c (send_message): Connect to the connection's "disconnected" signal rather than using a weak ref, since that's what we really care about, and it's possible that the connection may have an extra ref on it somewhere that would keep it from being destroyed even if it was disconnected.
* Add gthread to glib checkDan Winship2003-12-171-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.in: Add gthread to glib check * libsoup/soup-session.c: Make this an abstract class. * libsoup/soup-session-async.c: A SoupSession class for asynchronous gmain-based operation; replaces the old SoupSession. * libsoup/soup-session-sync.c: A SoupSession class for synchronous blocking operation for use with threaded apps. * libsoup/soup-types.h, libsoup/soup.h: add the new session subclasses * libsoup/soup-connection.c (soup_connection_connect_sync): Don't try to unref the socket if the socket creation fails. (soup_connection_reserve): New, to explicitly mark a connection as being in use without queueing a message on it. * libsoup/soup-dns.c (check_hostent): Oof. Fix the logic of the "block" flag to not be reversed. * libsoup/soup-message.c (finished): set status to FINISHED here. (soup_message_cancel): Gone; needs to be done at the session level. * libsoup/soup-message-queue.c: Add a mutex and make all of the operations thread-safe. * libsoup/soup-socket.c (disconnect_internal): Make this thread-safe. (soup_socket_connect): Make the sync case work correctly. * libsoup/Makefile.am: add the SoupSession subclasses * tests/Makefile.am: libsoup depends on libgthread now, so revserver doesn't need to explicitly. * tests/get.c, tests/auth-test.c, tests/simple-proxy.c: Use soup_session_async_new().