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