Remove extern "C" wrapping other includes
[platform/upstream/libsoup.git] / NEWS
1 Changes in libsoup from 2.71.1 to 2.72.0:
2
3         * Fix critical after cancelling a message that failed auth [Carlos Garcia Campos]
4
5         * Updated translations: Portuguese, Latvian, Italian, German, Hungarian
6
7 Changes in libsoup from 2.71.0 to 2.71.1:
8
9         * Add support for 308 Premanent Redirect [Benjamin Kaufmann]
10
11         * Add basic sysprof profiling for HTTP messages [Philip Withnall]
12
13         * Various build fixes [Tom Schoonjans, Chun-wei Fan]
14
15         * Updated translations: Korean, Finnish, Czech, Catalan, Croatian, Slovenian,
16                                 Japanese, Serbian, Galician, Basque, Trukish, Indonesian,
17                                                         Friulian
18
19 Changes in libsoup from 2.70.0 to 2.71.0:
20
21         * Redesign directory list returned for `file://` requests [Jan-Michael Brummer]
22
23         * Add `SOUP_COOKIE_JAR_ACCEPT_GRANDFATHERED_THIRD_PARTY` policy [Carlos Garcia Campos]
24
25         * Add soup_message_is_feature_disabled() API [Carlos Garcia Campos]
26
27         * Fix potential leak when setting SoupSession:tls-interaction [Scott Hutton]
28
29         * Fix building with Visual Studio [Chun-wei Fan]
30
31         * Updated translations: Ukrainian, Romanian, Swedish, Polish, Lithuanian, Spanish,
32                                 French, Chinese (China)
33
34 Changes in libsoup from 2.69.90 to 2.70.0:
35
36         * Deprecate SoupSession:proxy-uri [Patrick Griffis]
37
38         * Update translations: Persian, Finnish, Ukrainian
39
40 Changes in libsoup from 2.68.3 to 2.69.90:
41
42         * Add new API to expose support for same-site cookies [Patrick Griffis]
43
44         * Fix TRACE method not being considered safe and idempotent internally [Patrick
45           Griffis]
46
47         * WebSockets: ensure a new connection is created for WebSocket requests [Carlos
48           Garcia Campos]
49
50         * WebSockets: do not start the input source when IO is closing [Carlos Garcia
51           Campos]
52
53         * Deprecate soup_date_to_timeval() [Claudio Saavedra]
54
55         * build: Update glib requirement to 2.58 [Xavier Claessens]
56
57         * Updated translations: Malay [Umarzuki Mochlis]
58
59 Changes in libsoup from 2.68.2 to 2.68.3:
60
61         * Fixes to testing infrastructure [Simon McVittie]
62
63         * Enable GNOME support in mingw [Fabiano Fidêncio]
64
65         * Allow introspection in cross builds [Ross Burton]
66
67         * Updated translations: Chinese (Taiwan)
68
69 Changes in libsoup from 2.68.1 to 2.68.2:
70
71         * Documentation fixes [Sonny Piers]
72
73         * Windows compatibility test fixes [Ignacio Casal Quinteiro]
74
75         * WebSockets: client_max_window_bits in server must have a value [Carlos Garcia Campos]
76
77         * build: improve diagnostics when detecting Apache [Simon McVittie]
78
79         * NTLM: Make v2 authentication more robust [Claudio Saavedra]
80
81         * Updated translations: British English, Chinese (Taiwan), Danish, Dutch
82
83 Changes in libsoup from 2.68.0 to 2.68.1:
84
85         * Several memory leaks fixed in tests, examples, and parsing code [Claudio Saavedra]
86
87         * SoupServer: Fixes to Windows path handling [Ignacio Casal Quinteiro]
88
89 Changes in libsoup from 2.67.93 to 2.68.0:
90
91         * Updated translations: Brazilian Portuguese, Croatian,
92           Friulian, Italian, Turkish
93
94 Changes in libsoup from 2.67.92 to 2.67.93:
95
96         * SoupMessage: Handle Transfer-Encoding: identity for
97           compatibility reasons [#148, Thomas Bluemel, Normen Bolling]
98
99         * WebSockets: Only poll IO stream when needed [Carlos Garcia
100           Campos]
101
102         * WebSockets: Properly set cookies received during handshake
103           [Carlos Garcia Campos]
104
105         * WebSockets: Plug a couple of memory leaks and fix a few
106           read-after-free memory errors [Claudio Saavedra]
107
108         * WebSockets: document how web socket extensions should treat
109           buffers in case of error [Claudio Saavedrə]
110
111         * SoupSession: Don't reset user GCancellable internally [Tom
112           Bailey]
113
114         * Tests: Make tests installable [Simon McVittie]
115
116         * Remove deprecate GTimeVal internal usage [Claudio Saavedra]
117
118         * CI: increase coverage by enabling all features during
119           testing [Claudio Saavedra]
120
121         * Updated translations: Korean, German, Galician, Hungarian,
122           Slovenian, Latvian, Finnish, Serbian, Catalan, Polish
123
124 Changes in libsoup from 2.67.91 to 2.67.92:
125
126         * Silence GTimeVal deprecation warnings. [Michael Catanzaro]
127
128         * API documentation and annotation fixes [Дилян Палаузов, Claudio Saavedra]
129
130         * Plug a couple of NTLM authentication memory leaks [#156, Claudio Saavedra]
131
132         * Fix build in SmartOS/SunOS [#157, Juraj Lutter]
133
134         * Meson: Use feature options [Xavier Claessens]
135
136         * Meson: Do not fallback to system krb5-config for cross-compilation
137           [Xavier Claessens]
138
139         * NTLM: Fix build with NTLM enabled [Claudio Saavedra]
140
141         * Updated translations: Basque, Czech, Indonesian, Lithuanian, Swedish
142
143 Changes in libsoup from 2.67.90 to 2.67.91:
144
145         * HSTS: New API to retrieve information about existing HSTS policies
146           [Claudio Saavedra]
147
148         * Updated translations: French, Romanian, Spanish
149
150 Changes in libsoup from 2.67.3 to 2.67.90a:
151
152         * WebSockets: add support for WebSocket extensions via new
153           SoupWebsocketExtensionManager and SoupWebsocketExtension API
154           [Carlos Garcia Campos]
155
156         * WebSockets: add support for the permessage-deflate extension, enabled
157           by default in SoupServer and in the client side only if SoupWebsocketExtensionManager
158           is added to a session [Carlos Garcia Campos]
159
160         * WebSockets: Allow sending close frames with no body [Carlos Garcia Campos]
161
162         * WebSockets: ignore messages after close has been sent and received [Carlos Garcia Campos]
163
164         * Meson: tls-check improved [Xavier Claessens]
165
166         * Meson: improve Apache checks [Claudio Saavedra]
167
168 Changes in libsoup from 2.67.2 to 2.67.3:
169
170         * WebSockets: allow sending empty binary data [Carlos Garcia Campos]
171
172         * WebSockets: fail and load the connection on invalid payload length  [Carlos Garcia Campos]
173
174         * WebSockets: allow NULL characters in text messages data [Carlos Garcia Campos]
175
176         * WebSockets: Close connection on wrongly masked/unmasked frame as per RFC [Carlos Garcia Campos]
177
178         * WebSockets: other code fixes [Carlos Garcia Campos]
179
180         * NTLM: Fix NTLMv2 authentication [Thibaut Robert]
181
182         * SoupMessage: fix several deprecation warnings related to private data [Claudio Saavedra]
183
184 Changes in libsoup from 2.67.1 to 2.67.2:
185
186         * gobject-introspection: Fix annotation for soup_auth_new()
187           [Rico Tzschichholz]
188
189         * brotli: Do not advertise the decoder as it's failing with
190           some websites [Patrick Griffis]
191
192         * Meson: Fix xml2 and sqlite fallbacks [Xavier Claessens]
193
194         * HSTS: Add SoupHSTSEnforcer:hsts-enforced signal [Claudio
195           Saavedra]
196
197         * HSTS: Fixes to the types used to store policies in the
198           SQLite storage [Claudio Saavedra]
199
200         * HSTS: Accept Strict-Transport-Security regardless of casing
201           [Claudio Saavedra]
202
203         * WebSockets: Ensure messages finishes when handshake fails
204           [Carlos Garcia Campos]
205
206         * WebSockets: Fix critical warnings and test failures [Carlos
207           Garcia Campos]
208
209 Changes in libsoup from 2.66.2 to 2.67.1:
210
211         * Add a brotli decoder. This adds a new dependency on libbrotli
212           [Patrick Griffis]
213
214         * Add strict secure cookies support [Patrick Griffis]
215
216         * Add HSTS enforcer SoupSession feature (with both memory
217           and sqlite backends) [Adrien Plazas, Claudio Saavedra]
218
219         * meson gtk-doc documentation fixes [Claudio Saavedra]
220
221         * Bump the CI test image to Fedora 30 and add libbrotli
222           dependency [Claudio Saavedra]
223
224 Changes in libsoup from 2.66.1 to 2.66.2:
225
226         * Make gettext optional (might not be available in Windows)
227           [Seungha Yang]
228
229         * MSVC: set encoding to UTF-8 to avoid errors [Seungha Yang]
230
231         * MinGW tests build fix [Tomas Popela]
232
233         * Check for TLS support only when external glib dependency is available
234           [Seungha Yang]
235
236 Changes in libsoup from 2.66.0 to 2.66.1:
237
238         * Fix dylib versioning in MacOS [Tom Schoonjans]
239
240         * Visual Studio build fixes [Chun-wei Fan]
241
242         * MinGW build fixes [Руслан Ижбулатов]
243
244         * Meson build system improvements [Claudio Saavedra, Jakub Adam]
245
246         * Fix random CI failures due to parallel apache tests [Claudio Saavedra]
247
248         * Code cleanups [Claudio Saavedra]
249
250 Changes in libsoup from 2.65.92 to 2.66.0:
251
252         * Fix lookup for libxml2 on Visual Studio builds [Chun-wei Fan]
253
254 Changes in libsoup from 2.65.91 to 2.65.92:
255
256         * SoupConnection: Fix check for remote disconnectin idle state
257           [Michael Catanzaro, #134]
258
259         * Code cleanups and warnings fixed [Michael Catanzaro]
260
261         * Remove stale .pc.in files [Claudio Saavedra, #137]
262
263         * Updated translations: Dutch
264
265 Changes in libsoup from 2.65.90 to 2.65.91:
266
267         * Remove RFCs from sources [Tomas Popela, #133]
268
269 Changes in libsoup from 2.65.2 to 2.65.90:
270
271         * Avoid using threads in SoupRequestFile asynchronous API
272           [Ignacio Casal Quinteiro]
273
274 Changes in libsoup from 2.65.1 to 2.65.2:
275
276         * Remove autotools build system and change to meson by default
277           [#12, Tomas Popela]
278
279         * Many fixes to Meson [Claudio Saavedra, Tomas Popela, Xavier
280           Claessens]
281
282         * Improvements to the continuous integration infrastructure
283           [Xavier Claessens]
284
285         * Make sure SoupSession features are not disposed until all
286           pending messages are processed [#130, Claudio Saavedra]
287
288         * Updated translations: Greek, Slovak, French.
289
290 Changes in libsoup from 2.64.0 to 2.65.1:
291
292         * Added MTLMv2 responses support [Michal Hrubý]
293         * Many fixes to the meson build system [Tomas Popela]
294         * Remove Visual Studio project files [Chun-wei Fan]
295         * Enable VAPI by default [#119, Jeremy Bicha]
296         * New strict header field parameter parsing API [Claudio Saavedra]
297         * Code cleanups [Claudio Saavedra]
298         * Updated translations: Belarusian, Serbian
299
300 Changes in libsoup from 2.63.92 to 2.64.0:
301
302         * Many fixes to the meson build system [#7, #8, #9, #11, Tomas Popela]
303         * Updated translations: Brazilian Portuguese, Galician,
304           Hungarian, Latvian, Danish.
305
306 Changes in libsoup from 2.63.91 to 2.63.92:
307
308         * Make sure that XMLRPC tests build in Debian too [Claudio Saavedra]
309         * Distribute missing meson files [Claudio Saavedra]
310         * Some fixes to the meson build files [Claudio Saavedra]
311         * Updated Korean and Swedish translations
312
313 Changes in libsoup from 2.63.90 to 2.63.91:
314
315         * Simplify soup_hosts_matches_host() [Claudio Saavedra]
316         * Add new tests for trailing dots in domain names [Claudio Saavedra]
317         * Updated Turkish translation
318
319 Changes in libsoup from 2.63.2 to 2.63.90:
320
321         * Set default cookie path for NULL origins [#1, Adrian Perez de Castro]
322         * Fixes to GObject-introspection [bgo#794787, Corentin Noël]
323         * Use atomic-refcounting in classes that are not using GObject-refcounting
324           [bgo#785110, Edward Hervey]
325         * Many Coverity-found code fixes [bgo#781771, Milan Crha]
326         * Bail out on cookie-jar calls with empty hostnames [#3, Michael Catanzaro]
327         * Fixes to the simple-httpd example [#2, Mooffie]
328         * Updated translations: Chinese (Taiwan), Catalan
329
330         Note: from now onwards bgo# references bugs in GNOME Bugzilla
331         and # issues in GNOME gitlab.
332
333 Changes in libsoup from 2.63.1 to 2.63.2:
334
335         * Many fixes to the meson build system support [#795324,
336           #782410, Tomas Popela, Jan Alexander Steffens]
337         * Fixes to xmlrpc-server test with PHP >= 7.2 and related
338           [#795111, #782410 Jan Alexander Steffens]
339         * Fix critical warning in SoupSocket [Carlos Garcia Campos]
340         * Updated translations: Romanian, Friulian, Slovenian,
341           Czech, Spanish, Indonesian, Chinese (China).
342
343 Changes in libsoup from 2.62.0 to 2.63.1:
344
345         * Fix digest authentication with encoded URIs [#794208,
346           Claudio Saavedra]
347         * Avoid unaligned memory accesses in WebSocket implementation
348           [#794421, Rolf Eike Beer]
349         * Use base domain to decide if cookies are third-party [#792130,
350           Michael Catanzaro]
351         * Fix crash under soup_socket_new() [#762138, Milan Crha]
352         * Use libpsl for the SoupTLD API instead of shipping a copy of
353           the public-suffix list [#769650, Claudio Saavedra]
354         * Introspection documentation fixes [#795135, Claudio Saavedra]
355         * Minor cleanups and fixes [Tomas Popela]
356         * Initial meson build system support [#784212, Sebastian Dröge,
357           Chun-wei Fan, Tomas Popela]
358         * Various fixes to the meson build system [#795233, Iñigo Martinez]
359         * Updated translations: Chinese, Croatian, Italian, Slovak.
360
361 Changes in libsoup from 2.61.91 to 2.62.0:
362
363         * Updated translations.
364
365 Changes in libsoup from 2.61.90 to 2.61.91:
366
367         * Add limit to header length to avoid DOS attacks
368           [#792173, Michele Dionisio]
369
370         * Update the public-suffix list.
371           [Claudio Saavedra]
372
373         * Revert "cookie-jar: use base domain to decide if cookie is third party"
374           [#792130, Claudio Saavedra]
375
376 Changes in libsoup from 2.61.2 to 2.61.90:
377
378         * Various improvements to the WebSocket implementation
379           [#792113, Italo Guerrieri]
380
381          * cookie-jar: use base domain to decide if cookie is third party
382           [#792130, Michael Catanzaro]
383
384          * Add new API to create a new connection from a SoupSession
385           [#792212, Carlos Garcia Campos]
386
387          * soup-headers: accept any 3 digit number as message status code
388           [#792124, Carlos Garcia Campos]
389
390 Changes in libsoup from 2.61.1 to 2.61.2:
391
392         * session: don't request Keep-Alive for upgraded connections
393           [#788723, Lionel Landwerlin]
394
395 Changes in libsoup from 2.60.2 to 2.61.1:
396
397         * tld-parser: use Python 3 [#785735, Ross Burton]
398
399         * Fix heap-buffer-overflow in soup_ntlm_parse_challenge()
400           [#788037, Milan Crha]
401
402         * Fix possibly uninitialized value in ssl-test
403           [Tomas Popela]
404
405         * SoupCache: fix the timestamp for responses [#791031,
406           Claudio Saavedra]
407
408 Changes in libsoup from 2.60.1 to 2.60.2:
409
410         * Fix documentation typos [#788920, Nirbheek Chauhan]
411
412         * format-zero-length warning triggered in soup-logger.c
413           [#789096, Tomas Popela]
414
415         * Warnings while generating inrospection files
416           [#789099, Tomas Popela]
417
418         * Visual Studio builds: Enhance security of x64 binaries
419           [Chun-wei Fan]
420
421         * Updated translation: Nepali.
422
423 Changes in libsoup from 2.60.0 to 2.60.1:
424
425         * Fallback to another authentication type if the current
426           failed [#788238, Tomas Popela]
427
428         * Fix unbalanced G_GNUC_BEGIN_IGNORE_DEPRECATIONS use in
429           soup-session.c [#787166, Zan Dobersek]
430
431         * SoupCache: fix setting default value for cache dir
432           [#788452, Cosimo Cecchi]
433
434         * Updated translations: Catalan (Valencian).
435
436 Changes in libsoup from 2.59.90.1 to 2.60.0:
437
438         * New/updated translations: Catalan, Danish, Dutch, Nepali
439
440 Changes in libsoup from 2.59.90 to 2.59.90.1:
441
442         * CVE-2017-2885: Fixed a chunked decoding buffer overrun that
443           could be exploited against either clients or servers.
444           [#785774]
445
446 Changes in libsoup from 2.58.0 to 2.59.90:
447
448         * Several SoupAuthNegotiate compatibility fixes [#783780,
449           #783781, Tomas Popela]
450
451         * Include a payload in SoupWebsocketConnection's "ping"
452           messages (to avoid problems with certain buggy server
453           implementations), and emit a signal when receiving a "pong"
454           (to allow apps to notice when the remote peer has
455           disconnected them). [#785660, David Woodhouse]
456
457         * Fix the interpretation of wss:// URIs, which previously
458           mostly didn't work. [#784766, Nirbheek Chauhan].
459
460         * Fixed SoupContentSniffer behavior on XML files with no
461           Content-Type
462           [https://bugs.webkit.org/show_bug.cgi?id=173923]
463
464         * Fixed a bug with cancelling async requests [#773257, Carlos
465           Garcia Campos]
466
467         * Reverted the (undocumented) change in 2.58.0 to call
468           soup_session_abort() after changing
469           SoupSession:proxy-resolver; while this made its behavior
470           more consistent with :proxy-uri, it ended up breaking
471           things. [#781590]
472
473         * Allow HTTP responses that have no trailing CRLF after the
474           response headers (and no body) [#780352, Carlos Garcia
475           Campos]
476
477         * Fixed an out-of-bounds read in SoupURI parsing [#785042]
478
479         * Fixed a spurious (debug-level) error message in
480           SoupWebsocketConnection [#784935, Ignacio Casal Quinteiro]
481
482         * Fixed introspection annotations on
483           soup_message_headers_get_content_range() [Philip Withnall]
484
485         * Fixed a flake in tests/header-parsing [#777258]
486
487         * Update tests/test-cert.pem to use stronger algorithms to
488           avoid problems with newer gnutls. [#784949, Jan Alexander
489           Steffens]
490
491         * Fixed examples/get to not accidentally break https
492           certificate validation [#784259, Sebatian Dröge]
493
494         * Misc updates to apache/php stuff in unit tests:
495                 * Dropped support for Apache 2.2
496                 * Deal with mod_unixd being compiled-in [#776478]
497                 * Switched PHP support from PHP 5 to PHP 7
498
499         * Updated translations:
500           Esperanto, Turkish
501
502 Changes in libsoup from 2.2.57.1 to 2.58.0:
503
504         * Fix authentication issues when the SOUP_MESSAGE_DO_NOT_USE_AUTH_CACHE
505           flag is used. [#778497, #777936, Carlos Garcia Campos]
506
507         * MSVC build improvements (Chun-wei Fan)
508
509         * Updated translations:
510           Basque, Belarusian, Brazilian Portuguese, Chinese (Taiwan), Danish,
511           French, Galician, Greek, Indonesian, Italian, Korean, Latvian,
512           Lithuanian, Norwegian bokmål, Russian, Serbian, Slovak, Slovenian,
513           Spanish, zh_CN
514
515 Changes in libsoup from 2.56.0 to 2.57.1:
516
517         * Added SoupWebsocketConnection:keepalive-interval, to make a
518           connection send regular pings. [#773253, Ignacio Casal
519           Quinteiro]
520
521         * Added soup_auth_manager_clear_cached_credentials() and
522           SOUP_MESSAGE_DO_NOT_USE_AUTH_CACHE, to allow greater control
523           over the use of cached HTTP auth credentials. [#774031,
524           #774033, Carlos Garcia Campos]
525
526         * Fixed the use of SoupSession:proxy-uri values containing
527           passwords. [#772932, Jonathan Lebon]
528
529         * Various minor WebSocket fixes [Ignacio Casal Quinteiro]:
530                 * Avoid sending data after we start closing the
531                   connection [#774957]
532                 * Do not log a critical if the peer sends an invalid
533                   close status code
534                 * Log a debug message when a "pong" is received
535
536         * Fixed introspection of
537           soup_message_headers_get_content_range() [Jasper St. Pierre]
538
539         * Replaced Vala [Deprecated] annotations with [Version] to
540           avoid build warnings [#773177, Evan Nemerson]
541
542         * MSVC build improvements (Chun-wei Fan)
543
544         * Updated error/message strings to use Unicode punctuation.
545           [#772217, Piotr Drąg]
546
547         * Updated translations:
548           Czech, Friulian, German, Hebrew, Hungarian,
549           Norwegian bokmål, Polish, Swedish
550
551 Changes in libsoup from 2.55.90 to 2.56.0:
552
553         * Added SoupWebsocketConnection:max-incoming-payload-size
554           property, to override the default maximum incoming payload
555           size. [#770022, Ignacio Casal Quinteiro]
556
557         * Added soup-version.h symbols (in particular
558           soup_check_version()) to introspection. [#771439, Rico
559           Tzschichholz]
560
561         * Updated the copy of the public suffix list used by SoupTLD
562           [#769650, Michael Catanzaro]
563
564         * Updated translations:
565           British English, Greek, Polish
566
567 Changes in libsoup from 2.54.1 to 2.55.90:
568
569         * Removed support for SSLv3 fallback; sites that reject TLS
570           1.x handshakes will now just fail with an error. (Firefox
571           and Chrome have both already switched to this behavior.)
572           [#765940, Dan Winship]
573
574         * Fixed the parsing of <double>s in the new GVariant-based
575           XMLRPC code. [#767707, Dan Winship]
576
577         * Fixed soup_server_set_ssl_cert_file(), which was added in
578           2.48 but didn't actually work... [patch on libsoup-list from
579           Sean DuBois]
580
581         * Added GObject properties to SoupLogger to make it
582           bindings-friendly. [#768053, Jonh Wendell]
583
584         * Fixed build error on FreeBSD [#765376, Ting-Wei Lan]
585
586         * Fixed build with certain new versions of glibc that define
587           "EOF" as a macro. [#768731, Philip Withnall]
588
589         * Updated m4/ax_code_coverage.m4 with support for lcov 1.12
590           [Philip Withnall]
591
592         * Updated po files for future gettext versions [Piotr Drąg]
593
594         * New/updated translations:
595           Occitan, Scottish Gaelic
596
597 Changes in libsoup from 2.54.0.1 to 2.54.1:
598
599         * *** IMPORTANT ***
600           Fixed an ABI break in 2.54.0 caused by adding a member to
601           SoupAuthClass; 2.54.1 is ABI-compatible with 2.53.92 and
602           earlier, but NOT with the anomalous 2.54.0. If you built
603           packages against 2.54.0, you will need to rebuild them
604           against 2.54.1.
605
606         * Fixed NTLM authentication when ntlm_auth from the latest
607           version of Samba is present. [#765106, Milan Crha]
608
609         * Updates to MSVC build, including for GSS-API support
610           [Chun-wei Fan]
611
612         * Updated translations:
613           Friulian
614
615 Changes in libsoup from 2.53.92 to 2.54.0.1:
616
617         * (2.54.0.1 fixes a build problem with the 2.54.0 tarball,
618           which would not build if you configured with
619           "--without-gnome". There are no other changes between 2.54.0
620           and 2.54.0.1.)
621
622         * Fixed examples/simple-httpd on Windows [#758759, Chun-wei
623           Fan]
624
625 Changes in libsoup from 2.53.90 to 2.53.92:
626
627         * libsoup now supports HTTP "Negotiate"/GSSAPI/Kerberos
628           authentication. It must be enabled specifically by the
629           application and is also subject to certain other
630           restrictions, some of which are not yet controllable through
631           the API. [#587145, Guido Guenther, Tomas Popela, David
632           Woodhouse, Dan Winship]
633
634         * Added support for building under MSVC [#758759, Chun-wei
635           Fan]
636
637         * Fixed a problem with the 2.53.90 tarball that caused
638           translations to be mis-installed.
639
640         * Updated translations:
641           Occitan
642
643 Changes in libsoup from 2.53.2 to 2.53.90:
644
645         * NUL bytes in headers are now ignored [#760832, Dan Winship]
646
647         * Fixed transfer annotation of soup_form_decode* functions
648           [#743966, Lionel Landwerlin]
649
650         * Updated translations:
651           Bulgarian, Latvian, Norwegian bokmål
652
653 Changes in libsoup from 2.53.1 to 2.53.2:
654
655         * Fixed up symbol visibility handling for mingw by copying
656           GLib's system [Ignacio Casal Quinteiro, #757146]
657
658         * Finally marked the old SoupSessionAsync and SoupSessionSync
659           methods as deprecated [Ignacio Casal Quinteiro, Dan Winship,
660           #757146]
661
662         * Added libsoup-2.4.deps for valac [Rico Tzschichholz]
663
664         * Make it possible to build from git without gtk-doc being
665           installed [Ignacio Casal Quinteiro]
666
667         * Updated translations:
668           Norwegian bokmål, Occitan
669
670 Changes in libsoup from 2.52.1 to 2.53.1:
671
672         * Really fixed build under MinGW for sure this time [Ignacio
673           Casal Quinteiro]
674
675         * Fixed SoupServer Web Sockets code so that the
676           SoupClientContext passed to a SoupServerWebsocketCallback is
677           fully usable (rather than crashing when you try to do most
678           things).
679
680 Changes in libsoup from 2.52.0 to 2.52.1:
681
682         * Fixed build under MinGW [Chun-wei Fan]
683
684         * Fixed build with --disable-introspection [#755389, Quentin
685           Glidic]
686
687         * Fixed HTTP authentication protection space handling for
688           files directly under the root directory. [#755617, Carlos
689           Garcia Campos]
690
691         * Fixed a warning when loading data from SoupCache while using
692           an authenticated proxy. [#756076, Carlos Garcia Campos]
693
694         * Updated translations:
695           German, Vietnamese
696
697 Changes in libsoup from 2.51.92 to 2.52.0:
698
699         * Removed duplicate test paths from tests/date so it will pass
700           with glib 2.46.0
701
702 Changes in libsoup from 2.51.90 to 2.51.92:
703
704         * Added g_autoptr() support for all libsoup types. [#754721,
705           Kalev Lember]
706
707         * Added a missing (allow-none) annotation to
708           soup_uri_normalize() [#754776, Jens Georg]
709
710         * Updated translations:
711           Polish
712
713 Changes in libsoup from 2.51.3 to 2.51.90:
714
715         * Added a new GVariant-based XMLRPC API, and deprecated the
716           old GValue-based API (along with the associated
717           GValue-manipulating utilities). [#746495, Xavier Claessens]
718
719         * Multiple build fixes for Visual Studio [#752952, Chun-wei Fan]
720
721         * Added VAPI generation [#750679, Daniel Espinosa]
722
723         * Fixed the mode bits on soup-cookie.c, which was previously
724           marked executable for some reason. [rh #1247285]
725
726         * Updated translations:
727           Norwegian bokmål, Portuguese, Thai, Turkish
728
729 Changes in libsoup from 2.50.0 to 2.51.3:
730
731         * Fixed "make check" in non-English locales [rh #1224989,
732           #749397]
733
734         * Fixed some compiler warnings [#748514, Philip Withnall]
735
736         * New/Updated translations:
737           Aragonese, Catalan, Occitan, Russian
738
739 Changes in libsoup from 2.49.92 to 2.50:
740
741         * Updated translations:
742           Basque, Chinese (Taiwan), Danish, Indonesian,
743           Norwegian bokmål
744
745 Changes in libsoup from 2.49.91.1 to 2.49.92:
746
747         * Fixed an NTLM problem that caused spurious "Authentication
748           Failed" errors in evolution-ews. [#735197]
749
750         * New/updated translations:
751           Bosnian, Czech, Greek, Hebrew, Italian, Korean, Lithuanian,
752           Polish, Serbian, Slovak, Slovenian, Spanish, Swedish
753
754 Changes in libsoup from 2.49.1 to 2.49.91.1:
755
756         * WebSockets! Libsoup now has support for WebSockets in both
757           SoupSession and SoupServer. [#627738, Dan Winship and Lionel
758           Landwerlin, based on code from the Cockpit project]
759
760               * The WebSocket code in libsoup 2.49.91 did not build on
761                 32-bit architectures. 2.49.91.1 was released to fix
762                 this.
763
764         * Added support for NTLMv2 Session Security to SoupAuthNTLM.
765           (This is transparent to the app/user; if the server supports
766           it, it will be used.) [#739192, Adam Seering]
767
768         * Added soup_server_accept_iostream() to allow feeding a
769           non-GSocketConnection GIOStream to SoupServer (eg, when
770           accepting HTTP requests on some other sort of connection).
771           [#744186, Marc-André Lureau]
772
773         * Added soup_session_steal_connection() and
774           soup_client_context_steal_connection(), to allow you to
775           steal a GIOStream from a SoupSession or SoupServer and then
776           use it for non-HTTP purposes. [#721343, Dan Winship]
777
778         * Added soup_server_add_early_handler(), for adding SoupServer
779           handlers to run at :got-headers time rather than :got-body
780           (eg, to set up a streaming read of the request body).
781           [#625645, Dan Winship]
782
783         * Added a new SOUP_MESSAGE_IGNORE_CONNECTION_LIMITS flag,
784           which can be used to bypass SoupSession:max-conns and
785           SoupSession:max-conns-per-host on a per-message basis.
786           [#744720, Carlos Garcia Campos]
787
788         * Multiple SoupCache fixes from Carlos Garcia Campos:
789
790               * Leaked resources are now cleaned up when opening the
791                 cache. [#667682]
792
793               * The "Age" header is no longer added to cached
794                 responses. [#741108]
795
796               * Fixed the interpretation of the "must-revalidate"
797                 directive to not be stricter than required. [#744468]
798
799               * Messages retrieved from cache now behave slightly more
800                 like non-cache messages in terms of SoupSession
801                 signals and timing. [#744788] Additionally, there is a
802                 new SoupMessage::starting signal, which is like
803                 SoupSession::request-started, but emitted for cached
804                 resources as well. [#731153]
805
806         * Fixed soup_session_cancel_message() to work reliably on
807           paused messages. [#745094, Sven Neumann]
808
809         * Added code-coverage support to the build. [#744744,
810           Marc-André Lureau]
811
812         * Fixed the library symbol check in "make check" to work when
813           building with linker options that result in slightly
814           different organization. [#741348, Iain Lane]
815
816         * Added a hack to SoupSessionFeature so that people will stop
817           re-reporting an old Eclipse bug against libsoup. [#710242]
818
819         * Miscellaneous bug and leak fixes in the test programs, leak
820           fixes in libsoup, and documentation updates.
821
822         * Updated translations:
823           Brazilian Portuguese, French, Galician, Hungarian, Slovak,
824           Slovenian, Spanish, Turkish
825
826 Changes in libsoup from 2.48.0 to 2.49.1:
827
828         * Fixed a bug in the SoupMessage:event signal that broke
829           evolution's ability to connect to https hosts with "bad"
830           certificates. [#739951, Dan Winship]
831
832         * Fixed a case where the async codepaths could potentially
833           block on a synchronous write [#727138, Dan Winship]
834
835         * Fixed the symbol soup_server_set_ssl_cert_file() to get
836           exported, and added soup_server_get_uris() to the
837           documentation. [Tristan Van Berkom]
838
839         * Improved a bunch of introspection annotations [#729987, Evan
840           Nemerson]
841
842         * Clarified some documentation. [Tristan Van Berkom, Dan
843           Winship]
844
845         * Fixed Windows build, twice [#738003, Kouhei Sutou, and
846           #738551, Kalev Lember].
847
848         * Updated translations:
849           Bengali (Indian), Chinese (Traditional), Italian, Latvian,
850           Serbian, Telugu, Ukranian
851
852 Changes in libsoup from 2.47.92 to 2.48.0:
853
854         * Updated translations:
855           Bengali (India), Danish, German, Hindi, Kannada, Punjabi
856
857 Changes in libsoup from 2.47.4 to 2.47.92:
858
859         * Fixed a crash in SoupCache when receiving certain invalid
860           Cache-Control headers. [#733587, Raveendra Karu]
861
862         * Updated translations:
863           Assamese, Basque, Catalan (Valencian), Catalan, Chinese
864           (Traditional), French, Gujarati, Hungarian, Indonesian,
865           Korean, Marathi, Norwegian bokmål, Oriya, Polish, Swedish,
866           Tamil
867
868 Changes in libsoup from 2.47.3 to 2.47.4:
869
870         * Fixed two crashes that could occur in multithreaded use
871           (in particular, with the latest git gvfs). [#732783,
872           #732925, Ross Lagerwall]
873
874         * Fixed the handling of data: URIs with base64-encoded data
875           but no explicit MIME type. [#732112, Raveendra Karu]. Added
876           tests for this and other data: URI cases. [Dan]
877
878         * Fixed a bug in SoupAuthNTLM that affected 28-character-long
879           passwords. [#732087, David Woodhouse]
880
881         * Fixed tests to pass with GLib git master (which warns if you
882           use deprecated GObject properties, and which also caught a
883           mutex-handling bug in test-utils.c)
884
885         * Updated translations:
886           Galician, Greek, Lithuanian, Russian
887
888 Changes in libsoup from 2.46.0 to 2.47.3:
889
890         * Added new-and-improved SoupServer API, and deprecated much
891           of the existing API:
892
893               * Servers can now listen on multiple ports, including
894                 listening on both IPv4 and IPv6 (which is the default
895                 behavior when using the new API), or serving both http
896                 and https from a single SoupServer.
897
898               * You can create a SoupServer from an existing listening
899                 socket (either a file descriptor or a GSocket).
900
901               * When using the new APIs, SoupServer now obeys the
902                 thread-default GMainContext rather than using the
903                 :async-context property.
904
905               * soup_server_set_ssl_cert_file() allows setting the
906                 certificate and key files with feedback if it fails
907                 (unlike the old construct-time "ssl-cert-file" and
908                 "ssl-key-file" properties, which fail with a
909                 g_warning() and a NULL return from g_object_new() if
910                 they fail).
911
912               * SoupClientContext has new methods that return GSocket
913                 and GSocketAddress, rather than SoupSocket and
914                 SoupAddress.
915
916         * SoupSession now has a :tls-interaction property, which can
917           be used to add a GTlsInteraction to a session, allowing it
918           to provide a client-side certificate if the server requests
919           one. [#334021, Colin Walters]
920
921         * soup_session_abort() no longer tries to close active
922           connections, which was causing crashes in evolution
923           [rh#1093314]
924
925         * Fixed a GMainContext-handling bug that could cause crashes
926           in gstreamer's souphttpsrc. [#729737, Dmitry Shatrov]
927
928         * Fixed a memory leak when requesting to delete a cookie that
929           didn't exist [Joseph Artsimovich]
930
931         * Updated translations:
932           Brazilian Portuguese, Czech, Hebrew, Spanish
933
934 Changes in libsoup from 2.45.92 to 2.46.0:
935
936         * (No changes, just a version bump)
937
938 Changes in libsoup from 2.45.90 to 2.45.92:
939
940         * Fixed problems with using an http proxy on port 80. [patch
941           from Slava Monich on libsoup-list]
942
943         * Plugged a small per-connection leak. [patch from Slava
944           Monich on libsoup-list]
945
946         * Belatedly bumped up the glib requirement to 2.38, which is
947           required for the TAP driver.
948
949         * Fixed up some leftover issues from the test porting to
950           gtestutils:
951
952               test-utils: change http_debug command-line flag
953               xmlrpc-test: use g_test_skip()
954               redirect-test: remove a flaky test
955               auth-test: remove some erroneous SKIP_IF_NO_APACHEs
956               tests: split up some test programs into more tests
957               tests: remove debug_printf()s that are redundant with test names
958               tests: use g_test_bug() to annotate test cases
959
960 Changes in libsoup from 2.45.3 to 2.45.90:
961
962         * Fixed a problem where libsoup would use the "http" proxy
963           settings for "https" requests [#724316, Matt Barnes]
964
965         * Updated SoupContentSniffer to match the current version of
966           the MIME sniffing specification [#648849 / #715126, Gustavo
967           Noronha Silva]
968
969         * Updated the soup-tld APIs to accept ASCII-encoded hostnames
970           in addition to UTF-8 ones.
971
972         * Ported the test programs to the gtestutils framework, added
973           support for installed tests, and made the tests use the TAP
974           driver.
975
976           Some tests still need to be split up into more pieces, and
977           the debug output is now somewhat less useful in some cases.
978
979         * Fixed the test programs to not depend on local proxy
980           settings.
981
982         * Added some more checks to header-tests [#722341, Lionel
983           Landwerlin]
984
985         * Fixed the "simple-proxy" example program, which had been
986           broken for a while.
987
988         * Updated translations:
989           Korean
990
991 Changes in libsoup from 2.44.1 to 2.45.3:
992
993         * The documentation has finally been updated to reflect the
994           new APIs added in 2.42.
995
996         * Added GBytes-valued :request-body-data and
997           :response-body-data properties to SoupMessage, which should
998           help some bindings.
999
1000         * We now set TCP_NODELAY on sockets, improving throughput a
1001           bit. In particular, this avoids an unnecessary extra round
1002           trip in the TLS handshake.
1003
1004         * The SoupSession APIs that return GErrors now return the
1005           actual underlying gio errors in the event of connection
1006           failures and the like.
1007
1008         * Updated the copy of the Public Suffix list used by soup-tld.
1009
1010         * Fixed a hang with internet radio streams in Rhythmbox (and
1011           some other places). [#710494, Dan]
1012
1013         * Fixed a connection leak when cancelling the close of
1014           a message GInputStream. [#711260, Dan]
1015
1016         * Updated the soup_server_pause_message() /
1017           soup_server_unpause_message() documentation to clarify when
1018           you can and can't call them. [#710602, Philip Withnall]
1019
1020         * soup_message_set_request() and soup_message_set_response()
1021           now g_warn_if_fail() if you pass an invalid Content-Type.
1022           (And they also have better introspection annotations.)
1023           [#686766, Dan]
1024
1025         * Plugged a few memory leaks [#711085, Christophe Fergeau]
1026
1027         * Fixed connection-test to pass with current glib [#711361,
1028           Colin Walters]
1029
1030         * session-test now passes when run against the dummy TLS
1031           backend (ie, if you don't have glib-networking installed),
1032           as long as you have the latest glib.
1033
1034         * Fixed build with -Werror=format-nonliteral [#720082, Ryan
1035           Lortie]
1036
1037         * Fix build with --without-ntlm [#710267, Dan]
1038
1039         * Fixed a few warnings [Dan, Fabiano Fidêncio]
1040
1041         * Tests are now more verbose by default under "make check",
1042           since current automake just redirects all the output to a
1043           log file anyway.
1044
1045         * Updated translations:
1046           Chinese
1047
1048 Changes in libsoup from 2.44.0 to 2.44.1:
1049
1050         * If you called g_input_stream_close() on SoupMessage or
1051           SoupRequests's GInputStream before you finished reading it,
1052           it would block until the rest of the response had been read
1053           (which in the case of, eg, an infinite audio stream, meant
1054           that it would block forever). This was an unintended change
1055           from 2.42 and is now fixed. [#695652, Dan]
1056
1057         * soup_session_queue_message() on a plain SoupSession (not
1058           SoupSessionAsync) was operating synchronously rather than
1059           asynchronously as it should have. [#707711, Dan]
1060
1061         * soup-form methods now use the HTML5 x-www-form-urlencoded
1062           rules rather than the HTML4 ones. (In particular, they leave
1063           "-", "_", and "." unencoded.) [#708621, Alban Browaeys]
1064
1065         * The test programs now explicitly request the "memory"
1066           GSettings backend, meaning they won't print a warning if
1067           they get it accidentally, and they won't accidentally use
1068           the dconf proxy settings if the dconf backend is available.
1069           [Dan]
1070
1071         * Fix SoupSession so that if you override the proxy
1072           configuration at construct time, it doesn't try to resolve
1073           the default GProxyResolver. (This is important in particular
1074           for programs that expect to run outside a user session,
1075           which would otherwise spew errors from the dconf GSettings
1076           backend about not being able to connect to dconf.) Likewise
1077           with TLS settings and the TLS backend. [#708696, Dan]
1078
1079         * Fix the SoupServer:tls-certificate property;
1080           soup_server_is_https() had not been updated to recognize it,
1081           and so would return FALSE, which in turn meant that the
1082           server would return 400 Bad Request in response to https
1083           requests. [#709647, Fabiano Fidêncio]
1084
1085         * Fixed a sporadic failure in tests/connection-test. [Dan]
1086
1087         * Updated translations:
1088           Tajik
1089
1090 Changes in libsoup from 2.43.92 to 2.44.0:
1091
1092         * New/updated translations:
1093           Dutch, Indonesian
1094
1095 Changes in libsoup from 2.43.90 to 2.43.92:
1096
1097         * Fixed a bug in the connection-pool code, which would in
1098           certain cases accidentally keep using a connection after a
1099           message was cancelled while in progress, causing the next
1100           request on that connection to get the response to the
1101           previous request, etc. [#708006, David Woodhouse]
1102
1103         * Fixed some problems when falling back from samba
1104           single-sign-on-based NTLM to ordinary ask-for-a-password
1105           NTLM. [#703186, David Woodhouse]
1106
1107         * When sending a conditional GET request, SoupCache now
1108           preserves the original message's list of disabled features,
1109           ensure that it gets back the same kind of response the
1110           original message would have. [#706338, Andre Moreira
1111           Magalhaes]
1112
1113         * Fixed a warning when the remote host closes the connection
1114           while we are writing something using chunked encoding.
1115           [#703297, Dan]
1116
1117         * Added SoupServer:http-aliases and :https-aliases properties,
1118           to specify URI schemes that should be treated as though they
1119           were http (just like SoupSession:http-aliases and
1120           :https-aliases, but on the server side). [#703694, Dan]
1121
1122         * Fixed race conditions in cache-test and timeout-test that
1123           could case spurious failures. [#698305, #660581, Dan]
1124
1125 Changes in libsoup from 2.43.5 to 2.43.90:
1126
1127         * Fixed the handling of unsatisfiable range requests in
1128           SoupServer [pointed out on mailing list, Dan]. Also, added
1129           more documentation clarifying that you don't need to handle
1130           range requests yourself in many cases.
1131
1132         * Fixed the handling of IPv6 address literals with scope IDs.
1133           (Requires the latest glib as well for the complete fix.)
1134           [#669724, Dan]
1135
1136 Changes in libsoup from 2.43.4 to 2.43.5:
1137
1138         * SoupProxyURIResolver is now deprecated in favor of the
1139           SoupSession:proxy-resolver property (which takes a
1140           GProxyResolver). [#680273, Dan]
1141
1142         * The SoupKnownStatusCode enum is now called SoupStatus. The
1143           old name continues to exist as an alias, but is deprecated.
1144           (This change has no visible effect in C; it is primarily to
1145           help language bindings, so that, eg, SOUP_STATUS_NOT_FOUND
1146           maps to "Soup.Status.NOT_FOUND" rather than
1147           "Soup.KnownStatusCode.NOT_FOUND".) [#684409, Dan]
1148
1149         * Fixed the parsing of URI schemes in SoupURI (in particular,
1150           to allow scheme names with digits in them). [#703776, Dan]
1151
1152         * Fixed SoupLogger to print a message's response headers even
1153           if the message gets cancelled before the complete response
1154           body is received. [#703200, Andres Gomez]
1155
1156         * Fixed a build problem in non-UTF-8 locales [#702534, Ross
1157           Lagerwall]
1158
1159         * SoupSession now warns if you use
1160           soup_session_pause_message() or
1161           soup_session_unpause_message() on a synchronous message
1162           (which has never worked, though that fact wasn't
1163           documented). [#703461, Philip Withnall]
1164
1165 Changes in libsoup from 2.43.2 to 2.43.4:
1166
1167         * Fixed a bug that could cause synchronous sessions to get
1168           stuck in a state where no new messages would ever get
1169           processed. [#703463, Philip Withnall]
1170
1171         * Fixed another memory leak in SoupSocket (found while
1172           added a test case for #700472)
1173
1174         * Switched to using g_cclosure_marshal_generic() rather than
1175           using glib-genmarshal. [#686042, Olivier Blin]
1176
1177         * Changed SoupServer to call unref() on the query hash table
1178           after calling the handler, rather than destroy(), so that
1179           the handler can keep a copy of the query data if it wants.
1180           [#702793, Bernhard Schuster]
1181
1182         * Fixed a few introspection annotations
1183
1184         * Updated examples/get to use SoupLogger and to allow
1185           redirecting the output to a file [#703231, #703229, Andres
1186           Gomez]
1187
1188 Changes in libsoup from 2.43.1 to 2.43.2:
1189
1190         * Fixed an authentication error when using NTLM when
1191           connecting to an https site over a proxy; the code was
1192           getting confused and thinking that the 200 OK response to
1193           the CONNECT meant that NTLM auth had succeeded. [#698728,
1194           Dan]
1195
1196         * Fixed a memory leak in SoupSocket. [#700472, Richard
1197           Röjfors]
1198
1199         * Fixed a missing include error on some platforms [#700003,
1200           Erik van Pienbroek]
1201
1202         * Fixed warnings when running against the "dummy" TLS backend.
1203           [#700518, Dan]
1204
1205 Changes in libsoup from 2.42.1 to 2.43.1:
1206
1207         * Including <libsoup/soup.h> no longer pulls in the system
1208           networking headers. This may cause some packages to no
1209           longer compile, if they were accidentally depending on this.
1210           Adding "#include <gio/gnetworking.h>" will fix them on both
1211           unix and Windows. (This was done as part of fixing the build
1212           on Windows.) [#692134, Dan]
1213
1214         * Fixed SoupSession:proxy-resolver [#698163, Dan]
1215
1216         * Added soup_message_set_priority(), to mark messages as being
1217           high, low, or normal priority, and update the message queue
1218           to prioritize them accordingly. [#696277, Sergio]
1219
1220         * Fixed several test programs to still work if glib-networking
1221           isn't installed [Dan], and fixed another to still work if
1222           the kernel has no IPv6 support. [#698220, Dan]
1223
1224 Changes in libsoup from 2.42.0 to 2.42.1:
1225
1226         * Fixed SoupProxyResolverDefault, which got broken in 2.42.92.
1227           [#697028, Dan]
1228
1229         * Fixed a gigantic memory leak when using SoupCache. [#696594,
1230           Xan]
1231
1232         * Fixed a build problem on Windows. [#696354, Kalev Lember]
1233
1234         * Fixed ntlm-test to pass whether or not Samba ntlm_auth
1235           support was compiled in. [#697510, Dan]
1236
1237         * New/updated translations:
1238           Basque, Turkish
1239
1240 Changes in libsoup from 2.41.92 to 2.42.0:
1241
1242         * Fixed a compiler warning on 32bit in a test program. [Kalev
1243           Lember]
1244
1245         * New/updated translations:
1246           Hindi, Kannada, Korean, Malayalam, Marathi, Odia, Persian,
1247           Tadjik, Tamil, Telugu
1248
1249 Changes in libsoup from 2.41.91 to 2.41.92:
1250
1251         * Fixed a bug that caused libsoup to retry an incorrect
1252           password repeatedly, forever, in a certain case that
1253           affected Google calendars in evolution in particuar.
1254           [Red Hat bug #916224, Dan]
1255
1256         * Also added code to make such infinite retry loops impossible
1257           in the future. [Dan]
1258
1259         * Fixed SoupRequestData's handling of URIs with "%00" in them.
1260           [#695246, Žan Doberšek]
1261
1262         * Added the SoupSession:proxy-resolver property, to override
1263           the GProxyResolver used by a session. (This means there are
1264           now three different ways of controlling proxy resolution in
1265           SoupSession... this will be cleaned up a bit after 2.42.)
1266           [#680273, Dan]
1267
1268         * Added missing G_BEGIN_DECLS/G_END_DECLS to
1269           soup-message-headers.h, so that its functions can be called
1270           from C++. [Carlos Garcia Campos]
1271
1272         * Updated translations:
1273           Assamese, Belarusian, Brazilian Portuguese, Catalan
1274           (Valencian), Catalan, Danish, Estonian, French, Greek,
1275           Gujarati, Hungarian, Italian, Latvian, Portuguese, Russian,
1276           Slovenian, Thai
1277
1278 Changes in libsoup from 2.41.90 to 2.41.91:
1279
1280         * Fixed a crash that showed up with XMLRPC requests in
1281           WebKitGTK. [#694920, Sergio]
1282
1283         * Fixed SoupCache to update the cached headers when it
1284           receives a 304 Not Modified response, and added a test for
1285           this. [#695121, Sergio]
1286
1287         * libsoup now builds under automake 1.13 (and "make check"
1288           works under the parallel test harness which is the default
1289           in 1.13) [#694135]
1290
1291         * The tests/ directory now contains only actual test programs
1292           that are run by "make check", and the programs that are
1293           intended more as example code are under examples/.
1294
1295         * New/updated translations:
1296           Aragonese, Chinese (traditional), Czech, Galician, Hebrew,
1297           Lithuanian, Norwegian bokmål, Punjabi, Spanish, Uyghur,
1298           Vietnamese
1299
1300 Changes in libsoup from 2.41.5 to 2.41.90:
1301
1302         * Added SoupSession:local-address property, which allows you
1303           to force connections to bind to a particular local address
1304           (eg, to control the interface that is used). [#693215, Jonh
1305           Wendell]
1306
1307         * Fixed SoupCache to properly handle messages that get
1308           cancelled, and added tests for this. [#692310, Sergio]
1309
1310         * Fixed a reference leak in SoupCache that resulted in
1311           epiphany hanging for several seconds on exit and then
1312           eventually printing "Cache flush finished despite X pending
1313           requests". And added more tests. [#682527, Sergio]
1314
1315         * Fixed SoupAuthNTLM so that SoupSession:authenticate gets
1316           emitted with retrying=TRUE if the first attempt fails (ie,
1317           make it work the same way as SoupAuthBasic and
1318           SoupAuthDigest). [#693222, Dan]
1319
1320         * Fixed the SoupSession:add-feature-by-type property to accept
1321           non-SoupSessionFeature features as well (eg, auth types)
1322           [Dan]
1323
1324         * Fixed a build bug that would break all the apache-based
1325           tests if you didn't have PHP installed. [#693311, Dan]
1326
1327         * Updated translations:
1328           Malayalam, Polish, Serbian, Slovak
1329
1330 Changes in libsoup from 2.41.4 to 2.41.5:
1331
1332         * Reverted the change to SoupURI's password handling from
1333           2.41.4, since it turns out to have broken some things.
1334           [#692149, Dan]
1335
1336         * Avoid a g_return_if_fail() when loading
1337           SoupSession:ssl-ca-file fails. [#691930, Guillaume
1338           Desmottes]
1339
1340         * Fixed a bug in SoupBodyInputStream that caused redirects in
1341           WebKitGTK to hang. [#692026, Sergio]
1342
1343         * Updated translations:
1344           Belarusian, Chinese (traditional), German, Italian,
1345           Norwegian bokmål, Serbian, Uyghur
1346
1347 Changes in libsoup from 2.41.3 to 2.41.4:
1348
1349         * Lots of docs fixes, including catching up with some (but not
1350           all!) of the API additions and deprecations, and a new
1351           chapter with hints on porting from
1352           SoupSessionAsync/SoupSessionSync to the new-and-improved
1353           plain SoupSession.
1354
1355         * The plain SoupSession type now supports
1356           soup_session_queue_message() (with SoupSessionAsync
1357           semantics) and soup_session_send_message() (with
1358           SoupSessionSync semantics), and there are now
1359           soup_session_new() and soup_session_new_with_options().
1360
1361         * The mirroring of the SoupMessage API onto SoupRequestHTTP,
1362           added in 2.41.3, has been reverted. However, new APIs
1363           soup_session_send() and soup_session_send_async() have been
1364           added that let you use the GInputStream-based API with
1365           SoupMessages rather than SoupRequest, so if you're doing
1366           HTTP-specific stuff, you can just use that instead.
1367
1368         * soup_message_get_https_status() now returns the certificate
1369           and flags for unsuccessful https connections as well as
1370           successful ones. [#690176]
1371
1372         * Fixed a deadlock when calling soup_session_abort() on a
1373           SoupSessionSync in some cases. [#691399] 
1374
1375         * Internal SoupCache rewrites/improvements [#682112, Sergio]
1376
1377         * Plugged a memory leak in SoupCache [#690382, Sudarsana
1378           Nagineni] and one in SoupAuthDigest [#690142]
1379
1380         * LIBSOUP_DISABLE_DEPRECATED has been renamed to
1381           SOUP_DISABLE_DEPRECATED, but that's just to keep gtk-doc
1382           happy, and you shouldn't use it. You should use
1383           SOUP_VERSION_MIN_REQUIRED instead.
1384
1385         * Fixed the samba-windbind-based NTLM support, which appears
1386           to have been broken before.
1387
1388         * SoupAuthManager is now a public class (so you can remove it
1389           as a feature from a session, or disable it for a particular
1390           message). It also has a new method
1391           soup_auto_manager_use_auth(), which can be used to "preload"
1392           authentication for a host so that libsoup will use
1393           authentication on the very first request.
1394
1395         * SoupURI now treats "http://user@example.com" as having a
1396           password of "" rather than NULL, since a NULL password would
1397           not be valid for any known HTTP auth type.
1398
1399         * build: libsoup now uses autoreconf instead of
1400           gnome-autogen.sh, and no longer uses AM_GLIB_GNU_GETTEXT
1401           [Javier Jardon].
1402
1403         * Updated translations:
1404           Assamese, Bulgarian, Estonian, Friulian, Galician, Hebrew,
1405           Polish, Slovenian, Spanish
1406
1407 Changes in libsoup from 2.41.2 to 2.41.3 (codename: "I Left My
1408 Deprecated APIs in A Coruña"):
1409
1410         * BUILD DEPENDENCY CHANGES: libsoup-gnome no longer depends on
1411           libgnome-keyring, and the sqlite3 dependency has been moved
1412           from libsoup-gnome to libsoup proper. (See below).
1413
1414
1415         * SoupRequest is now stable API. SoupRequester, however, is
1416           deprecated. Instead you can now call soup_session_request()
1417           or soup_session_request_uri() to create a SoupRequest.
1418
1419           Some documentation has been updated to reflect this, but
1420           much more still needs to be (in particular the "Client-side
1421           Tutorial").
1422
1423         * SoupRequestHTTP now has a number of fields and methods that
1424           mirror the SoupMessage data, so you don't have to use
1425           soup_request_http_get_message() in many cases. On the flip
1426           side, there is also now soup_message_get_request(). And you
1427           can create a SoupRequestHTTP directly (and override its
1428           request method) by using soup_session_request_http() or
1429           soup_session_request_http_uri()).
1430
1431         * soup_message_set_chunk_allocator() is now deprecated; apps
1432           that want to do streaming reads should just use SoupRequest,
1433           which is vastly more sane.
1434
1435
1436         * SoupPasswordManager is now deprecated, and
1437           SoupPasswordManagerGNOME is now a no-op (and libsoup-gnome
1438           no longer links against libgnome-keyring). [#594377, #679866]
1439
1440         * SoupCookieJarSqlite is now deprecated in favor of
1441           SoupCookieJarDB, which is exactly the same thing except that
1442           it's in libsoup itself rather than being in libsoup-gnome
1443           (something that many people have requested). This means that
1444           libsoup now requires sqlite3... if this offends you horribly
1445           then you have a few months to speak up...
1446
1447         * SoupProxyResolverGNOME is now deprecated; there hasn't been
1448           any real reason to use it since SoupProxyResolverDefault was
1449           added.
1450
1451         * As a result of the last three items, libsoup-gnome now
1452           consists entirely of deprecated APIs, and there is no reason
1453           you should use it any more (though packagers need to keep
1454           building it, for backward compatibility).
1455
1456
1457         * SoupSession is no longer an abstract class, and you can
1458           create a plain SoupSession, which behaves in a more
1459           traditionally-gio-like way (allowing a mix of sync and async
1460           methods, etc). This "plain" SoupSession also has more sane
1461           default values of certain properties, and has certain
1462           SoupSessionFeatures built in.
1463
1464           This will eventually replace SoupSessionAsync and
1465           SoupSessionSync completely, but most of the documentation
1466           hasn't yet been updated at this point...
1467
1468           This change involved merging the majority of the
1469           SoupSessionAsync and SoupSessionSync code into SoupSession,
1470           getting rid of lots of redundancy in the process. There may
1471           be some bug fallout from this (probably on the
1472           SoupSessionSync side, since WebKit's tests tend to shake out
1473           all SoupSessionAsync bugs). However, this should help to
1474           avoid SoupSessionSync-only bugs in the future, since much
1475           more of the code is now shared.
1476
1477
1478         * Usernames and passwords passed into SoupSession a URI will
1479           now be cleared after they're used, so that if they are
1480           wrong, the authenticate signal will be emitted on the next
1481           round. [#689673, Martin Robinson]
1482
1483         * SoupURI now leaves "%00" in URIs as-is, rather than decoding
1484           it to "\0", which was not intended and is never useful.
1485
1486         * Fixed a bug in SoupBodyOutputStream that could cause libsoup
1487           to sometimes use blocking I/O rather than non-blocking when
1488           writing chunked message bodies. [#688974, Milan Plzik]
1489
1490         * Fixed a bug in SoupFilterInputStream that could cause some
1491           non-blocking reads to suck up CPU while waiting for the
1492           network. (This was noticed with multipart/x-mixed-replace
1493           processing; it's not clear if it affected anything else.)
1494           [Gustavo]
1495
1496         * tests: misc small fixes
1497
1498
1499         * New/updated translations:
1500           Assamese, Galician, Japanese, Odia, Polish, Spanish
1501
1502 Changes in libsoup from 2.41.1 to 2.41.2:
1503
1504         * libsoup-2.4.so and libsoup-gnome-2.4.so now only export the
1505           symbols that are part of the public API. (Plus, temporarily,
1506           one additional symbol, soup_message_io_cleanup, which is
1507           used by gvfs and possibly a few other modules, even though
1508           it shouldn't be. If you copied soup-input-stream.c from
1509           gvfs, you should port your code to use SoupRequest instead.)
1510           [Dan, #595176]
1511
1512         * Added SOUP_VERSION_MIN_REQUIRED / SOUP_VERSION_MAX_ALLOWED
1513           macros like the corresponding glib ones, to allow libsoup
1514           users to request per-version deprecation/availability
1515           warnings. [Dan]
1516
1517         * Fixed a crash caused by a race condition in SoupSessionSync,
1518           and reorganized some code to avoid other possible similar
1519           race conditions. [#684238, Dan]
1520
1521         * Fixed a crash when a DNS resolution failed, caused by a bug
1522           in the GTask porting in 2.41.1. [#688330, Milan Crha]
1523
1524         * Fixed a problem that would cause g_warning()s in epiphany
1525           when browsing sites that (incorrectly) returned empty
1526           Cache-Control headers. [#683433, Dan]
1527
1528         * We now add a Host header to HTTP/1.0 requests as well as
1529           HTTP/1.1 ones. [Dan]
1530
1531         * Fixed a bug in the printing of IPv6 address literals in the
1532           Host header in SoupLogger. (They were being sent across the
1533           wire correctly, they were just printed wrong by SoupLogger.)
1534           [Dan]
1535
1536         * Belatedly added soup-multipart-input-stream.h to soup.h.
1537           [Dan]
1538
1539         * Removed an evil hack in the long-deprecated
1540           SoupProxyResolver code (not to be confused with
1541           SoupProxyURIResolver), to avoid warnings with glib master.
1542           If you had previously implemented a custom
1543           SoupProxyResolver, then it will probably (silently) stop
1544           working, but you should have ported it to
1545           SoupProxyURIResolver years ago anyway... [Dan, #687659]
1546
1547         * Fixed a few race conditions in the test programs that could
1548           cause "make check" to fail on slow or heavily-loaded
1549           machines. [Dan]
1550
1551         * Further cleaned up and reorganized the internal HTTP I/O
1552           codepaths, in preparation for an improved SoupCache.
1553           [#682112, Sergio] (This change should not actually be
1554           externally noticeable. But if SoupContentDecoder or
1555           SoupContentSniffer turns out to be broken in this release,
1556           this would be why).
1557
1558         * New/updated translations:
1559           Slovak, Uyghur
1560
1561 Changes in libsoup from 2.40.1 to 2.41.1:
1562
1563         * Changed the behavior of NTLM authentication to be more like
1564           what other apps apparently do. Now if the user does not
1565           specify a domain in the username (eg, "MYDOMAIN\username"),
1566           then we will not specify a domain in the NTLM response
1567           (rather than assuming that the user is in the server's
1568           default domain). People who get broken by this change should
1569           be able to fix it by including an explicit domain in their
1570           username, but the theory is that no one should get broken by
1571           this... If this change does turn out to hurt more than it
1572           helps then it may be reverted later. [#624613, Dan, based on
1573           a suggestion from David Woodhouse]
1574
1575         * Fixed a crash caused by a race condition in SoupSessionSync.
1576           [#684238, Dan]
1577
1578         * SoupRequest now supports resource:// URIs, for reading from
1579           gresource. [#682721, Carlos]
1580
1581         * Added new compile-time and runtime APIs for checking the
1582           libsoup version. [#684514, Martin Robinson]
1583
1584         * Updated to take advantage of (and require) glib 2.35;
1585           removed all g_type_init() calls and ported to GTask. [Dan]
1586
1587         * Added support for Apache 2.4 to the unit tests. [Dan]
1588
1589         * New translations:
1590           Uzbek (Cyrillic)
1591
1592 Changes in libsoup from 2.40.0 to 2.40.1:
1593
1594         * Improved the parsing of multipart/x-mixed-replace responses.
1595           [#685752, Gustavo]
1596
1597         * Fixed handling of IPv6 address literals. [#684990, Dan]
1598
1599         * New/updated translations:
1600           Catalan, Catalan (Valencian), Norwegian bokmål
1601
1602 Changes in libsoup from 2.39.92 to 2.40.0:
1603
1604         * New/updated translations:
1605           Bengali (India), Bulgarian, Chinese (Simplified), Estonian,
1606           German, Hebrew, Hindi, Hungarian, Latvian, Malayalam,
1607           Punjabi, Tamil, Telugu, Thai, Ukranian
1608
1609 Changes in libsoup from 2.39.91 to 2.39.92:
1610
1611         * Fixed some g_warnings (and a possible crash) with the
1612           soup_request_send_async(). [#683404, Dan]
1613
1614         * Fixed a hang with SoupSessionSync [#682923, Dan]
1615
1616         * Handle empty "Cache-Control" headers. [Sergio]
1617
1618         * New/updated translations:
1619           Assamese, Belarusian, Brazilian Portuguese, British English,
1620           Chinese (Traditional), Czech, Danish, French, Galician,
1621           Greek, Gujarati, Hungarian, Indonesian, Italian, Lithuanian,
1622           Marathi, Persian, Polish, Portuguese, Russian, Serbian,
1623           Slovenian, Spanish
1624
1625 Changes in libsoup from 2.39.90 to 2.39.91:
1626
1627         * Added missing (transfer full) annotation to
1628           soup_cookie_jar_add_cookie() and
1629           soup_cookie_jar_add_cookie_with_first_party(), fixing
1630           crashes in bindings. [#682554, Daniel Drake]
1631
1632         * Fixed a crash [#682569, Alexander Larsson] and a win32 build
1633           problem [#683200, Kalev Lember] introduced by the memory
1634           leak fixes in 2.39.90
1635
1636         * Fixed the SoupMessage:network-event signal, which had been
1637           skipping the G_SOCKET_CLIENT_COMPLETE state in tunneled
1638           https connections. And added a test for this. [Dan]
1639
1640         * New/updated translations:
1641           French, Japanese, Korean, Latvian, Lithuanian, Polish,
1642           Punjabi, Swedish, Tamil
1643
1644 Changes in libsoup from 2.39.5 to 2.39.90:
1645
1646         * Added SoupMultipartInputStream, for handling multipart
1647           responses (particularly multipart/x-mixed-replace).
1648           [#656684, Gustavo]
1649
1650         * Fixed a potential crash in SoupSessionAsync after the
1651           session is finalized.
1652
1653         * Fixed a regression in soup_tls_is_public_suffix() [#681085,
1654           Sergio]
1655
1656         * Added a SOUP_MESSAGE_IDEMPOTENT flag, so that apps can
1657           bypass the "POSTs must be sent on new connections" check,
1658           which was causing evolution-ews to have to create a new
1659           connection for every request. [#681493, Milan Crha]
1660
1661         * Changed SoupSession so that pending SoupMessages now hold a
1662           ref on the session. It is possible that this will break code
1663           that was depending on the old, dumb, behavior (where
1664           unreffing the session with messages pending would cause
1665           those messages to be cancelled), in which case this will be
1666           reverted before 2.40.
1667
1668         * Fixed memory leaks found by valgrind.
1669
1670         * Cleaned up some code in SoupCache. [#681509, Sergio]
1671
1672         * New/updated translations:
1673           Bengali (India), Chinese (Traditional), German, Marathi,
1674           Turkish, Ukranian
1675
1676 Changes in libsoup from 2.39.4.1 to 2.39.5:
1677
1678         * Fixed several bugs in the soup-message-io updates that could
1679           cause hangs or I/O errors. [#679527 and other bugs not filed
1680           in bugzilla]
1681
1682         * Fixed SoupServer:async-context to work properly again
1683
1684         * Further fixes to soup_uri_normalize() when using the
1685           "unescape_extra" parameter. [#680018]
1686
1687         * Fixed soup_xmlrpc_parse_method_call() to handle the case
1688           where there is no <params> element (which is legal).
1689           [#671661]
1690
1691         * Fixed the deprecation warning on soup_message_headers_get()
1692           [#680143]
1693
1694         * Added warnings to some erroneous SoupSocket usages rather
1695           than returning bogus data. [#673083, Simon McVittie]
1696
1697         * Fixed build under Windows/MinGW
1698
1699         * SoupSocket no longer emits the "readable" signal when a
1700           socket is disconnected if that socket is non-blocking.
1701
1702         * Updated public suffix list to the current version.
1703
1704         * New/Updated translations:
1705           Assamese, Chinese (simplified), Esperanto, Galician, Greek, Gujarati,
1706           Hebrew, Norwegian bokmål, Russian, Serbian, Slovenian
1707
1708 Changes in libsoup from 2.39.4 to 2.39.4.1:
1709
1710         * Fixed indentation problems in tld-parser.py so it will work
1711           under python 3. [#680089, "marduk"]
1712
1713         * Actually fixed cookies in non-suffixed/private domains,
1714           which still didn't work after the last fix. [#679230,
1715           Carlos]
1716
1717         * Updated translations:
1718           Spanish
1719
1720 Changes in libsoup from 2.39.3 to 2.39.4:
1721
1722         * Fixed the SoupRequest codepaths to properly retry in the
1723           case where the server closes a persistent connection when we
1724           try to use it. [Dan, might be the fix for #679527, but this
1725           is not yet confirmed]
1726
1727         * Fixed the content-type and content-length of requests
1728           retrieved from SoupCache. [#680029, Carlos Garcia Campos]
1729
1730         * Fixed the handling of cookies in non-suffixed and private
1731           domains ("localhost", "foo.local", etc) [#679230, Sergio and
1732           Dan]
1733
1734         * Fixed cookie parsing to allow attribute values on "secure"
1735           and "HttpOnly". (Neither is supposed to have a value, but it
1736           happens in the real world.) [#678753, Dan, based on a patch
1737           from "Basavaraj"]
1738
1739         * Fixed soup_uri_normalize() to not always run the "fixup"
1740           codepath. [#680018, pointed out by Yann Soubeyrand]
1741
1742         * Fixed a (rare) crash when closing the stream returned from
1743           SoupRequestHTTP. [Dan]
1744
1745         * Use G_DEPRECATED on deprecated functions, and then fix up
1746           the warnings this caused due to libsoup using its own
1747           deprecated functions. [#671770, Javier Jardón]
1748
1749         * Fixed up "make dist" by, among other things, rewriting
1750           tld-parser in python. [#678909, Colin Walters]
1751
1752         * Removed the "getbug" example program in tests/, which didn't
1753           work any more anyway. [Dan]
1754
1755         * Various internal code cleanups. [Dan] Fixed one crash
1756           resulting from this [#680055, Alban Browaeys]; hopefully
1757           there won't be any more.
1758
1759         * New/Updated translations:
1760           Assamese, Belarusian, Bulgarian, Chinese (traditional), Hebrew,
1761           Indonesian, Lithuanian, Norwegian bokmål, Vietnamese
1762
1763 Changes in libsoup from 2.39.2 to 2.39.3:
1764
1765         * Added new functions for comparing domains against the
1766           "public suffix" list (http://publicsuffix.org/), and in
1767           particular fixed SoupCookieJar to not allow setting cookies
1768           in "public" domains (eg, ".co.uk"). [#673802, Sergio]
1769
1770         * Added two new SoupCookieJar APIs
1771           (soup_cookie_jar_get_cookies() and
1772           soup_cookie_jar_set_cookie_with_first_party()) as part of
1773           fixing the handling of HttpOnly cookies in WebKitGTK.
1774           [#677922, Christophe Dumez]
1775
1776         * Fixed g-i annotation of
1777           soup_message_headers_get_content_type(). [#677002, Dan]
1778
1779         * Updated translations:
1780           Galician, Greek, Slovenian, Spanish, Telugu
1781
1782 Changes in libsoup from 2.39.1 to 2.39.2:
1783
1784         * Fixed several bugs that resulted from the I/O code rewrite
1785           in 2.39.1, and added more test cases to exercise the new
1786           code paths:
1787
1788                 * Problems with cancelling messages from the
1789                   got-headers signal [#674747, Dan]
1790
1791                 * Persistent connections were not always being closed
1792                   properly after a message was cancelled mid-response.
1793                   [Dan]
1794
1795                 * Cancelling a SoupRequest before it started I/O
1796                   didn't work. [Dan]
1797
1798                 * Asynchronous HTTP authentication via the SoupRequest
1799                   API [#675306, Dan]
1800
1801                 * Memory leak [#676038, Ray Strode]
1802
1803                 * Refcounting bug that manifested as a crash in rygel
1804                   [#676038, Ray Strode]
1805
1806                 * Handling failed CONNECT requests via SoupRequest
1807                   [#675865, Sergio]
1808
1809                 * Messages with trailing junk following a compressed
1810                   message body [#676477, Dan]
1811
1812         * Fixed three cache-related bugs that affect some sites
1813           (notably Twitter) [Sergio]
1814
1815         * Fixed a bug in the /usr/bin/ntlm_auth integration when you
1816           don't already have credentials cached, and avoid printing
1817           warning messages when ntlm_auth is present but not usable.
1818           [Dan]
1819
1820         * Fixed some g-ir-scanner warnings, and included
1821           SoupRequester/SoupRequest in the introspected API [#676742,
1822           Jasper St. Pierre]
1823
1824         * Added soup_buffer_get_as_bytes() [#676776, Jasper]
1825
1826         * New/updated translations:
1827           Belarusian, Chinese (simplified), French, Galician, Greek,
1828           Hebrew, Polish, Punjabi, Romanian, Slovenian, Spanish
1829
1830 Changes in libsoup from 2.38.1 to 2.39.1:
1831
1832         * Major rewrite of the I/O code to use gio streams more
1833           directly. In particular, when using SoupRequestHTTP now, the
1834           input stream that is returned is actually pulling data from
1835           the socket, rather than just repeatedly pausing and
1836           unpausing the underlying SoupMessage and waiting for data to
1837           be pushed into it. This also means that SoupRequestHTTP now
1838           works with SoupSessionSync as well. [#591739, Dan]
1839
1840           (The SoupRequest API is still protected by unstable-API
1841           #ifdefs, but will be made public later in this cycle.)
1842
1843         * Libsoup now finally supports SOCKS proxies again. [#553269,
1844           Dan]
1845
1846         * Certain error messages returned from the streaming API
1847           (SoupRequest, etc) are now localized; more strings will be
1848           localized later on.
1849
1850         * New translations: Galician, Hebrew, Indonesian, Norwegian
1851           bokmål, Polish, Russian, Slovenian, Spanish.
1852
1853         * Added a SoupCookieJar:is-persistent property, to distinguish
1854           memory-only jars from SoupCookieJarText and
1855           SoupCookieJarSqlite. [#672838, Carlos Garcia Campos]
1856
1857 Changes in libsoup from 2.38.0 to 2.38.1:
1858
1859         * Fixed a situation where soup_connection_disconnect() could
1860           end up calling g_object_unref(NULL) when an idle connection
1861           was closed. [Sergio, #672178]
1862
1863         * Fixed two warnings when cancelling an in-progress
1864           soup_socket_connect_async(). [pointed out on the mailing
1865           list by Sven Neumann]
1866
1867         * Fixed a crash when disposing a SoupServer with open
1868           connections. [#673468, Jonny Lamb]
1869
1870         * Fixed the SoupSession:ssl-use-system-ca-file property to get
1871           turned off (rather than on) when you set it to FALSE... Also
1872           fixed up the property notifications around the various
1873           certificate-verification properties (ssl-ca-file,
1874           ssl-use-system-ca-file, and tls-database).
1875
1876         * Fixed SoupSession to not leak paused SoupMessages that
1877           were still in progress when it was unreffed. [#673905]
1878
1879         * Updated the win32 file: URI code again, to fix regressions
1880           in the WebKit tests. [WebKit bug #82484]
1881
1882 Changes in libsoup from 2.37.92 to 2.38.0:
1883
1884         * Minor documentation fixes
1885
1886 Changes in libsoup from 2.37.91 to 2.37.92:
1887
1888         * Added soup_session_prefetch_dns() and deprecated
1889           soup_session_prepare_for_uri(). The new method takes a
1890           completion callback, allowing you to know how many DNS
1891           resolutions are currently outstanding, so you don't spam the
1892           resolver. [Sergio, WebKit bug #41630]
1893
1894 Changes in libsoup from 2.37.90 to 2.37.91:
1895
1896         * Fixed an out-of-bounds memory read that could occur when
1897           parsing malformed requests/responses.
1898
1899         * Fixed a build-related bug in Makefile.glib that affected
1900           locales such as Estonian where "Z" is not the last (ASCII)
1901           letter of the alphabet. [#654395, Priit Laes]
1902
1903         * Fixed the handling of file: URIs with query components,
1904           which got broken in 2.37.90.
1905
1906         * Fixed SoupAuthManagerNTLM to not fall back to allowing Basic
1907           auth when NTLM failed.
1908
1909         * Further tweaked the warnings/fallback in SoupURI, so that
1910           soup_uri_to_string() on an http URI with a NULL path would
1911           translate that to "/" like it used to. [#670431]
1912
1913         * Fixed a warning when cancelling the load of a page with many
1914           subresources. [#667245]
1915
1916         * Use G_GNUC_BEGIN/END_IGNORE_DEPRECATIONS if GLib is new
1917           enough, to avoid getting warned about the use of
1918           GValueArray.
1919
1920 Changes in libsoup from 2.37.5 to 2.37.90:
1921
1922         * libsoup is now beta-testing Makefile.glib from bug 654395.
1923           If 2.37.90 fails to build in some strange way that 2.37.5
1924           did not, this is probably why.
1925
1926         * Replaced some of the SoupURI g_return_if_fail()s that were
1927           added in 2.37.5 with g_warn_if_fail()s. Although it had
1928           always been documented that SoupURIs must have a non-NULL
1929           path, most SoupURI functions treated NULL the same as "",
1930           and various apps (eg, rhythmbox, midori) were accidentally
1931           relying on this. [Dan]
1932
1933         * Added various return-if-fails and other sanity checks to
1934           various functions. [#669479, Robert Swain, Mark Nauwelaerts,
1935           Simon McVittie]
1936
1937         * Updated docs/annotation of soup_form_decode_multipart() to
1938           note that all of the out parameters are (allow-none). Fixed
1939           the file_control_name parameter to actually allow NULL like
1940           the docs already claimed. [#669479, Simon McVittie]
1941
1942         * Fixed a minor URI parsing bug. (It was allowing URI schemes
1943           to contain numbers.) [Dan]
1944
1945         * Fixed a few memory leaks introduced in the 2.37 cycle. [Dan]
1946
1947         * Fixed SoupServer to be able to correctly respond to HTTP/1.0
1948           requests over IPv6 (which previously would always have
1949           returned "400 Bad Request"). [#666399, Dan]
1950
1951         * Changed SoupSessionAsync to make it possible to finalize it
1952           from the "wrong" thread. [#667364, Dan].
1953
1954         * Fixed SoupCache to not cache resources whose URIs have query
1955           components (unless they have explicit cache headers); to not
1956           generate broken conditional requests for resources that
1957           cannot be conditionally validated; and to not spew warnings
1958           when receiving invalid Cache-Control headers. [#668865,
1959           Sergio].
1960
1961 Changes in libsoup from 2.37.4 to 2.37.5:
1962
1963         * Fixed a bug in SoupSession:use-thread-context [Dan]
1964
1965         * Fixed the case of cancelling a message from
1966           SoupSession::request-started [#668098, Raphael Kubo da
1967           Costa]
1968
1969         * Fixed a crash in epiphany when loading a page with more than
1970           1000 or so images. [#668508, Dan]
1971
1972         * Fixed a bunch of cases involving invalid URLs found while
1973           testing SoupServer against an HTTP protocol fuzzer. Also
1974           fixed up some documentation/annotations and added some new
1975           test cases. [#667637, Simon McVittie]
1976
1977         * Fixed SoupRequestFile to work on Windows. [Paweł Forysiuk]
1978
1979 Changes in libsoup from 2.37.3 to 2.37.4:
1980
1981         * SoupMessage now has a "network-event" signal that can be
1982           monitored for information about DNS, proxy lookup, TCP
1983           connections, and TLS handshakes. [Dan]
1984
1985         * The HTTP header parsing code now avoids hitting
1986           g_return_if_fails() (and returns an error instead) in a few
1987           cases of seriously-invalid headers. [#666316, Simon
1988           McVittie, Dan]
1989
1990         * POSTs and other non-idempotent requests are now always sent
1991           on newly-created connections. You can also force this
1992           behavior on other messages by setting the
1993           SOUP_MESSAGE_NEW_CONNECTION flag. [#578990, Dan]
1994
1995         * Server-closed idle connections are now detected ahead of
1996           time on Windows, preventing occasional spurious "Connection
1997           terminated unexpectedly" errors. (This had been fixed on
1998           UNIX since 2.28, but the earlier fix didn't work with
1999           WinSock.) [#578990, Dan]
2000
2001         * Plugged a leak in SoupRequestHTTP. [#667099, Xan]
2002
2003 Changes in libsoup from 2.37.2 to 2.37.3:
2004
2005         * Now requires glib 2.31
2006
2007         * Simplified SoupHTTPInputStream and SoupRequestHTTP, allowing
2008           related simplifications in WebKit's ResourceHandleSoup. This
2009           is an ABI-incompatible change, but SoupHTTPInputStream is an
2010           unstable API. [#663451, Dan]
2011
2012         * Fixed a bug that caused the SOUP_MESSAGE_CERTIFICATE_TRUSTED
2013           flag to always be cleared, causing epiphany to claim all
2014           https pages were untrusted. [#665182, Dan]
2015
2016         * Fixed some bugs in the handling of SoupSession:http-aliases
2017           and SoupSession:https-aliases.
2018
2019         * Fixed handling of ACLOCAL_FLAGS [#641470, Craig Keogh]
2020
2021         * Fixed SoupContentDecoder's "ignore Content-Encoding: gzip
2022           because the server didn't actually mean it" hack to handle
2023           x-gzip too.
2024
2025         * Clarified the documentation on SoupSession:ssl-strict
2026           [#666280]
2027
2028 Changes in libsoup from 2.37.1 to 2.37.2:
2029
2030         * Fixed up the output of SoupDirectoryInputStream, thus
2031           improving the display of local directories in WebKit-based
2032           browsers. [#662266, Sergio]
2033
2034         * Fixed a bug introduced in 2.37.1 that caused some cancelled
2035           SoupMessages to be leaked. [#662847, Sergio]
2036
2037         * Added new SoupSession properties "http-aliases" and
2038           "https-aliases" that allow you to configure more explicitly
2039           what URL protocols are treated as aliases for http (eg,
2040           "dav:", "webcal:", etc), and which should be recognized as
2041           meaning something else, (eg, "ftp:") [Dan]
2042
2043         * Added soup_session_would_redirect() and
2044           soup_session_redirect_message(), to help users that want to
2045           handle some or all redirects themselves. Added
2046           soup_message_set_redirect() to make it easier to return
2047           redirection responses from a SoupServer. [Dan]
2048
2049         * Added the SoupSession "use-thread-context" property, which
2050           tells it to use GMainContexts in a gio-compliant way (and in
2051           particular, allows having different messages running in
2052           different GMainContexts on the same SoupSession, though only
2053           to a limited extent since SoupSessionAsync is still not
2054           thread-safe). In particular, this was added in order to
2055           address WebKit bug 68238. [Dan]
2056
2057         * Made SoupURI %-encode non-ASCII characters when parsing
2058           URIs, in particular to fix a problem with certain servers
2059           sending syntactically invalid redirects that they would then
2060           only interpret correctly if you fixed the syntax for them.
2061           (@$!@#! Although the new code is probably more correct than
2062           the old code anyway, so...) [#662806, Dan]
2063
2064         * Fixed a connection-handling bug that could cause problems
2065           with servers that requested authentication and then timed
2066           out the connection while the application was waiting for the
2067           user to enter a password. [#660057, Dan]
2068
2069         * Made NTLM and Basic authentication handle some non-ASCII
2070           usernames and passwords. (NTLM should handle most. It's
2071           impossible to fix Basic in the general case.) [#576838,
2072           Joachim Breitner, "sponsored by ITOMIG GmbH and the City of
2073           Böblingen"]
2074
2075         * Added support for "deflate" Content-Encoding, so that we can
2076           work with broken servers that insisted on using it even
2077           though we explicitly indicated in the request headers that
2078           we didn't support it. (@$#!#) [#661682, Sergio]
2079
2080 Changes in libsoup from 2.36.0 to 2.37.1:
2081
2082         * Fixed a problem with connections being assigned to multiple
2083           requests at once after a redirection [#651146, Sergio]. Made
2084           soup_session_pause/unpause_message() work in any state, not
2085           just while the HTTP I/O is occurring, and used this to add a
2086           test case for that bug. [Dan]
2087
2088         * Ported SoupSession to use GTlsDatabase internally, and added
2089           two new properties, SoupSession:use-system-ca-file (to
2090           specify that the session should use the default system
2091           tlsdb) and SoupSession:tlsdb (to specify a specific tlsdb to
2092           use). [Dan]
2093
2094         * Likewise, added SoupServer:tls-certificate, for specifying a
2095           certificate/key for an https server to use.
2096
2097         * Made SoupHTTPInputStream use memory more efficiently.
2098           [#659255, Sergio]
2099
2100         * Fixed soup_message_get_https_status() to return information
2101           more reliably (with latest glib-networking).
2102
2103         * Bumped the glib requirement to 2.30.0; although libsoup does
2104           not use any new glib 2.30 APIs, there are several important
2105           bugfixes in glib between 2.28 and 2.30 that libsoup needs.
2106           Currently libsoup builds against either glib 2.30.x or glib
2107           2.31.x.
2108
2109 Changes in libsoup from 2.35.92 to 2.36.0:
2110
2111         * Improvements to gtk-doc documentation. [Dan]
2112
2113 Changes in libsoup from 2.35.90 to 2.35.92:
2114
2115         * Fixed a problem where SoupHTTPRequest response bodies could
2116           be truncated. [#659256, Sergio]
2117
2118         * Fixed a bug in copying TLS information from SoupSocket to
2119           SoupMessage, causing all https connections to be reported as
2120           "untrusted" in epiphany. [Dan]
2121
2122         * Made SoupSession remove items from its host cache after a
2123           while, so that if a host changes IP address, it will
2124           eventually try to re-resolve it. [#646959, Sergio]
2125
2126 Changes in libsoup from 2.35.5 to 2.35.90:
2127
2128         * Added SOUP_MESSAGE_CAN_REBUILD flag, to use with
2129           soup_message_body_set_accumulate(FALSE) on a request body,
2130           to indicate that the caller will recreate the request body
2131           after it has been discarded if the message needs to be
2132           re-sent. [#656650]
2133
2134         * Fixed the build on mingw-w64 by not using "interface" as
2135           as variable name. [#656402, Erik van Pienbroek]
2136
2137         * (The multihosted https server regression mentioned in the
2138           2.35.5 NEWS turned out to be a glib-networking bug, which is
2139           fixed as of 2.29.18.)
2140
2141 Changes in libsoup from 2.35.4 to 2.35.5:
2142
2143         * Support NTLM single sign on via samba's /usr/bin/ntlm_auth.
2144           [#650940, Mandy Wu]. This is enabled by default (if NTLM is
2145           enabled for the session and the ntlm_auth binary is
2146           available), but will fall back to the standard
2147           password-based authentication if SSO fails.
2148
2149         * Default to TLS+extensions for https connections, falling
2150           back to SSLv3-without-extensions (the old default) only if
2151           the server fails to negotiate TLS. [#581342]
2152
2153                 * As a result of this change, some users are currently
2154                   seeing problems with sites that serve multiple https
2155                   hosts from a single IP address (eg,
2156                   *.launchpad.net). There is no known workaround at
2157                   this time.
2158
2159         * Fixed a longstanding problem with https pages sometimes not
2160           loading when using a proxy. [#631368, based on patches from
2161           DongJae Kim and Thierry Reding]
2162
2163         * SoupContentSniffer: don't use gio's sniffing rules, since
2164           the spec now recommends that browsers not do any additional
2165           sniffing beyond what's in the spec. [#648846, "arno"]
2166
2167         * Fixed SoupRequestHTTP to work properly with alternate
2168           GMainContexts. [#653707]
2169
2170         * Added some annotations from Vala's vapi files. [#655397,
2171           Evan Nemerson]. Also, removed SoupProxyResolver from the
2172           gir/typelib, since it had been deprecated since before
2173           introspection was available, and it was being scanned wrong
2174           anyway.
2175
2176 Changes in libsoup from 2.35.3 to 2.35.4:
2177
2178         * CVE-2011-2524: Fixed a security hole that caused some
2179           SoupServer users to unintentionally allow accessing the
2180           entire local filesystem when they thought they were only
2181           providing access to a single directory. [#653258]
2182
2183         * Plugged another SoupCache memory leak [Xan]
2184
2185         * Simplified SoupCache keys, and handle collisions. [#649963,
2186           Sergio]
2187
2188         * Annotate SoupSession:add-feature, etc, as (skip), so they
2189           don't conflict with the methods of the same name. [#655150,
2190           Jasper St. Pierre]
2191
2192 Changes in libsoup from 2.34.1 to 2.35.3:
2193
2194         * SoupCache fixes [Sergio]:
2195
2196                 * Don't store hop-by-hop headers [#650094]
2197
2198                 * Fix status code and headers of responses returned
2199                   from the cache after being revalidated [#649965]
2200
2201                 * Added versioning support to the cache file format
2202                   [#652554] and extended it to keep track of the
2203                   status code [#649965]
2204
2205                 * Fixed storage of time values in the cache [#653349]
2206
2207                 * Fixed a use-after-free that could result in bogus
2208                   data being written to the cache [#650620]
2209
2210                 * Various leaks [#649309]
2211
2212         * Work around an Apache bug where it tells browsers to
2213           automatically decode .gz files but still keep the .gz in the
2214           name. [#613361, Dan]
2215
2216         * Fixed an overflow when sending a response larger than 2^31
2217           bytes (eg, streaming movies in Rygel). [#638468, Jens Georg]
2218
2219         * Always send the Keep-Alive header, not just to hosts we
2220           already know to be HTTP/1.0 [#648680, Sergio]
2221
2222         * Fixed various leaks [#652699, Sergio], [#651643, Milan],
2223           [etc, Xan]
2224
2225         * Minor build fix for Debian/Ubuntu [#648948]
2226
2227         * Fixed a docs typo
2228
2229 Changes in libsoup from 2.34.0 to 2.34.1:
2230
2231         * Two multipart forms/Content-Disposition fixes [Dan]:
2232
2233                 * UTF-8-encoded header encoding/decoding rules updated
2234                   to match RFC 5987. In particular, a UTF-8-encoded
2235                   filename parameter in Content-Disposition will now
2236                   override an ASCII one.
2237
2238                 * When not using UTF-8-encoded filenames in
2239                   Content-Disposition, always quote the filename,
2240                   since some servers erroneously fail to handle
2241                   non-quoted ones. [#641280]
2242
2243         * Fixed several memory leaks [Dan, Xan]
2244
2245         * Fixed decoding base64 data: URLs [#646896, Sergio]
2246
2247         * Simplified the libsoup-gnome build on Windows by dropping
2248           the gnome-keyring dependency. [Fridrich Štrba]
2249
2250         * Fixed a bug in soup_uri_to_string() in which (invalid) port
2251           numbers could be output as negative numbers (tripping up a
2252           WebKit "sanity checking" test). [#647767, Sergio]
2253
2254         * Fixed a cache corruption bug in SoupCache. [#648285, Sergio]
2255
2256         * Fixed a crash in SoupSessionSync when using
2257           soup_session_abort().
2258
2259 Changes in libsoup from 2.33.92 to 2.34.0:
2260
2261         * Fixed the GMainContext handling of the new
2262           SoupProxyResolverDefault (which among other things fixes
2263           gstreamer usage inside epiphany). [#646201, Sebastian Dröge]
2264
2265         * Tweaked the introspection Makefile rules to fix a problem
2266           building on Debian/Ubuntu. [#645505]
2267
2268         * Belated bumped the shared library versioning to reflect the
2269           API additions since 2.32.0
2270
2271 Changes in libsoup from 2.33.90 to 2.33.92:
2272
2273         * LIBSOUP NO LONGER DEPENDS ON GCONF OR LIBPROXY.
2274           (see below).
2275
2276         * Added SoupProxyResolverDefault, which uses uses gio's
2277           GProxyResolver to resolve proxies [#642982, Gustavo Noronha
2278           Silva]. Despite the "default" in the name, it is not used by
2279           default, for compatibility reasons, but it is available in
2280           plain libsoup, not libsoup-gnome. (Of course, it depends on
2281           having glib-networking installed.)
2282
2283         * Updated SoupProxyResolverGNOME to be based on
2284           SoupProxyResolverDefault, but explicitly requesting the
2285           "gnome" GProxyResolver if it is available [#625898], and
2286           removed the old code that used GConf and libproxy directly.
2287
2288         * Added soup_server_disconnect(), to explicitly disconnect a
2289           SoupServer, since it is not possible to g_object_unref() it
2290           from memory-managed language bindings. [#638576, Andreas
2291           Rottmann]
2292
2293         * SoupDate now parses month names case-insensitively [#644048,
2294           Christian Dywan]
2295
2296         * Avoid a g_return_if_fail() when using
2297           SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY with non-http URIs
2298           (file:, data:, etc). [#643226]
2299
2300         * SoupCookieJar now catches overflows when parsing very
2301           distant dates [#643462, based on a patch from Mark
2302           Starovoytov]
2303
2304         * Fixed a buggy interaction between request body streaming and
2305           restarted requests [David Woodhouse]. Added some new tests
2306           to tests/chunk-test.c to make sure that a specific
2307           (unsupported!) way of using those methods would not get
2308           broken in the future.
2309
2310         * Fixed soup_socket_get_remote_address(), which had been
2311           broken since 2.33.4 (and which in turn caused
2312           soup_client_context_get_address/_get_host to be broken).
2313           [#645227]
2314
2315 Changes in libsoup from 2.33.6 to 2.33.90:
2316
2317         * Attempted to make libsoup's dependency on glib-networking
2318           (for TLS support) more explicit, by requiring that
2319           glib-networking be present at compile time unless the
2320           builder explicitly passes "--disable-tls-check", and noting
2321           that packagers should give libsoup a runtime dependency on
2322           glib-networking.
2323
2324         * Fixed a bug in talking to servers with virtual hosts with
2325           Unicode names (IDNs) [#642075]
2326
2327         * Added a "Connection: Keep-Alive" header when talking to
2328           HTTP/1.0 hosts, to improve performance. [#640414, Sergio
2329           Villar Senin]
2330
2331         * Changed SoupCache to not cache multipart/x-mixed-replace
2332           content. [#642028, Sergio Villar Senin]
2333
2334 Changes in libsoup from 2.33.5 to 2.33.6:
2335
2336         * Made SoupSessionAsync do idle-connection cleanup more
2337           sanely, resulting in faster load times for pages with lots
2338           of subresources. [#639768, Sergio Villar Senin]
2339
2340         * Fixed soup_form_decode()'s behavior (and by extension,
2341           SoupServer query string handling) with datasets that contain
2342           multiple values for the same key, and added a test case.
2343           [#639783, Sven Neumann]
2344
2345         * Fixed warnings pointed out by gcc 4.6, including a bug in
2346           SoupCache that would cause unnecessary revalidations
2347           [#640556].
2348
2349         * Belated copied a fix from the WebKit copy of soup-cache.c
2350           into ours, and fixed a bug in the local copy of
2351           soup-request-data.c [#641022, Sergio Villar Senin], in
2352           preparation for making WebKit use the libsoup versions.
2353
2354 Changes in libsoup from 2.33.4 to 2.33.5:
2355
2356         * Fixed certain cases of soup_session_cancel_message() with
2357           SoupSessionSync that could previously cause warnings or
2358           crashes. [#637741]
2359
2360 Changes in libsoup from 2.32.2 to 2.33.4:
2361
2362         * SoupSocket now uses GSocketConnection and GTlsConnection
2363           internally rather than making socket calls directly and
2364           using GIOStream, and TLS is handled via glib's APIs rather
2365           than using gnutls directly.
2366
2367         * The gzip Content-Encoding handler is now implemented using
2368           GZlibDecompressor
2369
2370         * As a result of the above two changes, libsoup no longer
2371           directly depends on gnutls, libgcrypt, or zlib, though it
2372           still indirectly depends on zlib via glib and libxml2. Also,
2373           although libsoup does not depend on glib-networking as a
2374           build-time dependency, some "make check" tests will be
2375           skipped if it is not installed.
2376
2377         * The SoupRequest/SoupCache code from WebKit has been
2378           imported, but it is not yet recommended for general use, and
2379           is not necessarily API stable. [#523100, Sergio Villar, with
2380           the SoupRequest parts based on the Summer of Code work by
2381           Gabriel Corvalan and the cache parts based on an earlier
2382           patch by Xan Lopez]
2383
2384         * Added SoupMessage:tls-certificate and
2385           SoupMessage:tls-errors, which give more information about
2386           the certificate used to authenticate a TLS connection.
2387
2388         * It is now possible to disable Basic or Digest auth in a
2389           session by using soup_session_remove_feature_by_type() with
2390           SOUP_TYPE_AUTH_BASIC or SOUP_TYPE_AUTH_DIGEST. Likewise, the
2391           right way to enable NTLM support now is to call
2392           soup_session_add_feature_by_type() with SOUP_TYPE_AUTH_NTLM;
2393           SOUP_SESSION_USE_NTLM is now deprecated.
2394
2395         * Allow setting cookies on file:// URIs, since other browsers
2396           do, and WebKit has a test for it. [#603825]
2397
2398         * .gir/.typelib files now include C header/library information
2399           (needed by vala and some other bindings) [#635395, Evan
2400           Nemerson]
2401
2402         * Added annotations on soup_message_headers_get_content_type()
2403           [Lucas Rocha] and SoupHTTPVersion [John Palmieri]
2404
2405         * Fixed a Set-Cookie processing leak [#636741, Jonathan
2406           Jongsma]
2407
2408 Changes in libsoup from 2.32.1 to 2.32.2:
2409
2410         * Fixed a regression in 2.32.0 that caused evolution-exchange
2411           to get stuck and stop updating. [#634422]
2412
2413         * Fixed a regression in 2.32.0 with apps using asynchronous
2414           sessions from multiple threads (in particular, gupnp)
2415           [#635101]
2416
2417         * Fixed the regression test for #631525 to not cause spurious
2418           "make check" failures on some machines.
2419
2420 Changes in libsoup from 2.32.0 to 2.32.1:
2421
2422         * Fixed a regression in 2.32.0 with the use of persistent
2423           connections that caused spurious "Connection terminated
2424           unexpectedly" errors. [#631525, debugged by Sergio Villar]
2425
2426         * Fixed a regression in 2.32.0 that caused proxy-related
2427           DNS errors to return SOUP_STATUS_CANT_RESOLVE rather than
2428           SOUP_STATUS_CANT_RESOLVE_PROXY.
2429
2430         * Usernames/passwords specified explicitly in request URIs now
2431           override existing cached auth info. [#631679, Sergio Villar]
2432
2433         * Changed soup_uri_decode() and soup_uri_normalize() to just
2434           ignore malformed %-encoding rather than returning NULL,
2435           for consistency with soup_uri_new(). [#630540]
2436
2437         * Fixed soup_form_decode() to ignore invalid parameters,
2438           and soup_form_encode_hash() to just g_return_if_fail()
2439           rather than crashing if there are NULL values in the
2440           hash. [#620220]
2441
2442         * Added another workaround for stupid servers that close the
2443           connection before returning the full response (in this case,
2444           when using chunked encoding and failing to include the
2445           final 0-length chunk). [#629160]
2446
2447         * Fixed a bug in SoupCookieJarText that deleted excess cookies
2448           whenever any cookie expired. [#631641, Michał Kazior]
2449
2450         * Fixed a small leak in SoupContentDecoder if you were using
2451           it incorrectly. [pointed out in email by Christophe
2452           Gillette]
2453
2454         * Added regression tests for passwords-in-URIs [#631679,
2455           Sergio Villar] and SOUP_SESSION_IDLE_TIMEOUT.
2456
2457 Changes in libsoup from 2.31.92 to 2.32.0:
2458
2459         * (No changes, just a version bump)
2460
2461 Changes in libsoup from 2.31.90 to 2.31.92:
2462
2463         * Updated for gobject-introspection 0.9.5. Also added some new
2464           annotations and removed a bunch of private headers from the
2465           scanning process.
2466
2467         * Percent-encoded characters in URIs are no longer
2468           automatically normalized to uppercase, since apparently some
2469           servers are stupid. [#628728, Sergio Villar Senin]
2470
2471         * Fixed a crash when resolving a URI containing both spaces
2472           and non-UTF8 8bit characters. [#629449]
2473
2474 Changes in libsoup from 2.31.2 to 2.31.90:
2475
2476         * libsoup now tries to connect to each IP address associated
2477           with a hostname, if the first one fails. In particular, if a
2478           host has both IPv4 and IPv6 addresses, and only one of them
2479           is reachable from the current host, libsoup will now try the
2480           other one rather than failing. (libc is supposed to sort the
2481           IP addresses in the right order, such that, eg, if you don't
2482           have IPv6 connectivity, it will put the IPv4 address first.
2483           For some reason though, this seems to be broken on some
2484           distros.) [#526321].
2485
2486         * Fixed Accept-Language header generation in locales where ","
2487           is used as the decimal point.
2488
2489 Changes in libsoup from 2.31.2 to 2.31.6:
2490
2491         * Disabled TLS 1.2 in addition to the already-disabled 1.1 and
2492           1.0 [see below, in libsoup 2.27.2], thus making libsoup
2493           usable with gnutls 2.10. [#622857. This commit, 01a43ad9,
2494           can be applied to libsoup 2.30.x as well if you need that
2495           release to work with gnutls 2.10.]
2496
2497         * When using libproxy 0.3 or newer, libsoup no longer leaks
2498           proxy-related environment variables into child processes
2499           [#603285]
2500
2501         * Changed the way message/connection binding works in
2502           SoupSession so that (among other things), when there are
2503           multiple requests queued to a host, and one of them gets a
2504           network error, the other requests are still allowed to try
2505           to succeed, rather than all failing immediately. [#619633]
2506
2507         * SoupSession now limits the number of times a message can be
2508           redirected, to avoid infinite loops [#604383, José Millán
2509           Soto]
2510
2511         * Fixed handling of certain messages where the response
2512           headers included "Connection: close" but the server did not
2513           actually close the connection at the end. [#611481]
2514
2515         * Fixed some incorrect g-i annotations [#621021]
2516
2517         * Fixed an out-of-bounds memory access when processing certain
2518           Set-Cookie headers [#620288]
2519
2520         * Improved msg->reason_phrase on network errors [#623274]
2521
2522         * Fixed gir file disting [#621727, Yaakov Selkowitz]
2523
2524 Changes in libsoup from 2.30.1 to 2.31.2:
2525
2526         * gobject-introspection has now been merged in. Use
2527           --enable-introspection to build. [#576595, Andreas Rottmann]
2528           Note that the introspected API is not yet stable, and in
2529           particular, there are numerous values annotated as "utf8"
2530           which are actually not guaranteed to be utf8. (Eg, most
2531           header data.)
2532
2533                 * Added some helper functions for bindings:
2534                   soup_buffer_new_take(),
2535                   soup_message_body_append_take(), and
2536                   soup_buffer_get_data(). [#576595, Andreas Rottmann]
2537
2538                 * Also added properties for several SoupMessage public
2539                   fields, and getter methods for various boxed types
2540                   (SoupCookie, SoupDate, SoupURI).
2541
2542                 * Added some additional hash-table annotations.
2543                   [#619086, Gustavo Noronha Silva]
2544
2545         * Marked SoupSession abstract. [#617216, Lorenzo Gil, the
2546           first bug filed by someone trying to use libsoup via
2547           introspection!] Likewise for SoupAuth and SoupAuthDomain.
2548
2549         * Fixed a problem with SoupSessionAsync that would cause
2550           messages to get lost if you aborted a previous message while
2551           it was still looking up the hostname. Fixed several other
2552           problems that were discovered while adding a regression test
2553           for that. [#618641, thanks to Claudio Saavedra for a good
2554           test case]
2555
2556         * Fixed another connecting-to-lame-http-server problem, and a
2557           getting-stuck-in-a-loop-reconnecting bug that it revealed.
2558           [#615535]
2559
2560 Changes in libsoup from 2.30.0 to 2.30.1:
2561
2562         * Fix for https through proxies that close the connection when
2563           returning a "407 Proxy Authentication Required" response,
2564           and add a regression test for that case. [#611663]
2565
2566         * Fixed multiple forms/multipart-related interoperability
2567           problems reported by Egon Andersen:
2568
2569                 * Don't quote the multipart boundary string if it's
2570                   not needed, since RFC 2616 recommends that you
2571                   don't, and some servers don't handle quotes there
2572                   correctly. (Sigh.) [#614176]
2573
2574                 * Don't put an extra blank line before the first
2575                   multipart part, since it's unnecessary and some
2576                   servers don't handle a multipart preamble correctly.
2577                   (Sigh.) [#614183]
2578
2579                 * Don't put Content-Transfer-Encoding headers in the
2580                   multipart/form-data parts, even though the HTML 4
2581                   spec says you must, since no other browsers do, and
2582                   some servers don't handle them correctly. (Sigh.)
2583                   [#614198]
2584
2585         * Changed SoupCookieJarSqlite to actually erase deleted
2586           cookies from the database. [#615711, Lukasz Slachciak]
2587
2588         * Fixed SoupLogger to be more robust against getting passed
2589           bad data by the session. [#611663]
2590
2591         * Fixed SoupAuthDomain to ignore paths when doing proxy auth
2592
2593         * Fixed a g_warning when hovering over a javascript link in
2594           WebKit. [#613442, Xan Lopez]
2595
2596 Changes in libsoup from 2.29.91 to 2.30.0:
2597
2598         * Fixed a crash in the whitespace-stripping code in
2599           soup_uri_new() [#612644, "arnaud.lb"]
2600
2601         * Update content-sniffing algorithm to match Chrome and the
2602           soon-to-be-updated sniffing spec. [#611502, Gustavo Noronha
2603           Silva]
2604
2605         * We now handle "Content-Encoding: x-gzip" as well as "gzip"
2606           (even though "x-gzip" has been deprecated for more than 10
2607           years). [#611476]
2608
2609         * Fixed leaks found by valgrind
2610
2611         * Make the "make check" programs only bind to 127.0.0.1, not
2612           any public network interfaces. [#609489, Saleem Absulrasool]
2613
2614         * Add a test to sniffing-test to make sure that Content-Type
2615           parameters are preserved correctly. [Gustavo Noronha Silva]
2616
2617 Changes in libsoup from 2.29.90 to 2.29.91:
2618
2619         * Added SOUP_SESSION_SSL_STRICT and
2620           SOUP_MESSAGE_CERTIFICATE_TRUSTED, to allow callers to
2621           determine if an https response comes from a server with a
2622           recognized/valid or unrecognized/invalid certificate.
2623           [#610374, Gustavo Noronha Silva]
2624
2625         * Fixed handling of certain badly-formatted URIs [#590524]
2626
2627 Changes in libsoup from 2.29.6 to 2.29.90:
2628
2629         * Added soup_cookie_jar_set_accept_policy() and related API
2630           for implementing cookie acceptance policies. [#608353, Xan
2631           Lopez]
2632
2633         * Fixed the "request-read" signal in SoupServer to actually be
2634           emitted.
2635
2636 Changes in libsoup from 2.29.5 to 2.29.6:
2637
2638         * Fixed SoupContentDecoder to ignore trailing junk after the
2639           encoded message body (as other browsers do), rather than
2640           getting stuck in an infinite loop. [#606352]
2641
2642         * Fixed an invalid read in soup_cookie_applies_to_uri()
2643           [#607024, pointed out by Xan]
2644
2645         * Fixed linking on OS X [#606959]
2646
2647         * Removed a harmless warning in SoupServer. [#606645]
2648
2649 Changes in libsoup from 2.29.3 to 2.29.5:
2650
2651         * Added SoupContentDecoder, providing support for
2652           Content-Encoding: gzip for WebKitGTK. [#522772]
2653
2654         * Added "accept-language" and "accept-language-auto"
2655           properties to SoupSession, to support the Accept-Language
2656           header. [#597004, Mario Sanchez Prada]
2657
2658         * Fixed a bug in SoupPasswordManagerGNOME that could cause
2659           crashes if you typed the wrong password once and then tried
2660           again. [#595554, debugged by Gustavo Noronha Silva]
2661
2662         * Fixed a crash in SoupAuthDigest if the server claims support
2663           for both qop=auth and qop=auth-int. (This was not noticed
2664           sooner because no one actually supports qop=auth-int, and
2665           the server in question here was probably confused. :)
2666
2667         * Updated cookie parsing/output to more closely match
2668           draft-ietf-httpstate-cookie-00. [Also fixes #603496 (WebKit
2669           unit test), and #604794 (hang parsing malformed Set-Cookie
2670           header)]
2671
2672         * Fixed https-via-proxy to not hang if there is an error
2673           communicating with the proxy immediately after the TLS
2674           negotiation. [#587528]
2675
2676         * Fixed a bug that broke gobject-introspection's introspection
2677           of libsoup. [#603696, Vincent Untz]
2678
2679         * Handle spurious CR/LFs between responses. [#602863,
2680           Alexander V. Butenko]
2681
2682         * Fixed soup-message-client-io to not erroneously include URI
2683           fragments on the Request-Line when sending via a proxy.
2684           [Related to WebKit bug #28687]
2685
2686         * Fixed Digest authentication against certain (buggy?)
2687           clients/servers that require you to use quotes in exactly the
2688           same places where the spec uses them. [#582219]
2689
2690         * Fix ugly gtype-related hack to work with the latest unstable
2691           glib. [Benjamin Otte]
2692
2693 Changes in libsoup from 2.28.1 to 2.29.3:
2694
2695         * Fixed a crash in SoupCookieJarSqlite when using cookie
2696           databases not created by libsoup (eg, upgraded epiphany
2697           installations). [Patch from Emilio Pozuelo Monfort]
2698
2699         * Fixed SoupCookieJar to handle non-http URIs properly (so
2700           that, eg, JavaScript bookmarklets that try to set/read
2701           cookies won't cause crashes). [#602498]
2702
2703         * HEAD requests that receive a "303 See Other" response will
2704           now do a HEAD, not a GET, on the redirected-to resource.
2705           Fixes gvfs access to some sites, including certain
2706           youtube.com URIs. [#600830]
2707
2708         * Fixed a g_warning that would always trigger in the
2709           server-side SoupCookie code. [#602389]
2710
2711         * Fixed the server-side SoupMultipart code to be able to parse
2712           multiparts containing binary attachments, rather than
2713           rejecting them as malformed. [#601640]
2714
2715         * Fixed the Request-Line format in the https-over-proxy case.
2716           Among other things, this fixes access to bugzilla.gnome.org
2717           from WebKitGTK-based browsers. [#598277, #600826]
2718
2719         * Fixed a leak in SoupSession if a message was cancelled while
2720           the initial socket connection was in progress. [#596074,
2721           debugged by Arnout Vandecappelle]
2722
2723         * Fixed server-side parsing of Digest auth. [#602898, Chris
2724           Head]
2725
2726         * Fixed WinSock initialization on Windows. [#600689, Tor
2727           Lillqvist]
2728
2729         * Fixed a sporadic crash in the SSL code on Windows. [#600748,
2730           Tor Lillqvist]
2731
2732         * Fixed handling of https connections with timeouts on
2733           Windows. [#600749, Tor Lillqvist]
2734
2735         * Added soup_session_prepare_for_uri(), to allow DNS
2736           prefetching for faster browsing. [#598948, José Millán Soto]
2737
2738         * SoupSession now avoids redundant DNS lookups again when
2739           first connecting to a new site, resulting in (probably
2740           imperceptibly) faster loads.
2741
2742         * Added some debugging APIs to SoupConnection and SoupSession
2743           for use by, eg, epiphany's soup-fly extension. [#589163,
2744           José Millán Soto]
2745
2746 Changes in libsoup from 2.28.0 to 2.28.1:
2747
2748         * libsoup will now attempt to make multiple connections to a
2749           server at once when there are multiple messages queued to
2750           that server. The previous behavior (only allowing a single
2751           pending connection to each server) resulted in slow load
2752           times on pages with lots of subresources (images, css, js,
2753           etc) on servers that disallow persistent connections.
2754           [#594768]
2755
2756         * There should now be fewer (no?) "Connection terminated
2757           unexpectedly" errors in WebKitGTK.
2758
2759         * Fixed a crash in SoupCookieJarSqlite [#596859, patch from
2760           Alexander Sack].
2761
2762         * Fixed soup_address_get_physical() and address-to-name
2763           resolution of SoupAddress [patch from Enrico Tröger].
2764
2765         * Fixed a bug in SoupContentSniffer that could cause false
2766           negatives [#597545, patch from Alejandro Castro].
2767
2768         * Fixed the configure error if you have gnutls-devel but not
2769           gcrypt-devel installed [#587709].
2770
2771 Changes in libsoup from 2.27.92 to 2.28.0:
2772
2773         * Fixed a handful of leaks found with valgrind, including a
2774           large one in SoupContentSniffer [WebKit bug 28148].
2775
2776         * Changed the behavior of SoupCookieJarSqlite to improve
2777           performance. [#584522, patch from Gustavo Noronha Silva]
2778
2779         * Fixed a crash in SoupSocket that affected gupnp. [#594951,
2780           patch from Olivier Crête]
2781
2782         * Fixed the type of the SOUP_METHOD_* and SOUP_URI_SCHEME_*
2783           macros to be const char * rather than gpointer. [#594508]
2784
2785 Changes in libsoup from 2.27.91 to 2.27.92:
2786
2787         * Removed SoupPasswordManager from the public API until its
2788           problems can be addressed. Although it is still present, you
2789           need to #define a special symbol for it to be visible in the
2790           header files; see #594377 for details.
2791
2792         * Fixed a bug where empty query components were dropped from
2793           URIs. [#594405]
2794
2795         * Fixed "make check" to work (but warn) when building with
2796           --disable-ssl.
2797
2798         * Fixed some small documentation bugs pointed out by Dominik
2799           Bylica and Lucian Langa.
2800
2801 Changes in libsoup from 2.27.90 to 2.27.91:
2802
2803         * Added SoupPasswordManager, an interface for managing
2804           persistent password storage, and SoupPasswordManagerGNOME
2805           (in libsoup-gnome), which implements it using gnome-keyring.
2806           tests/get.c provides a minimal example of how to use it.
2807
2808         * libsoup should now notice when the server closes a
2809           persistent connection, and close its side of the connection
2810           sooner. This should hopefully fix the spurious "Connection
2811           terminated unexpectedly" errors in WebKitGTK. [#578990]
2812
2813         * Fixed some problems with connection management in
2814           SoupSession that could cause a session to eventually "stall"
2815           and be unable to process new requests. [#592084]
2816
2817         * Fixed an infinite loop that caused 100% CPU usage if the
2818           network went down at exactly the right time while there were
2819           unsent messages in the queue. [#592492]
2820
2821         * Fixed a crash in SoupLogger. [#591857]
2822
2823         * Fixed the definition of soup_message_is_keepalive() for
2824           HTTP/1.0 messages, to fix a problem introduced in 2.27.90
2825           where some messages would load completely but never emit
2826           "finished".
2827
2828         * Fixed a crash in SoupServer introduced in 2.27.90 when
2829           processing a request with no "Host" header.
2830
2831 Changes in libsoup from 2.27.5 to 2.27.90:
2832
2833         * libsoup now uses glib's GResolver rather than its own DNS
2834           code. For 2.27.90, the only visible change should be that
2835           internationalized domain names are now supported. [#548287]
2836
2837         * Added soup_message_disable_feature(), which allows you to
2838           disable particular features (eg, cookies, proxy,
2839           content-sniffing, etc) on a per-message basis. [#574773]
2840
2841         * It is now possible to implement "OPTIONS *" in a SoupServer;
2842           you must explicitly register a handler for "*" in order to
2843           do this. [#590751]
2844
2845         * Ignore Content-Length on EOF-terminated responses, to match
2846           other browsers and therefore cope with broken servers that
2847           send the wrong length. [Patch from Benjamin Otte.]
2848
2849         * Fixed the status code when trying to fetch an https URI with
2850           a non-gnutls build of libsoup. [#590464]
2851
2852         * Fixed strict-aliasing warnings introduced in 2.27.4
2853           [#588771]
2854
2855         * Fixed some warnings noted by fortify [#591226] and -Wextra.
2856
2857         * libsoup now uses automake 1.11's silent-rules support by
2858           default (if you are building with automake 1.11). Use
2859           "./configure --disable-silent-rules" or "make V=1" to
2860           disable.
2861
2862 Changes in libsoup from 2.27.4 to 2.27.5:
2863
2864         * Fixed a crash when a web server redirected a request to a
2865           non-http URI (eg, "about:blank"). [#528882]
2866
2867         * Fixed a hang when trying to create an attachment on certain
2868           bugzilla installations from epiphany. [#584645]
2869
2870         * Fixed verification of V1 TLS certificates [#589323, Patrick
2871           Ohly]
2872
2873         * Fixed compile problems on Windows (in the ssl code), and on
2874           Linux (when the most recent version of gtk-doc was
2875           installed).
2876
2877 Changes in libsoup from 2.27.2 to 2.27.4:
2878
2879         * Added SoupContentSniffer and the "content-sniffed" signal on
2880           SoupMessage, to do Content-Type sniffing per the HTML5 /
2881           draft-abarth-mime-sniff algorithm. [#572589, Gustavo Noronha
2882           Silva]
2883
2884         * Updated the earlier SoupSession timeout fixes ([#574414],
2885           [#578928]) so that async connect() also times out [#588177,
2886           Mark Nauwelaerts] and SSL works on Windows again [#587910,
2887           Fridrich Strba].
2888
2889         * Fixed the behavior on a 301 response to a POST to match
2890           real-world usage rather than what the spec says. (We were
2891           doing the right thing on 302 and 303, but had missed 301.)
2892           [#586692]
2893
2894         * Changed configure so that if GNUTLS isn't found then it
2895           errors out, rather than silently building an SSL-less
2896           libsoup. Configure with --disable-ssl if you actually don't
2897           want SSL. [#584955]
2898
2899 Changes in libsoup from 2.27.1 to 2.27.2:
2900
2901         * Replaced SoupProxyResolver with SoupProxyURIResolver, which
2902           is a bit simpler, works with non-HTTP URIs (and so could be
2903           used by gvfsd-ftp) and supports proxy auth correctly.
2904           [#580051]
2905
2906         * Fixed SoupSession to not try to resolve http server
2907           hostnames when it's just going to pass the hostname off to a
2908           proxy server anyway. This fixes things on hosts that use a
2909           proxy for everything and have no working DNS config
2910           [#577532] and also makes WebKitGTK behave more like other
2911           browsers in terms of per-host connection limits (we now
2912           limit connections based on hostname rather than on IP
2913           address).
2914
2915           We also no longer set the AI_CANONNAME flag when calling
2916           getaddrinfo(), which saves us a little bit of unnecessary
2917           network traffic. [Pointed out by Christophe Gillette on the
2918           mailing list.]
2919
2920         * libsoup now always uses SSL 3.0 (not TLS 1.0 or 1.1) for
2921           https URIs, to work around problems with older servers that
2922           don't implement the (apparently quite confusing) TLS/SSL
2923           compatibility rules correctly. Makes a bunch of
2924           previously-inaccessible sites now accessible in WebKitGTK
2925           (notably PayPal) [#581342]. Will eventually be revisited, to
2926           first try TLS 1.1 and fall back if that fails.
2927
2928         * Fixed Digest auth to (recent) Apple CalDAV servers.
2929           [#583091]
2930
2931         * Changed the way the SoupSession "authenticate" signal works
2932           a bit. We now never emit "authenticate" before sending a
2933           request, even if we know for sure that it's going to fail,
2934           because this makes the semantics of the authenticate handler
2935           too complicated (and because we'll only get into this
2936           situation if a previous call to the authenticate handler
2937           failed anyway). Fixes problems in WebKitGTK when you cancel
2938           a password dialog, and then later try to load the page
2939           again. [#583462, mostly figured out by Gustavo Noronha
2940           Silva].
2941
2942         * Fixed a bug in the CRLF-vs-LF patch (#571283) that caused
2943           libsoup to fail to parse the response headers (returning
2944           SOUP_STATUS_MALFORMED) if a CR LF got split across two
2945           read()s. [#582002]
2946
2947         * Allow using PUT in soup_form_request_for_data(), to work
2948           with certain broken web APIs. [#581860, Ross Burton]. Also,
2949           fixed a problem with empty POST bodies that made some parts
2950           of gmail not work in WebKitGTK.
2951
2952         * Applied some minor bugfixes to configure.in and autogen.sh
2953           [#583911, #583942]. Fixed configure.in to not use gcc
2954           warning options that the installed version of gcc doesn't
2955           recognize [#578851].
2956
2957         * Added G_GNUC_NULL_TERMINATED and G_GNUC_PRINTF to a few
2958           methods that should have had them. [#581754, Ross Burton]
2959
2960 Changes in libsoup from 2.26.1 to 2.27.1:
2961
2962         * SOUP_SESSION_TIMEOUT now works properly with
2963           SoupSessionAsync [#574414] and SSL [#578928]. Added
2964           tests/timeout-test to test this.
2965
2966         * SoupDate fixes:
2967
2968                 * soup_date_to_string() now handles SOUP_DATE_RFC2822
2969                   [#579055, Enrico Tröger]
2970
2971                 * soup_date_new_from_string() now accepts 24:00 as a
2972                   time in ISO8601 timestamps
2973
2974                 * soup_date_to_string() now coerces the date to UTC
2975                   for HTTP and cookie dates, and outputs the UTC
2976                   correct offset for the other date types.
2977
2978                 * Added regression tests to tests/date
2979
2980         * soup_headers_parse() now completely ignores
2981           syntactically-incorrect headers, rather than passing them to
2982           soup_message_headers_append() and causing a g_warning.
2983           soup_message_headers_append() now also rejects 0-length
2984           header names. Updated tests/header-parsing to check this.
2985           [#579318]
2986
2987         * Fix a crash when cancelling a message from a "restarted"
2988           handler, and updated a regression test to notice the
2989           underlying cause. [#580193]
2990
2991         * Completing the API updates for #576760 from 2.26.1,
2992           soup_message_headers_get() is now marked deprecated in favor
2993           of soup_message_headers_get_one() and _get_list().
2994
2995 Changes in libsoup from 2.26.0 to 2.26.1:
2996
2997         * libsoup uses libproxy for PAC and WPAD proxy resolution
2998           again. However, it arranges to do all communication with
2999           GConf itself, to ensure that libproxy doesn't call it in
3000           non-thread-safe ways. [#571527] Also, fixed a bug in
3001           SoupSessionSync when proxy resolution failed. [#574957,
3002           patch from Milan Crha].
3003
3004           (Also fixed three SoupProxyResolverGNOME bugs since the
3005           2.26.0.9 preview release. [#578746, #578809])
3006
3007         * SoupURI now handles unencoded spaces in URIs. In particular,
3008           redirects via Location headers with spaces in them now work.
3009           [#566530]
3010
3011         * libsoup can now deal with servers (and clients) that
3012           erroneously use LF LF instead of CR LF CR LF to separate
3013           the headers and body. [#571283]
3014
3015         * Added soup_message_headers_get_one() and
3016           soup_message_headers_get_list(), which will eventually
3017           deprecate soup_message_headers_get(). This lets applications
3018           deal correctly with implementations that erroneously send
3019           multiple copies of single-valued headers. [#576760]
3020
3021         * In particular, soup_message_headers_get_content_type() now
3022           ignores duplicate Content-Type headers [#576760] and also
3023           ignores syntactically-incorrect Content-Type headers.
3024           [#577630]
3025
3026         * SoupCookieJar can now store multiple cookies with the same
3027           domain and name, but different paths. [#577360]
3028
3029         * Abnormal SSL connection closes are now treated as ordinary
3030           EOFs, for compatibility with certain sites. [#577386]
3031
3032         * soup_header_g_string_append_param() now allows NULL values.
3033           [#577728]
3034
3035         * soup_message_headers_append() now rejects header names and
3036           values with newlines or certain other illegal data in them,
3037           rather than generating syntactically invalid headers.
3038
3039         * Fixed a small bug in soup_date_new_from_string's ISO 8601
3040           handling [qv #578369 for g_time_val_from_iso8601].
3041
3042         * The regression tests now work correctly on machines where
3043           "localhost" resolves to "::1" instead of "127.0.0.1".
3044           [#576583, patch from Andreas Rottmann]
3045
3046         * Fixed warnings when a message has a network problem when
3047           many other messages are queued. [#578809]
3048
3049         * Miscellaneous documentation fixes/clarifications.
3050
3051 Changes in libsoup from 2.25.91 to 2.26.0:
3052
3053         * Temporarily disable libproxy support to work around a bug in
3054           its gnome plugin that causes gvfsd-http (and probably
3055           eventually other apps) to crash. [#571527]. For now,
3056           SoupProxyResolverGNOME uses only GConf. To be fixed in
3057           2.26.1
3058
3059         * Fixed a bug that showed up in WebKit, where if many messages
3060           were queued all at once to a server that doesn't support
3061           persistent connections, some of the requests will get lost.
3062           #574365, reported by Xan Lopez.
3063
3064         * Fixed SoupServer to support using SOUP_ENCODING_EOF, so you
3065           can stream responses of unknown length to HTTP/1.0 clients.
3066           [#572153]. Added a regression test for this, and for chunked
3067           and Content-Length-based streaming.
3068
3069         * Fixed several bugs that prevented SoupCookieJarSqlite from
3070           working. [#572409, patch from Xan Lopez]
3071
3072         * Added G_{BEGIN,END}_DECLS guards to public headers that were
3073           missing it. (Xan Lopez)
3074
3075         * Misc gtk-doc improvements
3076
3077 Changes in libsoup from 2.25.5 to 2.25.91:
3078
3079         * Fixed a crash in SoupProxyResolverGNOME when the proxy
3080           requires authentication. (This does not make proxy
3081           authentication *work* yet, it just makes it not crash.)
3082
3083         * Updated documentation
3084
3085 Changes in libsoup from 2.25.4 to 2.25.5:
3086
3087         * SoupProxyResolverGConf (which was incomplete) is gone, and
3088           libsoup-gnome now requires libproxy, which is now officially
3089           an external dependency of GNOME.
3090
3091         * Fixed a bug in SoupCookieJar that was making it send
3092           "Cookie: (null)" when it had no cookies for a site, which
3093           confused some web servers (WebKit bug 23240).
3094
3095         * Fixed a bug with using SOUP_MEMORY_TEMPORARY buffers and
3096           soup_message_body_set_accumulate(FALSE). (Part of WebKit bug
3097           18343, noticed by Gustavo Noronha Silva.)
3098
3099         * Fixed the build with non-gcc compilers
3100
3101 Changes in libsoup from 2.25.3 to 2.25.4:
3102
3103         * Added soup_session_get_feature() and
3104           soup_session_get_features(), to query the features currently
3105           available in a session (which is needed by the patch in
3106           https://bugs.webkit.org/show_bug.cgi?id=22624)
3107
3108 Changes in libsoup from 2.25.2 to 2.25.3:
3109
3110         * Fixed a crash when using both cookies and a proxy. [#562191,
3111           Mark Lee]
3112
3113         * Fixed soup_form_decode() to correctly handle forms with
3114           URI-encoded parameter names [#563302, Evan Nemerson] and
3115           added a regression test.
3116
3117         * Fixed a crash in SoupProxyResolverGConf. [#563145]
3118
3119 Changes in libsoup from 2.25.1 to 2.25.2:
3120
3121         * Fixed client behavior when presented with multiple auth
3122           types to choose the *strongest* auth type (eg, Digest)
3123           rather than the *weakest* one [#562339, Pontus Oldberg].
3124           Added a regression test for this.
3125
3126         * Moved libsoup-gnome headers to a different directory to make
3127           it easier to split libsoup and libsoup-gnome into separate
3128           packages, and to ensure that things that only want to be
3129           looking at plain libsoup headers (like gir-repository) don't
3130           accidentally see the libsoup-gnome ones.
3131
3132         * Some minor doc fixes
3133
3134         * Fixed libsoup-gnome linking with --as-needed. [#559342]
3135
3136 Changes in libsoup from 2.24.1 to 2.25.1:
3137
3138         libsoup 2.25.1 introduces a new library, libsoup-gnome, which
3139         will be used for features which are important to GNOME apps,
3140         but which require GNOME-specific libraries that non-GNOME apps
3141         may not want to add dependencies on.
3142
3143         In 2.25.1, libsoup-gnome contains:
3144
3145             * SOUP_TYPE_PROXY_RESOLVER_GNOME, a SoupSessionFeature
3146               type that can be added to a SoupSession to provide
3147               automatic proxy handling via the GConf proxy keys. (See
3148               below) The default implementation uses libproxy, which
3149               also handles WPAD, PAC, etc, but if libproxy is not
3150               available it will use GConf directly, supporting only
3151               the basic HTTP proxy functionality.
3152
3153             * SoupCookieJarSqlite, a SoupSessionFeature that handles
3154               cookies and stores them in a Firefox 3-compatible sqlite
3155               file. (This is not actually a "GNOME-specific" feature,
3156               but I didn't want to make libsoup itself depend on
3157               sqlite, and I didn't want to make the dependency
3158               optional. This might change before 2.26.)
3159
3160             * SOUP_TYPE_GNOME_FEATURES_2_26: a SoupSessionFeature type
3161               that can be added to a SoupSession to add all
3162               GNOME-integration features that are available for 2.26;
3163               as of 2.25.1, this is just the GNOME proxy resolver, but
3164               by 2.26.0 it may also include gnome-keyring support and
3165               possibly other features.
3166
3167         Applications/libraries that are currently doing GConf proxy
3168         lookup by hand can be updated as follows:
3169
3170             * Remove all of the existing code that listens to the
3171               GConf keys and sets SOUP_SESSION_PROXY_URI
3172
3173             * Change the configure check to require
3174               "libsoup-gnome-2.4 >= 2.25.1" instead of "libsoup-2.4"
3175
3176             * #include <libsoup/soup-gnome.h>
3177
3178             * After creating your SoupSession, do:
3179
3180                   soup_session_add_feature_by_type (session, SOUP_TYPE_PROXY_RESOLVER_GNOME);
3181
3182               (Or alternatively, use SOUP_SESSION_ADD_FEATURE_BY_TYPE
3183               with soup_session_async_new_with_options() or
3184               soup_session_sync_new_with_options().)
3185
3186
3187         Other new features and bug fixes in 2.25.1 include:
3188
3189         * SoupCookieJarText, like SoupCookieJarSqlite, but using the
3190           old-style cookies.txt format, and in the base libsoup rather
3191           than libsoup-gnome.
3192
3193         * Various bugfixes to SoupCookie and SoupCookieJar to fix the
3194           problems with cookies not working on certain sites.
3195
3196         * The new SoupMultipart type provides support for multipart
3197           MIME bodies, and soup-form now includes several methods for
3198           generating and parsing multipart form data and file uploads.
3199
3200         * SoupMessageHeaders now has methods for easy handling of the
3201           Content-Type, Content-Disposition, Range, and Content-Range
3202           headers. The Content-Disposition handling recognizes
3203           RFC2231-encoded UTF-8 filenames.
3204
3205         * SoupServer now automatically handles partial GET requests;
3206           if your server returns SOUP_STATUS_OK in response to a
3207           partial GET, libsoup will automatically convert it to a
3208           SOUP_STATUS_PARTIAL_CONTENT response with only the requested
3209           portions.
3210
3211         Thanks to Xan Lopez and Diego Escalante Urrelo for their work
3212         on SoupCookie, SoupCookieJar, SoupCookieJarText, and
3213         SoupCookieJarSqlite.
3214
3215 Changes in libsoup from 2.24.0.1 to 2.24.1:
3216
3217         * Fixed a crash when unreffing the session from a
3218           soup_session_queue_message() callback [#533473], and added
3219           regression test. In particular, this fixes a crash in
3220           seahorse when trying to connect to a non-responsive
3221           keyserver.
3222
3223         * Fixed an infinite loop when giving a bad password to a site
3224           that uses non-standard capitalization in the
3225           WWW-Authenticate header (eg, gmail.com) [#536285].
3226
3227         * Fixed a leak in SoupSessionAsync when using a non-default
3228           GMainContext. [addendum to #498509, Arnout Vandecappelle]
3229           Added additional code to the regression tests to make sure
3230           sessions and servers do not get leaked.
3231
3232         * Fixed a leak in the XML-RPC code
3233
3234         * Compile fixes for "gcc -pedantic" [#553976, Sander Dijkhuis]
3235           and -DG_DISABLE_DEPRECATED / -DG_DISABLE_SINGLE_INCLUDES
3236           [#557072, Cosimo Cecchi]
3237
3238         * Patched xmlrpc-test to accept the incorrect response to
3239           test_echo() that php-xmlrpc gives when it's built against
3240           libxml2 >= 2.7.1 (qv http://bugs.php.net/45996), so that
3241           I can "make distcheck"...
3242
3243         * Updated generated documentation
3244
3245 Changes in libsoup from 2.23.92 to 2.24.0.1:
3246
3247         * Reverted part of the fix for #528882, which caused the DAAP
3248           plugin in rhythmbox to crash. [#553466]
3249
3250 Changes in libsoup from 2.23.91 to 2.23.92:
3251
3252         * Fixed the handling of a 302 response to a HEAD request,
3253           which should NOT be treated like a 303 response. [#551190,
3254           Jonathan Matthew]
3255
3256 Changes in libsoup from 2.23.6 to 2.23.91:
3257
3258         * Fixed a crash in gvfs [#528882], though there is still an
3259           unknown bug there. As part of this fix, libsoup will now
3260           return an error if you try to do an operation on a non-HTTP
3261           URI. (Previously it was just treating any URI scheme except
3262           "https" as HTTP.)
3263
3264         * Added soup_date_to_timeval() for gvfs. [#549006, patch from
3265           Bastien Nocera]
3266
3267 Changes in libsoup from 2.23.1 to 2.23.6:
3268
3269         * Fixed use of g_idle_add() so that heavy I/O won't end up
3270           blocking libsoup callbacks. [#536676, Benjamin Otte]
3271
3272         * Allow the caller to override the Host header. [#539803, Marc
3273           Maurer]
3274
3275         * Properly handle responses larger than 4G. [#539861, Peter
3276           Christensen]
3277
3278         * Fixed the build when using certain LDFLAGS [#541506, Götz
3279           Waschk]
3280
3281         * Fixed a small bug in Digest auth handling. [#544681, Mads
3282           Chr. Olesen]
3283
3284         * Fixed multiple Windows bugs [Tor Lillqvist]
3285
3286 Changes in libsoup from 2.4.1 to 2.23.1:
3287
3288         * This is the first unstable release leading up to GNOME 2.24.
3289           Bumped the libsoup version number up to 2.23.x to match the
3290           GNOME version; note that the API version is still "2.4",
3291           meaning in particular that you still call it "libsoup-2.4"
3292           when using pkg-config.
3293
3294         * Added SoupSessionFeature, an interface type that will be
3295           used for several new features. Ported SoupLogger and
3296           SoupAuthManager to use it.
3297
3298         * Added SoupCookie and SoupCookieJar. This API is already
3299           being used in Epiphany, via WebKit, but it is not yet
3300           complete.
3301
3302         * Fixed GnuTLS support on Win32. [#528752, Marc Maurer]
3303
3304 Changes in libsoup from 2.4.0 to 2.4.1:
3305
3306         * Fixed SoupMessage to not downgrade to HTTP/1.0 for the
3307           second attempt when it receives an HTTP/1.0 redirect or 401.
3308           [#521848, Tommu Komulainen]
3309
3310         * Fixed Host: header syntax when the host is an IPv6 address
3311           literal.
3312
3313         * Fixed SoupSession to not emit "authenticate" multiple times
3314           for messages that have been requeued. [#522601, Tommi
3315           Komulainen]. Also added two new signals to SoupSession,
3316           request-queued and request-unqueued, to help simplify
3317           certain session-helpers and avoid bugs like this in the
3318           future.
3319
3320         * Fixed soup_server_pause_message() to actually work (rather
3321           than *un*pausing the message).
3322
3323         * Added a property SOUP_SESSION_IDLE_TIMEOUT that can be used
3324           to set a timeout after which idle connections will
3325           automatically be closed. [#518214, Jorn Baayen]
3326
3327         * Implemented RFC 2069-style Digest auth, and fixed SoupAuth
3328           to compare auth scheme names case-insensitively, to fix
3329           authentication against Apple's calendar server. [#498484]
3330
3331         * Fixed a crash in SoupAuthDomainDigest if the client provided
3332           an unrecognized username. [pointed out by Curtis Magyar on
3333           IRC]
3334
3335         * Fixed a few SoupDate bugs. (In particular, it was outputting
3336           the wrong day of the week when stringifying dates.)
3337
3338         * Improved the cleanup of idle connections, to fix slow load
3339           times with the libsoup backend of WebKit.
3340
3341         * Added a new SoupMessage signal "wrote-body-data" that can be
3342           used for progress information when sending a large request
3343           body. Also allow providing the request body in multiple
3344           chunks even when using Content-Length encoding. [#525101,
3345           Christian Kellner]
3346
3347         * libsoup now ignores SIGPIPE globally, instead of
3348           un-thread-safe-ly ignoring it only around network writes. In
3349           particular, this means it is ignored when the SSL code needs
3350           to unexpectedly do a write when we asked it to do a read.
3351           [#524397, Curtis Magyar]
3352
3353         * The discard-body-chunks-once-they're-no-longer-needed
3354           behavior, confusingly called SOUP_MESSAGE_OVERWRITE_CHUNKS,
3355           is now controlled by a SoupMessageBody method
3356           (soup_message_body_set_accumulate()), and can be applied to
3357           either the request body or the response body.
3358           (OVERWRITE_CHUNKS is still available for backward
3359           compatibility.) [#522146, Christian Kellner]
3360
3361         * The DNS cache no longer caches "no such host" results, since
3362           some name servers lie to clients outside their firewall,
3363           which could then cause problems for laptops moved between
3364           networks. [#523269, Jörgen Scheibengruber]
3365
3366         * Added some new regression tests, fixed some small bugs in
3367           the existing ones.
3368
3369 Changes in libsoup from 2.3.4 to 2.4.0:
3370
3371         * Fixed a small memory leak in SoupSession. [#518798, Wouter
3372           Cloetens]
3373
3374         * Minor fixes to redirect behavior; PROPFINDs can now be
3375           automatically redirected (pointed out by Christian Kellner),
3376           and 302 is treated like 307, not 303. Also fixed to make
3377           sure that redirect-test actually gets run by "make check".
3378
3379         * The SoupSocket I/O methods now set nread/nwrote even on
3380           error. [Benjamin Otte]
3381
3382 Changes in libsoup from 2.3.2 to 2.3.4:
3383
3384         * The documentation should be accessible from devhelp again
3385           [#518384, Mart Raudsepp]. (Also fixed another
3386           documentation-generation bug that affected builds from svn,
3387           but not the 2.3.2 tarball for some reason. [#518317,
3388           Benjamin Otte].)
3389
3390         * Fixed dependencies in libsoup-2.4.pc file [#517631,
3391           Sebastian Dröge]
3392
3393 Changes in libsoup from 2.3.0.1 to 2.3.2:
3394
3395         API changes / Behavior changes:
3396
3397         * soup_server_add_auth_domain() now refs the auth domain when
3398           adding it. (soup_server_remove_auth_domain() already
3399           unreffed it.) This means existing applications using
3400           SoupAuthDomain will now have a small memory leak. Those
3401           applications should update their libsoup-2.4 requirement to
3402           ">= 2.3.2" at some point before the final GNOME 2.22.0
3403           release, and then fix the code to unref the auth domain
3404           after adding it to the server.
3405
3406         * SoupSession's automatic redirect-handling behavior now obeys
3407           RFC 2616 more closely. In particular, status codes 300 and
3408           304 are no longer mistakenly considered redirects; POSTs
3409           that receive 303 are now redirected into GETs; and POSTs
3410           that receive 301, 302, or 307 are now not redirected.
3411
3412           Applications that were using the SOUP_MESSAGE_NO_REDIRECT
3413           flag to prevent libsoup from redirecting POSTs incorrectly
3414           before should now be able to remove that if they depend on
3415           libsoup-2.4 >= 2.3.2.
3416
3417         API additions:
3418
3419         * Added a SOUP_SESSION_USER_AGENT property to SoupSession, and
3420           SOUP_SERVER_SERVER_HEADER to SoupServer, to support
3421           automatically adding "User-Agent" and "Server" headers to
3422           messages. (The default behavior is to do nothing, as
3423           before.)
3424
3425         * Added several new methods to soup-forms.h. Applications that
3426           are encoding a fixed set of form fields can now just pass
3427           them to soup_form_encode(), rather than needing to construct
3428           a GHashTable or GData list. (Likewise, the new
3429           soup_uri_set_query_from_fields() behaves similarly for
3430           directly updating a URI with form data.) There are also now
3431           soup_form_request_new() and other related methods, to
3432           directly create a GET or POST SoupMessage for submitting a
3433           form query.
3434
3435           The original soup_form_* methods have all been renamed,
3436           although #defines exist for backward compatibility.
3437
3438         * Added soup_message_set_chunk_allocator() and
3439           soup_buffer_new_with_owner(), to give applications more
3440           control over memory usage/copying when doing streaming HTTP.
3441           [Wouter Cloetens, #513810].
3442
3443         * Added several new methods to soup-value-utils.h for working
3444           with multiple array or hash table values at once:
3445           soup_value_hash_new_with_vals(),
3446           soup_value_hash_insert_vals(),
3447           soup_value_hash_lookup_vals(),
3448           soup_value_array_new_with_vals(), and
3449           soup_value_array_append_vals().
3450
3451           This helps to simplify XML-RPC calls that send or receive
3452           structs or arrays.
3453
3454         * Added soup_date_to_time_t().
3455
3456         * Added SoupMessageHeadersIterator, an iterator type for
3457           SoupMessageHeaders that can be used instead of
3458           soup_message_headers_foreach().
3459
3460         Bug fixes:
3461
3462         * Fixed a crash-when-idle in evolution-exchange [#437835] and
3463           rhythmbox [#506552].
3464
3465         * Added the API version to the gtk-doc installation dir, to
3466           prevent parallel-installation problems with libsoup 2.2 and
3467           2.4. [#512810, Daniel Gryniewicz].
3468
3469         * Fixed tests/query-test to compile correctly on Solaris.
3470           [#513602, patch from Jeff Cai]
3471
3472         * Fixed some other minor HTTP conformance issues.
3473
3474         Python bindings:
3475
3476         * Although not present in the release tarball, there are now
3477           experimental python bindings for libsoup in GNOME subversion
3478           (in the python/ subdirectory of libsoup trunk). These are
3479           not yet stable (and are not built by default or installed
3480           even when building from svn), but comments on them are
3481           welcome at libsoup-list@gnome.org
3482
3483 Changes in libsoup from the 2.2 series to 2.3.0.1:
3484
3485         libsoup 2.3.0 is the first beta release of the libsoup 2.4
3486         series. It is an API break from the earlier 2.2 series that
3487         fixes various bugs and API warts and lays the groundwork for
3488         language bindings and various new features in upcoming
3489         releases.
3490
3491         (2.3.0.1 is identical to the 2.3.0 release in terms of code,
3492         but includes this updated NEWS file which was accidentally
3493         left out of the 2.3.0 tarball.)
3494
3495         http://library.gnome.org/devel/libsoup/unstable/libsoup-porting-2.2-2.4.html
3496         goes over the API changes in detail. If you have questions not
3497         answered by the porting document, please send mail to
3498         libsoup-list@gnome.org.
3499
3500         Specific user-reported bugs fixed in this release:
3501
3502         * SoupURI now correctly handles URIs with complex encoded
3503           queries [#266516, Jean-Yves Lefort]
3504
3505         * It is now possible for a SoupServer to use Digest auth
3506           without needing to have the cleartext password available.
3507           [#347108, Anas Nashif]
3508
3509         * Digest authentication now properly handles "stale=true" and
3510           "nextnonce=..." [#471380, Jari Urpalainen]
3511
3512         * SoupServer is now subclassible [#491653, Mathias Hasselmann]
3513
3514         * soup_server_run_async and soup_server_quit no longer ref and
3515           unref the server, as that doesn't match ordinary GObject
3516           conventions [#494128, Mathias Hasselmann]
3517
3518         * The test programs no longer use a symbol name that conflicts
3519           with Cygwin [#501631, Cygwin Ports Maintainer]
3520
3521         * libsoup can now handle the not-quite-HTTP responses returned
3522           by Shoutcast servers [#502325, Wouter Cloetens]
3523
3524         * If you use libsoup while disconnected from the network, it
3525           no longer caches the failed DNS results [#508593, Bradley
3526           Worley]
3527
3528         Items from http://live.gnome.org/LibSoup/ToDo fixed:
3529
3530         * "Expect: 100-continue" processing now works correctly on
3531           both client and server.
3532
3533         * SoupSessions are no longer leaked
3534
3535         * The XML-RPC API is improved. The SOAP API is gone...
3536
3537         * Added utility functions for HTML form handling
3538
3539         * Improved message header handling
3540
3541         * SoupServer now automatically adds a "Date" header
3542
3543 ==========
3544
3545 Changes in libsoup from 2.2.103 to 2.2.104:
3546
3547         * soup_message_io_pause() and soup_message_io_pause() are now
3548           allowed for client messages (and in particular, they don't
3549           mess up when called from the "got_chunk" callback).
3550           [#452280, Marco Barisione]
3551
3552         * Fixed some bugs in SOUP_SESSION_ASYNC_CONTEXT support that
3553           would cause parts of an operation to run in the default
3554           context rather than the session's context. Also fixed some
3555           leaks and added a regression test. [#498509, Wouter
3556           Cloetens]
3557
3558         * There is a new test/sample program, tests/pull-api.c,
3559           showing how to implement a pull API using SoupSessionAsync.
3560           (This depends on the fixes for #452280 and #498509, so it
3561           won't work with older versions of libsoup.)
3562
3563         * Discovered "valgrind --leak-resolution=med" and fixed some
3564           more memory leaks.
3565
3566 Changes in libsoup from 2.2.102 to 2.2.103:
3567
3568         * Fix memory corruption in SoupSessionAsync that caused
3569           rhythmbox to crash. [#484988, patch from Rob Bradford]
3570
3571         * Fix socket refcounting in SoupServer to fix warnings /
3572           possible crash. [#459896, Emanuele Aina]
3573
3574 Changes in libsoup from 2.2.101 to 2.2.102:
3575
3576         * Unbreak the build when building without SSL. Not that you
3577           should be building without SSL anyway, but... (reported by
3578           guenther).
3579
3580 Changes in libsoup from 2.2.100 to 2.2.101:
3581
3582         * Fix build on cygwin [384498]
3583
3584         * Fix SSL rehandshaking on synchronous sockets [415402, Jacob
3585           Berkman] and add a regression test for it.
3586
3587         * Fix two bugs in https tunnels over proxies that require
3588           authentication (noticed by Varadhan), and add a regression
3589           test for them.
3590
3591         * Ensure that if you queue multiple messages at once to an
3592           http server that requires authentication but that you
3593           haven't authenticated to yet, that all of the messages get
3594           properly authenticated [271540, James Willcox]. And add a
3595           regression test for it.
3596
3597         * Fix NTLM authentication, which got broken by the previous
3598           fix. [471389, Varadhan]. Add a basic NTLM regression test
3599           that doesn't really test the crypto/encoding parts, but at
3600           least makes sure that the message flow is correct.
3601
3602         * Allow trailing whitespace after HTTP version in
3603           Response-Line, for compatibility with broken servers
3604           [475169, Stephane Loeuillet]. Add that case to the
3605           header-parsing regression test.
3606
3607         * Fix crash when the session's "authenticate" handler returns
3608           a username and no password when using NTLM. [480987, Wendell
3609           MacKenzie]
3610
3611         * Use "new" glib base64 and iso8601 methods rather than
3612           duplicating them. [337010, patch from Emmanuele Bassi].
3613
3614         * Implement soup_session_queue_message() for SoupSessionSync.
3615
3616         * Add G_BEGIN_DECLS / G_END_DECLS to all headers that were
3617           missing them. [438776, patch from Jonathon Jongsma].
3618
3619         * Fix broken definition of SOUP_IS_MESSAGE_FILTER_CLASS. Noted
3620           by "cascardo" on libsoup-list.
3621
3622         * Remove documentation of non-public MD5 methods [440092,
3623           Jonathon Jongsma]. Removed a mysterious half-sentence in the
3624           SoupMessage docs [458116, Marco Barisione].
3625
3626 Changes in libsoup from 2.2.99 to 2.2.100:
3627
3628         * Fixed soup_headers_parse_status_line() so WebDAV response
3629           parsing will work again. [406997]
3630
3631         * Fixed a bug in the header-parsing regression test that
3632           caused the test to fail sometimes, even though the actual
3633           header-parsing code was fine.
3634
3635 Changes in libsoup from 2.2.98 to 2.2.99:
3636
3637         * Fixed header parsing, including a crash in SoupServer with
3638           certain malformed requests [391970].
3639
3640         * Fixed redirection to other hosts with SoupSessionAsync.
3641           [382251]
3642
3643         * Fixed a small memory leak pointed out by Chris Austin.
3644
3645 Changes in libsoup from 2.2.97 to 2.2.98:
3646
3647         * The XML-RPC code now correctly interprets <value>foo</value>
3648           as meaning the same thing as
3649           <value><string>foo</string></value>. [364490] Pointed out by
3650           Todd Kulesza.
3651
3652         * Memory leak fixes from Andrew W. Nosenko.
3653
3654         * A few symbols that should have been static before now are.
3655           [376387] Patch from Matthias Clasen.
3656
3657 Changes in libsoup from 2.2.96 to 2.2.97:
3658
3659         * Fixed SOAP and XML-RPC code to handle whitespace and
3660           comments in the XML better. (Based on a patch from Andrew W.
3661           Nosenko.)
3662
3663         * Fixed lots of typecasting/constness warnings in the code
3664           (mostly via a patch from Andrew W. Nosenko)
3665
3666         * Fixed build on Cygwin [321827]
3667
3668         * Fixed libsoup-2.2.pc fields [343340] and make it get
3669           uninstalled correctly [356809]. (Mikhail Zabaluev and
3670           Matthew Barnes)
3671
3672         * Fixed some small leaks in SoupServer pointed out by Paolo
3673           Borelli. [351500]
3674
3675 Changes in libsoup from 2.2.95.1 to 2.2.96:
3676
3677         * SoupServer now works even if you don't explicitly set an
3678           encoding for the response. (In particular, the automatic 404
3679           if you request a path with no handlers now works. Problem
3680           pointed out by Dennis Jacobfeuerborn.)
3681
3682         * WWW-Authenticate and Proxy-Authenticate responses with no
3683           realm parameter are now ignored, as per RFC 2617, fixing a
3684           crash pointed out by Nate Nielsen.
3685
3686         * Added soup_xmlrpc_message_from_string(), from Fernando
3687           Herrera [348532].
3688
3689         * simple-httpd and "get" now support HEAD
3690
3691 Changes in libsoup from 2.2.94 to 2.2.95.1:
3692
3693         * Even more fixes to XML-RPC, found by the new XML-RPC
3694           regression test. This includes some API changes that I don't
3695           feel guilty about, because the code totally didn't work at
3696           all before.
3697
3698         * Fixed a bug in soup_mktime_utc()
3699
3700         * (2.2.95 was identical to 2.2.95.1. The only difference is
3701           that the shared library version was belatedly bumped from
3702           8.2.0 to 8.3.0 to reflect the API "additions")
3703
3704 Changes in libsoup from 2.2.93 to 2.2.94:
3705
3706         * Various fixes to the XML-RPC code (which apparently had not
3707           actually ever worked before) from Brent Smith. [343973,
3708           344222, 344458]
3709
3710         * Added client and server API tutorials to the docs
3711
3712         * auth-test now uses a local Apache 2.2 install, if possible,
3713           rather than depending on files that used to be on an old
3714           Ximian web server but haven't been anywhere for a long time.
3715           [311825]
3716
3717 Changes in libsoup from 2.2.92 to 2.2.93:
3718
3719         * Fixed outgoing data corruption caused when SoupServer
3720           started writing out a response a second time after already
3721           having started once. [334469]. Also fixed 342640 and another
3722           bug caused by the workaround for 334469 in 2.2.92. Based on
3723           patches and analysis from William Jon McCann and Armin
3724           Bauer.
3725
3726         * Fixed a deadlock when changing a session's proxy URI.
3727           [309867 / bnc 174255, based on a patch by Veerapuram
3728           Varadhan].
3729
3730         * Fixed https-via-proxies in the synchronous case. [bnc 174255]
3731
3732         * Fixed a crash in evolution-exchange [342545, fix based on an
3733           analysis by Wang Xin].
3734
3735         * Fixed simple-proxy to not crash at startup. Oops. (Alex
3736           Larsson)
3737
3738 Changes in libsoup from 2.2.91 to 2.2.92:
3739
3740         * Fixed server-side digest auth to return a valid "algorithm"
3741           value and client-side to not crash if it sees an invalid one
3742           [328615].
3743
3744         * Fixed the Request-Line parsing code to not hardcode a
3745           maximum URI length (to allow very long DAAP requests from
3746           iTunes in Rhythmbox). [335040]
3747
3748         * Fixed some warnings (signed/unsigned mismatch).
3749
3750 Changes in libsoup from 2.2.7 to 2.2.91:
3751
3752         * (The large version number bump is because there was an
3753           internal 2.2.90 release for SUSE 10.1 alphas, which was
3754           supposed to be intermediate between 2.2.7 and 2.4.0. But
3755           2.4.0 didn't end up happening, and I don't want to regress
3756           the version number at this point.)
3757
3758         * SoupSession, SoupServer, SoupConnection, SoupSocket, and
3759           SoupAddress now have an "async-context" property that allows
3760           you to use the async API in a non-default GMainContext.
3761           [Based on patches from Armin Bauer and Jürg Billeter.]
3762
3763         * SoupSession, SoupConnection, and SoupSocket now have a
3764           "timeout" property to stop synchronous sockets from hanging
3765           forever if the remote end is unresponsive (from Varadhan).
3766
3767         * Fixed some bugs in soup_date_iso8601_parse(). [324671, from
3768           Emmanuele Bassi]
3769
3770         * More Windows build fixes from Tor.
3771
3772 Changes in libsoup from 2.2.6.1 to 2.2.7:
3773
3774         * Fixed a crash when using NTLM connections [316313, probably
3775           also 318252]. (Also 321208, which was a bug introduced in
3776           the original fix for 316313.)
3777
3778         * Fixed a bug that could cause soup to suck up all available
3779           CPU when a connection to a SoupServer was dropped by the
3780           other side [319305, patch from Jonathan Matthew]
3781
3782         * Fixed the creation of struct elements in XMLRPC messages
3783           [321362, patch from Sebastian Bauer]
3784
3785         * Plugged a small memory leak in SoupSocket (from Wang Xin).
3786
3787         * Fixed two compile problems, a gccism [320349, patch from
3788           Roland Illig], and a strict-aliasing warning from gcc 4.1.
3789
3790 Changes in libsoup from 2.2.6 to 2.2.6.1:
3791
3792         * Fixed a crash when using SoupSoapMessage
3793
3794 Changes from 2.2.5 to 2.2.6:
3795
3796         * Fixed a crash when canceling a message (from Tambet Ingo)
3797
3798         * Fixed a bug where a connection could be leaked forever in
3799           some circumstances if a request got a 30x, 401, or 407
3800           response, eventually causing a hang when the session hit its
3801           maximum connection limit. (Dan/Tambet)
3802
3803         * Fixed a memory leak. (Tambet)
3804
3805         * Fixed a bug that would sometimes show up when connecting to
3806           a server on localhost [#312540]
3807
3808         * Added some API to SoupServer and SoupSocket to help fix a
3809           long-standing rcd bug.
3810
3811 Changes from 2.2.4 to 2.2.5:
3812
3813         * Win32 support (from Tor Lillqvist)
3814
3815         * Up-to-date API documentation pretty much everywhere
3816
3817         * Basic XMLRPC support (from Mariano Suarez-Alvarez, Fernando
3818           Herrera, and Jeff Bailey)
3819
3820         * New HTTP timestamp-manipulation methods soup_date_parse,
3821           soup_date_generate, and soup_date_iso8601_parse.
3822
3823         * SoupSession now handles relative URLs in the Location header
3824           (in violation of RFC 2616, but in line with how some servers
3825           behave.) [270688]
3826
3827 Changes from 2.2.3 to 2.2.4:
3828
3829         * Fixed a problem with NTLM authentication against
3830           multi-domain servers. [306877]
3831
3832         * Fixed DNS lookups on Solaris. [254551, 268389]
3833
3834 Changes from 2.2.2 to 2.2.3:
3835
3836         * Now compiles against gnutls 1.2.0 [257811]
3837
3838         * Fixed a bug that could result in 100% CPU usage if an SSL
3839           server closed the connection uncleanly. [273352]
3840
3841 Changes from 2.2.1 to 2.2.2:
3842
3843         * The SSL validation fix from 2.2.1 [264414] is now completely
3844           fixed. (Part of the fix didn't actually make it into 2.2.1)
3845
3846         * HTTPS certificate validation now works when using an HTTP
3847           proxy. [268583]
3848
3849         * HTTP proxy code deals better with proxies that try to make
3850           the user do HTML-form-based authentication. [268531]
3851
3852         * 64-bit fixes for NTLM auth code. [270323, from Michael
3853           Zucchi]
3854
3855 Changes from 2.2.0 to 2.2.1:
3856
3857         * Updated for a libgcrypt API change between 1.1.9x and 1.2.x
3858           that caused a crash at runtime if you compiled against
3859           1.2.x. [266342]
3860
3861         * SSL certificate validation failure should now always result
3862           in a status of SOUP_STATUS_SSL_FAILED, rather than getting
3863           turned into SOUP_STATUS_IO_ERROR. [264414]
3864
3865
3866 Changes in libsoup from the 2.0 series (1.99.x versions) to 2.2:
3867
3868         * Most of the libsoup datatypes are now GObjects. (SoupUri
3869           is currently an exception to this.)
3870
3871                 * SoupMessage now emits signals at various stages of
3872                   processing. (Eg, "wrote_body", "got_headers".) (You
3873                   can also still use soup_message_add_*handler().)
3874
3875         * SoupContexts are gone; soup_message_new() now takes a URI
3876           string.
3877
3878         * All formerly global state is now maintained by the
3879           SoupSession object. (This includes the connection pool,
3880           proxy server, cached authentication information, SSL
3881           certificates, etc.)
3882
3883                 * You can create a SoupSessionAsync (for 2.0-like
3884                   behavior) or SoupSessionSync (for blocking,
3885                   synchronous usage).
3886
3887                 * You can add SoupMessageFilter objects to a session
3888                   to have certain processing automatically performed
3889                   on every message sent via that session. (Eg, setting
3890                   up handlers.)
3891
3892                 * NTLM authentication is no longer supported by
3893                   default. You must enable it by setting the
3894                   SOUP_SESSION_USE_NTLM flag on the session.
3895
3896                 * The preferred method of handling authentication is
3897                   now via the "authenticate" and "reauthenticate"
3898                   signals on SoupSession. (The old style, of encoding
3899                   the user and password information into the url is
3900                   also still supported.)
3901
3902         * The SOUP_ERROR_* values are now SOUP_STATUS_* (so that we
3903           don't have "SOUP_ERROR_OK" and the like).
3904
3905                 * SOUP_MESSAGE_IS_ERROR() is gone, since some cases
3906                   want to include 3xx responses and some don't.
3907
3908                 * SOUP_ERROR_CANT_AUTHENTICATE and
3909                   SOUP_ERROR_CANT_AUTHENTICATE_PROXY are now gone,
3910                   since they didn't carry any information that
3911                   SOUP_STATUS_UNAUTHORIZED and
3912                   SOUP_STATUS_PROXY_UNAUTHORIZED don't.
3913
3914                 * DNS errors now show up as the new status code
3915                   SOUP_STATUS_CANT_RESOLVE rather than being mixed in
3916                   with SOUP_ERROR_CANT_CONNECT.
3917
3918         * Minimal SOAP support has been added back, via
3919           SoupSoapMessage/SoupSoapResponse
3920
3921         * The HTTP I/O state machine was completely rewritten, fixing
3922           numerous crashes, leaks, and protocol errors.
3923
3924         * SoupUri now conforms to RFC 2396. Mostly.
3925
3926         * Various test programs have been added under tests/
3927
3928         * Removed:
3929
3930                 * Support for OpenSSL (which was horribly buggy) and
3931                   Mozilla NSS (which was never finished). We only
3932                   support GNUTLS for SSL now.
3933
3934                 * SOCKS support
3935
3936                 * CGI support in SoupServer