1 Changes in libsoup from 2.71.1 to 2.72.0:
3 * Fix critical after cancelling a message that failed auth [Carlos Garcia Campos]
5 * Updated translations: Portuguese, Latvian, Italian, German, Hungarian
7 Changes in libsoup from 2.71.0 to 2.71.1:
9 * Add support for 308 Premanent Redirect [Benjamin Kaufmann]
11 * Add basic sysprof profiling for HTTP messages [Philip Withnall]
13 * Various build fixes [Tom Schoonjans, Chun-wei Fan]
15 * Updated translations: Korean, Finnish, Czech, Catalan, Croatian, Slovenian,
16 Japanese, Serbian, Galician, Basque, Trukish, Indonesian,
19 Changes in libsoup from 2.70.0 to 2.71.0:
21 * Redesign directory list returned for `file://` requests [Jan-Michael Brummer]
23 * Add `SOUP_COOKIE_JAR_ACCEPT_GRANDFATHERED_THIRD_PARTY` policy [Carlos Garcia Campos]
25 * Add soup_message_is_feature_disabled() API [Carlos Garcia Campos]
27 * Fix potential leak when setting SoupSession:tls-interaction [Scott Hutton]
29 * Fix building with Visual Studio [Chun-wei Fan]
31 * Updated translations: Ukrainian, Romanian, Swedish, Polish, Lithuanian, Spanish,
32 French, Chinese (China)
34 Changes in libsoup from 2.69.90 to 2.70.0:
36 * Deprecate SoupSession:proxy-uri [Patrick Griffis]
38 * Update translations: Persian, Finnish, Ukrainian
40 Changes in libsoup from 2.68.3 to 2.69.90:
42 * Add new API to expose support for same-site cookies [Patrick Griffis]
44 * Fix TRACE method not being considered safe and idempotent internally [Patrick
47 * WebSockets: ensure a new connection is created for WebSocket requests [Carlos
50 * WebSockets: do not start the input source when IO is closing [Carlos Garcia
53 * Deprecate soup_date_to_timeval() [Claudio Saavedra]
55 * build: Update glib requirement to 2.58 [Xavier Claessens]
57 * Updated translations: Malay [Umarzuki Mochlis]
59 Changes in libsoup from 2.68.2 to 2.68.3:
61 * Fixes to testing infrastructure [Simon McVittie]
63 * Enable GNOME support in mingw [Fabiano Fidêncio]
65 * Allow introspection in cross builds [Ross Burton]
67 * Updated translations: Chinese (Taiwan)
69 Changes in libsoup from 2.68.1 to 2.68.2:
71 * Documentation fixes [Sonny Piers]
73 * Windows compatibility test fixes [Ignacio Casal Quinteiro]
75 * WebSockets: client_max_window_bits in server must have a value [Carlos Garcia Campos]
77 * build: improve diagnostics when detecting Apache [Simon McVittie]
79 * NTLM: Make v2 authentication more robust [Claudio Saavedra]
81 * Updated translations: British English, Chinese (Taiwan), Danish, Dutch
83 Changes in libsoup from 2.68.0 to 2.68.1:
85 * Several memory leaks fixed in tests, examples, and parsing code [Claudio Saavedra]
87 * SoupServer: Fixes to Windows path handling [Ignacio Casal Quinteiro]
89 Changes in libsoup from 2.67.93 to 2.68.0:
91 * Updated translations: Brazilian Portuguese, Croatian,
92 Friulian, Italian, Turkish
94 Changes in libsoup from 2.67.92 to 2.67.93:
96 * SoupMessage: Handle Transfer-Encoding: identity for
97 compatibility reasons [#148, Thomas Bluemel, Normen Bolling]
99 * WebSockets: Only poll IO stream when needed [Carlos Garcia
102 * WebSockets: Properly set cookies received during handshake
103 [Carlos Garcia Campos]
105 * WebSockets: Plug a couple of memory leaks and fix a few
106 read-after-free memory errors [Claudio Saavedra]
108 * WebSockets: document how web socket extensions should treat
109 buffers in case of error [Claudio Saavedrə]
111 * SoupSession: Don't reset user GCancellable internally [Tom
114 * Tests: Make tests installable [Simon McVittie]
116 * Remove deprecate GTimeVal internal usage [Claudio Saavedra]
118 * CI: increase coverage by enabling all features during
119 testing [Claudio Saavedra]
121 * Updated translations: Korean, German, Galician, Hungarian,
122 Slovenian, Latvian, Finnish, Serbian, Catalan, Polish
124 Changes in libsoup from 2.67.91 to 2.67.92:
126 * Silence GTimeVal deprecation warnings. [Michael Catanzaro]
128 * API documentation and annotation fixes [Дилян Палаузов, Claudio Saavedra]
130 * Plug a couple of NTLM authentication memory leaks [#156, Claudio Saavedra]
132 * Fix build in SmartOS/SunOS [#157, Juraj Lutter]
134 * Meson: Use feature options [Xavier Claessens]
136 * Meson: Do not fallback to system krb5-config for cross-compilation
139 * NTLM: Fix build with NTLM enabled [Claudio Saavedra]
141 * Updated translations: Basque, Czech, Indonesian, Lithuanian, Swedish
143 Changes in libsoup from 2.67.90 to 2.67.91:
145 * HSTS: New API to retrieve information about existing HSTS policies
148 * Updated translations: French, Romanian, Spanish
150 Changes in libsoup from 2.67.3 to 2.67.90a:
152 * WebSockets: add support for WebSocket extensions via new
153 SoupWebsocketExtensionManager and SoupWebsocketExtension API
154 [Carlos Garcia Campos]
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]
160 * WebSockets: Allow sending close frames with no body [Carlos Garcia Campos]
162 * WebSockets: ignore messages after close has been sent and received [Carlos Garcia Campos]
164 * Meson: tls-check improved [Xavier Claessens]
166 * Meson: improve Apache checks [Claudio Saavedra]
168 Changes in libsoup from 2.67.2 to 2.67.3:
170 * WebSockets: allow sending empty binary data [Carlos Garcia Campos]
172 * WebSockets: fail and load the connection on invalid payload length [Carlos Garcia Campos]
174 * WebSockets: allow NULL characters in text messages data [Carlos Garcia Campos]
176 * WebSockets: Close connection on wrongly masked/unmasked frame as per RFC [Carlos Garcia Campos]
178 * WebSockets: other code fixes [Carlos Garcia Campos]
180 * NTLM: Fix NTLMv2 authentication [Thibaut Robert]
182 * SoupMessage: fix several deprecation warnings related to private data [Claudio Saavedra]
184 Changes in libsoup from 2.67.1 to 2.67.2:
186 * gobject-introspection: Fix annotation for soup_auth_new()
189 * brotli: Do not advertise the decoder as it's failing with
190 some websites [Patrick Griffis]
192 * Meson: Fix xml2 and sqlite fallbacks [Xavier Claessens]
194 * HSTS: Add SoupHSTSEnforcer:hsts-enforced signal [Claudio
197 * HSTS: Fixes to the types used to store policies in the
198 SQLite storage [Claudio Saavedra]
200 * HSTS: Accept Strict-Transport-Security regardless of casing
203 * WebSockets: Ensure messages finishes when handshake fails
204 [Carlos Garcia Campos]
206 * WebSockets: Fix critical warnings and test failures [Carlos
209 Changes in libsoup from 2.66.2 to 2.67.1:
211 * Add a brotli decoder. This adds a new dependency on libbrotli
214 * Add strict secure cookies support [Patrick Griffis]
216 * Add HSTS enforcer SoupSession feature (with both memory
217 and sqlite backends) [Adrien Plazas, Claudio Saavedra]
219 * meson gtk-doc documentation fixes [Claudio Saavedra]
221 * Bump the CI test image to Fedora 30 and add libbrotli
222 dependency [Claudio Saavedra]
224 Changes in libsoup from 2.66.1 to 2.66.2:
226 * Make gettext optional (might not be available in Windows)
229 * MSVC: set encoding to UTF-8 to avoid errors [Seungha Yang]
231 * MinGW tests build fix [Tomas Popela]
233 * Check for TLS support only when external glib dependency is available
236 Changes in libsoup from 2.66.0 to 2.66.1:
238 * Fix dylib versioning in MacOS [Tom Schoonjans]
240 * Visual Studio build fixes [Chun-wei Fan]
242 * MinGW build fixes [Руслан Ижбулатов]
244 * Meson build system improvements [Claudio Saavedra, Jakub Adam]
246 * Fix random CI failures due to parallel apache tests [Claudio Saavedra]
248 * Code cleanups [Claudio Saavedra]
250 Changes in libsoup from 2.65.92 to 2.66.0:
252 * Fix lookup for libxml2 on Visual Studio builds [Chun-wei Fan]
254 Changes in libsoup from 2.65.91 to 2.65.92:
256 * SoupConnection: Fix check for remote disconnectin idle state
257 [Michael Catanzaro, #134]
259 * Code cleanups and warnings fixed [Michael Catanzaro]
261 * Remove stale .pc.in files [Claudio Saavedra, #137]
263 * Updated translations: Dutch
265 Changes in libsoup from 2.65.90 to 2.65.91:
267 * Remove RFCs from sources [Tomas Popela, #133]
269 Changes in libsoup from 2.65.2 to 2.65.90:
271 * Avoid using threads in SoupRequestFile asynchronous API
272 [Ignacio Casal Quinteiro]
274 Changes in libsoup from 2.65.1 to 2.65.2:
276 * Remove autotools build system and change to meson by default
279 * Many fixes to Meson [Claudio Saavedra, Tomas Popela, Xavier
282 * Improvements to the continuous integration infrastructure
285 * Make sure SoupSession features are not disposed until all
286 pending messages are processed [#130, Claudio Saavedra]
288 * Updated translations: Greek, Slovak, French.
290 Changes in libsoup from 2.64.0 to 2.65.1:
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
300 Changes in libsoup from 2.63.92 to 2.64.0:
302 * Many fixes to the meson build system [#7, #8, #9, #11, Tomas Popela]
303 * Updated translations: Brazilian Portuguese, Galician,
304 Hungarian, Latvian, Danish.
306 Changes in libsoup from 2.63.91 to 2.63.92:
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
313 Changes in libsoup from 2.63.90 to 2.63.91:
315 * Simplify soup_hosts_matches_host() [Claudio Saavedra]
316 * Add new tests for trailing dots in domain names [Claudio Saavedra]
317 * Updated Turkish translation
319 Changes in libsoup from 2.63.2 to 2.63.90:
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
330 Note: from now onwards bgo# references bugs in GNOME Bugzilla
331 and # issues in GNOME gitlab.
333 Changes in libsoup from 2.63.1 to 2.63.2:
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).
343 Changes in libsoup from 2.62.0 to 2.63.1:
345 * Fix digest authentication with encoded URIs [#794208,
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,
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.
361 Changes in libsoup from 2.61.91 to 2.62.0:
363 * Updated translations.
365 Changes in libsoup from 2.61.90 to 2.61.91:
367 * Add limit to header length to avoid DOS attacks
368 [#792173, Michele Dionisio]
370 * Update the public-suffix list.
373 * Revert "cookie-jar: use base domain to decide if cookie is third party"
374 [#792130, Claudio Saavedra]
376 Changes in libsoup from 2.61.2 to 2.61.90:
378 * Various improvements to the WebSocket implementation
379 [#792113, Italo Guerrieri]
381 * cookie-jar: use base domain to decide if cookie is third party
382 [#792130, Michael Catanzaro]
384 * Add new API to create a new connection from a SoupSession
385 [#792212, Carlos Garcia Campos]
387 * soup-headers: accept any 3 digit number as message status code
388 [#792124, Carlos Garcia Campos]
390 Changes in libsoup from 2.61.1 to 2.61.2:
392 * session: don't request Keep-Alive for upgraded connections
393 [#788723, Lionel Landwerlin]
395 Changes in libsoup from 2.60.2 to 2.61.1:
397 * tld-parser: use Python 3 [#785735, Ross Burton]
399 * Fix heap-buffer-overflow in soup_ntlm_parse_challenge()
400 [#788037, Milan Crha]
402 * Fix possibly uninitialized value in ssl-test
405 * SoupCache: fix the timestamp for responses [#791031,
408 Changes in libsoup from 2.60.1 to 2.60.2:
410 * Fix documentation typos [#788920, Nirbheek Chauhan]
412 * format-zero-length warning triggered in soup-logger.c
413 [#789096, Tomas Popela]
415 * Warnings while generating inrospection files
416 [#789099, Tomas Popela]
418 * Visual Studio builds: Enhance security of x64 binaries
421 * Updated translation: Nepali.
423 Changes in libsoup from 2.60.0 to 2.60.1:
425 * Fallback to another authentication type if the current
426 failed [#788238, Tomas Popela]
428 * Fix unbalanced G_GNUC_BEGIN_IGNORE_DEPRECATIONS use in
429 soup-session.c [#787166, Zan Dobersek]
431 * SoupCache: fix setting default value for cache dir
432 [#788452, Cosimo Cecchi]
434 * Updated translations: Catalan (Valencian).
436 Changes in libsoup from 2.59.90.1 to 2.60.0:
438 * New/updated translations: Catalan, Danish, Dutch, Nepali
440 Changes in libsoup from 2.59.90 to 2.59.90.1:
442 * CVE-2017-2885: Fixed a chunked decoding buffer overrun that
443 could be exploited against either clients or servers.
446 Changes in libsoup from 2.58.0 to 2.59.90:
448 * Several SoupAuthNegotiate compatibility fixes [#783780,
449 #783781, Tomas Popela]
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]
457 * Fix the interpretation of wss:// URIs, which previously
458 mostly didn't work. [#784766, Nirbheek Chauhan].
460 * Fixed SoupContentSniffer behavior on XML files with no
462 [https://bugs.webkit.org/show_bug.cgi?id=173923]
464 * Fixed a bug with cancelling async requests [#773257, Carlos
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
473 * Allow HTTP responses that have no trailing CRLF after the
474 response headers (and no body) [#780352, Carlos Garcia
477 * Fixed an out-of-bounds read in SoupURI parsing [#785042]
479 * Fixed a spurious (debug-level) error message in
480 SoupWebsocketConnection [#784935, Ignacio Casal Quinteiro]
482 * Fixed introspection annotations on
483 soup_message_headers_get_content_range() [Philip Withnall]
485 * Fixed a flake in tests/header-parsing [#777258]
487 * Update tests/test-cert.pem to use stronger algorithms to
488 avoid problems with newer gnutls. [#784949, Jan Alexander
491 * Fixed examples/get to not accidentally break https
492 certificate validation [#784259, Sebatian Dröge]
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
499 * Updated translations:
502 Changes in libsoup from 2.2.57.1 to 2.58.0:
504 * Fix authentication issues when the SOUP_MESSAGE_DO_NOT_USE_AUTH_CACHE
505 flag is used. [#778497, #777936, Carlos Garcia Campos]
507 * MSVC build improvements (Chun-wei Fan)
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,
515 Changes in libsoup from 2.56.0 to 2.57.1:
517 * Added SoupWebsocketConnection:keepalive-interval, to make a
518 connection send regular pings. [#773253, Ignacio Casal
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]
526 * Fixed the use of SoupSession:proxy-uri values containing
527 passwords. [#772932, Jonathan Lebon]
529 * Various minor WebSocket fixes [Ignacio Casal Quinteiro]:
530 * Avoid sending data after we start closing the
532 * Do not log a critical if the peer sends an invalid
534 * Log a debug message when a "pong" is received
536 * Fixed introspection of
537 soup_message_headers_get_content_range() [Jasper St. Pierre]
539 * Replaced Vala [Deprecated] annotations with [Version] to
540 avoid build warnings [#773177, Evan Nemerson]
542 * MSVC build improvements (Chun-wei Fan)
544 * Updated error/message strings to use Unicode punctuation.
545 [#772217, Piotr Drąg]
547 * Updated translations:
548 Czech, Friulian, German, Hebrew, Hungarian,
549 Norwegian bokmål, Polish, Swedish
551 Changes in libsoup from 2.55.90 to 2.56.0:
553 * Added SoupWebsocketConnection:max-incoming-payload-size
554 property, to override the default maximum incoming payload
555 size. [#770022, Ignacio Casal Quinteiro]
557 * Added soup-version.h symbols (in particular
558 soup_check_version()) to introspection. [#771439, Rico
561 * Updated the copy of the public suffix list used by SoupTLD
562 [#769650, Michael Catanzaro]
564 * Updated translations:
565 British English, Greek, Polish
567 Changes in libsoup from 2.54.1 to 2.55.90:
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]
574 * Fixed the parsing of <double>s in the new GVariant-based
575 XMLRPC code. [#767707, Dan Winship]
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
581 * Added GObject properties to SoupLogger to make it
582 bindings-friendly. [#768053, Jonh Wendell]
584 * Fixed build error on FreeBSD [#765376, Ting-Wei Lan]
586 * Fixed build with certain new versions of glibc that define
587 "EOF" as a macro. [#768731, Philip Withnall]
589 * Updated m4/ax_code_coverage.m4 with support for lcov 1.12
592 * Updated po files for future gettext versions [Piotr Drąg]
594 * New/updated translations:
595 Occitan, Scottish Gaelic
597 Changes in libsoup from 2.54.0.1 to 2.54.1:
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
606 * Fixed NTLM authentication when ntlm_auth from the latest
607 version of Samba is present. [#765106, Milan Crha]
609 * Updates to MSVC build, including for GSS-API support
612 * Updated translations:
615 Changes in libsoup from 2.53.92 to 2.54.0.1:
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
622 * Fixed examples/simple-httpd on Windows [#758759, Chun-wei
625 Changes in libsoup from 2.53.90 to 2.53.92:
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]
634 * Added support for building under MSVC [#758759, Chun-wei
637 * Fixed a problem with the 2.53.90 tarball that caused
638 translations to be mis-installed.
640 * Updated translations:
643 Changes in libsoup from 2.53.2 to 2.53.90:
645 * NUL bytes in headers are now ignored [#760832, Dan Winship]
647 * Fixed transfer annotation of soup_form_decode* functions
648 [#743966, Lionel Landwerlin]
650 * Updated translations:
651 Bulgarian, Latvian, Norwegian bokmål
653 Changes in libsoup from 2.53.1 to 2.53.2:
655 * Fixed up symbol visibility handling for mingw by copying
656 GLib's system [Ignacio Casal Quinteiro, #757146]
658 * Finally marked the old SoupSessionAsync and SoupSessionSync
659 methods as deprecated [Ignacio Casal Quinteiro, Dan Winship,
662 * Added libsoup-2.4.deps for valac [Rico Tzschichholz]
664 * Make it possible to build from git without gtk-doc being
665 installed [Ignacio Casal Quinteiro]
667 * Updated translations:
668 Norwegian bokmål, Occitan
670 Changes in libsoup from 2.52.1 to 2.53.1:
672 * Really fixed build under MinGW for sure this time [Ignacio
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
680 Changes in libsoup from 2.52.0 to 2.52.1:
682 * Fixed build under MinGW [Chun-wei Fan]
684 * Fixed build with --disable-introspection [#755389, Quentin
687 * Fixed HTTP authentication protection space handling for
688 files directly under the root directory. [#755617, Carlos
691 * Fixed a warning when loading data from SoupCache while using
692 an authenticated proxy. [#756076, Carlos Garcia Campos]
694 * Updated translations:
697 Changes in libsoup from 2.51.92 to 2.52.0:
699 * Removed duplicate test paths from tests/date so it will pass
702 Changes in libsoup from 2.51.90 to 2.51.92:
704 * Added g_autoptr() support for all libsoup types. [#754721,
707 * Added a missing (allow-none) annotation to
708 soup_uri_normalize() [#754776, Jens Georg]
710 * Updated translations:
713 Changes in libsoup from 2.51.3 to 2.51.90:
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]
719 * Multiple build fixes for Visual Studio [#752952, Chun-wei Fan]
721 * Added VAPI generation [#750679, Daniel Espinosa]
723 * Fixed the mode bits on soup-cookie.c, which was previously
724 marked executable for some reason. [rh #1247285]
726 * Updated translations:
727 Norwegian bokmål, Portuguese, Thai, Turkish
729 Changes in libsoup from 2.50.0 to 2.51.3:
731 * Fixed "make check" in non-English locales [rh #1224989,
734 * Fixed some compiler warnings [#748514, Philip Withnall]
736 * New/Updated translations:
737 Aragonese, Catalan, Occitan, Russian
739 Changes in libsoup from 2.49.92 to 2.50:
741 * Updated translations:
742 Basque, Chinese (Taiwan), Danish, Indonesian,
745 Changes in libsoup from 2.49.91.1 to 2.49.92:
747 * Fixed an NTLM problem that caused spurious "Authentication
748 Failed" errors in evolution-ews. [#735197]
750 * New/updated translations:
751 Bosnian, Czech, Greek, Hebrew, Italian, Korean, Lithuanian,
752 Polish, Serbian, Slovak, Slovenian, Spanish, Swedish
754 Changes in libsoup from 2.49.1 to 2.49.91.1:
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]
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
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]
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]
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]
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]
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]
788 * Multiple SoupCache fixes from Carlos Garcia Campos:
790 * Leaked resources are now cleaned up when opening the
793 * The "Age" header is no longer added to cached
796 * Fixed the interpretation of the "must-revalidate"
797 directive to not be stricter than required. [#744468]
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]
806 * Fixed soup_session_cancel_message() to work reliably on
807 paused messages. [#745094, Sven Neumann]
809 * Added code-coverage support to the build. [#744744,
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]
816 * Added a hack to SoupSessionFeature so that people will stop
817 re-reporting an old Eclipse bug against libsoup. [#710242]
819 * Miscellaneous bug and leak fixes in the test programs, leak
820 fixes in libsoup, and documentation updates.
822 * Updated translations:
823 Brazilian Portuguese, French, Galician, Hungarian, Slovak,
824 Slovenian, Spanish, Turkish
826 Changes in libsoup from 2.48.0 to 2.49.1:
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]
832 * Fixed a case where the async codepaths could potentially
833 block on a synchronous write [#727138, Dan Winship]
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]
839 * Improved a bunch of introspection annotations [#729987, Evan
842 * Clarified some documentation. [Tristan Van Berkom, Dan
845 * Fixed Windows build, twice [#738003, Kouhei Sutou, and
846 #738551, Kalev Lember].
848 * Updated translations:
849 Bengali (Indian), Chinese (Traditional), Italian, Latvian,
850 Serbian, Telugu, Ukranian
852 Changes in libsoup from 2.47.92 to 2.48.0:
854 * Updated translations:
855 Bengali (India), Danish, German, Hindi, Kannada, Punjabi
857 Changes in libsoup from 2.47.4 to 2.47.92:
859 * Fixed a crash in SoupCache when receiving certain invalid
860 Cache-Control headers. [#733587, Raveendra Karu]
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,
868 Changes in libsoup from 2.47.3 to 2.47.4:
870 * Fixed two crashes that could occur in multithreaded use
871 (in particular, with the latest git gvfs). [#732783,
872 #732925, Ross Lagerwall]
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]
878 * Fixed a bug in SoupAuthNTLM that affected 28-character-long
879 passwords. [#732087, David Woodhouse]
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)
885 * Updated translations:
886 Galician, Greek, Lithuanian, Russian
888 Changes in libsoup from 2.46.0 to 2.47.3:
890 * Added new-and-improved SoupServer API, and deprecated much
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.
898 * You can create a SoupServer from an existing listening
899 socket (either a file descriptor or a GSocket).
901 * When using the new APIs, SoupServer now obeys the
902 thread-default GMainContext rather than using the
903 :async-context property.
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
912 * SoupClientContext has new methods that return GSocket
913 and GSocketAddress, rather than SoupSocket and
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]
921 * soup_session_abort() no longer tries to close active
922 connections, which was causing crashes in evolution
925 * Fixed a GMainContext-handling bug that could cause crashes
926 in gstreamer's souphttpsrc. [#729737, Dmitry Shatrov]
928 * Fixed a memory leak when requesting to delete a cookie that
929 didn't exist [Joseph Artsimovich]
931 * Updated translations:
932 Brazilian Portuguese, Czech, Hebrew, Spanish
934 Changes in libsoup from 2.45.92 to 2.46.0:
936 * (No changes, just a version bump)
938 Changes in libsoup from 2.45.90 to 2.45.92:
940 * Fixed problems with using an http proxy on port 80. [patch
941 from Slava Monich on libsoup-list]
943 * Plugged a small per-connection leak. [patch from Slava
944 Monich on libsoup-list]
946 * Belatedly bumped up the glib requirement to 2.38, which is
947 required for the TAP driver.
949 * Fixed up some leftover issues from the test porting to
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
960 Changes in libsoup from 2.45.3 to 2.45.90:
962 * Fixed a problem where libsoup would use the "http" proxy
963 settings for "https" requests [#724316, Matt Barnes]
965 * Updated SoupContentSniffer to match the current version of
966 the MIME sniffing specification [#648849 / #715126, Gustavo
969 * Updated the soup-tld APIs to accept ASCII-encoded hostnames
970 in addition to UTF-8 ones.
972 * Ported the test programs to the gtestutils framework, added
973 support for installed tests, and made the tests use the TAP
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.
979 * Fixed the test programs to not depend on local proxy
982 * Added some more checks to header-tests [#722341, Lionel
985 * Fixed the "simple-proxy" example program, which had been
988 * Updated translations:
991 Changes in libsoup from 2.44.1 to 2.45.3:
993 * The documentation has finally been updated to reflect the
994 new APIs added in 2.42.
996 * Added GBytes-valued :request-body-data and
997 :response-body-data properties to SoupMessage, which should
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.
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.
1008 * Updated the copy of the Public Suffix list used by soup-tld.
1010 * Fixed a hang with internet radio streams in Rhythmbox (and
1011 some other places). [#710494, Dan]
1013 * Fixed a connection leak when cancelling the close of
1014 a message GInputStream. [#711260, Dan]
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]
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.)
1025 * Plugged a few memory leaks [#711085, Christophe Fergeau]
1027 * Fixed connection-test to pass with current glib [#711361,
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.
1034 * Fixed build with -Werror=format-nonliteral [#720082, Ryan
1037 * Fix build with --without-ntlm [#710267, Dan]
1039 * Fixed a few warnings [Dan, Fabiano Fidêncio]
1041 * Tests are now more verbose by default under "make check",
1042 since current automake just redirects all the output to a
1045 * Updated translations:
1048 Changes in libsoup from 2.44.0 to 2.44.1:
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]
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]
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]
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.
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]
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]
1085 * Fixed a sporadic failure in tests/connection-test. [Dan]
1087 * Updated translations:
1090 Changes in libsoup from 2.43.92 to 2.44.0:
1092 * New/updated translations:
1095 Changes in libsoup from 2.43.90 to 2.43.92:
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]
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]
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
1113 * Fixed a warning when the remote host closes the connection
1114 while we are writing something using chunked encoding.
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]
1122 * Fixed race conditions in cache-test and timeout-test that
1123 could case spurious failures. [#698305, #660581, Dan]
1125 Changes in libsoup from 2.43.5 to 2.43.90:
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.
1132 * Fixed the handling of IPv6 address literals with scope IDs.
1133 (Requires the latest glib as well for the complete fix.)
1136 Changes in libsoup from 2.43.4 to 2.43.5:
1138 * SoupProxyURIResolver is now deprecated in favor of the
1139 SoupSession:proxy-resolver property (which takes a
1140 GProxyResolver). [#680273, Dan]
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]
1149 * Fixed the parsing of URI schemes in SoupURI (in particular,
1150 to allow scheme names with digits in them). [#703776, Dan]
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]
1156 * Fixed a build problem in non-UTF-8 locales [#702534, Ross
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]
1165 Changes in libsoup from 2.43.2 to 2.43.4:
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]
1171 * Fixed another memory leak in SoupSocket (found while
1172 added a test case for #700472)
1174 * Switched to using g_cclosure_marshal_generic() rather than
1175 using glib-genmarshal. [#686042, Olivier Blin]
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]
1182 * Fixed a few introspection annotations
1184 * Updated examples/get to use SoupLogger and to allow
1185 redirecting the output to a file [#703231, #703229, Andres
1188 Changes in libsoup from 2.43.1 to 2.43.2:
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,
1196 * Fixed a memory leak in SoupSocket. [#700472, Richard
1199 * Fixed a missing include error on some platforms [#700003,
1202 * Fixed warnings when running against the "dummy" TLS backend.
1205 Changes in libsoup from 2.42.1 to 2.43.1:
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]
1214 * Fixed SoupSession:proxy-resolver [#698163, Dan]
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]
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]
1224 Changes in libsoup from 2.42.0 to 2.42.1:
1226 * Fixed SoupProxyResolverDefault, which got broken in 2.42.92.
1229 * Fixed a gigantic memory leak when using SoupCache. [#696594,
1232 * Fixed a build problem on Windows. [#696354, Kalev Lember]
1234 * Fixed ntlm-test to pass whether or not Samba ntlm_auth
1235 support was compiled in. [#697510, Dan]
1237 * New/updated translations:
1240 Changes in libsoup from 2.41.92 to 2.42.0:
1242 * Fixed a compiler warning on 32bit in a test program. [Kalev
1245 * New/updated translations:
1246 Hindi, Kannada, Korean, Malayalam, Marathi, Odia, Persian,
1247 Tadjik, Tamil, Telugu
1249 Changes in libsoup from 2.41.91 to 2.41.92:
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]
1256 * Also added code to make such infinite retry loops impossible
1257 in the future. [Dan]
1259 * Fixed SoupRequestData's handling of URIs with "%00" in them.
1260 [#695246, Žan Doberšek]
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.)
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]
1272 * Updated translations:
1273 Assamese, Belarusian, Brazilian Portuguese, Catalan
1274 (Valencian), Catalan, Danish, Estonian, French, Greek,
1275 Gujarati, Hungarian, Italian, Latvian, Portuguese, Russian,
1278 Changes in libsoup from 2.41.90 to 2.41.91:
1280 * Fixed a crash that showed up with XMLRPC requests in
1281 WebKitGTK. [#694920, Sergio]
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]
1287 * libsoup now builds under automake 1.13 (and "make check"
1288 works under the parallel test harness which is the default
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/.
1295 * New/updated translations:
1296 Aragonese, Chinese (traditional), Czech, Galician, Hebrew,
1297 Lithuanian, Norwegian bokmål, Punjabi, Spanish, Uyghur,
1300 Changes in libsoup from 2.41.5 to 2.41.90:
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
1307 * Fixed SoupCache to properly handle messages that get
1308 cancelled, and added tests for this. [#692310, Sergio]
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]
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]
1320 * Fixed the SoupSession:add-feature-by-type property to accept
1321 non-SoupSessionFeature features as well (eg, auth types)
1324 * Fixed a build bug that would break all the apache-based
1325 tests if you didn't have PHP installed. [#693311, Dan]
1327 * Updated translations:
1328 Malayalam, Polish, Serbian, Slovak
1330 Changes in libsoup from 2.41.4 to 2.41.5:
1332 * Reverted the change to SoupURI's password handling from
1333 2.41.4, since it turns out to have broken some things.
1336 * Avoid a g_return_if_fail() when loading
1337 SoupSession:ssl-ca-file fails. [#691930, Guillaume
1340 * Fixed a bug in SoupBodyInputStream that caused redirects in
1341 WebKitGTK to hang. [#692026, Sergio]
1343 * Updated translations:
1344 Belarusian, Chinese (traditional), German, Italian,
1345 Norwegian bokmål, Serbian, Uyghur
1347 Changes in libsoup from 2.41.3 to 2.41.4:
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
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().
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.
1368 * soup_message_get_https_status() now returns the certificate
1369 and flags for unsuccessful https connections as well as
1370 successful ones. [#690176]
1372 * Fixed a deadlock when calling soup_session_abort() on a
1373 SoupSessionSync in some cases. [#691399]
1375 * Internal SoupCache rewrites/improvements [#682112, Sergio]
1377 * Plugged a memory leak in SoupCache [#690382, Sudarsana
1378 Nagineni] and one in SoupAuthDigest [#690142]
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.
1385 * Fixed the samba-windbind-based NTLM support, which appears
1386 to have been broken before.
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.
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.
1399 * build: libsoup now uses autoreconf instead of
1400 gnome-autogen.sh, and no longer uses AM_GLIB_GNU_GETTEXT
1403 * Updated translations:
1404 Assamese, Bulgarian, Estonian, Friulian, Galician, Hebrew,
1405 Polish, Slovenian, Spanish
1407 Changes in libsoup from 2.41.2 to 2.41.3 (codename: "I Left My
1408 Deprecated APIs in A Coruña"):
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).
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.
1419 Some documentation has been updated to reflect this, but
1420 much more still needs to be (in particular the "Client-side
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()).
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.
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]
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...
1447 * SoupProxyResolverGNOME is now deprecated; there hasn't been
1448 any real reason to use it since SoupProxyResolverDefault was
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).
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.
1464 This will eventually replace SoupSessionAsync and
1465 SoupSessionSync completely, but most of the documentation
1466 hasn't yet been updated at this point...
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.
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]
1483 * SoupURI now leaves "%00" in URIs as-is, rather than decoding
1484 it to "\0", which was not intended and is never useful.
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]
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.)
1496 * tests: misc small fixes
1499 * New/updated translations:
1500 Assamese, Galician, Japanese, Odia, Polish, Spanish
1502 Changes in libsoup from 2.41.1 to 2.41.2:
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.)
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
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]
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]
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]
1528 * We now add a Host header to HTTP/1.0 requests as well as
1529 HTTP/1.1 ones. [Dan]
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.)
1536 * Belatedly added soup-multipart-input-stream.h to soup.h.
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]
1547 * Fixed a few race conditions in the test programs that could
1548 cause "make check" to fail on slow or heavily-loaded
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,
1558 * New/updated translations:
1561 Changes in libsoup from 2.40.1 to 2.41.1:
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]
1575 * Fixed a crash caused by a race condition in SoupSessionSync.
1578 * SoupRequest now supports resource:// URIs, for reading from
1579 gresource. [#682721, Carlos]
1581 * Added new compile-time and runtime APIs for checking the
1582 libsoup version. [#684514, Martin Robinson]
1584 * Updated to take advantage of (and require) glib 2.35;
1585 removed all g_type_init() calls and ported to GTask. [Dan]
1587 * Added support for Apache 2.4 to the unit tests. [Dan]
1592 Changes in libsoup from 2.40.0 to 2.40.1:
1594 * Improved the parsing of multipart/x-mixed-replace responses.
1597 * Fixed handling of IPv6 address literals. [#684990, Dan]
1599 * New/updated translations:
1600 Catalan, Catalan (Valencian), Norwegian bokmål
1602 Changes in libsoup from 2.39.92 to 2.40.0:
1604 * New/updated translations:
1605 Bengali (India), Bulgarian, Chinese (Simplified), Estonian,
1606 German, Hebrew, Hindi, Hungarian, Latvian, Malayalam,
1607 Punjabi, Tamil, Telugu, Thai, Ukranian
1609 Changes in libsoup from 2.39.91 to 2.39.92:
1611 * Fixed some g_warnings (and a possible crash) with the
1612 soup_request_send_async(). [#683404, Dan]
1614 * Fixed a hang with SoupSessionSync [#682923, Dan]
1616 * Handle empty "Cache-Control" headers. [Sergio]
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,
1625 Changes in libsoup from 2.39.90 to 2.39.91:
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]
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
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]
1640 * New/updated translations:
1641 French, Japanese, Korean, Latvian, Lithuanian, Polish,
1642 Punjabi, Swedish, Tamil
1644 Changes in libsoup from 2.39.5 to 2.39.90:
1646 * Added SoupMultipartInputStream, for handling multipart
1647 responses (particularly multipart/x-mixed-replace).
1650 * Fixed a potential crash in SoupSessionAsync after the
1651 session is finalized.
1653 * Fixed a regression in soup_tls_is_public_suffix() [#681085,
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]
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.
1668 * Fixed memory leaks found by valgrind.
1670 * Cleaned up some code in SoupCache. [#681509, Sergio]
1672 * New/updated translations:
1673 Bengali (India), Chinese (Traditional), German, Marathi,
1676 Changes in libsoup from 2.39.4.1 to 2.39.5:
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
1682 * Fixed SoupServer:async-context to work properly again
1684 * Further fixes to soup_uri_normalize() when using the
1685 "unescape_extra" parameter. [#680018]
1687 * Fixed soup_xmlrpc_parse_method_call() to handle the case
1688 where there is no <params> element (which is legal).
1691 * Fixed the deprecation warning on soup_message_headers_get()
1694 * Added warnings to some erroneous SoupSocket usages rather
1695 than returning bogus data. [#673083, Simon McVittie]
1697 * Fixed build under Windows/MinGW
1699 * SoupSocket no longer emits the "readable" signal when a
1700 socket is disconnected if that socket is non-blocking.
1702 * Updated public suffix list to the current version.
1704 * New/Updated translations:
1705 Assamese, Chinese (simplified), Esperanto, Galician, Greek, Gujarati,
1706 Hebrew, Norwegian bokmål, Russian, Serbian, Slovenian
1708 Changes in libsoup from 2.39.4 to 2.39.4.1:
1710 * Fixed indentation problems in tld-parser.py so it will work
1711 under python 3. [#680089, "marduk"]
1713 * Actually fixed cookies in non-suffixed/private domains,
1714 which still didn't work after the last fix. [#679230,
1717 * Updated translations:
1720 Changes in libsoup from 2.39.3 to 2.39.4:
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]
1727 * Fixed the content-type and content-length of requests
1728 retrieved from SoupCache. [#680029, Carlos Garcia Campos]
1730 * Fixed the handling of cookies in non-suffixed and private
1731 domains ("localhost", "foo.local", etc) [#679230, Sergio and
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
1739 * Fixed soup_uri_normalize() to not always run the "fixup"
1740 codepath. [#680018, pointed out by Yann Soubeyrand]
1742 * Fixed a (rare) crash when closing the stream returned from
1743 SoupRequestHTTP. [Dan]
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]
1749 * Fixed up "make dist" by, among other things, rewriting
1750 tld-parser in python. [#678909, Colin Walters]
1752 * Removed the "getbug" example program in tests/, which didn't
1753 work any more anyway. [Dan]
1755 * Various internal code cleanups. [Dan] Fixed one crash
1756 resulting from this [#680055, Alban Browaeys]; hopefully
1757 there won't be any more.
1759 * New/Updated translations:
1760 Assamese, Belarusian, Bulgarian, Chinese (traditional), Hebrew,
1761 Indonesian, Lithuanian, Norwegian bokmål, Vietnamese
1763 Changes in libsoup from 2.39.2 to 2.39.3:
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]
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]
1776 * Fixed g-i annotation of
1777 soup_message_headers_get_content_type(). [#677002, Dan]
1779 * Updated translations:
1780 Galician, Greek, Slovenian, Spanish, Telugu
1782 Changes in libsoup from 2.39.1 to 2.39.2:
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
1788 * Problems with cancelling messages from the
1789 got-headers signal [#674747, Dan]
1791 * Persistent connections were not always being closed
1792 properly after a message was cancelled mid-response.
1795 * Cancelling a SoupRequest before it started I/O
1798 * Asynchronous HTTP authentication via the SoupRequest
1801 * Memory leak [#676038, Ray Strode]
1803 * Refcounting bug that manifested as a crash in rygel
1804 [#676038, Ray Strode]
1806 * Handling failed CONNECT requests via SoupRequest
1809 * Messages with trailing junk following a compressed
1810 message body [#676477, Dan]
1812 * Fixed three cache-related bugs that affect some sites
1813 (notably Twitter) [Sergio]
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.
1820 * Fixed some g-ir-scanner warnings, and included
1821 SoupRequester/SoupRequest in the introspected API [#676742,
1824 * Added soup_buffer_get_as_bytes() [#676776, Jasper]
1826 * New/updated translations:
1827 Belarusian, Chinese (simplified), French, Galician, Greek,
1828 Hebrew, Polish, Punjabi, Romanian, Slovenian, Spanish
1830 Changes in libsoup from 2.38.1 to 2.39.1:
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]
1840 (The SoupRequest API is still protected by unstable-API
1841 #ifdefs, but will be made public later in this cycle.)
1843 * Libsoup now finally supports SOCKS proxies again. [#553269,
1846 * Certain error messages returned from the streaming API
1847 (SoupRequest, etc) are now localized; more strings will be
1850 * New translations: Galician, Hebrew, Indonesian, Norwegian
1851 bokmål, Polish, Russian, Slovenian, Spanish.
1853 * Added a SoupCookieJar:is-persistent property, to distinguish
1854 memory-only jars from SoupCookieJarText and
1855 SoupCookieJarSqlite. [#672838, Carlos Garcia Campos]
1857 Changes in libsoup from 2.38.0 to 2.38.1:
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]
1863 * Fixed two warnings when cancelling an in-progress
1864 soup_socket_connect_async(). [pointed out on the mailing
1865 list by Sven Neumann]
1867 * Fixed a crash when disposing a SoupServer with open
1868 connections. [#673468, Jonny Lamb]
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).
1876 * Fixed SoupSession to not leak paused SoupMessages that
1877 were still in progress when it was unreffed. [#673905]
1879 * Updated the win32 file: URI code again, to fix regressions
1880 in the WebKit tests. [WebKit bug #82484]
1882 Changes in libsoup from 2.37.92 to 2.38.0:
1884 * Minor documentation fixes
1886 Changes in libsoup from 2.37.91 to 2.37.92:
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]
1894 Changes in libsoup from 2.37.90 to 2.37.91:
1896 * Fixed an out-of-bounds memory read that could occur when
1897 parsing malformed requests/responses.
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]
1903 * Fixed the handling of file: URIs with query components,
1904 which got broken in 2.37.90.
1906 * Fixed SoupAuthManagerNTLM to not fall back to allowing Basic
1907 auth when NTLM failed.
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]
1913 * Fixed a warning when cancelling the load of a page with many
1914 subresources. [#667245]
1916 * Use G_GNUC_BEGIN/END_IGNORE_DEPRECATIONS if GLib is new
1917 enough, to avoid getting warned about the use of
1920 Changes in libsoup from 2.37.5 to 2.37.90:
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.
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]
1933 * Added various return-if-fails and other sanity checks to
1934 various functions. [#669479, Robert Swain, Mark Nauwelaerts,
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]
1942 * Fixed a minor URI parsing bug. (It was allowing URI schemes
1943 to contain numbers.) [Dan]
1945 * Fixed a few memory leaks introduced in the 2.37 cycle. [Dan]
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]
1951 * Changed SoupSessionAsync to make it possible to finalize it
1952 from the "wrong" thread. [#667364, Dan].
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,
1961 Changes in libsoup from 2.37.4 to 2.37.5:
1963 * Fixed a bug in SoupSession:use-thread-context [Dan]
1965 * Fixed the case of cancelling a message from
1966 SoupSession::request-started [#668098, Raphael Kubo da
1969 * Fixed a crash in epiphany when loading a page with more than
1970 1000 or so images. [#668508, Dan]
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]
1977 * Fixed SoupRequestFile to work on Windows. [Paweł Forysiuk]
1979 Changes in libsoup from 2.37.3 to 2.37.4:
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]
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
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]
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]
2001 * Plugged a leak in SoupRequestHTTP. [#667099, Xan]
2003 Changes in libsoup from 2.37.2 to 2.37.3:
2005 * Now requires glib 2.31
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]
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]
2016 * Fixed some bugs in the handling of SoupSession:http-aliases
2017 and SoupSession:https-aliases.
2019 * Fixed handling of ACLOCAL_FLAGS [#641470, Craig Keogh]
2021 * Fixed SoupContentDecoder's "ignore Content-Encoding: gzip
2022 because the server didn't actually mean it" hack to handle
2025 * Clarified the documentation on SoupSession:ssl-strict
2028 Changes in libsoup from 2.37.1 to 2.37.2:
2030 * Fixed up the output of SoupDirectoryInputStream, thus
2031 improving the display of local directories in WebKit-based
2032 browsers. [#662266, Sergio]
2034 * Fixed a bug introduced in 2.37.1 that caused some cancelled
2035 SoupMessages to be leaked. [#662847, Sergio]
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]
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]
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]
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]
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]
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
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]
2080 Changes in libsoup from 2.36.0 to 2.37.1:
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]
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
2094 * Likewise, added SoupServer:tls-certificate, for specifying a
2095 certificate/key for an https server to use.
2097 * Made SoupHTTPInputStream use memory more efficiently.
2100 * Fixed soup_message_get_https_status() to return information
2101 more reliably (with latest glib-networking).
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
2109 Changes in libsoup from 2.35.92 to 2.36.0:
2111 * Improvements to gtk-doc documentation. [Dan]
2113 Changes in libsoup from 2.35.90 to 2.35.92:
2115 * Fixed a problem where SoupHTTPRequest response bodies could
2116 be truncated. [#659256, Sergio]
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]
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]
2126 Changes in libsoup from 2.35.5 to 2.35.90:
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
2134 * Fixed the build on mingw-w64 by not using "interface" as
2135 as variable name. [#656402, Erik van Pienbroek]
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.)
2141 Changes in libsoup from 2.35.4 to 2.35.5:
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.
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]
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
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]
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"]
2167 * Fixed SoupRequestHTTP to work properly with alternate
2168 GMainContexts. [#653707]
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
2176 Changes in libsoup from 2.35.3 to 2.35.4:
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]
2183 * Plugged another SoupCache memory leak [Xan]
2185 * Simplified SoupCache keys, and handle collisions. [#649963,
2188 * Annotate SoupSession:add-feature, etc, as (skip), so they
2189 don't conflict with the methods of the same name. [#655150,
2192 Changes in libsoup from 2.34.1 to 2.35.3:
2194 * SoupCache fixes [Sergio]:
2196 * Don't store hop-by-hop headers [#650094]
2198 * Fix status code and headers of responses returned
2199 from the cache after being revalidated [#649965]
2201 * Added versioning support to the cache file format
2202 [#652554] and extended it to keep track of the
2203 status code [#649965]
2205 * Fixed storage of time values in the cache [#653349]
2207 * Fixed a use-after-free that could result in bogus
2208 data being written to the cache [#650620]
2210 * Various leaks [#649309]
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]
2216 * Fixed an overflow when sending a response larger than 2^31
2217 bytes (eg, streaming movies in Rygel). [#638468, Jens Georg]
2219 * Always send the Keep-Alive header, not just to hosts we
2220 already know to be HTTP/1.0 [#648680, Sergio]
2222 * Fixed various leaks [#652699, Sergio], [#651643, Milan],
2225 * Minor build fix for Debian/Ubuntu [#648948]
2229 Changes in libsoup from 2.34.0 to 2.34.1:
2231 * Two multipart forms/Content-Disposition fixes [Dan]:
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.
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]
2243 * Fixed several memory leaks [Dan, Xan]
2245 * Fixed decoding base64 data: URLs [#646896, Sergio]
2247 * Simplified the libsoup-gnome build on Windows by dropping
2248 the gnome-keyring dependency. [Fridrich Štrba]
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]
2254 * Fixed a cache corruption bug in SoupCache. [#648285, Sergio]
2256 * Fixed a crash in SoupSessionSync when using
2257 soup_session_abort().
2259 Changes in libsoup from 2.33.92 to 2.34.0:
2261 * Fixed the GMainContext handling of the new
2262 SoupProxyResolverDefault (which among other things fixes
2263 gstreamer usage inside epiphany). [#646201, Sebastian Dröge]
2265 * Tweaked the introspection Makefile rules to fix a problem
2266 building on Debian/Ubuntu. [#645505]
2268 * Belated bumped the shared library versioning to reflect the
2269 API additions since 2.32.0
2271 Changes in libsoup from 2.33.90 to 2.33.92:
2273 * LIBSOUP NO LONGER DEPENDS ON GCONF OR LIBPROXY.
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.)
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.
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
2293 * SoupDate now parses month names case-insensitively [#644048,
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]
2300 * SoupCookieJar now catches overflows when parsing very
2301 distant dates [#643462, based on a patch from Mark
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.
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).
2315 Changes in libsoup from 2.33.6 to 2.33.90:
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
2324 * Fixed a bug in talking to servers with virtual hosts with
2325 Unicode names (IDNs) [#642075]
2327 * Added a "Connection: Keep-Alive" header when talking to
2328 HTTP/1.0 hosts, to improve performance. [#640414, Sergio
2331 * Changed SoupCache to not cache multipart/x-mixed-replace
2332 content. [#642028, Sergio Villar Senin]
2334 Changes in libsoup from 2.33.5 to 2.33.6:
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]
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]
2345 * Fixed warnings pointed out by gcc 4.6, including a bug in
2346 SoupCache that would cause unnecessary revalidations
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.
2354 Changes in libsoup from 2.33.4 to 2.33.5:
2356 * Fixed certain cases of soup_session_cancel_message() with
2357 SoupSessionSync that could previously cause warnings or
2360 Changes in libsoup from 2.32.2 to 2.33.4:
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.
2367 * The gzip Content-Encoding handler is now implemented using
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.
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
2384 * Added SoupMessage:tls-certificate and
2385 SoupMessage:tls-errors, which give more information about
2386 the certificate used to authenticate a TLS connection.
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.
2395 * Allow setting cookies on file:// URIs, since other browsers
2396 do, and WebKit has a test for it. [#603825]
2398 * .gir/.typelib files now include C header/library information
2399 (needed by vala and some other bindings) [#635395, Evan
2402 * Added annotations on soup_message_headers_get_content_type()
2403 [Lucas Rocha] and SoupHTTPVersion [John Palmieri]
2405 * Fixed a Set-Cookie processing leak [#636741, Jonathan
2408 Changes in libsoup from 2.32.1 to 2.32.2:
2410 * Fixed a regression in 2.32.0 that caused evolution-exchange
2411 to get stuck and stop updating. [#634422]
2413 * Fixed a regression in 2.32.0 with apps using asynchronous
2414 sessions from multiple threads (in particular, gupnp)
2417 * Fixed the regression test for #631525 to not cause spurious
2418 "make check" failures on some machines.
2420 Changes in libsoup from 2.32.0 to 2.32.1:
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]
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.
2430 * Usernames/passwords specified explicitly in request URIs now
2431 override existing cached auth info. [#631679, Sergio Villar]
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]
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
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]
2447 * Fixed a bug in SoupCookieJarText that deleted excess cookies
2448 whenever any cookie expired. [#631641, Michał Kazior]
2450 * Fixed a small leak in SoupContentDecoder if you were using
2451 it incorrectly. [pointed out in email by Christophe
2454 * Added regression tests for passwords-in-URIs [#631679,
2455 Sergio Villar] and SOUP_SESSION_IDLE_TIMEOUT.
2457 Changes in libsoup from 2.31.92 to 2.32.0:
2459 * (No changes, just a version bump)
2461 Changes in libsoup from 2.31.90 to 2.31.92:
2463 * Updated for gobject-introspection 0.9.5. Also added some new
2464 annotations and removed a bunch of private headers from the
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]
2471 * Fixed a crash when resolving a URI containing both spaces
2472 and non-UTF8 8bit characters. [#629449]
2474 Changes in libsoup from 2.31.2 to 2.31.90:
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].
2486 * Fixed Accept-Language header generation in locales where ","
2487 is used as the decimal point.
2489 Changes in libsoup from 2.31.2 to 2.31.6:
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.]
2497 * When using libproxy 0.3 or newer, libsoup no longer leaks
2498 proxy-related environment variables into child processes
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]
2507 * SoupSession now limits the number of times a message can be
2508 redirected, to avoid infinite loops [#604383, José Millán
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]
2515 * Fixed some incorrect g-i annotations [#621021]
2517 * Fixed an out-of-bounds memory access when processing certain
2518 Set-Cookie headers [#620288]
2520 * Improved msg->reason_phrase on network errors [#623274]
2522 * Fixed gir file disting [#621727, Yaakov Selkowitz]
2524 Changes in libsoup from 2.30.1 to 2.31.2:
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
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]
2538 * Also added properties for several SoupMessage public
2539 fields, and getter methods for various boxed types
2540 (SoupCookie, SoupDate, SoupURI).
2542 * Added some additional hash-table annotations.
2543 [#619086, Gustavo Noronha Silva]
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.
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
2556 * Fixed another connecting-to-lame-http-server problem, and a
2557 getting-stuck-in-a-loop-reconnecting bug that it revealed.
2560 Changes in libsoup from 2.30.0 to 2.30.1:
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]
2566 * Fixed multiple forms/multipart-related interoperability
2567 problems reported by Egon Andersen:
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]
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.
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.)
2585 * Changed SoupCookieJarSqlite to actually erase deleted
2586 cookies from the database. [#615711, Lukasz Slachciak]
2588 * Fixed SoupLogger to be more robust against getting passed
2589 bad data by the session. [#611663]
2591 * Fixed SoupAuthDomain to ignore paths when doing proxy auth
2593 * Fixed a g_warning when hovering over a javascript link in
2594 WebKit. [#613442, Xan Lopez]
2596 Changes in libsoup from 2.29.91 to 2.30.0:
2598 * Fixed a crash in the whitespace-stripping code in
2599 soup_uri_new() [#612644, "arnaud.lb"]
2601 * Update content-sniffing algorithm to match Chrome and the
2602 soon-to-be-updated sniffing spec. [#611502, Gustavo Noronha
2605 * We now handle "Content-Encoding: x-gzip" as well as "gzip"
2606 (even though "x-gzip" has been deprecated for more than 10
2609 * Fixed leaks found by valgrind
2611 * Make the "make check" programs only bind to 127.0.0.1, not
2612 any public network interfaces. [#609489, Saleem Absulrasool]
2614 * Add a test to sniffing-test to make sure that Content-Type
2615 parameters are preserved correctly. [Gustavo Noronha Silva]
2617 Changes in libsoup from 2.29.90 to 2.29.91:
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]
2625 * Fixed handling of certain badly-formatted URIs [#590524]
2627 Changes in libsoup from 2.29.6 to 2.29.90:
2629 * Added soup_cookie_jar_set_accept_policy() and related API
2630 for implementing cookie acceptance policies. [#608353, Xan
2633 * Fixed the "request-read" signal in SoupServer to actually be
2636 Changes in libsoup from 2.29.5 to 2.29.6:
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]
2642 * Fixed an invalid read in soup_cookie_applies_to_uri()
2643 [#607024, pointed out by Xan]
2645 * Fixed linking on OS X [#606959]
2647 * Removed a harmless warning in SoupServer. [#606645]
2649 Changes in libsoup from 2.29.3 to 2.29.5:
2651 * Added SoupContentDecoder, providing support for
2652 Content-Encoding: gzip for WebKitGTK. [#522772]
2654 * Added "accept-language" and "accept-language-auto"
2655 properties to SoupSession, to support the Accept-Language
2656 header. [#597004, Mario Sanchez Prada]
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]
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. :)
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
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]
2676 * Fixed a bug that broke gobject-introspection's introspection
2677 of libsoup. [#603696, Vincent Untz]
2679 * Handle spurious CR/LFs between responses. [#602863,
2680 Alexander V. Butenko]
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]
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]
2690 * Fix ugly gtype-related hack to work with the latest unstable
2691 glib. [Benjamin Otte]
2693 Changes in libsoup from 2.28.1 to 2.29.3:
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]
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]
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]
2708 * Fixed a g_warning that would always trigger in the
2709 server-side SoupCookie code. [#602389]
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]
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]
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]
2723 * Fixed server-side parsing of Digest auth. [#602898, Chris
2726 * Fixed WinSock initialization on Windows. [#600689, Tor
2729 * Fixed a sporadic crash in the SSL code on Windows. [#600748,
2732 * Fixed handling of https connections with timeouts on
2733 Windows. [#600749, Tor Lillqvist]
2735 * Added soup_session_prepare_for_uri(), to allow DNS
2736 prefetching for faster browsing. [#598948, José Millán Soto]
2738 * SoupSession now avoids redundant DNS lookups again when
2739 first connecting to a new site, resulting in (probably
2740 imperceptibly) faster loads.
2742 * Added some debugging APIs to SoupConnection and SoupSession
2743 for use by, eg, epiphany's soup-fly extension. [#589163,
2746 Changes in libsoup from 2.28.0 to 2.28.1:
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.
2756 * There should now be fewer (no?) "Connection terminated
2757 unexpectedly" errors in WebKitGTK.
2759 * Fixed a crash in SoupCookieJarSqlite [#596859, patch from
2762 * Fixed soup_address_get_physical() and address-to-name
2763 resolution of SoupAddress [patch from Enrico Tröger].
2765 * Fixed a bug in SoupContentSniffer that could cause false
2766 negatives [#597545, patch from Alejandro Castro].
2768 * Fixed the configure error if you have gnutls-devel but not
2769 gcrypt-devel installed [#587709].
2771 Changes in libsoup from 2.27.92 to 2.28.0:
2773 * Fixed a handful of leaks found with valgrind, including a
2774 large one in SoupContentSniffer [WebKit bug 28148].
2776 * Changed the behavior of SoupCookieJarSqlite to improve
2777 performance. [#584522, patch from Gustavo Noronha Silva]
2779 * Fixed a crash in SoupSocket that affected gupnp. [#594951,
2780 patch from Olivier Crête]
2782 * Fixed the type of the SOUP_METHOD_* and SOUP_URI_SCHEME_*
2783 macros to be const char * rather than gpointer. [#594508]
2785 Changes in libsoup from 2.27.91 to 2.27.92:
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.
2792 * Fixed a bug where empty query components were dropped from
2795 * Fixed "make check" to work (but warn) when building with
2798 * Fixed some small documentation bugs pointed out by Dominik
2799 Bylica and Lucian Langa.
2801 Changes in libsoup from 2.27.90 to 2.27.91:
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.
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]
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]
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]
2821 * Fixed a crash in SoupLogger. [#591857]
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
2828 * Fixed a crash in SoupServer introduced in 2.27.90 when
2829 processing a request with no "Host" header.
2831 Changes in libsoup from 2.27.5 to 2.27.90:
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]
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]
2841 * It is now possible to implement "OPTIONS *" in a SoupServer;
2842 you must explicitly register a handler for "*" in order to
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.]
2849 * Fixed the status code when trying to fetch an https URI with
2850 a non-gnutls build of libsoup. [#590464]
2852 * Fixed strict-aliasing warnings introduced in 2.27.4
2855 * Fixed some warnings noted by fortify [#591226] and -Wextra.
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
2862 Changes in libsoup from 2.27.4 to 2.27.5:
2864 * Fixed a crash when a web server redirected a request to a
2865 non-http URI (eg, "about:blank"). [#528882]
2867 * Fixed a hang when trying to create an attachment on certain
2868 bugzilla installations from epiphany. [#584645]
2870 * Fixed verification of V1 TLS certificates [#589323, Patrick
2873 * Fixed compile problems on Windows (in the ssl code), and on
2874 Linux (when the most recent version of gtk-doc was
2877 Changes in libsoup from 2.27.2 to 2.27.4:
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
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,
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.)
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
2899 Changes in libsoup from 2.27.1 to 2.27.2:
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.
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
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
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.
2928 * Fixed Digest auth to (recent) Apple CalDAV servers.
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
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
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.
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].
2957 * Added G_GNUC_NULL_TERMINATED and G_GNUC_PRINTF to a few
2958 methods that should have had them. [#581754, Ross Burton]
2960 Changes in libsoup from 2.26.1 to 2.27.1:
2962 * SOUP_SESSION_TIMEOUT now works properly with
2963 SoupSessionAsync [#574414] and SSL [#578928]. Added
2964 tests/timeout-test to test this.
2968 * soup_date_to_string() now handles SOUP_DATE_RFC2822
2969 [#579055, Enrico Tröger]
2971 * soup_date_new_from_string() now accepts 24:00 as a
2972 time in ISO8601 timestamps
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.
2978 * Added regression tests to tests/date
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.
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]
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().
2995 Changes in libsoup from 2.26.0 to 2.26.1:
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].
3004 (Also fixed three SoupProxyResolverGNOME bugs since the
3005 2.26.0.9 preview release. [#578746, #578809])
3007 * SoupURI now handles unencoded spaces in URIs. In particular,
3008 redirects via Location headers with spaces in them now work.
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]
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]
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.
3026 * SoupCookieJar can now store multiple cookies with the same
3027 domain and name, but different paths. [#577360]
3029 * Abnormal SSL connection closes are now treated as ordinary
3030 EOFs, for compatibility with certain sites. [#577386]
3032 * soup_header_g_string_append_param() now allows NULL values.
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.
3039 * Fixed a small bug in soup_date_new_from_string's ISO 8601
3040 handling [qv #578369 for g_time_val_from_iso8601].
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]
3046 * Fixed warnings when a message has a network problem when
3047 many other messages are queued. [#578809]
3049 * Miscellaneous documentation fixes/clarifications.
3051 Changes in libsoup from 2.25.91 to 2.26.0:
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
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.
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.
3069 * Fixed several bugs that prevented SoupCookieJarSqlite from
3070 working. [#572409, patch from Xan Lopez]
3072 * Added G_{BEGIN,END}_DECLS guards to public headers that were
3073 missing it. (Xan Lopez)
3075 * Misc gtk-doc improvements
3077 Changes in libsoup from 2.25.5 to 2.25.91:
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.)
3083 * Updated documentation
3085 Changes in libsoup from 2.25.4 to 2.25.5:
3087 * SoupProxyResolverGConf (which was incomplete) is gone, and
3088 libsoup-gnome now requires libproxy, which is now officially
3089 an external dependency of GNOME.
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).
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.)
3099 * Fixed the build with non-gcc compilers
3101 Changes in libsoup from 2.25.3 to 2.25.4:
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)
3108 Changes in libsoup from 2.25.2 to 2.25.3:
3110 * Fixed a crash when using both cookies and a proxy. [#562191,
3113 * Fixed soup_form_decode() to correctly handle forms with
3114 URI-encoded parameter names [#563302, Evan Nemerson] and
3115 added a regression test.
3117 * Fixed a crash in SoupProxyResolverGConf. [#563145]
3119 Changes in libsoup from 2.25.1 to 2.25.2:
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.
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.
3132 * Some minor doc fixes
3134 * Fixed libsoup-gnome linking with --as-needed. [#559342]
3136 Changes in libsoup from 2.24.1 to 2.25.1:
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.
3143 In 2.25.1, libsoup-gnome contains:
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.
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.)
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.
3167 Applications/libraries that are currently doing GConf proxy
3168 lookup by hand can be updated as follows:
3170 * Remove all of the existing code that listens to the
3171 GConf keys and sets SOUP_SESSION_PROXY_URI
3173 * Change the configure check to require
3174 "libsoup-gnome-2.4 >= 2.25.1" instead of "libsoup-2.4"
3176 * #include <libsoup/soup-gnome.h>
3178 * After creating your SoupSession, do:
3180 soup_session_add_feature_by_type (session, SOUP_TYPE_PROXY_RESOLVER_GNOME);
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().)
3187 Other new features and bug fixes in 2.25.1 include:
3189 * SoupCookieJarText, like SoupCookieJarSqlite, but using the
3190 old-style cookies.txt format, and in the base libsoup rather
3193 * Various bugfixes to SoupCookie and SoupCookieJar to fix the
3194 problems with cookies not working on certain sites.
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.
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.
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
3211 Thanks to Xan Lopez and Diego Escalante Urrelo for their work
3212 on SoupCookie, SoupCookieJar, SoupCookieJarText, and
3213 SoupCookieJarSqlite.
3215 Changes in libsoup from 2.24.0.1 to 2.24.1:
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
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].
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.
3232 * Fixed a leak in the XML-RPC code
3234 * Compile fixes for "gcc -pedantic" [#553976, Sander Dijkhuis]
3235 and -DG_DISABLE_DEPRECATED / -DG_DISABLE_SINGLE_INCLUDES
3236 [#557072, Cosimo Cecchi]
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"...
3243 * Updated generated documentation
3245 Changes in libsoup from 2.23.92 to 2.24.0.1:
3247 * Reverted part of the fix for #528882, which caused the DAAP
3248 plugin in rhythmbox to crash. [#553466]
3250 Changes in libsoup from 2.23.91 to 2.23.92:
3252 * Fixed the handling of a 302 response to a HEAD request,
3253 which should NOT be treated like a 303 response. [#551190,
3256 Changes in libsoup from 2.23.6 to 2.23.91:
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
3264 * Added soup_date_to_timeval() for gvfs. [#549006, patch from
3267 Changes in libsoup from 2.23.1 to 2.23.6:
3269 * Fixed use of g_idle_add() so that heavy I/O won't end up
3270 blocking libsoup callbacks. [#536676, Benjamin Otte]
3272 * Allow the caller to override the Host header. [#539803, Marc
3275 * Properly handle responses larger than 4G. [#539861, Peter
3278 * Fixed the build when using certain LDFLAGS [#541506, Götz
3281 * Fixed a small bug in Digest auth handling. [#544681, Mads
3284 * Fixed multiple Windows bugs [Tor Lillqvist]
3286 Changes in libsoup from 2.4.1 to 2.23.1:
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.
3294 * Added SoupSessionFeature, an interface type that will be
3295 used for several new features. Ported SoupLogger and
3296 SoupAuthManager to use it.
3298 * Added SoupCookie and SoupCookieJar. This API is already
3299 being used in Epiphany, via WebKit, but it is not yet
3302 * Fixed GnuTLS support on Win32. [#528752, Marc Maurer]
3304 Changes in libsoup from 2.4.0 to 2.4.1:
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]
3310 * Fixed Host: header syntax when the host is an IPv6 address
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
3320 * Fixed soup_server_pause_message() to actually work (rather
3321 than *un*pausing the message).
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]
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]
3331 * Fixed a crash in SoupAuthDomainDigest if the client provided
3332 an unrecognized username. [pointed out by Curtis Magyar on
3335 * Fixed a few SoupDate bugs. (In particular, it was outputting
3336 the wrong day of the week when stringifying dates.)
3338 * Improved the cleanup of idle connections, to fix slow load
3339 times with the libsoup backend of WebKit.
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,
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]
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]
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]
3366 * Added some new regression tests, fixed some small bugs in
3369 Changes in libsoup from 2.3.4 to 2.4.0:
3371 * Fixed a small memory leak in SoupSession. [#518798, Wouter
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".
3379 * The SoupSocket I/O methods now set nread/nwrote even on
3380 error. [Benjamin Otte]
3382 Changes in libsoup from 2.3.2 to 2.3.4:
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,
3390 * Fixed dependencies in libsoup-2.4.pc file [#517631,
3393 Changes in libsoup from 2.3.0.1 to 2.3.2:
3395 API changes / Behavior changes:
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.
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.
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.
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
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
3435 The original soup_form_* methods have all been renamed,
3436 although #defines exist for backward compatibility.
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].
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().
3451 This helps to simplify XML-RPC calls that send or receive
3454 * Added soup_date_to_time_t().
3456 * Added SoupMessageHeadersIterator, an iterator type for
3457 SoupMessageHeaders that can be used instead of
3458 soup_message_headers_foreach().
3462 * Fixed a crash-when-idle in evolution-exchange [#437835] and
3463 rhythmbox [#506552].
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].
3469 * Fixed tests/query-test to compile correctly on Solaris.
3470 [#513602, patch from Jeff Cai]
3472 * Fixed some other minor HTTP conformance issues.
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
3483 Changes in libsoup from the 2.2 series to 2.3.0.1:
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
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.)
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.
3500 Specific user-reported bugs fixed in this release:
3502 * SoupURI now correctly handles URIs with complex encoded
3503 queries [#266516, Jean-Yves Lefort]
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]
3509 * Digest authentication now properly handles "stale=true" and
3510 "nextnonce=..." [#471380, Jari Urpalainen]
3512 * SoupServer is now subclassible [#491653, Mathias Hasselmann]
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]
3518 * The test programs no longer use a symbol name that conflicts
3519 with Cygwin [#501631, Cygwin Ports Maintainer]
3521 * libsoup can now handle the not-quite-HTTP responses returned
3522 by Shoutcast servers [#502325, Wouter Cloetens]
3524 * If you use libsoup while disconnected from the network, it
3525 no longer caches the failed DNS results [#508593, Bradley
3528 Items from http://live.gnome.org/LibSoup/ToDo fixed:
3530 * "Expect: 100-continue" processing now works correctly on
3531 both client and server.
3533 * SoupSessions are no longer leaked
3535 * The XML-RPC API is improved. The SOAP API is gone...
3537 * Added utility functions for HTML form handling
3539 * Improved message header handling
3541 * SoupServer now automatically adds a "Date" header
3545 Changes in libsoup from 2.2.103 to 2.2.104:
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]
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
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.)
3563 * Discovered "valgrind --leak-resolution=med" and fixed some
3566 Changes in libsoup from 2.2.102 to 2.2.103:
3568 * Fix memory corruption in SoupSessionAsync that caused
3569 rhythmbox to crash. [#484988, patch from Rob Bradford]
3571 * Fix socket refcounting in SoupServer to fix warnings /
3572 possible crash. [#459896, Emanuele Aina]
3574 Changes in libsoup from 2.2.101 to 2.2.102:
3576 * Unbreak the build when building without SSL. Not that you
3577 should be building without SSL anyway, but... (reported by
3580 Changes in libsoup from 2.2.100 to 2.2.101:
3582 * Fix build on cygwin [384498]
3584 * Fix SSL rehandshaking on synchronous sockets [415402, Jacob
3585 Berkman] and add a regression test for it.
3587 * Fix two bugs in https tunnels over proxies that require
3588 authentication (noticed by Varadhan), and add a regression
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.
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.
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.
3607 * Fix crash when the session's "authenticate" handler returns
3608 a username and no password when using NTLM. [480987, Wendell
3611 * Use "new" glib base64 and iso8601 methods rather than
3612 duplicating them. [337010, patch from Emmanuele Bassi].
3614 * Implement soup_session_queue_message() for SoupSessionSync.
3616 * Add G_BEGIN_DECLS / G_END_DECLS to all headers that were
3617 missing them. [438776, patch from Jonathon Jongsma].
3619 * Fix broken definition of SOUP_IS_MESSAGE_FILTER_CLASS. Noted
3620 by "cascardo" on libsoup-list.
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].
3626 Changes in libsoup from 2.2.99 to 2.2.100:
3628 * Fixed soup_headers_parse_status_line() so WebDAV response
3629 parsing will work again. [406997]
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.
3635 Changes in libsoup from 2.2.98 to 2.2.99:
3637 * Fixed header parsing, including a crash in SoupServer with
3638 certain malformed requests [391970].
3640 * Fixed redirection to other hosts with SoupSessionAsync.
3643 * Fixed a small memory leak pointed out by Chris Austin.
3645 Changes in libsoup from 2.2.97 to 2.2.98:
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
3652 * Memory leak fixes from Andrew W. Nosenko.
3654 * A few symbols that should have been static before now are.
3655 [376387] Patch from Matthias Clasen.
3657 Changes in libsoup from 2.2.96 to 2.2.97:
3659 * Fixed SOAP and XML-RPC code to handle whitespace and
3660 comments in the XML better. (Based on a patch from Andrew W.
3663 * Fixed lots of typecasting/constness warnings in the code
3664 (mostly via a patch from Andrew W. Nosenko)
3666 * Fixed build on Cygwin [321827]
3668 * Fixed libsoup-2.2.pc fields [343340] and make it get
3669 uninstalled correctly [356809]. (Mikhail Zabaluev and
3672 * Fixed some small leaks in SoupServer pointed out by Paolo
3675 Changes in libsoup from 2.2.95.1 to 2.2.96:
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.)
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.
3686 * Added soup_xmlrpc_message_from_string(), from Fernando
3689 * simple-httpd and "get" now support HEAD
3691 Changes in libsoup from 2.2.94 to 2.2.95.1:
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
3698 * Fixed a bug in soup_mktime_utc()
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")
3704 Changes in libsoup from 2.2.93 to 2.2.94:
3706 * Various fixes to the XML-RPC code (which apparently had not
3707 actually ever worked before) from Brent Smith. [343973,
3710 * Added client and server API tutorials to the docs
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.
3717 Changes in libsoup from 2.2.92 to 2.2.93:
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
3726 * Fixed a deadlock when changing a session's proxy URI.
3727 [309867 / bnc 174255, based on a patch by Veerapuram
3730 * Fixed https-via-proxies in the synchronous case. [bnc 174255]
3732 * Fixed a crash in evolution-exchange [342545, fix based on an
3733 analysis by Wang Xin].
3735 * Fixed simple-proxy to not crash at startup. Oops. (Alex
3738 Changes in libsoup from 2.2.91 to 2.2.92:
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
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]
3748 * Fixed some warnings (signed/unsigned mismatch).
3750 Changes in libsoup from 2.2.7 to 2.2.91:
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.)
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.]
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).
3767 * Fixed some bugs in soup_date_iso8601_parse(). [324671, from
3770 * More Windows build fixes from Tor.
3772 Changes in libsoup from 2.2.6.1 to 2.2.7:
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.)
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]
3782 * Fixed the creation of struct elements in XMLRPC messages
3783 [321362, patch from Sebastian Bauer]
3785 * Plugged a small memory leak in SoupSocket (from Wang Xin).
3787 * Fixed two compile problems, a gccism [320349, patch from
3788 Roland Illig], and a strict-aliasing warning from gcc 4.1.
3790 Changes in libsoup from 2.2.6 to 2.2.6.1:
3792 * Fixed a crash when using SoupSoapMessage
3794 Changes from 2.2.5 to 2.2.6:
3796 * Fixed a crash when canceling a message (from Tambet Ingo)
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)
3803 * Fixed a memory leak. (Tambet)
3805 * Fixed a bug that would sometimes show up when connecting to
3806 a server on localhost [#312540]
3808 * Added some API to SoupServer and SoupSocket to help fix a
3809 long-standing rcd bug.
3811 Changes from 2.2.4 to 2.2.5:
3813 * Win32 support (from Tor Lillqvist)
3815 * Up-to-date API documentation pretty much everywhere
3817 * Basic XMLRPC support (from Mariano Suarez-Alvarez, Fernando
3818 Herrera, and Jeff Bailey)
3820 * New HTTP timestamp-manipulation methods soup_date_parse,
3821 soup_date_generate, and soup_date_iso8601_parse.
3823 * SoupSession now handles relative URLs in the Location header
3824 (in violation of RFC 2616, but in line with how some servers
3827 Changes from 2.2.3 to 2.2.4:
3829 * Fixed a problem with NTLM authentication against
3830 multi-domain servers. [306877]
3832 * Fixed DNS lookups on Solaris. [254551, 268389]
3834 Changes from 2.2.2 to 2.2.3:
3836 * Now compiles against gnutls 1.2.0 [257811]
3838 * Fixed a bug that could result in 100% CPU usage if an SSL
3839 server closed the connection uncleanly. [273352]
3841 Changes from 2.2.1 to 2.2.2:
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)
3846 * HTTPS certificate validation now works when using an HTTP
3849 * HTTP proxy code deals better with proxies that try to make
3850 the user do HTML-form-based authentication. [268531]
3852 * 64-bit fixes for NTLM auth code. [270323, from Michael
3855 Changes from 2.2.0 to 2.2.1:
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
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]
3866 Changes in libsoup from the 2.0 series (1.99.x versions) to 2.2:
3868 * Most of the libsoup datatypes are now GObjects. (SoupUri
3869 is currently an exception to this.)
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().)
3875 * SoupContexts are gone; soup_message_new() now takes a URI
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
3883 * You can create a SoupSessionAsync (for 2.0-like
3884 behavior) or SoupSessionSync (for blocking,
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
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.
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.)
3902 * The SOUP_ERROR_* values are now SOUP_STATUS_* (so that we
3903 don't have "SOUP_ERROR_OK" and the like).
3905 * SOUP_MESSAGE_IS_ERROR() is gone, since some cases
3906 want to include 3xx responses and some don't.
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.
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.
3918 * Minimal SOAP support has been added back, via
3919 SoupSoapMessage/SoupSoapResponse
3921 * The HTTP I/O state machine was completely rewritten, fixing
3922 numerous crashes, leaks, and protocol errors.
3924 * SoupUri now conforms to RFC 2396. Mostly.
3926 * Various test programs have been added under tests/
3930 * Support for OpenSSL (which was horribly buggy) and
3931 Mozilla NSS (which was never finished). We only
3932 support GNUTLS for SSL now.
3936 * CGI support in SoupServer