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