Define two new signals, request_queued and request_unqueued, to provided a
[platform/upstream/libsoup.git] / ChangeLog
index b97a83b..34aeaa6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-2008-01-09  Benjamin Otte  <otte@gnome.org>
+2008-03-15  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-session.c: Define two new signals, request_queued
+       and request_unqueued, to provided a clearer (and
+       clearly-documented) lifecycle for messages, helping us (and other
+       people) avoid bugs like #522601, SoupSession::authenticate signal
+       emitted multiple times per message (reported and analyzed by Tommi
+       Komulainen).
+
+       * libsoup/soup-logger.c:
+       * libsoup/soup-auth-manager.c:
+       * libsoup/soup-auth-manager-ntlm.c: Use request_queued/unqueued
+
+       * tests/auth-test.c (do_async_auth_test): add a regression test
+
+2008-03-14  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message-client-io.c (get_request_headers): Fix Host
+       header syntax when the host is an IPv6 address literal. Noticed
+       while poking at #522519.
+
+2008-03-14  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message-private.h (SoupMessagePrivate): add
+       an orig_http_version field.
+
+       * libsoup/soup-message.c (soup_message_init): initialize
+       orig_http_version.
+       (soup_message_set_http_version): If called before the status code
+       is received, set orig_http_version too.
+       (soup_message_cleanup_response): Restore orig_http_version, so
+       that we don't send an HTTP/1.0 request in response to an HTTP/1.0
+       redirect. #521848, Tommi Komulainen.
+
+       * libsoup/soup-message-server-io.c (get_response_headers):
+       actually output "HTTP/1.0", not "HTTP/1.1", if the message's http
+       version is 1.0.
+
+       * tests/redirect-test.c (server_callback): Add a regression test;
+       set http_version to 1.0 when returning a redirect, but require it
+       to be 1.1 when processing the following request
+
+2008-03-13  Xan Lopez  <xan@gnome.org>
+
+        * libsoup/soup-address.c:
+        * libsoup/soup-auth-domain-basic.c:
+        * libsoup/soup-auth-domain-digest.c:
+        * libsoup/soup-auth-domain.c:
+        * libsoup/soup-auth.c:
+        * libsoup/soup-connection.c:
+        * libsoup/soup-message.c:
+        * libsoup/soup-server.c:
+        * libsoup/soup-session.c:
+        * libsoup/soup-socket.c:
+
+       Use G_OBJECT_WARN_INVALID_PROPERTY_ID in all get/set_property functions.
+
+       Bug #522115
+       
+2008-03-13  Xan Lopez  <xan@gnome.org>
+
+        * tests/dns.c: (main):
+        * tests/get.c: (main):
+        * tests/getbug.c: (main):
+        * tests/simple-httpd.c: (main):
+        * tests/simple-proxy.c: (main):
+        * tests/ssl-test.c: (main):
+        * tests/test-utils.c: (test_init):
+
+        g_thread_init should be called before any other glib function. (#522117)
+
+2008-03-10  Dan Winship  <danw@gnome.org>
+
+       * configure.in: 2.4.0!
+
+       * NEWS: update
+
+2008-02-28  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-session.c (finalize): free priv->user_agent.
+       #518798, Wouter Cloetens.
+       (redirect_handler): PROPFIND is defined to be "safe and
+       idempotent", so allow automatic redirects of it. (Pointed out by
+       Christian Kellner. FIXME: need a way for apps to declare
+       additional safe methods). Also, treat 302 like 307, not like 303,
+       because that behavior is universal in the real world, despite the
+       spec's protests.
+
+       * tests/redirect-test.c (tests): update POST 302 behavior check
+
+       * tests/Makefile.am (TESTS): oops, add redirect-test so it gets
+       run by "make check"/"make distcheck"
+
+       * tests/ssl-test.c: Re-revert the change from 2008-02-09; the
+       problem with ssl-test.c was not that soup_gnutls_init() wasn't
+       thread-safe, it's that the server thread doesn't do anything that
+       would ever cause soup_gnutls_init() to be called, and so if the
+       client thread doesn't start first, the server thread will run
+       without initializing GNUTLS.
+
+2008-02-27  Benjamin Otte  <otte@gnome.org>
+
+       * libsoup/soup-socket.c: (read_from_network), (soup_socket_read),
+       (soup_socket_read_until), (soup_socket_write):
+       ensure that nread/nwrote parameters aren't NULL. They are also
+       properly set on error paths now.
+
+2008-02-25  Dan Winship  <danw@gnome.org>
+
+       * configure.in: 2.3.4
+
+       * NEWS: Update
+
+2008-02-25  Dan Winship  <danw@gnome.org>
+
+       * docs/reference/Makefile.am (DOC_MODULE): rename from libsoup to
+       libsoup-2.4
+       (TARGET_DIR): don't need to override this now
+
+       * docs/reference/libsoup-2.4.types:
+       * docs/reference/libsoup-2.4-docs.txt:
+       * docs/reference/libsoup-2.4-overrides.txt:
+       * docs/reference/libsoup-2.4-sections.txt: Rename these from
+       unversioned, to match DOC_MODULE
+
+       Fixes doc installation to work with devhelp again. #518384, Mart
+       Raudsepp.
+
+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.
+
+2008-02-20  Sebastian Dröge  <slomo@circular-chaos.org>
+
+       * libsoup.pc.in: Add gobject-2.0 and gio-2.0 to Requires.
+       Move libxml-2.0 and the SSL dependency to Requires.private
+       as no header is including them. Fixes bug #517631.
+
+2008-02-11  Dan Winship  <danw@gnome.org>
+
+       * configure.in: post-release bump to 2.3.3
+
+2008-02-11  Dan Winship  <danw@gnome.org>
+
+       * configure.in: 2.3.2
+       (SOUP_CURRENT): bump for API changes
+
+       * NEWS: update
+
+2008-02-09  Dan Winship  <danw@gnome.org>
+
+       * Misc gtk-doc fix-ups
+
+2008-02-09  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-misc.h: remove prototype for
+       soup_signal_connect_once, which is only used by soup-connection
+       now, and will go away once that code is rewritten.
+
+       * libsoup/soup-connection.c: prototype it here now (the definition
+       is still in soup-misc.c)
+
+2008-02-09  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-manager-ntlm.c: mark the DES magic number
+       arrays const
+
+       * libsoup/soup-date.c (months, days): add an extra "const" to each
+       of these declarations, as one "const" is apparently not enough.
+       (soup_date_to_time_t): remove redundant copy of days_before array.
+
+       * libsoup/soup-dns.c (soup_dns_init): use g_once_init_enter/leave
+
+       * libsoup/soup-gnutls.c (soup_ssl_supported)
+       (soup_gnutls_channel_funcs): Mark these const
+       (soup_gnutls_init, init_dh_params): Use g_once_init_enter/leave
+
+       * libsoup/soup-status.c (reason_phrases): mark this const
+
+       * tests/ssl-test.c: Remove the workaround for soup_gnutls_init()
+       not being thread-safe, since it is now.
+
+2008-02-08  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message-headers.c (SoupMessageHeadersIter)
+       (soup_message_headers_iter_init, soup_message_headers_iter_next):
+       Add an iterator type for SoupMessageHeaders.
+
+       * libsoup/soup-message-client-io.c (get_request_headers):
+       * libsoup/soup-message-server-io.c (get_response_headers): Use
+       SoupMessageHeadersIter.
+
+       * libsoup/soup-logger.c (print_request, print_response): Use
+       SoupMessageHeadersIter. And take advantage of the simplification
+       to fix the kludge where 'direction' was stored as a field in
+       SoupLoggerPrivate rather than being an argument to
+       soup_logger_print.
+
+       * tests/get.c (get_url):
+       * tests/header-parsing.c (check_headers):
+       * tests/simple-httpd.c (server_callback): Use
+       SoupMessageHeadersIter
+
+2008-02-06  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-server.c (soup_server_add_auth_domain): Ref the
+       auth domain when adding it.
+
+       * tests/continue-test.c (setup_server):
+       * tests/server-auth-test.c (main): Add unrefs here to avoid
+       leaking now
+
+2008-02-06  Dan Winship  <danw@gnome.org>
+
+       * 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.
+
+2008-02-06  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-date.c (soup_date_to_time_t): clamp the result to
+       the time_t range, and document that. Remove the #ifdef HAVE_TIMEGM
+       branch.
+
+       * configure.in: remove check for timegm
+
+2008-02-04  Dan Winship  <danw@gnome.org>
+
+       * libsoup/Makefile.am: Fix the handling of soup-enum-types.h to
+       ensure that it gets built before the things that depend on it.
+
+2008-02-03  Benjamin Otte  <otte@gnome.org>
+
+       * libsoup/soup-socket.c: update documentation to new API
+
+2008-02-02  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-session.c: fix default connections-per-host again;
+       it was defined in two places. Add SOUP_SESSION_USER_AGENT property
+       (setup_message): set the User-Agent request header on the request
+
+       * libsoup/soup-server.c: add SOUP_SERVER_SERVER_HEADER property
+       (start_request): set the Server response header on the request.
+
+       * tests/get.c:
+       * tests/simple-httpd.c: set the User-Agent/Server headers
+
+2008-02-02  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-headers.c (soup_headers_parse_request): if the
+       request headers contain an unrecognized Expect: header, return
+       SOUP_STATUS_EXPECTATION_FAILED. Also, process Connection headers
+       in HTTP/1.0 messages as required by 2616 14.10.
+       (soup_headers_parse_response): Likewise handle Connection headers
+       in HTTP/1.0 messages
+
+       * tests/header-parsing.c: test those things
+
+2008-02-02  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-session.c (redirect_handler): Misc fixes: don't
+       redirect on "300 Multiple Choices", "304 Not Modified", "305 Use
+       Proxy", or any unrecognized status code. Don't redirect unsafe
+       methods on 301, 302, or 307. Redirect POST to GET on 303.
+
+       * tests/redirect-test.c: test of redirection handling behavior.
+
+2008-02-02  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-method.h (SOUP_METHOD_GET, etc): Fix these so that
+       direct comparisons against them actually *are* faster than doing
+       strcmp, as the docs claim.
+
+       * libsoup/soup-uri.h (SOUP_URI_SCHEME_HTTP,
+       SOUP_URI_SCHEME_HTTPS): likewise
+
+2008-02-01  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-address.c: Use GObject properties.
+       (soup_address_new, soup_address_new_from_sockaddr)
+       (soup_address_new_any): Make these just wrappers around
+       g_object_new.
+
+       * libsoup/soup-message-body.c (soup_message_body_get_type):
+       * libsoup/soup-message-headers.c (soup_message_headers_get_type):
+       * libsoup/soup-server.c (soup_client_context_get_type): 
+       Register these as boxed types, for language bindings.
+
+       * libsoup/soup-date.c (soup_date_get_type):
+       * libsoup/soup-message-body.c (soup_buffer_get_type):
+       * libsoup/soup-value-utils.c (soup_byte_array_get_type):
+       * libsoup/soup-uri.c (soup_uri_get_type): Upgrade to the latest
+       yummiest type-registering idiom.
+
+2008-02-01  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-connection.c (soup_connection_disconnect):
+       Reorganize this; emitting DISCONNECTED may cause the session to
+       unref the connection, causing it to be destroyed, so do everything
+       else before that. #437835 and dups. Also, call
+       soup_message_cleanup_response() when requeuing an IO_ERROR-ed
+       message, so soup_session_send_message() will requeue it rather
+       than treating it as failed.
+
+       * docs/reference/Makefile.am (TARGET_DIR): override this to
+       include the API version, to fix the last remaining parallel
+       install issue between libsoup 2.2 and 2.4. #512810, Daniel
+       Gryniewicz.
+
+       * tests/query-test.c (do_test): don't use "stdout" as a variable
+       name; it's allowed to be a macro  (and it is one on Solaris).
+       #513602, patch from Jeff Cai.
+
+2008-01-31  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-date.c (soup_date_to_time_t): new
+
+       * libsoup/soup-form.c (soup_form_decode): Remove "_urlencoded"
+       from name. (And add back-compat #define.)
+       (soup_form_encode): New, takes varargs parameters for each form
+       construction.
+       (soup_form_encode_hash, soup_form_encode_datalist): renamed, with
+       back-compat #defines
+       (soup_form_request_new, soup_form_request_new_from_hash)
+       (soup_form_request_new_from_datalist): New methods to construct a
+       GET or POST message with form data.
+
+       * libsoup/soup-uri.c (soup_uri_set_query_from_fields): New, takes
+       varargs like soup_form_encode().
+
+       * libsoup/soup-value-utils.c (soup_value_hash_new_with_vals)
+       (soup_value_hash_insert_vals, soup_value_hash_lookup_vals): New
+       routines to work with multiple value hash values at once.
+       (soup_value_array_new): tiny wrapper, for naming consistency
+       (soup_value_array_new_with_vals, soup_value_array_append_vals):
+       New routines to work with multiple value array values at once.
+
+2008-01-28  Dan Winship  <danw@gnome.org>
+
+       * configure.in: post-release bump to 2.3.1
+
+2008-01-28  Dan Winship  <danw@gnome.org>
+
+       * configure.in: Bump version to 2.3.0.1
+
+       * NEWS: Update
+
+       * docs/reference/Makefile.am (content_files): include
+       porting-2.2-2.4.xml
+
+2008-01-28  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message.c (soup_message_set_auth)
+       (soup_message_set_proxy_auth): Use soup_message_headers_replace(),
+       not soup_message_headers_append(), since only a single
+       Authorization/Proxy-Authorization header is allowed. #512517.
+
+       * libsoup/soup-auth-manager-ntlm.c (ntlm_request_started): Don't
+       set an NTLM Authorization header if the message already has a
+       Basic or Digest one.
+
+       * tests/ntlm-test.c: Add some Basic auth and mixed NTLM/Basic auth
+       tests
+
+2008-01-28  Wouter Bolsterlee  <wbolster@svn.gnome.org>
+
+       * docs/reference/libsoup-docs.sgml:
+
+       Changed section titles so that they actually show
+       something useful in DevHelp.
+
+2008-01-27  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-dns.c (resolver_thread): fix mutex use to avoid a
+       race condition
+
+       * libsoup/soup-xmlrpc.c (soup_xmlrpc_build_faultv):
+       (soup_xmlrpc_set_response, soup_xmlrpc_set_fault):
+       (soup_xmlrpc_parse_method_call): Fix misc server-side stuff
+       (soup_xmlrpc_parse_method_response): Fix fault parsing
+
+       * libsoup/soup-xmlrpc.h (SoupXMLRPCFault): add semi-standard fault
+       codes from
+       http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php
+
+       * tests/xmlrpc-server.php (sum): return a <fault> if the arguments
+       are wrong (so that xmlrpc-test can test that case).
+       (dateChange): change to take two parameters, a date and a struct,
+       instead of putting the date in the struct, since we weren't
+       previously testing multiple parameter handling.
+
+       * tests/xmlrpc-test.c (main): Add a -u flag to specify an
+       alternate URL.
+       (do_xmlrpc): Remove level 3 debug output, which is now redundant
+       with the SoupLogger stuff.
+       (test_dateChange): update for dateChange prototype change
+       (test_fault_malformed, test_fault_method, test_fault_args): test
+       handling of faults
+
+       * tests/xmlrpc-server-test.c: Test the server-side XML-RPC API (by
+       implementing the same methods as xmlrpc-server.php and then
+       using xmlrpc-test)
+
+2008-01-27  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-headers.c (soup_header_parse_quality_list): fix to
+       not sometimes read beyond the end of the string.
+
+       * libsoup/soup-message-body.c (soup_message_body_append): When
+       appending a 0-length SOUP_MEMORY_TAKE buffer, we need to free the
+       passed-in buffer rather than just ignoring it.
+
+       * libsoup/soup-message-headers.c (soup_message_headers_free): Fix
+       leak introduced by patch for 511980.
+
+       * libsoup/soup-server.c (got_headers): fix leak when decoding path
+
+       * libsoup/soup-session.c (finalize): free ntlm_manager
+
+       * tests/libsoup.supp: update for libsoup 2.4, glib 2.14, etc
+
+       * tests/header-parsing.c (do_qvalue_tests):
+       * tests/uri-parsing.c (main): more cleanup
+
+2008-01-27  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-logger.c (soup_logger_attach): Fix session ids by
+       using weak refs for the logger cleanup rather than trying to use
+       the same qdata for two different things.
+       (print_request, print_response): use full type names in the
+       Soup-Debug line, since SoupSessionSync and SoupSessionAsync get
+       numbered separately.
+
+2008-01-27  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-session-async.c (final_finished): Don't run the
+       queue again if the callback destroyed the session. #511868, Stef
+       Walter.
+
+2008-01-25  Srinivasa Ragavan  <sragavan@novell.com>
+
+       ** Fix for bug #511980
+
+       * libsoup/soup-message-headers.c: (soup_message_headers_clear):
+       Instead of destroying the hashtable, just remove the contents of the
+       table.
+
+2008-01-23  Tor Lillqvist  <tml@novell.com>
+
+       * configure.in: Allow autogening even without AM_PATH_LIBGCRYPT
+       available
+
+       * libsoup/soup-date.c (soup_date_new_from_time_t): Correct use of
+       gmtime().
+
+       * libsoup/soup-headers.c (soup_headers_parse_status_line): Return
+       FALSE if neither HTTP nor ICY. Avoids crash in
+       tests/header-parsing.
+
+       * libsoup/soup-socket.c: On Windows SHUT_RDWR is called SD_BOTH.
+       (set_nonblocking): Fix typo.
+
+       * tests/continue-test.c: Seems to build fine without <pthread.h>,
+       so drop that.
+
+2008-01-18  Dan Winship  <danw@gnome.org>
+
+       * tests/server-auth-test.c: test SOUP_AUTH_DOMAIN_REMOVE_PATH
+
+2008-01-18  Dan Winship  <danw@gnome.org>
+
+       * configure.in: require glib 2.15.3, not 2.15.0, since
+       AM_PATH_GLIB_2_0 didn't know about gio until post-2.15.2. Pointed
+       out by Matthew Barnes, #510216.
+
+2008-01-18  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-domain.c
+       (soup_auth_domain_set_generic_auth_callback):
+       (soup_auth_domain_check_password): add a new generic auth callback
+       that can be used with any subclass to do cleartext password
+       checking against messages. Suggested by Mathias Hasselmann.
+
+       * libsoup/soup-auth-domain-basic.c: Implement generic auth
+
+       * libsoup/soup-auth-domain-digest.c: Implement generic auth.
+       (soup_auth_domain_digest_evil_check_password): Gone, use the
+       generic version now.
+
+2008-01-17  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-digest.c (soup_auth_digest_compute_hex_urp)
+       (soup_auth_digest_compute_hex_a1)
+       (soup_auth_digest_compute_response): cast the second arg to
+       g_checksum_update to (guchar *) to avoid warnings
+
+2008-01-16  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-headers.c (soup_headers_parse_status_line): Deal
+       with Shoutcast servers, which return "ICY 200 OK", but are
+       otherwise straight HTTP/1.0. #502325, Wouter Cloetens.
+
+       * tests/header-parsing.c (resptests): add a test for it
+
+2008-01-16  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-manager.c (authorize_handler, etc): Allow the
+       session authenticate signal to be handled asynchronously, by
+       pausing the message and then authenticating the auth later.
+       (auth_type_compare_func): make this work. oops.
+       (extract_challenge): plug leak
+
+       * libsoup/soup-auth-manager-ntlm.c: Make this work async too.
+
+       * libsoup/soup-headers.c (soup_header_parse_list):
+       (soup_header_parse_param_list): plug leaks
+
+       * tests/auth-test.c (do_async_auth_test): test async auth
+
+       * docs/reference/client-howto.xml (Handling Authentication):
+       mention async auth
+
+2008-01-16  Dan Winship  <danw@gnome.org>
+
+       * configure.in: Bomb out if glib 2.15.0 isn't found.
+       (AM_PATH_GLIB_2_0 doesn't do this itself.)
+
+2008-01-15  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-manager-ntlm.c: Replaces SoupConnectionNTLM;
+       now works as a SoupSession::request_started watcher.
+
+       * libsoup/soup-connection.c: remove the no-longer-needed
+       "authenticate" signal
+
+       * libsoup/soup-session.c: Use a SoupAuthManagerNTLM if USE_NTLM is
+       set. Remove connection-authenticate-signal references.
+
+2008-01-15  Dan Winship  <danw@gnome.org>
+
+       * Merge libsoup-2.4 branch to trunk
+       
+2008-01-15  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-dns.c (resolve_status): Fix the logic here
+
+2008-01-15  Dan Winship  <danw@gnome.org>
+
+       * docs/reference/porting-2.2-2.4.xml: add a few more updates
+
+2008-01-15  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-digest.c: Use GChecksum for MD5
+
+       * libsoup/soup-md5-utils.[ch]: gone
+
+2008-01-15  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-server.c (soup_server_run_async):
+       (soup_server_quit): Don't ref/unref the server here. It doesn't
+       match the way other things work. #494128, Mathias Hasselmann.
+
+2008-01-14  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-address.h:
+       * libsoup/soup-auth-domain-basic.h:
+       * libsoup/soup-auth-domain-digest.h:
+       * libsoup/soup-auth-domain.h:
+       * libsoup/soup-auth.h:
+       * libsoup/soup-logger.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: Add padding for future expansion to class
+       structs
+
+2008-01-14  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-uri.c: Add more documentation.
+       (soup_uri_is_https): gone, replaced by SOUP_URI_SCHEME_HTTP /
+       SOUP_URI_SCHEME_HTTPS
+       (soup_uri_new): allow passing NULL to get back an "empty" SoupURI.
+       (soup_uri_to_string): rename just_path to just_path_and_query, to
+       avoid fooling people.
+       (soup_uri_decode, soup_uri_normalize): Change these to return the
+       decoded/normalized string rather than modifying it in place.
+       (soup_uri_set_scheme, etc): provide setters for SoupURI parts.
+       (soup_uri_set_query_from_form): set uri->query via
+       soup_form_encode_urlencoded().
+
+2008-01-14  Dan Winship  <danw@gnome.org>
+
+       * configure.in: require glib 2.15.0, and gio
+
+       * libsoup/soup-dns.c (soup_dns_lookup_resolve)
+       (soup_dns_lookup_resolve_async): Add GCancellables, and support
+       cancellation of DNS lookups.
+       (resolve_address, resolve_name): If we get a DNS failure (eg,
+       because we're disconnected from the network), don't cache that
+       result, just try again next time someone asks. [#508593]
+
+       * libsoup/soup-address.c (soup_address_resolve_async)
+       (soup_address_resolve_sync): Add GCancellables, pass them to
+       soup-dns.
+
+       * libsoup/soup-socket.c (soup_socket_connect_async)
+       (soup_socket_connect_sync): Add GCancellables and implement
+       cancellation.
+       (soup_socket_start_ssl, soup_socket_start_proxy_ssl)
+       (soup_socket_read, soup_socket_read_until, soup_socket_write): add
+       GCancellables, though these routines don't actually implement
+       cancellation yet.
+       (soup_socket_disconnect): Don't close() the socket if someone is
+       doing I/O on it, as that creates a race condition. (The fd number
+       might be quickly recycled.) Instead, keep the socket open but
+       dead, via shutdown().
+
+2008-01-14  Benjamin Otte  <otte@gnome.org>
 
        * libsoup/soup-socket.c: (soup_socket_class_init): clarify docs for
-       new-connetion signal.
+       new-connection signal.
+
+2008-01-14  Dan Winship  <danw@gnome.org>
+
+       * tests/test-utils.c: renamed from apache-wrappers and expanded.
+       (test_init): do option parsing and general setup
+       (test_cleanup): print error count and do cleanup
+       (debug_printf): define here rather than in each test, and rename
+       from dprintf [#501631]
+       (soup_test_server_new): create a SoupServer, optionally in its own
+       thread, and clean it up when exiting.
+       (soup_test_session_new): create a SoupSession, optionally with
+       an attached SoupLogger (if requested via command line)
+       
+       * tests/*.c: use test-utils
+
+2008-01-13  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-logger.c: New HTTP debug logging object. (Based on
+       E2K_DEBUG and its clones.)
+
+       * libsoup/soup-message.c (soup_message_class_init)
+       (soup_message_add_header_handler)
+       (soup_message_add_status_code_handler): Change things around a
+       little; remove the "requeuing or cancelling the message stops
+       signal emission" rule, and instead make that be a feature of just
+       the header and status code handlers. (Makes the basic signal
+       handlers behave more predictably.)
+
+2008-01-11  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-domain.c (soup_auth_domain_set_filter):
+       * libsoup/soup-auth-domain-basic.c
+       (soup_auth_domain_basic_set_auth_callback):
+       * libsoup/soup-auth-domain-digest.c
+       (soup_auth_domain_digest_set_auth_callback):
+       * libsoup/soup-message.c (soup_message_cleanup_response)
+       (soup_message_set_flags, soup_message_set_http_version)
+       (soup_message_set_uri, soup_message_set_status)
+       (soup_message_set_status_full): 
+       * libsoup/soup-message-client-io.c (parse_response_headers): 
+       * libsoup/soup-message-server-io.c (parse_request_headers):
+       Call g_object_notify() when changing properties.        
+
+       * libsoup/soup-session.c (soup_session_class_init): bump the
+       default value of SOUP_SESSION_MAX_CONNS_PER_HOST down to 2, per
+       RFC 2616.
+
+       * libsoup/soup-message-body.c (soup_buffer_copy): When copying a
+       TEMPORARY buffer, keep a reference to the copy, so that a second
+       copy will get that same buffer, rather than actually copying it
+       again.
+
+       * libsoup/soup-types.h: remove SoupMessageFilter, which doesn't
+       exist any more
+
+2008-01-07  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-session.c (soup_session_class_init): Change
+       request_started signal to have a SoupSocket as its last parameter.
+
+       * libsoup/soup-server.c: Fix request_* signals to all be (server,
+       msg, client) rather than (server, client, msg).
+
+2008-01-07  Dan Winship  <danw@gnome.org>
+
+       * docs/reference/porting-2.2-2.4.xml: Notes on porting from 2.2 to
+       2.4
+
+2008-01-07  Dan Winship  <danw@gnome.org>
+
+       * libsoup/*.c: Move gtk-doc stuff from docs/reference/tmpl/ to the
+       C files themselves. Some updates.
+
+       * docs/reference/Makefile.am: fix (kludge?) this up to not require
+       tmpl/ to exist
+
+       * docs/reference/client-howto.xml: 
+       * docs/reference/server-howto.xml: update
+
+2008-01-06  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-soap-message.c:
+       * libsoup/soup-soap-response.c: For the second time, remove SOAP
+       support from libsoup... These APIs are not really all that helpful
+       in the grand scheme of SOAPiness, and are only used by the
+       Evolution GroupWise backend, which can just import this code and
+       integrate it better there.
+
+       * libsoup/soup-misc.c (soup_xml_real_node): 
+       * libsoup/soup-xmlrpc.c: Move soup_xml_real_node out of soup-misc
+       to soup-xmlrpc, and make it private. libxml is no longer exposed
+       in the public API.
+
+2008-01-06  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-date.c (soup_date_new_from_now): new method to
+       generate a date relative to now.
+       (soup_date_new, etc): document SoupDate methods
+
+       * libsoup/soup-server.c (got_headers): set Date header, as
+       required by RFC 2616
+
+2008-01-06  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-server.c (got_headers): if raw_paths isn't set,
+       decode the request's uri->path before doing anything else
+       (soup_server_class_init): add "raw-paths" property, to tell
+       SoupServer to NOT decode the Request-URI path.
+
+       * libsoup/soup-auth-domain.c (soup_auth_domain_covers): Revert
+       earlier path-decoding change; that happens at the SoupServer level
+       now.
+
+2008-01-06  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message-body.c (soup_buffer_get_type): Register
+       SoupBuffer as a boxed type.
+
+       * libsoup/soup-message.c (soup_message_class_init): Use
+       SOUP_TYPE_BUFFER in got_chunk signal definition
+
+       * libsoup/soup-server.c (soup_client_context_get_type): Register
+       SoupClientContext as a pointer type
+       (soup_server_class_init): use SOUP_TYPE_CLIENT_CONTEXT in signal
+       definitions.
+
+       * libsoup/soup-marshal.list: clean this up
+
+2008-01-06  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-server.c (SoupClientContext): Make this opaque.
+       (soup_client_context_get_socket)
+       (soup_client_context_get_auth_domain)
+       (soup_client_context_get_auth_user): New accessors
+       (soup_server_class_init): Make the signals take a
+       SoupClientContext rather than a SoupSocket.
+       (start_request, check_auth, call_handler, request_finished): Clean
+       these up by using a SoupClientContext to communicate between them.
+       (soup_server_add_handler): tweak the argument order to match the
+       gtk standard (callback, user_data, destroynotify).
+
+2008-01-06  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-address.c: remove the "dns_result" signal, which
+       was just an implementation detail of soup_address_resolve_async().
+
+2008-01-06  Dan Winship  <danw@gnome.org>
+
+       * libsoup/*.c: misc documentation updates/gtk-doc fixes
+
+       * libsoup/soup-server.c: finally start documenting this properly.
+
+       * libsoup/soup-status.h (SoupStatusClass): kill this, since
+       soup_message_add_status_class_handler() is gone now.
+
+       * libsoup/soup-status.c (soup_status_get_phrase): Update docs to
+       explain that you probably don't want to use this.
+
+       * libsoup/soup-misc.h (SOUP_SSL_ERROR, SoupSSLError): Move these
+       here, since soup-ssl.h isn't installed.
+
+       * docs/references: start updating this...
+
+2008-01-04  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message-body.c (soup_buffer_new)
+       (soup_message_body_append): Reorder the arguments to match
+       soup_message_set_request/response, so it's not confusing.
+
+       * libsoup/soup-message.c (wrote_chunk): remove the "chunk" arg
+       from the signal, as it turns out to be *in*convenient, since most
+       callers use this signal to mean "need another chunk", so they want
+       it to have the same prototype as "wrote_headers", which means
+       "need first chunk".
+
+2008-01-04  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-domain.c: add documentation
+       (soup_auth_domain_set_filter): take a GDestroyNotify, for better
+       bindability
+
+       * libsoup/soup-auth-domain-basic.c:
+       * libsoup/soup-auth-domain-digest.c: Add documentation. Replace
+       authentication signals with more-easily-bindable authentication
+       callbacks (with GDestroyNotifys).
+       (soup_auth_domain_digest_evil_check_password): Add this for the
+       benefit of code that depends on being able to do the equivalent
+       of the old soup_server_auth_check_passwd().
+
+2008-01-02  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message-body.h (SoupMessageBody): add data and
+       length parameters like SoupBuffer, to make this easier for callers
+       to use.
+
+       * libsoup/soup-message-body.c (soup_message_body_append)
+       (soup_message_body_append_buffer)
+       (soup_message_body_truncate): Update body->length
+       (soup_message_body_flatten): Fill in body->data (and NUL-terminate
+       it as an added bonus).
+
+       * libsoup/soup-message.c (got_body): flatten the newly-gotten
+       body.
+       (soup_message_get_request, soup_message_get_response): gone
+       
+       * libsoup/soup-message-client-io.c (get_request_headers): 
+       * libsoup/soup-message-server-io.c (get_response_headers): 
+       * libsoup/soup-soap-message.c (soup_soap_message_parse_response):
+       * tests/*.c: simplify
+
+2008-01-02  Dan Winship  <danw@gnome.org>
+
+       * libsoup/Makefile.am (soup_headers): oops, move soup-auth.h here
+
+2008-01-02  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-form.c: new HTML-form-related methods (just URI
+       decoding/encoding at the moment).
+
+       * libsoup/soup-server.h (SoupServerCallback): change the prototype
+       to include the decoded path and query rather than the undecoded
+       URI.
+
+       * libsoup/soup-server.c (call_handler): %-decode the URI path
+       before looking up a handler. Decode query if available. Pass path
+       and query to the callback.
+
+       * libsoup/soup-auth-domain.c (soup_auth_domain_covers): fix this
+       to %-decode the URI path before testing it
+
+       * libsoup/soup-message-body.c (soup_message_body_append): allow
+       0-length appends
+
+       * tests/query-test.c: URI query parsing test
+
+2008-01-02  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-uri.c:
+       * libsoup/soup-uri.h: Change all the "const SoupURI *" to just
+       "SoupURI *", since the const is just there to be annoying.
+
+       * */*.c: update
+
+2008-01-02  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message-body.c (soup_message_body_get_length)
+       (soup_message_body_get_chunk): Use goffset rather than gsize for
+       references to the entire size of the message body. (SoupBuffer
+       still uses gsize, so individual chunks can only be G_MAXSIZE
+       long.)
+       
+       * libsoup/soup-message-headers.c
+       (soup_message_headers_get_content_length):
+       (soup_message_headers_set_content_length): Likewise, use goffset.
+
+2008-01-02  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message-headers.c (soup_message_headers_get):
+       Renamed from soup_message_headers_find, and with new behavior; now
+       multiple headers with the same name are automatically merged
+       together into a single comma-separated value, to ensure that apps
+       treat multivalued headers the same regardless of how upstream
+       servers generate them.
+       (soup_message_headers_find_nth): no longer needed/wanted
+
+       * libsoup/soup-auth-manager.c: Update to deal with
+       SoupMessageHeaders change. (Ugh.)
+
+       * tests/header-parsing.c: Update multiple-values test, and undo a
+       change that mistakenly got committed while debugging something
+       earlier.
+
+2008-01-01  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-manager.c:
+       * libsoup/soup-dns.c: 
+       * libsoup/soup-gnutls.c: 
+       * libsoup/soup-message.c: 
+       * libsoup/soup-message-io.c: 
+       * libsoup/soup-message-queue.c: 
+       * libsoup/soup-misc.c: 
+       * libsoup/soup-path-map.c: 
+       * libsoup/soup-server.c: 
+       * libsoup/soup-session.c: 
+       * libsoup/soup-session-sync.c: 
+       * libsoup/soup-socket.c: Use g_slice.
+
+2008-01-01  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-session.c (soup_session_cancel_message): add a
+       "status_code" argument rather than having the caller set the
+       status code separately, to prevent a race condition.
+
+2008-01-01  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-session.c (soup_session_queue_message): change the
+       callback type to include the SoupSession as a parameter as well.
+
+       * *.c: update
+
+2007-12-31  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-session.c (soup_session_class_init): change
+       the "authenticate" signal to include a SoupAuth rather than its
+       components, and to have a "retrying" parameter rather than
+       separating "authenticate" and "reauthenticate".
+
+       * libsoup/soup-connection.c (soup_connection_class_init): Likewise
+
+       * libsoup/soup-auth-manager.c (authenticate_auth): update
+
+       * libsoup/soup-auth.c: make various attributes into gobject
+       properties.
+       (soup_auth_is_for_proxy): check whether an auth is plain or proxy
+       (soup_auth_get_host): get the hostname associated with an auth
+
+       * libsoup/soup-auth-ntlm.c: dummy class used by SoupConnectionNTLM
+       in the authenticate signal
+
+       * libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): update for
+       authenticate signals changes; use a fake SoupAuthNTLM to assist.
+
+2007-12-20  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message.c (soup_message_add_header_handler)
+       (soup_message_add_status_code_handler): Make these be wrappers
+       around g_signal_connect() rather than having a completely separate
+       system.
+       (soup_message_class_init): improve signal docs. Use
+       "got_foo_signal_wrapper" to wrap the got-foo signals.
+       (got_foo_signal_wrapper): Wraps the marshaller for the got-foo
+       signals and cancels the signal emission if the message gets
+       cancelled or requeued.
+       (got_informational, got_headers, got_chunk, got_body): remove
+       no-longer-needed default implementations.
+
+       * libsoup/soup-message-handlers.c: gone
+
+       * tests/ntlm-test.c (do_message): Simplify now that callback
+       processing doesn't happen in two separate phases.
+
+2007-12-20  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-domain.c:
+       * libsoup/soup-auth-domain-basic.c:
+       * libsoup/soup-auth-domain-digest.c: New server-side auth system.
+
+       * libsoup/soup-server.c: remove SoupServerAuth / SoupAuthContext
+       stuff, add SoupAuthDomain support.
+       (SoupServerCallbackFn): improve the args here
+       (SoupClientContext): renamed from SoupServerContext and made less
+       redundant
+
+       * libsoup/soup-server-auth.c: gone!
+
+       * libsoup/soup-auth-digest.c (soup_auth_digest_parse_algorithm)
+       (soup_auth_digest_get_algorithm, soup_auth_digest_parse_qop)
+       (soup_auth_digest_get_qop, soup_auth_digest_compute_hex_urp)
+       (soup_auth_digest_compute_hex_a1)
+       (soup_auth_digest_compute_response): New routines shared between
+       client-side and server-side digest auth.
+
+       * tests/server-auth-test.c: test server-side auth, using curl for
+       the client side
+
+       * configure.in: check for curl, for server-auth-test
+
+2007-12-20  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-headers.c (soup_header_parse_list)
+       (soup_header_parse_quality_list): New methods to parse list-type
+       headers (with optional qvalues) correctly.
+       (soup_header_parse_param_list): Rename to match the other methods,
+       and update the semantics a bit.
+       (soup_header_contains): Correctly check for a token in a list
+
+       * libsoup/soup-message.c (soup_message_is_keepalive):
+       * libsoup/soup-message-client-io.c (get_request_headers):
+       * libsoup/soup-message-server-io.c (parse_request_headers): Use
+       soup_header_contains() with Connection headers.
+
+       * tests/header-parsing.c (do_qvalue_tests): add
+       soup_header_parse_quality_list() test
+
+2007-12-20  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-auth-manager.c: Move auth-related code from
+       SoupSession and SoupAuth here, and make various cleanups and
+       beginnings of cleanups.
+
+       * libsoup/soup-session.c: lots of stuff moved to
+       soup-auth-manager.c
+
+       * libsoup/soup-auth.c (soup_auth_new_from_headers): partly moved
+       to soup-auth-manager.c, partly renamed to soup_auth_new().
+       (soup_auth_update): new method to update an existing auth based on
+       a new WWW-Authenticate/Proxy-Authenticate header. Also replaces
+       the old "construct" method.
+
+       * libsoup/soup-auth-digest.c (update): Implement. If the new auth
+       has stale=true, don't invalidate the auth, just update the nonce.
+       (get_authorization): add a header handler to the message to catch
+       Authentication-Info/Proxy-Authentication-Info headers so that if
+       there's a nextnonce, we can start using it. #471380.
+
+       * libsoup/soup-auth-basic.c (update): Implement. (Updating an
+       existing Basic auth always invalidates it.)
+
+       * tests/http.conf.in:
+       * tests/auth-test.c: add a test for digest nonce handling
+
+2007-12-20  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-path-map.c: New type representing a sparse
+       path->something mapping
+
+       * libsoup/soup-server.c: Use SoupPathMap to record handlers. Make
+       SoupServerHandler a private type.
+       (soup_server_new): Rewrite this to just be a thin wrapper, and put
+       all of the code into a constructor override. #491653
+       (soup_server_add_handler): Turn the "unregister" arg into a
+       GDestroyNotify, for better bindability.
+
+2007-12-19  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-server.c: define new request_started, request_read,
+       request_finished, and request_aborted signals, for finer-grained
+       tracking than normal handlers allow.
+       (check_auth): split this out of call_handler, and run it
+       immediately after "got_headers", not "got_body", so that we can
+       preemptively reject "Expect: 100-continue" messages that will
+       require auth.
+
+       * libsoup/soup-message-io.c (io_write, io_read): Fix up
+       100-continue processing
+
+       * tests/continue-test.c: new test of client/server 100-continue
+       processing
+
+2007-12-19  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-socket.c: Cleanup. Remove the "connect_result"
+       signal. Make local_address and remote_address
+       into (construct-only) properties.
+       (soup_socket_connect_async, soup_socket_connect_sync): Replace
+       soup_socket_connect. _async takes a callback+user_data (like the
+       old soup_socket_client_new_async), but doesn't implement the
+       callback in terms of a connect_result signal.
+       (soup_socket_client_new_async, soup_socket_client_new_sync): Gone.
+       (Unused since the async_context addition anyway). Replaced by the
+       new construct properties and connect methods.
+       (soup_socket_read, soup_socket_read_until, soup_socket_write):
+       Make these actually take a GError rather than doing an ugly hack
+       to preserve the old API.
+       (SOUP_SOCKET_FLAG_NODELAY, SOUP_SOCKET_FLAG_REUSEADDR)
+       (SOUP_SOCKET_FLAG_CLOEXEC): kill these off (all three are always
+       TRUE now); SoupSocket is libsoup's socket API; it's not
+       necessarily intended to be generically useful for everyone.
+
+       * *.c: Update for SoupSocket changes
+
+2007-12-19  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-server-message.c: Kill!
+
+       * libsoup/soup-message-server-io.c (parse_request_headers):
+       Generate the full request URL from the socket's data, since we no
+       longer have soup_server_message_get_server().
+
+       * libsoup/soup-server.c (request_finished, call_handler)
+       (start_request, new_connection): update
+
+2007-12-19  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message-headers.c: Add some more fields to
+       SoupMessageHeaders, and start caching the parsed values of certain
+       important headers.
+       (soup_message_headers_get/set_encoding): replaces old SoupMessage
+       methods, and only deals with the declared transfer encoding, not
+       the wire encoding.
+       (soup_message_headers_get/set_content_length): Handle
+       Content-Length.
+       (soup_message_headers_get_expectations): Handle Expect. (Replaces
+       the SOUP_MESSAGE_EXPECT_CONTINUE flag).
+
+       * libsoup/soup-message.c (soup_message_get_request_encoding):
+       (soup_message_get_response_encoding):
+       (soup_message_set_response_encoding): replaced by
+       SoupMessageHeaders methods.
+
+       * libsoup/soup-message-client-io.c:
+       * libsoup/soup-message-server-io.c:
+       * libsoup/soup-message-io.c: Update for SoupMessageHeaders changes
+       with encoding/content-length stuff.
+
+2007-12-19  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message-body.c (SoupMessageBody): new opaque type
+       for request/response bodies allowing less hacky handling of
+       chunked encoding.
+       (SoupBuffer): refcounted buffer type
+
+       * libsoup/soup-message.h (SoupMessage): turn request and response
+       members into SoupMessageBody.
+       (SoupOwnership, SoupDataBuffer): gone, replaced by
+       SoupMessageBody/SoupBuffer.
+
+       * libsoup/soup-message.c (soup_message_wrote_chunk)
+       (soup_message_got_chunk): add the chunk as a signal param rather
+       than having it be visible in msg->request/response.
+       (soup_message_add_chunk, soup_message_add_final_chunk)
+       (soup_message_pop_chunk): replaced by SoupMessageBody methods now.
+
+2007-12-19  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-xmlrpc.c:
+       * libsoup/soup-value-utils.c: Oops. Change the API a bunch so this
+       works on x86; apparently I was doing illegal things with va_lists
+       before that only work on x86_64.
+
+2007-12-14  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message.c: use GObject properties for SoupMessage
+       fields.
+
+       * libsoup/soup-message-server-io.c: 
+       * libsoup/soup-soap-message.c: update for that
+
+2007-12-14  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-uri.c: Rename from SoupUri to SoupURI. Use the
+       slice allocator and register as a boxed type.
+       (SoupURI): Rename "protocol" field to "scheme" and "passwd" to
+       "password". Make scheme an interned string. Replace
+       SOUP_PROTOCOL_HTTPS with soup_uri_is_https().
+
+       * *.c: update
+       
+2007-12-14  Dan Winship  <danw@gnome.org>
+
+       * libsoup/Makefile.am: Use glib-mkenums to build soup-enum-types.c
+       and soup-enum-types.h
+
+       * libsoup/soup-address.h (SoupAddressFamily): redo this definition
+       again, to make glib-mkenums happy.
+
+2007-12-13  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-xmlrpc.c: New easier-to-use and
+       easier-to-do-language-bindings-of XML-RPC code.
+
+       * libsoup/soup-xmlrpc-message.c: 
+       * libsoup/soup-xmlrpc-response.c: gone
+
+       * libsoup/soup-value-utils.c: Utilites for working with
+       GValueArray, and GHashTables of GValues, used by soup-xmlrpc.
+
+       * tests/getbug.c: 
+       * tests/xmlrpc-test.c: Update to use new XML-RPC stuff
+
+2007-12-13  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-date.c: Make a SoupDate type, and redo in terms of
+       that rather than struct tm and time_t. Also be much more liberal
+       when parsing.
+
+       * libsoup/soup-xmlrpc-message.c (soup_xmlrpc_message_write_datetime): 
+       * libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_datetime):
+       Use SoupDate.
+
+       * tests/date.c: Use SoupDate, test parsing lots more formats
+
+       * tests/xmlrpc-test.c: update for SoupDate
+
+2007-12-12  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message.c: 
+       * libsoup/soup-message-private.h: Remove SoupMessageStatus,
+       msg->status, and soup_message_io_* from the public API, as they
+       all really belong to the session, not the message. (For now
+       they've just been moved to soup-message-private.h, but some day
+       they'll be fully refactored away from SoupMessage.)
+
+       * libsoup/soup-server.c (soup_server_pause_message)
+       (soup_server_unpause_message): 
+       * libsoup/soup-session.c (soup_session_pause_message)
+       (soup_session_unpause_message): session/server-level methods to
+       replace soup_message_io_pause() and soup_message_io_unpause().
+
+       * libsoup/soup-server-message.c: Remove some unused methods
+
+       * */*.c: Update
+
+2007-12-05  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-connection.c:
+       * libsoup/soup-session.c: replace message filters with a
+       "request_started" signal
+
+       * libsoup/soup-message-filter.c: gone
+
+       * libsoup/soup-types.h (SOUP_MAKE_INTERFACE): no longer needed
+
+2007-12-05  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-uri.c: Update for RFC 3986 changes, bgo 266516, and
+       general conformance
+       (soup_uri_get_protocol): match protocols case-insensitively
+       (soup_uri_new_with_base): Don't fully %-decode the fragment,
+       query, and path, but do %-decode anything which isn't supposed to
+       be encoded. Recognize IPv6 address literals. Use stricter
+       "../"-stripping rules on the path. Reject URIs with junk between
+       the port number and the path.
+       (soup_uri_to_string): Update for the fact that the host might be
+       an IPv6 literal, and for the fact that path, query, and fragment
+       are now pre-escaped.
+       (soup_uri_equal): compare hostnames case-insensitively
+       (uri_encoded_char): update to match RFC 3986
+       (append_uri_encoded): use uppercase hex letters as recommended by
+       RFC 3986.
+       (soup_uri_normalize): decode only %-escapes that don't belong
+       there.
+
+       * docs/reference/tmpl/soup-uri.sgml: add some more SoupUri docs
+
+       * tests/uri-parsing.c: Add new tests from RFC 3986, RFC 2732, RFC
+       2616, bgo 266516, and elsewhere. Update some tests to match new
+       parsing/unparsing rules.
+
+2007-12-05  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message.c (soup_message_new)
+       (soup_message_new_from_uri): g_intern_string() the method name
+       rather than assuming it's static. Also remove the NULL==GET
+       assumption.
+
+       * libsoup/soup-method.c:
+       * libsoup/soup-method.h: remove the SOUP_METHOD_ID_* macros, and
+       have the SOUP_METHOD_* macros return interned strings
+
+       * libsoup/soup-server.h (SoupServerContext): remove method_id
+       field.
+
+       * libsoup/soup-server-message.c (finalize): no longer needed,
+       since smsg->method is now an interned string just like with a
+       normal SoupMessage.
+
+       * libsoup/soup-soap-message.c (soup_soap_message_new_from_uri):
+       remove NULL==GET assumption
+
+       * *.c: update
+
+2007-12-05  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-message.h (SoupHTTPVersion): rename (from
+       SoupHttpVersion)
+
+       * libsoup/soup-message-headers.c: New opaque type representing
+       message headers, and new methods that work on it. Uses an array
+       rather than a hash table, to preserve header ordering as required
+       by RFC 2616. (Also fixes the API wart that
+       "soup_message_get_header", etc, did not actually take a
+       SoupMessage.)
+
+       * libsoup/soup-message.c: Kill off old header-manipulating
+       methods.
+
+       * libsoup/soup-headers.c (soup_headers_parse_request): return a
+       guint rather than gboolean, so we can properly return
+       SOUP_STATUS_HTTP_VERSION_NOT_SUPPORTED where appropriate. Also fix
+       up HTTP-Version parsing to conform with the RFC.
+       (soup_headers_parse_status_line): Likewise update HTTP-Version
+       parsing.
+       
+       * libsoup/soup-message-server-io.c (parse_request_headers): set
+       return status appropriately on parse errors
+
+       * tests/header-parsing.c: update / add more tests
+
+       * *.c: update
+
+2007-12-05  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-misc.c: remove deprecated base64 methods
+
+       * tests/auth-test.c (identify_auth): oops, update to use
+       g_base64_decode.
+
+2007-12-05  Dan Winship  <danw@gnome.org>
+
+       * libsoup/Makefile.am (libsoupinclude_HEADERS): remove
+       soup-connection.h and soup-message-queue.h
+
+       * libsoup/soup-types.h: remove SoupConnection and SoupMessageQueue
+       which are no longer public
+
+       * libsoup/soup.h: sync this to reality for the first time in years
+
+       * libsoup/soup-session.c (soup_session_get_queue): Add this, for
+       subclasses, as the queue is no longer a public part of the session
+       struct.
+
+       * libsoup/soup-message.h:
+       * libsoup/soup-message-private.h: Move soup_message_send_request()
+       and soup_message_receive_request() to soup-message-private.h,
+       remove soup_message_send_request_internal().
+
+       * libsoup/soup-session-private.h: Move "protected" SoupSession
+       methods (soup_session_get_connection,
+       soup_session_try_prune_connection) here from soup-session.h
+       Add soup_session_get_queue.
+
+2007-12-05  Dan Winship  <danw@gnome.org>
+
+       * configure.in: bump version to 2.3.0 and SOUP_API_VERSION to 2.4,
+       and drop AGE/CURRENT/REVISION all to 0.
+
+       * libsoup/Makefile.am: Rename library to libsoup-2.4.la
+
+       (start of libsoup-2.4 branch)
 
 2007-11-26  Dan Winship  <danw@gnome.org>