2.37.1
[platform/upstream/libsoup.git] / NEWS
1 Changes in libsoup from 2.36.0 to 2.37.1:
2
3         * Fixed a problem with connections being assigned to multiple
4           requests at once after a redirection [#651146, Sergio]. Made
5           soup_session_pause/unpause_message() work in any state, not
6           just while the HTTP I/O is occurring, and used this to add a
7           test case for that bug. [Dan]
8
9         * Ported SoupSession to use GTlsDatabase internally, and added
10           two new properties, SoupSession:use-system-ca-file (to
11           specify that the session should use the default system
12           tlsdb) and SoupSession:tlsdb (to specify a specific tlsdb to
13           use). [Dan]
14
15         * Likewise, added SoupServer:tls-certificate, for specifying a
16           certificate/key for an https server to use.
17
18         * Made SoupHTTPInputStream use memory more efficiently.
19           [#659255, Sergio]
20
21         * Fixed soup_message_get_https_status() to return information
22           more reliably (with latest glib-networking).
23
24         * Bumped the glib requirement to 2.30.0; although libsoup does
25           not use any new glib 2.30 APIs, there are several important
26           bugfixes in glib between 2.28 and 2.30 that libsoup needs.
27           Currently libsoup builds against either glib 2.30.x or glib
28           2.31.x.
29
30 Changes in libsoup from 2.35.92 to 2.36.0:
31
32         * Improvements to gtk-doc documentation. [Dan]
33
34 Changes in libsoup from 2.35.90 to 2.35.92:
35
36         * Fixed a problem where SoupHTTPRequest response bodies could
37           be truncated. [#659256, Sergio]
38
39         * Fixed a bug in copying TLS information from SoupSocket to
40           SoupMessage, causing all https connections to be reported as
41           "untrusted" in epiphany. [Dan]
42
43         * Made SoupSession remove items from its host cache after a
44           while, so that if a host changes IP address, it will
45           eventually try to re-resolve it. [#646959, Sergio]
46
47 Changes in libsoup from 2.35.5 to 2.35.90:
48
49         * Added SOUP_MESSAGE_CAN_REBUILD flag, to use with
50           soup_message_body_set_accumulate(FALSE) on a request body,
51           to indicate that the caller will recreate the request body
52           after it has been discarded if the message needs to be
53           re-sent. [#656650]
54
55         * Fixed the build on mingw-w64 by not using "interface" as
56           as variable name. [#656402, Erik van Pienbroek]
57
58         * (The multihosted https server regression mentioned in the
59           2.35.5 NEWS turned out to be a glib-networking bug, which is
60           fixed as of 2.29.18.)
61
62 Changes in libsoup from 2.35.4 to 2.35.5:
63
64         * Support NTLM single sign on via samba's /usr/bin/ntlm_auth.
65           [#650940, Mandy Wu]. This is enabled by default (if NTLM is
66           enabled for the session and the ntlm_auth binary is
67           available), but will fall back to the standard
68           password-based authentication if SSO fails.
69
70         * Default to TLS+extensions for https connections, falling
71           back to SSLv3-without-extensions (the old default) only if
72           the server fails to negotiate TLS. [#581342]
73
74                 * As a result of this change, some users are currently
75                   seeing problems with sites that serve multiple https
76                   hosts from a single IP address (eg,
77                   *.launchpad.net). There is no known workaround at
78                   this time.
79
80         * Fixed a longstanding problem with https pages sometimes not
81           loading when using a proxy. [#631368, based on patches from
82           DongJae Kim and Thierry Reding]
83
84         * SoupContentSniffer: don't use gio's sniffing rules, since
85           the spec now recommends that browsers not do any additional
86           sniffing beyond what's in the spec. [#648846, "arno"]
87
88         * Fixed SoupRequestHTTP to work properly with alternate
89           GMainContexts. [#653707]
90
91         * Added some annotations from Vala's vapi files. [#655397,
92           Evan Nemerson]. Also, removed SoupProxyResolver from the
93           gir/typelib, since it had been deprecated since before
94           introspection was available, and it was being scanned wrong
95           anyway.
96
97 Changes in libsoup from 2.35.3 to 2.35.4:
98
99         * CVE-2011-2524: Fixed a security hole that caused some
100           SoupServer users to unintentionally allow accessing the
101           entire local filesystem when they thought they were only
102           providing access to a single directory. [#653258]
103
104         * Plugged another SoupCache memory leak [Xan]
105
106         * Simplified SoupCache keys, and handle collisions. [#649963,
107           Sergio]
108
109         * Annotate SoupSession:add-feature, etc, as (skip), so they
110           don't conflict with the methods of the same name. [#655150,
111           Jasper St. Pierre]
112
113 Changes in libsoup from 2.34.1 to 2.35.3:
114
115         * SoupCache fixes [Sergio]:
116
117                 * Don't store hop-by-hop headers [#650094]
118
119                 * Fix status code and headers of responses returned
120                   from the cache after being revalidated [#649965]
121
122                 * Added versioning support to the cache file format
123                   [#652554] and extended it to keep track of the
124                   status code [#649965]
125
126                 * Fixed storage of time values in the cache [#653349]
127
128                 * Fixed a use-after-free that could result in bogus
129                   data being written to the cache [#650620]
130
131                 * Various leaks [#649309]
132
133         * Work around an Apache bug where it tells browsers to
134           automatically decode .gz files but still keep the .gz in the
135           name. [#613361, Dan]
136
137         * Fixed an overflow when sending a response larger than 2^31
138           bytes (eg, streaming movies in Rygel). [#638468, Jens Georg]
139
140         * Always send the Keep-Alive header, not just to hosts we
141           already know to be HTTP/1.0 [#648680, Sergio]
142
143         * Fixed various leaks [#652699, Sergio], [#651643, Milan],
144           [etc, Xan]
145
146         * Minor build fix for Debian/Ubuntu [#648948]
147
148         * Fixed a docs typo
149
150 Changes in libsoup from 2.34.0 to 2.34.1:
151
152         * Two multipart forms/Content-Disposition fixes [Dan]:
153
154                 * UTF-8-encoded header encoding/decoding rules updated
155                   to match RFC 5987. In particular, a UTF-8-encoded
156                   filename parameter in Content-Disposition will now
157                   override an ASCII one.
158
159                 * When not using UTF-8-encoded filenames in
160                   Content-Disposition, always quote the filename,
161                   since some servers erroneously fail to handle
162                   non-quoted ones. [#641280]
163
164         * Fixed several memory leaks [Dan, Xan]
165
166         * Fixed decoding base64 data: URLs [#646896, Sergio]
167
168         * Simplified the libsoup-gnome build on Windows by dropping
169           the gnome-keyring dependency. [Fridrich Štrba]
170
171         * Fixed a bug in soup_uri_to_string() in which (invalid) port
172           numbers could be output as negative numbers (tripping up a
173           WebKit "sanity checking" test). [#647767, Sergio]
174
175         * Fixed a cache corruption bug in SoupCache. [#648285, Sergio]
176
177         * Fixed a crash in SoupSessionSync when using
178           soup_session_abort().
179
180 Changes in libsoup from 2.33.92 to 2.34.0:
181
182         * Fixed the GMainContext handling of the new
183           SoupProxyResolverDefault (which among other things fixes
184           gstreamer usage inside epiphany). [#646201, Sebastian Dröge]
185
186         * Tweaked the introspection Makefile rules to fix a problem
187           building on Debian/Ubuntu. [#645505]
188
189         * Belated bumped the shared library versioning to reflect the
190           API additions since 2.32.0
191
192 Changes in libsoup from 2.33.90 to 2.33.92:
193
194         * LIBSOUP NO LONGER DEPENDS ON GCONF OR LIBPROXY.
195           (see below).
196
197         * Added SoupProxyResolverDefault, which uses uses gio's
198           GProxyResolver to resolve proxies [#642982, Gustavo Noronha
199           Silva]. Despite the "default" in the name, it is not used by
200           default, for compatibility reasons, but it is available in
201           plain libsoup, not libsoup-gnome. (Of course, it depends on
202           having glib-networking installed.)
203
204         * Updated SoupProxyResolverGNOME to be based on
205           SoupProxyResolverDefault, but explicitly requesting the
206           "gnome" GProxyResolver if it is available [#625898], and
207           removed the old code that used GConf and libproxy directly.
208
209         * Added soup_server_disconnect(), to explicitly disconnect a
210           SoupServer, since it is not possible to g_object_unref() it
211           from memory-managed language bindings. [#638576, Andreas
212           Rottmann]
213
214         * SoupDate now parses month names case-insensitively [#644048,
215           Christian Dywan]
216
217         * Avoid a g_return_if_fail() when using
218           SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY with non-http URIs
219           (file:, data:, etc). [#643226]
220
221         * SoupCookieJar now catches overflows when parsing very
222           distant dates [#643462, based on a patch from Mark
223           Starovoytov]
224
225         * Fixed a buggy interaction between request body streaming and
226           restarted requests [David Woodhouse]. Added some new tests
227           to tests/chunk-test.c to make sure that a specific
228           (unsupported!) way of using those methods would not get
229           broken in the future.
230
231         * Fixed soup_socket_get_remote_address(), which had been
232           broken since 2.33.4 (and which in turn caused
233           soup_client_context_get_address/_get_host to be broken).
234           [#645227]
235
236 Changes in libsoup from 2.33.6 to 2.33.90:
237
238         * Attempted to make libsoup's dependency on glib-networking
239           (for TLS support) more explicit, by requiring that
240           glib-networking be present at compile time unless the
241           builder explicitly passes "--disable-tls-check", and noting
242           that packagers should give libsoup a runtime dependency on
243           glib-networking.
244
245         * Fixed a bug in talking to servers with virtual hosts with
246           Unicode names (IDNs) [#642075]
247
248         * Added a "Connection: Keep-Alive" header when talking to
249           HTTP/1.0 hosts, to improve performance. [#640414, Sergio
250           Villar Senin]
251
252         * Changed SoupCache to not cache multipart/x-mixed-replace
253           content. [#642028, Sergio Villar Senin]
254
255 Changes in libsoup from 2.33.5 to 2.33.6:
256
257         * Made SoupSessionAsync do idle-connection cleanup more
258           sanely, resulting in faster load times for pages with lots
259           of subresources. [#639768, Sergio Villar Senin]
260
261         * Fixed soup_form_decode()'s behavior (and by extension,
262           SoupServer query string handling) with datasets that contain
263           multiple values for the same key, and added a test case.
264           [#639783, Sven Neumann]
265
266         * Fixed warnings pointed out by gcc 4.6, including a bug in
267           SoupCache that would cause unnecessary revalidations
268           [#640556].
269
270         * Belated copied a fix from the WebKit copy of soup-cache.c
271           into ours, and fixed a bug in the local copy of
272           soup-request-data.c [#641022, Sergio Villar Senin], in
273           preparation for making WebKit use the libsoup versions.
274
275 Changes in libsoup from 2.33.4 to 2.33.5:
276
277         * Fixed certain cases of soup_session_cancel_message() with
278           SoupSessionSync that could previously cause warnings or
279           crashes. [#637741]
280
281 Changes in libsoup from 2.32.2 to 2.33.4:
282
283         * SoupSocket now uses GSocketConnection and GTlsConnection
284           internally rather than making socket calls directly and
285           using GIOStream, and TLS is handled via glib's APIs rather
286           than using gnutls directly.
287
288         * The gzip Content-Encoding handler is now implemented using
289           GZlibDecompressor
290
291         * As a result of the above two changes, libsoup no longer
292           directly depends on gnutls, libgcrypt, or zlib, though it
293           still indirectly depends on zlib via glib and libxml2. Also,
294           although libsoup does not depend on glib-networking as a
295           build-time dependency, some "make check" tests will be
296           skipped if it is not installed.
297
298         * The SoupRequest/SoupCache code from WebKit has been
299           imported, but it is not yet recommended for general use, and
300           is not necessarily API stable. [#523100, Sergio Villar, with
301           the SoupRequest parts based on the Summer of Code work by
302           Gabriel Corvalan and the cache parts based on an earlier
303           patch by Xan Lopez]
304
305         * Added SoupMessage:tls-certificate and
306           SoupMessage:tls-errors, which give more information about
307           the certificate used to authenticate a TLS connection.
308
309         * It is now possible to disable Basic or Digest auth in a
310           session by using soup_session_remove_feature_by_type() with
311           SOUP_TYPE_AUTH_BASIC or SOUP_TYPE_AUTH_DIGEST. Likewise, the
312           right way to enable NTLM support now is to call
313           soup_session_add_feature_by_type() with SOUP_TYPE_AUTH_NTLM;
314           SOUP_SESSION_USE_NTLM is now deprecated.
315
316         * Allow setting cookies on file:// URIs, since other browsers
317           do, and WebKit has a test for it. [#603825]
318
319         * .gir/.typelib files now include C header/library information
320           (needed by vala and some other bindings) [#635395, Evan
321           Nemerson]
322
323         * Added annotations on soup_message_headers_get_content_type()
324           [Lucas Rocha] and SoupHTTPVersion [John Palmieri]
325
326         * Fixed a Set-Cookie processing leak [#636741, Jonathan
327           Jongsma]
328
329 Changes in libsoup from 2.32.1 to 2.32.2:
330
331         * Fixed a regression in 2.32.0 that caused evolution-exchange
332           to get stuck and stop updating. [#634422]
333
334         * Fixed a regression in 2.32.0 with apps using asynchronous
335           sessions from multiple threads (in particular, gupnp)
336           [#635101]
337
338         * Fixed the regression test for #631525 to not cause spurious
339           "make check" failures on some machines.
340
341 Changes in libsoup from 2.32.0 to 2.32.1:
342
343         * Fixed a regression in 2.32.0 with the use of persistent
344           connections that caused spurious "Connection terminated
345           unexpectedly" errors. [#631525, debugged by Sergio Villar]
346
347         * Fixed a regression in 2.32.0 that caused proxy-related
348           DNS errors to return SOUP_STATUS_CANT_RESOLVE rather than
349           SOUP_STATUS_CANT_RESOLVE_PROXY.
350
351         * Usernames/passwords specified explicitly in request URIs now
352           override existing cached auth info. [#631679, Sergio Villar]
353
354         * Changed soup_uri_decode() and soup_uri_normalize() to just
355           ignore malformed %-encoding rather than returning NULL,
356           for consistency with soup_uri_new(). [#630540]
357
358         * Fixed soup_form_decode() to ignore invalid parameters,
359           and soup_form_encode_hash() to just g_return_if_fail()
360           rather than crashing if there are NULL values in the
361           hash. [#620220]
362
363         * Added another workaround for stupid servers that close the
364           connection before returning the full response (in this case,
365           when using chunked encoding and failing to include the
366           final 0-length chunk). [#629160]
367
368         * Fixed a bug in SoupCookieJarText that deleted excess cookies
369           whenever any cookie expired. [#631641, Michał Kazior]
370
371         * Fixed a small leak in SoupContentDecoder if you were using
372           it incorrectly. [pointed out in email by Christophe
373           Gillette]
374
375         * Added regression tests for passwords-in-URIs [#631679,
376           Sergio Villar] and SOUP_SESSION_IDLE_TIMEOUT.
377
378 Changes in libsoup from 2.31.92 to 2.32.0:
379
380         * (No changes, just a version bump)
381
382 Changes in libsoup from 2.31.90 to 2.31.92:
383
384         * Updated for gobject-introspection 0.9.5. Also added some new
385           annotations and removed a bunch of private headers from the
386           scanning process.
387
388         * Percent-encoded characters in URIs are no longer
389           automatically normalized to uppercase, since apparently some
390           servers are stupid. [#628728, Sergio Villar Senin]
391
392         * Fixed a crash when resolving a URI containing both spaces
393           and non-UTF8 8bit characters. [#629449]
394
395 Changes in libsoup from 2.31.2 to 2.31.90:
396
397         * libsoup now tries to connect to each IP address associated
398           with a hostname, if the first one fails. In particular, if a
399           host has both IPv4 and IPv6 addresses, and only one of them
400           is reachable from the current host, libsoup will now try the
401           other one rather than failing. (libc is supposed to sort the
402           IP addresses in the right order, such that, eg, if you don't
403           have IPv6 connectivity, it will put the IPv4 address first.
404           For some reason though, this seems to be broken on some
405           distros.) [#526321].
406
407         * Fixed Accept-Language header generation in locales where ","
408           is used as the decimal point.
409
410 Changes in libsoup from 2.31.2 to 2.31.6:
411
412         * Disabled TLS 1.2 in addition to the already-disabled 1.1 and
413           1.0 [see below, in libsoup 2.27.2], thus making libsoup
414           usable with gnutls 2.10. [#622857. This commit, 01a43ad9,
415           can be applied to libsoup 2.30.x as well if you need that
416           release to work with gnutls 2.10.]
417
418         * When using libproxy 0.3 or newer, libsoup no longer leaks
419           proxy-related environment variables into child processes
420           [#603285]
421
422         * Changed the way message/connection binding works in
423           SoupSession so that (among other things), when there are
424           multiple requests queued to a host, and one of them gets a
425           network error, the other requests are still allowed to try
426           to succeed, rather than all failing immediately. [#619633]
427
428         * SoupSession now limits the number of times a message can be
429           redirected, to avoid infinite loops [#604383, José Millán
430           Soto]
431
432         * Fixed handling of certain messages where the response
433           headers included "Connection: close" but the server did not
434           actually close the connection at the end. [#611481]
435
436         * Fixed some incorrect g-i annotations [#621021]
437
438         * Fixed an out-of-bounds memory access when processing certain
439           Set-Cookie headers [#620288]
440
441         * Improved msg->reason_phrase on network errors [#623274]
442
443         * Fixed gir file disting [#621727, Yaakov Selkowitz]
444
445 Changes in libsoup from 2.30.1 to 2.31.2:
446
447         * gobject-introspection has now been merged in. Use
448           --enable-introspection to build. [#576595, Andreas Rottmann]
449           Note that the introspected API is not yet stable, and in
450           particular, there are numerous values annotated as "utf8"
451           which are actually not guaranteed to be utf8. (Eg, most
452           header data.)
453
454                 * Added some helper functions for bindings:
455                   soup_buffer_new_take(),
456                   soup_message_body_append_take(), and
457                   soup_buffer_get_data(). [#576595, Andreas Rottmann]
458
459                 * Also added properties for several SoupMessage public
460                   fields, and getter methods for various boxed types
461                   (SoupCookie, SoupDate, SoupURI).
462
463                 * Added some additional hash-table annotations.
464                   [#619086, Gustavo Noronha Silva]
465
466         * Marked SoupSession abstract. [#617216, Lorenzo Gil, the
467           first bug filed by someone trying to use libsoup via
468           introspection!] Likewise for SoupAuth and SoupAuthDomain.
469
470         * Fixed a problem with SoupSessionAsync that would cause
471           messages to get lost if you aborted a previous message while
472           it was still looking up the hostname. Fixed several other
473           problems that were discovered while adding a regression test
474           for that. [#618641, thanks to Claudio Saavedra for a good
475           test case]
476
477         * Fixed another connecting-to-lame-http-server problem, and a
478           getting-stuck-in-a-loop-reconnecting bug that it revealed.
479           [#615535]
480
481 Changes in libsoup from 2.30.0 to 2.30.1:
482
483         * Fix for https through proxies that close the connection when
484           returning a "407 Proxy Authentication Required" response,
485           and add a regression test for that case. [#611663]
486
487         * Fixed multiple forms/multipart-related interoperability
488           problems reported by Egon Andersen:
489
490                 * Don't quote the multipart boundary string if it's
491                   not needed, since RFC 2616 recommends that you
492                   don't, and some servers don't handle quotes there
493                   correctly. (Sigh.) [#614176]
494
495                 * Don't put an extra blank line before the first
496                   multipart part, since it's unnecessary and some
497                   servers don't handle a multipart preamble correctly.
498                   (Sigh.) [#614183]
499
500                 * Don't put Content-Transfer-Encoding headers in the
501                   multipart/form-data parts, even though the HTML 4
502                   spec says you must, since no other browsers do, and
503                   some servers don't handle them correctly. (Sigh.)
504                   [#614198]
505
506         * Changed SoupCookieJarSqlite to actually erase deleted
507           cookies from the database. [#615711, Lukasz Slachciak]
508
509         * Fixed SoupLogger to be more robust against getting passed
510           bad data by the session. [#611663]
511
512         * Fixed SoupAuthDomain to ignore paths when doing proxy auth
513
514         * Fixed a g_warning when hovering over a javascript link in
515           WebKit. [#613442, Xan Lopez]
516
517 Changes in libsoup from 2.29.91 to 2.30.0:
518
519         * Fixed a crash in the whitespace-stripping code in
520           soup_uri_new() [#612644, "arnaud.lb"]
521
522         * Update content-sniffing algorithm to match Chrome and the
523           soon-to-be-updated sniffing spec. [#611502, Gustavo Noronha
524           Silva]
525
526         * We now handle "Content-Encoding: x-gzip" as well as "gzip"
527           (even though "x-gzip" has been deprecated for more than 10
528           years). [#611476]
529
530         * Fixed leaks found by valgrind
531
532         * Make the "make check" programs only bind to 127.0.0.1, not
533           any public network interfaces. [#609489, Saleem Absulrasool]
534
535         * Add a test to sniffing-test to make sure that Content-Type
536           parameters are preserved correctly. [Gustavo Noronha Silva]
537
538 Changes in libsoup from 2.29.90 to 2.29.91:
539
540         * Added SOUP_SESSION_SSL_STRICT and
541           SOUP_MESSAGE_CERTIFICATE_TRUSTED, to allow callers to
542           determine if an https response comes from a server with a
543           recognized/valid or unrecognized/invalid certificate.
544           [#610374, Gustavo Noronha Silva]
545
546         * Fixed handling of certain badly-formatted URIs [#590524]
547
548 Changes in libsoup from 2.29.6 to 2.29.90:
549
550         * Added soup_cookie_jar_set_accept_policy() and related API
551           for implementing cookie acceptance policies. [#608353, Xan
552           Lopez]
553
554         * Fixed the "request-read" signal in SoupServer to actually be
555           emitted.
556
557 Changes in libsoup from 2.29.5 to 2.29.6:
558
559         * Fixed SoupContentDecoder to ignore trailing junk after the
560           encoded message body (as other browsers do), rather than
561           getting stuck in an infinite loop. [#606352]
562
563         * Fixed an invalid read in soup_cookie_applies_to_uri()
564           [#607024, pointed out by Xan]
565
566         * Fixed linking on OS X [#606959]
567
568         * Removed a harmless warning in SoupServer. [#606645]
569
570 Changes in libsoup from 2.29.3 to 2.29.5:
571
572         * Added SoupContentDecoder, providing support for
573           Content-Encoding: gzip for WebKitGTK. [#522772]
574
575         * Added "accept-language" and "accept-language-auto"
576           properties to SoupSession, to support the Accept-Language
577           header. [#597004, Mario Sanchez Prada]
578
579         * Fixed a bug in SoupPasswordManagerGNOME that could cause
580           crashes if you typed the wrong password once and then tried
581           again. [#595554, debugged by Gustavo Noronha Silva]
582
583         * Fixed a crash in SoupAuthDigest if the server claims support
584           for both qop=auth and qop=auth-int. (This was not noticed
585           sooner because no one actually supports qop=auth-int, and
586           the server in question here was probably confused. :)
587
588         * Updated cookie parsing/output to more closely match
589           draft-ietf-httpstate-cookie-00. [Also fixes #603496 (WebKit
590           unit test), and #604794 (hang parsing malformed Set-Cookie
591           header)]
592
593         * Fixed https-via-proxy to not hang if there is an error
594           communicating with the proxy immediately after the TLS
595           negotiation. [#587528]
596
597         * Fixed a bug that broke gobject-introspection's introspection
598           of libsoup. [#603696, Vincent Untz]
599
600         * Handle spurious CR/LFs between responses. [#602863,
601           Alexander V. Butenko]
602
603         * Fixed soup-message-client-io to not erroneously include URI
604           fragments on the Request-Line when sending via a proxy.
605           [Related to WebKit bug #28687]
606
607         * Fixed Digest authentication against certain (buggy?)
608           clients/servers that require you to use quotes in exactly the
609           same places where the spec uses them. [#582219]
610
611         * Fix ugly gtype-related hack to work with the latest unstable
612           glib. [Benjamin Otte]
613
614 Changes in libsoup from 2.28.1 to 2.29.3:
615
616         * Fixed a crash in SoupCookieJarSqlite when using cookie
617           databases not created by libsoup (eg, upgraded epiphany
618           installations). [Patch from Emilio Pozuelo Monfort]
619
620         * Fixed SoupCookieJar to handle non-http URIs properly (so
621           that, eg, JavaScript bookmarklets that try to set/read
622           cookies won't cause crashes). [#602498]
623
624         * HEAD requests that receive a "303 See Other" response will
625           now do a HEAD, not a GET, on the redirected-to resource.
626           Fixes gvfs access to some sites, including certain
627           youtube.com URIs. [#600830]
628
629         * Fixed a g_warning that would always trigger in the
630           server-side SoupCookie code. [#602389]
631
632         * Fixed the server-side SoupMultipart code to be able to parse
633           multiparts containing binary attachments, rather than
634           rejecting them as malformed. [#601640]
635
636         * Fixed the Request-Line format in the https-over-proxy case.
637           Among other things, this fixes access to bugzilla.gnome.org
638           from WebKitGTK-based browsers. [#598277, #600826]
639
640         * Fixed a leak in SoupSession if a message was cancelled while
641           the initial socket connection was in progress. [#596074,
642           debugged by Arnout Vandecappelle]
643
644         * Fixed server-side parsing of Digest auth. [#602898, Chris
645           Head]
646
647         * Fixed WinSock initialization on Windows. [#600689, Tor
648           Lillqvist]
649
650         * Fixed a sporadic crash in the SSL code on Windows. [#600748,
651           Tor Lillqvist]
652
653         * Fixed handling of https connections with timeouts on
654           Windows. [#600749, Tor Lillqvist]
655
656         * Added soup_session_prepare_for_uri(), to allow DNS
657           prefetching for faster browsing. [#598948, José Millán Soto]
658
659         * SoupSession now avoids redundant DNS lookups again when
660           first connecting to a new site, resulting in (probably
661           imperceptibly) faster loads.
662
663         * Added some debugging APIs to SoupConnection and SoupSession
664           for use by, eg, epiphany's soup-fly extension. [#589163,
665           José Millán Soto]
666
667 Changes in libsoup from 2.28.0 to 2.28.1:
668
669         * libsoup will now attempt to make multiple connections to a
670           server at once when there are multiple messages queued to
671           that server. The previous behavior (only allowing a single
672           pending connection to each server) resulted in slow load
673           times on pages with lots of subresources (images, css, js,
674           etc) on servers that disallow persistent connections.
675           [#594768]
676
677         * There should now be fewer (no?) "Connection terminated
678           unexpectedly" errors in WebKitGTK.
679
680         * Fixed a crash in SoupCookieJarSqlite [#596859, patch from
681           Alexander Sack].
682
683         * Fixed soup_address_get_physical() and address-to-name
684           resolution of SoupAddress [patch from Enrico Tröger].
685
686         * Fixed a bug in SoupContentSniffer that could cause false
687           negatives [#597545, patch from Alejandro Castro].
688
689         * Fixed the configure error if you have gnutls-devel but not
690           gcrypt-devel installed [#587709].
691
692 Changes in libsoup from 2.27.92 to 2.28.0:
693
694         * Fixed a handful of leaks found with valgrind, including a
695           large one in SoupContentSniffer [WebKit bug 28148].
696
697         * Changed the behavior of SoupCookieJarSqlite to improve
698           performance. [#584522, patch from Gustavo Noronha Silva]
699
700         * Fixed a crash in SoupSocket that affected gupnp. [#594951,
701           patch from Olivier Crête]
702
703         * Fixed the type of the SOUP_METHOD_* and SOUP_URI_SCHEME_*
704           macros to be const char * rather than gpointer. [#594508]
705
706 Changes in libsoup from 2.27.91 to 2.27.92:
707
708         * Removed SoupPasswordManager from the public API until its
709           problems can be addressed. Although it is still present, you
710           need to #define a special symbol for it to be visible in the
711           header files; see #594377 for details.
712
713         * Fixed a bug where empty query components were dropped from
714           URIs. [#594405]
715
716         * Fixed "make check" to work (but warn) when building with
717           --disable-ssl.
718
719         * Fixed some small documentation bugs pointed out by Dominik
720           Bylica and Lucian Langa.
721
722 Changes in libsoup from 2.27.90 to 2.27.91:
723
724         * Added SoupPasswordManager, an interface for managing
725           persistent password storage, and SoupPasswordManagerGNOME
726           (in libsoup-gnome), which implements it using gnome-keyring.
727           tests/get.c provides a minimal example of how to use it.
728
729         * libsoup should now notice when the server closes a
730           persistent connection, and close its side of the connection
731           sooner. This should hopefully fix the spurious "Connection
732           terminated unexpectedly" errors in WebKitGTK. [#578990]
733
734         * Fixed some problems with connection management in
735           SoupSession that could cause a session to eventually "stall"
736           and be unable to process new requests. [#592084]
737
738         * Fixed an infinite loop that caused 100% CPU usage if the
739           network went down at exactly the right time while there were
740           unsent messages in the queue. [#592492]
741
742         * Fixed a crash in SoupLogger. [#591857]
743
744         * Fixed the definition of soup_message_is_keepalive() for
745           HTTP/1.0 messages, to fix a problem introduced in 2.27.90
746           where some messages would load completely but never emit
747           "finished".
748
749         * Fixed a crash in SoupServer introduced in 2.27.90 when
750           processing a request with no "Host" header.
751
752 Changes in libsoup from 2.27.5 to 2.27.90:
753
754         * libsoup now uses glib's GResolver rather than its own DNS
755           code. For 2.27.90, the only visible change should be that
756           internationalized domain names are now supported. [#548287]
757
758         * Added soup_message_disable_feature(), which allows you to
759           disable particular features (eg, cookies, proxy,
760           content-sniffing, etc) on a per-message basis. [#574773]
761
762         * It is now possible to implement "OPTIONS *" in a SoupServer;
763           you must explicitly register a handler for "*" in order to
764           do this. [#590751]
765
766         * Ignore Content-Length on EOF-terminated responses, to match
767           other browsers and therefore cope with broken servers that
768           send the wrong length. [Patch from Benjamin Otte.]
769
770         * Fixed the status code when trying to fetch an https URI with
771           a non-gnutls build of libsoup. [#590464]
772
773         * Fixed strict-aliasing warnings introduced in 2.27.4
774           [#588771]
775
776         * Fixed some warnings noted by fortify [#591226] and -Wextra.
777
778         * libsoup now uses automake 1.11's silent-rules support by
779           default (if you are building with automake 1.11). Use
780           "./configure --disable-silent-rules" or "make V=1" to
781           disable.
782
783 Changes in libsoup from 2.27.4 to 2.27.5:
784
785         * Fixed a crash when a web server redirected a request to a
786           non-http URI (eg, "about:blank"). [#528882]
787
788         * Fixed a hang when trying to create an attachment on certain
789           bugzilla installations from epiphany. [#584645]
790
791         * Fixed verification of V1 TLS certificates [#589323, Patrick
792           Ohly]
793
794         * Fixed compile problems on Windows (in the ssl code), and on
795           Linux (when the most recent version of gtk-doc was
796           installed).
797
798 Changes in libsoup from 2.27.2 to 2.27.4:
799
800         * Added SoupContentSniffer and the "content-sniffed" signal on
801           SoupMessage, to do Content-Type sniffing per the HTML5 /
802           draft-abarth-mime-sniff algorithm. [#572589, Gustavo Noronha
803           Silva]
804
805         * Updated the earlier SoupSession timeout fixes ([#574414],
806           [#578928]) so that async connect() also times out [#588177,
807           Mark Nauwelaerts] and SSL works on Windows again [#587910,
808           Fridrich Strba].
809
810         * Fixed the behavior on a 301 response to a POST to match
811           real-world usage rather than what the spec says. (We were
812           doing the right thing on 302 and 303, but had missed 301.)
813           [#586692]
814
815         * Changed configure so that if GNUTLS isn't found then it
816           errors out, rather than silently building an SSL-less
817           libsoup. Configure with --disable-ssl if you actually don't
818           want SSL. [#584955]
819
820 Changes in libsoup from 2.27.1 to 2.27.2:
821
822         * Replaced SoupProxyResolver with SoupProxyURIResolver, which
823           is a bit simpler, works with non-HTTP URIs (and so could be
824           used by gvfsd-ftp) and supports proxy auth correctly.
825           [#580051]
826
827         * Fixed SoupSession to not try to resolve http server
828           hostnames when it's just going to pass the hostname off to a
829           proxy server anyway. This fixes things on hosts that use a
830           proxy for everything and have no working DNS config
831           [#577532] and also makes WebKitGTK behave more like other
832           browsers in terms of per-host connection limits (we now
833           limit connections based on hostname rather than on IP
834           address).
835
836           We also no longer set the AI_CANONNAME flag when calling
837           getaddrinfo(), which saves us a little bit of unnecessary
838           network traffic. [Pointed out by Christophe Gillette on the
839           mailing list.]
840
841         * libsoup now always uses SSL 3.0 (not TLS 1.0 or 1.1) for
842           https URIs, to work around problems with older servers that
843           don't implement the (apparently quite confusing) TLS/SSL
844           compatibility rules correctly. Makes a bunch of
845           previously-inaccessible sites now accessible in WebKitGTK
846           (notably PayPal) [#581342]. Will eventually be revisited, to
847           first try TLS 1.1 and fall back if that fails.
848
849         * Fixed Digest auth to (recent) Apple CalDAV servers.
850           [#583091]
851
852         * Changed the way the SoupSession "authenticate" signal works
853           a bit. We now never emit "authenticate" before sending a
854           request, even if we know for sure that it's going to fail,
855           because this makes the semantics of the authenticate handler
856           too complicated (and because we'll only get into this
857           situation if a previous call to the authenticate handler
858           failed anyway). Fixes problems in WebKitGTK when you cancel
859           a password dialog, and then later try to load the page
860           again. [#583462, mostly figured out by Gustavo Noronha
861           Silva].
862
863         * Fixed a bug in the CRLF-vs-LF patch (#571283) that caused
864           libsoup to fail to parse the response headers (returning
865           SOUP_STATUS_MALFORMED) if a CR LF got split across two
866           read()s. [#582002]
867
868         * Allow using PUT in soup_form_request_for_data(), to work
869           with certain broken web APIs. [#581860, Ross Burton]. Also,
870           fixed a problem with empty POST bodies that made some parts
871           of gmail not work in WebKitGTK.
872
873         * Applied some minor bugfixes to configure.in and autogen.sh
874           [#583911, #583942]. Fixed configure.in to not use gcc
875           warning options that the installed version of gcc doesn't
876           recognize [#578851].
877
878         * Added G_GNUC_NULL_TERMINATED and G_GNUC_PRINTF to a few
879           methods that should have had them. [#581754, Ross Burton]
880
881 Changes in libsoup from 2.26.1 to 2.27.1:
882
883         * SOUP_SESSION_TIMEOUT now works properly with
884           SoupSessionAsync [#574414] and SSL [#578928]. Added
885           tests/timeout-test to test this.
886
887         * SoupDate fixes:
888
889                 * soup_date_to_string() now handles SOUP_DATE_RFC2822
890                   [#579055, Enrico Tröger]
891
892                 * soup_date_new_from_string() now accepts 24:00 as a
893                   time in ISO8601 timestamps
894
895                 * soup_date_to_string() now coerces the date to UTC
896                   for HTTP and cookie dates, and outputs the UTC
897                   correct offset for the other date types.
898
899                 * Added regression tests to tests/date
900
901         * soup_headers_parse() now completely ignores
902           syntactically-incorrect headers, rather than passing them to
903           soup_message_headers_append() and causing a g_warning.
904           soup_message_headers_append() now also rejects 0-length
905           header names. Updated tests/header-parsing to check this.
906           [#579318]
907
908         * Fix a crash when cancelling a message from a "restarted"
909           handler, and updated a regression test to notice the
910           underlying cause. [#580193]
911
912         * Completing the API updates for #576760 from 2.26.1,
913           soup_message_headers_get() is now marked deprecated in favor
914           of soup_message_headers_get_one() and _get_list().
915
916 Changes in libsoup from 2.26.0 to 2.26.1:
917
918         * libsoup uses libproxy for PAC and WPAD proxy resolution
919           again. However, it arranges to do all communication with
920           GConf itself, to ensure that libproxy doesn't call it in
921           non-thread-safe ways. [#571527] Also, fixed a bug in
922           SoupSessionSync when proxy resolution failed. [#574957,
923           patch from Milan Crha].
924
925           (Also fixed three SoupProxyResolverGNOME bugs since the
926           2.26.0.9 preview release. [#578746, #578809])
927
928         * SoupURI now handles unencoded spaces in URIs. In particular,
929           redirects via Location headers with spaces in them now work.
930           [#566530]
931
932         * libsoup can now deal with servers (and clients) that
933           erroneously use LF LF instead of CR LF CR LF to separate
934           the headers and body. [#571283]
935
936         * Added soup_message_headers_get_one() and
937           soup_message_headers_get_list(), which will eventually
938           deprecate soup_message_headers_get(). This lets applications
939           deal correctly with implementations that erroneously send
940           multiple copies of single-valued headers. [#576760]
941
942         * In particular, soup_message_headers_get_content_type() now
943           ignores duplicate Content-Type headers [#576760] and also
944           ignores syntactically-incorrect Content-Type headers.
945           [#577630]
946
947         * SoupCookieJar can now store multiple cookies with the same
948           domain and name, but different paths. [#577360]
949
950         * Abnormal SSL connection closes are now treated as ordinary
951           EOFs, for compatibility with certain sites. [#577386]
952
953         * soup_header_g_string_append_param() now allows NULL values.
954           [#577728]
955
956         * soup_message_headers_append() now rejects header names and
957           values with newlines or certain other illegal data in them,
958           rather than generating syntactically invalid headers.
959
960         * Fixed a small bug in soup_date_new_from_string's ISO 8601
961           handling [qv #578369 for g_time_val_from_iso8601].
962
963         * The regression tests now work correctly on machines where
964           "localhost" resolves to "::1" instead of "127.0.0.1".
965           [#576583, patch from Andreas Rottmann]
966
967         * Fixed warnings when a message has a network problem when
968           many other messages are queued. [#578809]
969
970         * Miscellaneous documentation fixes/clarifications.
971
972 Changes in libsoup from 2.25.91 to 2.26.0:
973
974         * Temporarily disable libproxy support to work around a bug in
975           its gnome plugin that causes gvfsd-http (and probably
976           eventually other apps) to crash. [#571527]. For now,
977           SoupProxyResolverGNOME uses only GConf. To be fixed in
978           2.26.1
979
980         * Fixed a bug that showed up in WebKit, where if many messages
981           were queued all at once to a server that doesn't support
982           persistent connections, some of the requests will get lost.
983           #574365, reported by Xan Lopez.
984
985         * Fixed SoupServer to support using SOUP_ENCODING_EOF, so you
986           can stream responses of unknown length to HTTP/1.0 clients.
987           [#572153]. Added a regression test for this, and for chunked
988           and Content-Length-based streaming.
989
990         * Fixed several bugs that prevented SoupCookieJarSqlite from
991           working. [#572409, patch from Xan Lopez]
992
993         * Added G_{BEGIN,END}_DECLS guards to public headers that were
994           missing it. (Xan Lopez)
995
996         * Misc gtk-doc improvements
997
998 Changes in libsoup from 2.25.5 to 2.25.91:
999
1000         * Fixed a crash in SoupProxyResolverGNOME when the proxy
1001           requires authentication. (This does not make proxy
1002           authentication *work* yet, it just makes it not crash.)
1003
1004         * Updated documentation
1005
1006 Changes in libsoup from 2.25.4 to 2.25.5:
1007
1008         * SoupProxyResolverGConf (which was incomplete) is gone, and
1009           libsoup-gnome now requires libproxy, which is now officially
1010           an external dependency of GNOME.
1011
1012         * Fixed a bug in SoupCookieJar that was making it send
1013           "Cookie: (null)" when it had no cookies for a site, which
1014           confused some web servers (WebKit bug 23240).
1015
1016         * Fixed a bug with using SOUP_MEMORY_TEMPORARY buffers and
1017           soup_message_body_set_accumulate(FALSE). (Part of WebKit bug
1018           18343, noticed by Gustavo Noronha Silva.)
1019
1020         * Fixed the build with non-gcc compilers
1021
1022 Changes in libsoup from 2.25.3 to 2.25.4:
1023
1024         * Added soup_session_get_feature() and
1025           soup_session_get_features(), to query the features currently
1026           available in a session (which is needed by the patch in
1027           https://bugs.webkit.org/show_bug.cgi?id=22624)
1028
1029 Changes in libsoup from 2.25.2 to 2.25.3:
1030
1031         * Fixed a crash when using both cookies and a proxy. [#562191,
1032           Mark Lee]
1033
1034         * Fixed soup_form_decode() to correctly handle forms with
1035           URI-encoded parameter names [#563302, Evan Nemerson] and
1036           added a regression test.
1037
1038         * Fixed a crash in SoupProxyResolverGConf. [#563145]
1039
1040 Changes in libsoup from 2.25.1 to 2.25.2:
1041
1042         * Fixed client behavior when presented with multiple auth
1043           types to choose the *strongest* auth type (eg, Digest)
1044           rather than the *weakest* one [#562339, Pontus Oldberg].
1045           Added a regression test for this.
1046
1047         * Moved libsoup-gnome headers to a different directory to make
1048           it easier to split libsoup and libsoup-gnome into separate
1049           packages, and to ensure that things that only want to be
1050           looking at plain libsoup headers (like gir-repository) don't
1051           accidentally see the libsoup-gnome ones.
1052
1053         * Some minor doc fixes
1054
1055         * Fixed libsoup-gnome linking with --as-needed. [#559342]
1056
1057 Changes in libsoup from 2.24.1 to 2.25.1:
1058
1059         libsoup 2.25.1 introduces a new library, libsoup-gnome, which
1060         will be used for features which are important to GNOME apps,
1061         but which require GNOME-specific libraries that non-GNOME apps
1062         may not want to add dependencies on.
1063
1064         In 2.25.1, libsoup-gnome contains:
1065
1066             * SOUP_TYPE_PROXY_RESOLVER_GNOME, a SoupSessionFeature
1067               type that can be added to a SoupSession to provide
1068               automatic proxy handling via the GConf proxy keys. (See
1069               below) The default implementation uses libproxy, which
1070               also handles WPAD, PAC, etc, but if libproxy is not
1071               available it will use GConf directly, supporting only
1072               the basic HTTP proxy functionality.
1073
1074             * SoupCookieJarSqlite, a SoupSessionFeature that handles
1075               cookies and stores them in a Firefox 3-compatible sqlite
1076               file. (This is not actually a "GNOME-specific" feature,
1077               but I didn't want to make libsoup itself depend on
1078               sqlite, and I didn't want to make the dependency
1079               optional. This might change before 2.26.)
1080
1081             * SOUP_TYPE_GNOME_FEATURES_2_26: a SoupSessionFeature type
1082               that can be added to a SoupSession to add all
1083               GNOME-integration features that are available for 2.26;
1084               as of 2.25.1, this is just the GNOME proxy resolver, but
1085               by 2.26.0 it may also include gnome-keyring support and
1086               possibly other features.
1087
1088         Applications/libraries that are currently doing GConf proxy
1089         lookup by hand can be updated as follows:
1090
1091             * Remove all of the existing code that listens to the
1092               GConf keys and sets SOUP_SESSION_PROXY_URI
1093
1094             * Change the configure check to require
1095               "libsoup-gnome-2.4 >= 2.25.1" instead of "libsoup-2.4"
1096
1097             * #include <libsoup/soup-gnome.h>
1098
1099             * After creating your SoupSession, do:
1100
1101                   soup_session_add_feature_by_type (session, SOUP_TYPE_PROXY_RESOLVER_GNOME);
1102
1103               (Or alternatively, use SOUP_SESSION_ADD_FEATURE_BY_TYPE
1104               with soup_session_async_new_with_options() or
1105               soup_session_sync_new_with_options().)
1106
1107
1108         Other new features and bug fixes in 2.25.1 include:
1109
1110         * SoupCookieJarText, like SoupCookieJarSqlite, but using the
1111           old-style cookies.txt format, and in the base libsoup rather
1112           than libsoup-gnome.
1113
1114         * Various bugfixes to SoupCookie and SoupCookieJar to fix the
1115           problems with cookies not working on certain sites.
1116
1117         * The new SoupMultipart type provides support for multipart
1118           MIME bodies, and soup-form now includes several methods for
1119           generating and parsing multipart form data and file uploads.
1120
1121         * SoupMessageHeaders now has methods for easy handling of the
1122           Content-Type, Content-Disposition, Range, and Content-Range
1123           headers. The Content-Disposition handling recognizes
1124           RFC2231-encoded UTF-8 filenames.
1125
1126         * SoupServer now automatically handles partial GET requests;
1127           if your server returns SOUP_STATUS_OK in response to a
1128           partial GET, libsoup will automatically convert it to a
1129           SOUP_STATUS_PARTIAL_CONTENT response with only the requested
1130           portions.
1131
1132         Thanks to Xan Lopez and Diego Escalante Urrelo for their work
1133         on SoupCookie, SoupCookieJar, SoupCookieJarText, and
1134         SoupCookieJarSqlite.
1135
1136 Changes in libsoup from 2.24.0.1 to 2.24.1:
1137
1138         * Fixed a crash when unreffing the session from a
1139           soup_session_queue_message() callback [#533473], and added
1140           regression test. In particular, this fixes a crash in
1141           seahorse when trying to connect to a non-responsive
1142           keyserver.
1143
1144         * Fixed an infinite loop when giving a bad password to a site
1145           that uses non-standard capitalization in the
1146           WWW-Authenticate header (eg, gmail.com) [#536285].
1147
1148         * Fixed a leak in SoupSessionAsync when using a non-default
1149           GMainContext. [addendum to #498509, Arnout Vandecappelle]
1150           Added additional code to the regression tests to make sure
1151           sessions and servers do not get leaked.
1152
1153         * Fixed a leak in the XML-RPC code
1154
1155         * Compile fixes for "gcc -pedantic" [#553976, Sander Dijkhuis]
1156           and -DG_DISABLE_DEPRECATED / -DG_DISABLE_SINGLE_INCLUDES
1157           [#557072, Cosimo Cecchi]
1158
1159         * Patched xmlrpc-test to accept the incorrect response to
1160           test_echo() that php-xmlrpc gives when it's built against
1161           libxml2 >= 2.7.1 (qv http://bugs.php.net/45996), so that
1162           I can "make distcheck"...
1163
1164         * Updated generated documentation
1165
1166 Changes in libsoup from 2.23.92 to 2.24.0.1:
1167
1168         * Reverted part of the fix for #528882, which caused the DAAP
1169           plugin in rhythmbox to crash. [#553466]
1170
1171 Changes in libsoup from 2.23.91 to 2.23.92:
1172
1173         * Fixed the handling of a 302 response to a HEAD request,
1174           which should NOT be treated like a 303 response. [#551190,
1175           Jonathan Matthew]
1176
1177 Changes in libsoup from 2.23.6 to 2.23.91:
1178
1179         * Fixed a crash in gvfs [#528882], though there is still an
1180           unknown bug there. As part of this fix, libsoup will now
1181           return an error if you try to do an operation on a non-HTTP
1182           URI. (Previously it was just treating any URI scheme except
1183           "https" as HTTP.)
1184
1185         * Added soup_date_to_timeval() for gvfs. [#549006, patch from
1186           Bastien Nocera]
1187
1188 Changes in libsoup from 2.23.1 to 2.23.6:
1189
1190         * Fixed use of g_idle_add() so that heavy I/O won't end up
1191           blocking libsoup callbacks. [#536676, Benjamin Otte]
1192
1193         * Allow the caller to override the Host header. [#539803, Marc
1194           Maurer]
1195
1196         * Properly handle responses larger than 4G. [#539861, Peter
1197           Christensen]
1198
1199         * Fixed the build when using certain LDFLAGS [#541506, Götz
1200           Waschk]
1201
1202         * Fixed a small bug in Digest auth handling. [#544681, Mads
1203           Chr. Olesen]
1204
1205         * Fixed multiple Windows bugs [Tor Lillqvist]
1206
1207 Changes in libsoup from 2.4.1 to 2.23.1:
1208
1209         * This is the first unstable release leading up to GNOME 2.24.
1210           Bumped the libsoup version number up to 2.23.x to match the
1211           GNOME version; note that the API version is still "2.4",
1212           meaning in particular that you still call it "libsoup-2.4"
1213           when using pkg-config.
1214
1215         * Added SoupSessionFeature, an interface type that will be
1216           used for several new features. Ported SoupLogger and
1217           SoupAuthManager to use it.
1218
1219         * Added SoupCookie and SoupCookieJar. This API is already
1220           being used in Epiphany, via WebKit, but it is not yet
1221           complete.
1222
1223         * Fixed GnuTLS support on Win32. [#528752, Marc Maurer]
1224
1225 Changes in libsoup from 2.4.0 to 2.4.1:
1226
1227         * Fixed SoupMessage to not downgrade to HTTP/1.0 for the
1228           second attempt when it receives an HTTP/1.0 redirect or 401.
1229           [#521848, Tommu Komulainen]
1230
1231         * Fixed Host: header syntax when the host is an IPv6 address
1232           literal.
1233
1234         * Fixed SoupSession to not emit "authenticate" multiple times
1235           for messages that have been requeued. [#522601, Tommi
1236           Komulainen]. Also added two new signals to SoupSession,
1237           request-queued and request-unqueued, to help simplify
1238           certain session-helpers and avoid bugs like this in the
1239           future.
1240
1241         * Fixed soup_server_pause_message() to actually work (rather
1242           than *un*pausing the message).
1243
1244         * Added a property SOUP_SESSION_IDLE_TIMEOUT that can be used
1245           to set a timeout after which idle connections will
1246           automatically be closed. [#518214, Jorn Baayen]
1247
1248         * Implemented RFC 2069-style Digest auth, and fixed SoupAuth
1249           to compare auth scheme names case-insensitively, to fix
1250           authentication against Apple's calendar server. [#498484]
1251
1252         * Fixed a crash in SoupAuthDomainDigest if the client provided
1253           an unrecognized username. [pointed out by Curtis Magyar on
1254           IRC]
1255
1256         * Fixed a few SoupDate bugs. (In particular, it was outputting
1257           the wrong day of the week when stringifying dates.)
1258
1259         * Improved the cleanup of idle connections, to fix slow load
1260           times with the libsoup backend of WebKit.
1261
1262         * Added a new SoupMessage signal "wrote-body-data" that can be
1263           used for progress information when sending a large request
1264           body. Also allow providing the request body in multiple
1265           chunks even when using Content-Length encoding. [#525101,
1266           Christian Kellner]
1267
1268         * libsoup now ignores SIGPIPE globally, instead of
1269           un-thread-safe-ly ignoring it only around network writes. In
1270           particular, this means it is ignored when the SSL code needs
1271           to unexpectedly do a write when we asked it to do a read.
1272           [#524397, Curtis Magyar]
1273
1274         * The discard-body-chunks-once-they're-no-longer-needed
1275           behavior, confusingly called SOUP_MESSAGE_OVERWRITE_CHUNKS,
1276           is now controlled by a SoupMessageBody method
1277           (soup_message_body_set_accumulate()), and can be applied to
1278           either the request body or the response body.
1279           (OVERWRITE_CHUNKS is still available for backward
1280           compatibility.) [#522146, Christian Kellner]
1281
1282         * The DNS cache no longer caches "no such host" results, since
1283           some name servers lie to clients outside their firewall,
1284           which could then cause problems for laptops moved between
1285           networks. [#523269, Jörgen Scheibengruber]
1286
1287         * Added some new regression tests, fixed some small bugs in
1288           the existing ones.
1289
1290 Changes in libsoup from 2.3.4 to 2.4.0:
1291
1292         * Fixed a small memory leak in SoupSession. [#518798, Wouter
1293           Cloetens]
1294
1295         * Minor fixes to redirect behavior; PROPFINDs can now be
1296           automatically redirected (pointed out by Christian Kellner),
1297           and 302 is treated like 307, not 303. Also fixed to make
1298           sure that redirect-test actually gets run by "make check".
1299
1300         * The SoupSocket I/O methods now set nread/nwrote even on
1301           error. [Benjamin Otte]
1302
1303 Changes in libsoup from 2.3.2 to 2.3.4:
1304
1305         * The documentation should be accessible from devhelp again
1306           [#518384, Mart Raudsepp]. (Also fixed another
1307           documentation-generation bug that affected builds from svn,
1308           but not the 2.3.2 tarball for some reason. [#518317,
1309           Benjamin Otte].)
1310
1311         * Fixed dependencies in libsoup-2.4.pc file [#517631,
1312           Sebastian Dröge]
1313
1314 Changes in libsoup from 2.3.0.1 to 2.3.2:
1315
1316         API changes / Behavior changes:
1317
1318         * soup_server_add_auth_domain() now refs the auth domain when
1319           adding it. (soup_server_remove_auth_domain() already
1320           unreffed it.) This means existing applications using
1321           SoupAuthDomain will now have a small memory leak. Those
1322           applications should update their libsoup-2.4 requirement to
1323           ">= 2.3.2" at some point before the final GNOME 2.22.0
1324           release, and then fix the code to unref the auth domain
1325           after adding it to the server.
1326
1327         * SoupSession's automatic redirect-handling behavior now obeys
1328           RFC 2616 more closely. In particular, status codes 300 and
1329           304 are no longer mistakenly considered redirects; POSTs
1330           that receive 303 are now redirected into GETs; and POSTs
1331           that receive 301, 302, or 307 are now not redirected.
1332
1333           Applications that were using the SOUP_MESSAGE_NO_REDIRECT
1334           flag to prevent libsoup from redirecting POSTs incorrectly
1335           before should now be able to remove that if they depend on
1336           libsoup-2.4 >= 2.3.2.
1337
1338         API additions:
1339
1340         * Added a SOUP_SESSION_USER_AGENT property to SoupSession, and
1341           SOUP_SERVER_SERVER_HEADER to SoupServer, to support
1342           automatically adding "User-Agent" and "Server" headers to
1343           messages. (The default behavior is to do nothing, as
1344           before.)
1345
1346         * Added several new methods to soup-forms.h. Applications that
1347           are encoding a fixed set of form fields can now just pass
1348           them to soup_form_encode(), rather than needing to construct
1349           a GHashTable or GData list. (Likewise, the new
1350           soup_uri_set_query_from_fields() behaves similarly for
1351           directly updating a URI with form data.) There are also now
1352           soup_form_request_new() and other related methods, to
1353           directly create a GET or POST SoupMessage for submitting a
1354           form query.
1355
1356           The original soup_form_* methods have all been renamed,
1357           although #defines exist for backward compatibility.
1358
1359         * Added soup_message_set_chunk_allocator() and
1360           soup_buffer_new_with_owner(), to give applications more
1361           control over memory usage/copying when doing streaming HTTP.
1362           [Wouter Cloetens, #513810].
1363
1364         * Added several new methods to soup-value-utils.h for working
1365           with multiple array or hash table values at once:
1366           soup_value_hash_new_with_vals(),
1367           soup_value_hash_insert_vals(),
1368           soup_value_hash_lookup_vals(),
1369           soup_value_array_new_with_vals(), and
1370           soup_value_array_append_vals().
1371
1372           This helps to simplify XML-RPC calls that send or receive
1373           structs or arrays.
1374
1375         * Added soup_date_to_time_t().
1376
1377         * Added SoupMessageHeadersIterator, an iterator type for
1378           SoupMessageHeaders that can be used instead of
1379           soup_message_headers_foreach().
1380
1381         Bug fixes:
1382
1383         * Fixed a crash-when-idle in evolution-exchange [#437835] and
1384           rhythmbox [#506552].
1385
1386         * Added the API version to the gtk-doc installation dir, to
1387           prevent parallel-installation problems with libsoup 2.2 and
1388           2.4. [#512810, Daniel Gryniewicz].
1389
1390         * Fixed tests/query-test to compile correctly on Solaris.
1391           [#513602, patch from Jeff Cai]
1392
1393         * Fixed some other minor HTTP conformance issues.
1394
1395         Python bindings:
1396
1397         * Although not present in the release tarball, there are now
1398           experimental python bindings for libsoup in GNOME subversion
1399           (in the python/ subdirectory of libsoup trunk). These are
1400           not yet stable (and are not built by default or installed
1401           even when building from svn), but comments on them are
1402           welcome at libsoup-list@gnome.org
1403
1404 Changes in libsoup from the 2.2 series to 2.3.0.1:
1405
1406         libsoup 2.3.0 is the first beta release of the libsoup 2.4
1407         series. It is an API break from the earlier 2.2 series that
1408         fixes various bugs and API warts and lays the groundwork for
1409         language bindings and various new features in upcoming
1410         releases.
1411
1412         (2.3.0.1 is identical to the 2.3.0 release in terms of code,
1413         but includes this updated NEWS file which was accidentally
1414         left out of the 2.3.0 tarball.)
1415
1416         http://library.gnome.org/devel/libsoup/unstable/libsoup-porting-2.2-2.4.html
1417         goes over the API changes in detail. If you have questions not
1418         answered by the porting document, please send mail to
1419         libsoup-list@gnome.org.
1420
1421         Specific user-reported bugs fixed in this release:
1422
1423         * SoupURI now correctly handles URIs with complex encoded
1424           queries [#266516, Jean-Yves Lefort]
1425
1426         * It is now possible for a SoupServer to use Digest auth
1427           without needing to have the cleartext password available.
1428           [#347108, Anas Nashif]
1429
1430         * Digest authentication now properly handles "stale=true" and
1431           "nextnonce=..." [#471380, Jari Urpalainen]
1432
1433         * SoupServer is now subclassible [#491653, Mathias Hasselmann]
1434
1435         * soup_server_run_async and soup_server_quit no longer ref and
1436           unref the server, as that doesn't match ordinary GObject
1437           conventions [#494128, Mathias Hasselmann]
1438
1439         * The test programs no longer use a symbol name that conflicts
1440           with Cygwin [#501631, Cygwin Ports Maintainer]
1441
1442         * libsoup can now handle the not-quite-HTTP responses returned
1443           by Shoutcast servers [#502325, Wouter Cloetens]
1444
1445         * If you use libsoup while disconnected from the network, it
1446           no longer caches the failed DNS results [#508593, Bradley
1447           Worley]
1448
1449         Items from http://live.gnome.org/LibSoup/ToDo fixed:
1450
1451         * "Expect: 100-continue" processing now works correctly on
1452           both client and server.
1453
1454         * SoupSessions are no longer leaked
1455
1456         * The XML-RPC API is improved. The SOAP API is gone...
1457
1458         * Added utility functions for HTML form handling
1459
1460         * Improved message header handling
1461
1462         * SoupServer now automatically adds a "Date" header
1463
1464 ==========
1465
1466 Changes in libsoup from 2.2.103 to 2.2.104:
1467
1468         * soup_message_io_pause() and soup_message_io_pause() are now
1469           allowed for client messages (and in particular, they don't
1470           mess up when called from the "got_chunk" callback).
1471           [#452280, Marco Barisione]
1472
1473         * Fixed some bugs in SOUP_SESSION_ASYNC_CONTEXT support that
1474           would cause parts of an operation to run in the default
1475           context rather than the session's context. Also fixed some
1476           leaks and added a regression test. [#498509, Wouter
1477           Cloetens]
1478
1479         * There is a new test/sample program, tests/pull-api.c,
1480           showing how to implement a pull API using SoupSessionAsync.
1481           (This depends on the fixes for #452280 and #498509, so it
1482           won't work with older versions of libsoup.)
1483
1484         * Discovered "valgrind --leak-resolution=med" and fixed some
1485           more memory leaks.
1486
1487 Changes in libsoup from 2.2.102 to 2.2.103:
1488
1489         * Fix memory corruption in SoupSessionAsync that caused
1490           rhythmbox to crash. [#484988, patch from Rob Bradford]
1491
1492         * Fix socket refcounting in SoupServer to fix warnings /
1493           possible crash. [#459896, Emanuele Aina]
1494
1495 Changes in libsoup from 2.2.101 to 2.2.102:
1496
1497         * Unbreak the build when building without SSL. Not that you
1498           should be building without SSL anyway, but... (reported by
1499           guenther).
1500
1501 Changes in libsoup from 2.2.100 to 2.2.101:
1502
1503         * Fix build on cygwin [384498]
1504
1505         * Fix SSL rehandshaking on synchronous sockets [415402, Jacob
1506           Berkman] and add a regression test for it.
1507
1508         * Fix two bugs in https tunnels over proxies that require
1509           authentication (noticed by Varadhan), and add a regression
1510           test for them.
1511
1512         * Ensure that if you queue multiple messages at once to an
1513           http server that requires authentication but that you
1514           haven't authenticated to yet, that all of the messages get
1515           properly authenticated [271540, James Willcox]. And add a
1516           regression test for it.
1517
1518         * Fix NTLM authentication, which got broken by the previous
1519           fix. [471389, Varadhan]. Add a basic NTLM regression test
1520           that doesn't really test the crypto/encoding parts, but at
1521           least makes sure that the message flow is correct.
1522
1523         * Allow trailing whitespace after HTTP version in
1524           Response-Line, for compatibility with broken servers
1525           [475169, Stephane Loeuillet]. Add that case to the
1526           header-parsing regression test.
1527
1528         * Fix crash when the session's "authenticate" handler returns
1529           a username and no password when using NTLM. [480987, Wendell
1530           MacKenzie]
1531
1532         * Use "new" glib base64 and iso8601 methods rather than
1533           duplicating them. [337010, patch from Emmanuele Bassi].
1534
1535         * Implement soup_session_queue_message() for SoupSessionSync.
1536
1537         * Add G_BEGIN_DECLS / G_END_DECLS to all headers that were
1538           missing them. [438776, patch from Jonathon Jongsma].
1539
1540         * Fix broken definition of SOUP_IS_MESSAGE_FILTER_CLASS. Noted
1541           by "cascardo" on libsoup-list.
1542
1543         * Remove documentation of non-public MD5 methods [440092,
1544           Jonathon Jongsma]. Removed a mysterious half-sentence in the
1545           SoupMessage docs [458116, Marco Barisione].
1546
1547 Changes in libsoup from 2.2.99 to 2.2.100:
1548
1549         * Fixed soup_headers_parse_status_line() so WebDAV response
1550           parsing will work again. [406997]
1551
1552         * Fixed a bug in the header-parsing regression test that
1553           caused the test to fail sometimes, even though the actual
1554           header-parsing code was fine.
1555
1556 Changes in libsoup from 2.2.98 to 2.2.99:
1557
1558         * Fixed header parsing, including a crash in SoupServer with
1559           certain malformed requests [391970].
1560
1561         * Fixed redirection to other hosts with SoupSessionAsync.
1562           [382251]
1563
1564         * Fixed a small memory leak pointed out by Chris Austin.
1565
1566 Changes in libsoup from 2.2.97 to 2.2.98:
1567
1568         * The XML-RPC code now correctly interprets <value>foo</value>
1569           as meaning the same thing as
1570           <value><string>foo</string></value>. [364490] Pointed out by
1571           Todd Kulesza.
1572
1573         * Memory leak fixes from Andrew W. Nosenko.
1574
1575         * A few symbols that should have been static before now are.
1576           [376387] Patch from Matthias Clasen.
1577
1578 Changes in libsoup from 2.2.96 to 2.2.97:
1579
1580         * Fixed SOAP and XML-RPC code to handle whitespace and
1581           comments in the XML better. (Based on a patch from Andrew W.
1582           Nosenko.)
1583
1584         * Fixed lots of typecasting/constness warnings in the code
1585           (mostly via a patch from Andrew W. Nosenko)
1586
1587         * Fixed build on Cygwin [321827]
1588
1589         * Fixed libsoup-2.2.pc fields [343340] and make it get
1590           uninstalled correctly [356809]. (Mikhail Zabaluev and
1591           Matthew Barnes)
1592
1593         * Fixed some small leaks in SoupServer pointed out by Paolo
1594           Borelli. [351500]
1595
1596 Changes in libsoup from 2.2.95.1 to 2.2.96:
1597
1598         * SoupServer now works even if you don't explicitly set an
1599           encoding for the response. (In particular, the automatic 404
1600           if you request a path with no handlers now works. Problem
1601           pointed out by Dennis Jacobfeuerborn.)
1602
1603         * WWW-Authenticate and Proxy-Authenticate responses with no
1604           realm parameter are now ignored, as per RFC 2617, fixing a
1605           crash pointed out by Nate Nielsen.
1606
1607         * Added soup_xmlrpc_message_from_string(), from Fernando
1608           Herrera [348532].
1609
1610         * simple-httpd and "get" now support HEAD
1611
1612 Changes in libsoup from 2.2.94 to 2.2.95.1:
1613
1614         * Even more fixes to XML-RPC, found by the new XML-RPC
1615           regression test. This includes some API changes that I don't
1616           feel guilty about, because the code totally didn't work at
1617           all before.
1618
1619         * Fixed a bug in soup_mktime_utc()
1620
1621         * (2.2.95 was identical to 2.2.95.1. The only difference is
1622           that the shared library version was belatedly bumped from
1623           8.2.0 to 8.3.0 to reflect the API "additions")
1624
1625 Changes in libsoup from 2.2.93 to 2.2.94:
1626
1627         * Various fixes to the XML-RPC code (which apparently had not
1628           actually ever worked before) from Brent Smith. [343973,
1629           344222, 344458]
1630
1631         * Added client and server API tutorials to the docs
1632
1633         * auth-test now uses a local Apache 2.2 install, if possible,
1634           rather than depending on files that used to be on an old
1635           Ximian web server but haven't been anywhere for a long time.
1636           [311825]
1637
1638 Changes in libsoup from 2.2.92 to 2.2.93:
1639
1640         * Fixed outgoing data corruption caused when SoupServer
1641           started writing out a response a second time after already
1642           having started once. [334469]. Also fixed 342640 and another
1643           bug caused by the workaround for 334469 in 2.2.92. Based on
1644           patches and analysis from William Jon McCann and Armin
1645           Bauer.
1646
1647         * Fixed a deadlock when changing a session's proxy URI.
1648           [309867 / bnc 174255, based on a patch by Veerapuram
1649           Varadhan].
1650
1651         * Fixed https-via-proxies in the synchronous case. [bnc 174255]
1652
1653         * Fixed a crash in evolution-exchange [342545, fix based on an
1654           analysis by Wang Xin].
1655
1656         * Fixed simple-proxy to not crash at startup. Oops. (Alex
1657           Larsson)
1658
1659 Changes in libsoup from 2.2.91 to 2.2.92:
1660
1661         * Fixed server-side digest auth to return a valid "algorithm"
1662           value and client-side to not crash if it sees an invalid one
1663           [328615].
1664
1665         * Fixed the Request-Line parsing code to not hardcode a
1666           maximum URI length (to allow very long DAAP requests from
1667           iTunes in Rhythmbox). [335040]
1668
1669         * Fixed some warnings (signed/unsigned mismatch).
1670
1671 Changes in libsoup from 2.2.7 to 2.2.91:
1672
1673         * (The large version number bump is because there was an
1674           internal 2.2.90 release for SUSE 10.1 alphas, which was
1675           supposed to be intermediate between 2.2.7 and 2.4.0. But
1676           2.4.0 didn't end up happening, and I don't want to regress
1677           the version number at this point.)
1678
1679         * SoupSession, SoupServer, SoupConnection, SoupSocket, and
1680           SoupAddress now have an "async-context" property that allows
1681           you to use the async API in a non-default GMainContext.
1682           [Based on patches from Armin Bauer and Jürg Billeter.]
1683
1684         * SoupSession, SoupConnection, and SoupSocket now have a
1685           "timeout" property to stop synchronous sockets from hanging
1686           forever if the remote end is unresponsive (from Varadhan).
1687
1688         * Fixed some bugs in soup_date_iso8601_parse(). [324671, from
1689           Emmanuele Bassi]
1690
1691         * More Windows build fixes from Tor.
1692
1693 Changes in libsoup from 2.2.6.1 to 2.2.7:
1694
1695         * Fixed a crash when using NTLM connections [316313, probably
1696           also 318252]. (Also 321208, which was a bug introduced in
1697           the original fix for 316313.)
1698
1699         * Fixed a bug that could cause soup to suck up all available
1700           CPU when a connection to a SoupServer was dropped by the
1701           other side [319305, patch from Jonathan Matthew]
1702
1703         * Fixed the creation of struct elements in XMLRPC messages
1704           [321362, patch from Sebastian Bauer]
1705
1706         * Plugged a small memory leak in SoupSocket (from Wang Xin).
1707
1708         * Fixed two compile problems, a gccism [320349, patch from
1709           Roland Illig], and a strict-aliasing warning from gcc 4.1.
1710
1711 Changes in libsoup from 2.2.6 to 2.2.6.1:
1712
1713         * Fixed a crash when using SoupSoapMessage
1714
1715 Changes from 2.2.5 to 2.2.6:
1716
1717         * Fixed a crash when canceling a message (from Tambet Ingo)
1718
1719         * Fixed a bug where a connection could be leaked forever in
1720           some circumstances if a request got a 30x, 401, or 407
1721           response, eventually causing a hang when the session hit its
1722           maximum connection limit. (Dan/Tambet)
1723
1724         * Fixed a memory leak. (Tambet)
1725
1726         * Fixed a bug that would sometimes show up when connecting to
1727           a server on localhost [#312540]
1728
1729         * Added some API to SoupServer and SoupSocket to help fix a
1730           long-standing rcd bug.
1731
1732 Changes from 2.2.4 to 2.2.5:
1733
1734         * Win32 support (from Tor Lillqvist)
1735
1736         * Up-to-date API documentation pretty much everywhere
1737
1738         * Basic XMLRPC support (from Mariano Suarez-Alvarez, Fernando
1739           Herrera, and Jeff Bailey)
1740
1741         * New HTTP timestamp-manipulation methods soup_date_parse,
1742           soup_date_generate, and soup_date_iso8601_parse.
1743
1744         * SoupSession now handles relative URLs in the Location header
1745           (in violation of RFC 2616, but in line with how some servers
1746           behave.) [270688]
1747
1748 Changes from 2.2.3 to 2.2.4:
1749
1750         * Fixed a problem with NTLM authentication against
1751           multi-domain servers. [306877]
1752
1753         * Fixed DNS lookups on Solaris. [254551, 268389]
1754
1755 Changes from 2.2.2 to 2.2.3:
1756
1757         * Now compiles against gnutls 1.2.0 [257811]
1758
1759         * Fixed a bug that could result in 100% CPU usage if an SSL
1760           server closed the connection uncleanly. [273352]
1761
1762 Changes from 2.2.1 to 2.2.2:
1763
1764         * The SSL validation fix from 2.2.1 [264414] is now completely
1765           fixed. (Part of the fix didn't actually make it into 2.2.1)
1766
1767         * HTTPS certificate validation now works when using an HTTP
1768           proxy. [268583]
1769
1770         * HTTP proxy code deals better with proxies that try to make
1771           the user do HTML-form-based authentication. [268531]
1772
1773         * 64-bit fixes for NTLM auth code. [270323, from Michael
1774           Zucchi]
1775
1776 Changes from 2.2.0 to 2.2.1:
1777
1778         * Updated for a libgcrypt API change between 1.1.9x and 1.2.x
1779           that caused a crash at runtime if you compiled against
1780           1.2.x. [266342]
1781
1782         * SSL certificate validation failure should now always result
1783           in a status of SOUP_STATUS_SSL_FAILED, rather than getting
1784           turned into SOUP_STATUS_IO_ERROR. [264414]
1785
1786
1787 Changes in libsoup from the 2.0 series (1.99.x versions) to 2.2:
1788
1789         * Most of the libsoup datatypes are now GObjects. (SoupUri
1790           is currently an exception to this.)
1791
1792                 * SoupMessage now emits signals at various stages of
1793                   processing. (Eg, "wrote_body", "got_headers".) (You
1794                   can also still use soup_message_add_*handler().)
1795
1796         * SoupContexts are gone; soup_message_new() now takes a URI
1797           string.
1798
1799         * All formerly global state is now maintained by the
1800           SoupSession object. (This includes the connection pool,
1801           proxy server, cached authentication information, SSL
1802           certificates, etc.)
1803
1804                 * You can create a SoupSessionAsync (for 2.0-like
1805                   behavior) or SoupSessionSync (for blocking,
1806                   synchronous usage).
1807
1808                 * You can add SoupMessageFilter objects to a session
1809                   to have certain processing automatically performed
1810                   on every message sent via that session. (Eg, setting
1811                   up handlers.)
1812
1813                 * NTLM authentication is no longer supported by
1814                   default. You must enable it by setting the
1815                   SOUP_SESSION_USE_NTLM flag on the session.
1816
1817                 * The preferred method of handling authentication is
1818                   now via the "authenticate" and "reauthenticate"
1819                   signals on SoupSession. (The old style, of encoding
1820                   the user and password information into the url is
1821                   also still supported.)
1822
1823         * The SOUP_ERROR_* values are now SOUP_STATUS_* (so that we
1824           don't have "SOUP_ERROR_OK" and the like).
1825
1826                 * SOUP_MESSAGE_IS_ERROR() is gone, since some cases
1827                   want to include 3xx responses and some don't.
1828
1829                 * SOUP_ERROR_CANT_AUTHENTICATE and
1830                   SOUP_ERROR_CANT_AUTHENTICATE_PROXY are now gone,
1831                   since they didn't carry any information that
1832                   SOUP_STATUS_UNAUTHORIZED and
1833                   SOUP_STATUS_PROXY_UNAUTHORIZED don't.
1834
1835                 * DNS errors now show up as the new status code
1836                   SOUP_STATUS_CANT_RESOLVE rather than being mixed in
1837                   with SOUP_ERROR_CANT_CONNECT.
1838
1839         * Minimal SOAP support has been added back, via
1840           SoupSoapMessage/SoupSoapResponse
1841
1842         * The HTTP I/O state machine was completely rewritten, fixing
1843           numerous crashes, leaks, and protocol errors.
1844
1845         * SoupUri now conforms to RFC 2396. Mostly.
1846
1847         * Various test programs have been added under tests/
1848
1849         * Removed:
1850
1851                 * Support for OpenSSL (which was horribly buggy) and
1852                   Mozilla NSS (which was never finished). We only
1853                   support GNUTLS for SSL now.
1854
1855                 * SOCKS support
1856
1857                 * CGI support in SoupServer