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