1 Changes in libsoup from the 2.2 series to 2.3.0.1:
3 libsoup 2.3.0 is the first beta release of the libsoup 2.4
4 series. It is an API break from the earlier 2.2 series that
5 fixes various bugs and API warts and lays the groundwork for
6 language bindings and various new features in upcoming
9 (2.3.0.1 is identical to the 2.3.0 release in terms of code,
10 but includes this updated NEWS file which was accidentally
11 left out of the 2.3.0 tarball.)
13 http://library.gnome.org/devel/libsoup/unstable/libsoup-porting-2.2-2.4.html
14 goes over the API changes in detail. If you have questions not
15 answered by the porting document, please send mail to
16 libsoup-list@gnome.org.
18 Specific user-reported bugs fixed in this release:
20 * SoupURI now correctly handles URIs with complex encoded
21 queries [#266516, Jean-Yves Lefort]
23 * It is now possible for a SoupServer to use Digest auth
24 without needing to have the cleartext password available.
25 [#347108, Anas Nashif]
27 * Digest authentication now properly handles "stale=true" and
28 "nextnonce=..." [#471380, Jari Urpalainen]
30 * SoupServer is now subclassible [#491653, Mathias Hasselmann]
32 * soup_server_run_async and soup_server_quit no longer ref and
33 unref the server, as that doesn't match ordinary GObject
34 conventions [#494128, Mathias Hasselmann]
36 * The test programs no longer use a symbol name that conflicts
37 with Cygwin [#501631, Cygwin Ports Maintainer]
39 * libsoup can now handle the not-quite-HTTP responses returned
40 by Shoutcast servers [#502325, Wouter Cloetens]
42 * If you use libsoup while disconnected from the network, it
43 no longer caches the failed DNS results [#508593, Bradley
46 Items from http://live.gnome.org/LibSoup/ToDo fixed:
48 * "Expect: 100-continue" processing now works correctly on
49 both client and server.
51 * SoupSessions are no longer leaked
53 * The XML-RPC API is improved. The SOAP API is gone...
55 * Added utility functions for HTML form handling
57 * Improved message header handling
59 * SoupServer now automatically adds a "Date" header
63 Changes in libsoup from 2.2.103 to 2.2.104:
65 * soup_message_io_pause() and soup_message_io_pause() are now
66 allowed for client messages (and in particular, they don't
67 mess up when called from the "got_chunk" callback).
68 [#452280, Marco Barisione]
70 * Fixed some bugs in SOUP_SESSION_ASYNC_CONTEXT support that
71 would cause parts of an operation to run in the default
72 context rather than the session's context. Also fixed some
73 leaks and added a regression test. [#498509, Wouter
76 * There is a new test/sample program, tests/pull-api.c,
77 showing how to implement a pull API using SoupSessionAsync.
78 (This depends on the fixes for #452280 and #498509, so it
79 won't work with older versions of libsoup.)
81 * Discovered "valgrind --leak-resolution=med" and fixed some
84 Changes in libsoup from 2.2.102 to 2.2.103:
86 * Fix memory corruption in SoupSessionAsync that caused
87 rhythmbox to crash. [#484988, patch from Rob Bradford]
89 * Fix socket refcounting in SoupServer to fix warnings /
90 possible crash. [#459896, Emanuele Aina]
92 Changes in libsoup from 2.2.101 to 2.2.102:
94 * Unbreak the build when building without SSL. Not that you
95 should be building without SSL anyway, but... (reported by
98 Changes in libsoup from 2.2.100 to 2.2.101:
100 * Fix build on cygwin [384498]
102 * Fix SSL rehandshaking on synchronous sockets [415402, Jacob
103 Berkman] and add a regression test for it.
105 * Fix two bugs in https tunnels over proxies that require
106 authentication (noticed by Varadhan), and add a regression
109 * Ensure that if you queue multiple messages at once to an
110 http server that requires authentication but that you
111 haven't authenticated to yet, that all of the messages get
112 properly authenticated [271540, James Willcox]. And add a
113 regression test for it.
115 * Fix NTLM authentication, which got broken by the previous
116 fix. [471389, Varadhan]. Add a basic NTLM regression test
117 that doesn't really test the crypto/encoding parts, but at
118 least makes sure that the message flow is correct.
120 * Allow trailing whitespace after HTTP version in
121 Response-Line, for compatibility with broken servers
122 [475169, Stephane Loeuillet]. Add that case to the
123 header-parsing regression test.
125 * Fix crash when the session's "authenticate" handler returns
126 a username and no password when using NTLM. [480987, Wendell
129 * Use "new" glib base64 and iso8601 methods rather than
130 duplicating them. [337010, patch from Emmanuele Bassi].
132 * Implement soup_session_queue_message() for SoupSessionSync.
134 * Add G_BEGIN_DECLS / G_END_DECLS to all headers that were
135 missing them. [438776, patch from Jonathon Jongsma].
137 * Fix broken definition of SOUP_IS_MESSAGE_FILTER_CLASS. Noted
138 by "cascardo" on libsoup-list.
140 * Remove documentation of non-public MD5 methods [440092,
141 Jonathon Jongsma]. Removed a mysterious half-sentence in the
142 SoupMessage docs [458116, Marco Barisione].
144 Changes in libsoup from 2.2.99 to 2.2.100:
146 * Fixed soup_headers_parse_status_line() so WebDAV response
147 parsing will work again. [406997]
149 * Fixed a bug in the header-parsing regression test that
150 caused the test to fail sometimes, even though the actual
151 header-parsing code was fine.
153 Changes in libsoup from 2.2.98 to 2.2.99:
155 * Fixed header parsing, including a crash in SoupServer with
156 certain malformed requests [391970].
158 * Fixed redirection to other hosts with SoupSessionAsync.
161 * Fixed a small memory leak pointed out by Chris Austin.
163 Changes in libsoup from 2.2.97 to 2.2.98:
165 * The XML-RPC code now correctly interprets <value>foo</value>
166 as meaning the same thing as
167 <value><string>foo</string></value>. [364490] Pointed out by
170 * Memory leak fixes from Andrew W. Nosenko.
172 * A few symbols that should have been static before now are.
173 [376387] Patch from Matthias Clasen.
175 Changes in libsoup from 2.2.96 to 2.2.97:
177 * Fixed SOAP and XML-RPC code to handle whitespace and
178 comments in the XML better. (Based on a patch from Andrew W.
181 * Fixed lots of typecasting/constness warnings in the code
182 (mostly via a patch from Andrew W. Nosenko)
184 * Fixed build on Cygwin [321827]
186 * Fixed libsoup-2.2.pc fields [343340] and make it get
187 uninstalled correctly [356809]. (Mikhail Zabaluev and
190 * Fixed some small leaks in SoupServer pointed out by Paolo
193 Changes in libsoup from 2.2.95.1 to 2.2.96:
195 * SoupServer now works even if you don't explicitly set an
196 encoding for the response. (In particular, the automatic 404
197 if you request a path with no handlers now works. Problem
198 pointed out by Dennis Jacobfeuerborn.)
200 * WWW-Authenticate and Proxy-Authenticate responses with no
201 realm parameter are now ignored, as per RFC 2617, fixing a
202 crash pointed out by Nate Nielsen.
204 * Added soup_xmlrpc_message_from_string(), from Fernando
207 * simple-httpd and "get" now support HEAD
209 Changes in libsoup from 2.2.94 to 2.2.95.1:
211 * Even more fixes to XML-RPC, found by the new XML-RPC
212 regression test. This includes some API changes that I don't
213 feel guilty about, because the code totally didn't work at
216 * Fixed a bug in soup_mktime_utc()
218 * (2.2.95 was identical to 2.2.95.1. The only difference is
219 that the shared library version was belatedly bumped from
220 8.2.0 to 8.3.0 to reflect the API "additions")
222 Changes in libsoup from 2.2.93 to 2.2.94:
224 * Various fixes to the XML-RPC code (which apparently had not
225 actually ever worked before) from Brent Smith. [343973,
228 * Added client and server API tutorials to the docs
230 * auth-test now uses a local Apache 2.2 install, if possible,
231 rather than depending on files that used to be on an old
232 Ximian web server but haven't been anywhere for a long time.
235 Changes in libsoup from 2.2.92 to 2.2.93:
237 * Fixed outgoing data corruption caused when SoupServer
238 started writing out a response a second time after already
239 having started once. [334469]. Also fixed 342640 and another
240 bug caused by the workaround for 334469 in 2.2.92. Based on
241 patches and analysis from William Jon McCann and Armin
244 * Fixed a deadlock when changing a session's proxy URI.
245 [309867 / bnc 174255, based on a patch by Veerapuram
248 * Fixed https-via-proxies in the synchronous case. [bnc 174255]
250 * Fixed a crash in evolution-exchange [342545, fix based on an
251 analysis by Wang Xin].
253 * Fixed simple-proxy to not crash at startup. Oops. (Alex
256 Changes in libsoup from 2.2.91 to 2.2.92:
258 * Fixed server-side digest auth to return a valid "algorithm"
259 value and client-side to not crash if it sees an invalid one
262 * Fixed the Request-Line parsing code to not hardcode a
263 maximum URI length (to allow very long DAAP requests from
264 iTunes in Rhythmbox). [335040]
266 * Fixed some warnings (signed/unsigned mismatch).
268 Changes in libsoup from 2.2.7 to 2.2.91:
270 * (The large version number bump is because there was an
271 internal 2.2.90 release for SUSE 10.1 alphas, which was
272 supposed to be intermediate between 2.2.7 and 2.4.0. But
273 2.4.0 didn't end up happening, and I don't want to regress
274 the version number at this point.)
276 * SoupSession, SoupServer, SoupConnection, SoupSocket, and
277 SoupAddress now have an "async-context" property that allows
278 you to use the async API in a non-default GMainContext.
279 [Based on patches from Armin Bauer and Jürg Billeter.]
281 * SoupSession, SoupConnection, and SoupSocket now have a
282 "timeout" property to stop synchronous sockets from hanging
283 forever if the remote end is unresponsive (from Varadhan).
285 * Fixed some bugs in soup_date_iso8601_parse(). [324671, from
288 * More Windows build fixes from Tor.
290 Changes in libsoup from 2.2.6.1 to 2.2.7:
292 * Fixed a crash when using NTLM connections [316313, probably
293 also 318252]. (Also 321208, which was a bug introduced in
294 the original fix for 316313.)
296 * Fixed a bug that could cause soup to suck up all available
297 CPU when a connection to a SoupServer was dropped by the
298 other side [319305, patch from Jonathan Matthew]
300 * Fixed the creation of struct elements in XMLRPC messages
301 [321362, patch from Sebastian Bauer]
303 * Plugged a small memory leak in SoupSocket (from Wang Xin).
305 * Fixed two compile problems, a gccism [320349, patch from
306 Roland Illig], and a strict-aliasing warning from gcc 4.1.
308 Changes in libsoup from 2.2.6 to 2.2.6.1:
310 * Fixed a crash when using SoupSoapMessage
312 Changes from 2.2.5 to 2.2.6:
314 * Fixed a crash when canceling a message (from Tambet Ingo)
316 * Fixed a bug where a connection could be leaked forever in
317 some circumstances if a request got a 30x, 401, or 407
318 response, eventually causing a hang when the session hit its
319 maximum connection limit. (Dan/Tambet)
321 * Fixed a memory leak. (Tambet)
323 * Fixed a bug that would sometimes show up when connecting to
324 a server on localhost [#312540]
326 * Added some API to SoupServer and SoupSocket to help fix a
327 long-standing rcd bug.
329 Changes from 2.2.4 to 2.2.5:
331 * Win32 support (from Tor Lillqvist)
333 * Up-to-date API documentation pretty much everywhere
335 * Basic XMLRPC support (from Mariano Suarez-Alvarez, Fernando
336 Herrera, and Jeff Bailey)
338 * New HTTP timestamp-manipulation methods soup_date_parse,
339 soup_date_generate, and soup_date_iso8601_parse.
341 * SoupSession now handles relative URLs in the Location header
342 (in violation of RFC 2616, but in line with how some servers
345 Changes from 2.2.3 to 2.2.4:
347 * Fixed a problem with NTLM authentication against
348 multi-domain servers. [306877]
350 * Fixed DNS lookups on Solaris. [254551, 268389]
352 Changes from 2.2.2 to 2.2.3:
354 * Now compiles against gnutls 1.2.0 [257811]
356 * Fixed a bug that could result in 100% CPU usage if an SSL
357 server closed the connection uncleanly. [273352]
359 Changes from 2.2.1 to 2.2.2:
361 * The SSL validation fix from 2.2.1 [264414] is now completely
362 fixed. (Part of the fix didn't actually make it into 2.2.1)
364 * HTTPS certificate validation now works when using an HTTP
367 * HTTP proxy code deals better with proxies that try to make
368 the user do HTML-form-based authentication. [268531]
370 * 64-bit fixes for NTLM auth code. [270323, from Michael
373 Changes from 2.2.0 to 2.2.1:
375 * Updated for a libgcrypt API change between 1.1.9x and 1.2.x
376 that caused a crash at runtime if you compiled against
379 * SSL certificate validation failure should now always result
380 in a status of SOUP_STATUS_SSL_FAILED, rather than getting
381 turned into SOUP_STATUS_IO_ERROR. [264414]
384 Changes in libsoup from the 2.0 series (1.99.x versions) to 2.2:
386 * Most of the libsoup datatypes are now GObjects. (SoupUri
387 is currently an exception to this.)
389 * SoupMessage now emits signals at various stages of
390 processing. (Eg, "wrote_body", "got_headers".) (You
391 can also still use soup_message_add_*handler().)
393 * SoupContexts are gone; soup_message_new() now takes a URI
396 * All formerly global state is now maintained by the
397 SoupSession object. (This includes the connection pool,
398 proxy server, cached authentication information, SSL
401 * You can create a SoupSessionAsync (for 2.0-like
402 behavior) or SoupSessionSync (for blocking,
405 * You can add SoupMessageFilter objects to a session
406 to have certain processing automatically performed
407 on every message sent via that session. (Eg, setting
410 * NTLM authentication is no longer supported by
411 default. You must enable it by setting the
412 SOUP_SESSION_USE_NTLM flag on the session.
414 * The preferred method of handling authentication is
415 now via the "authenticate" and "reauthenticate"
416 signals on SoupSession. (The old style, of encoding
417 the user and password information into the url is
418 also still supported.)
420 * The SOUP_ERROR_* values are now SOUP_STATUS_* (so that we
421 don't have "SOUP_ERROR_OK" and the like).
423 * SOUP_MESSAGE_IS_ERROR() is gone, since some cases
424 want to include 3xx responses and some don't.
426 * SOUP_ERROR_CANT_AUTHENTICATE and
427 SOUP_ERROR_CANT_AUTHENTICATE_PROXY are now gone,
428 since they didn't carry any information that
429 SOUP_STATUS_UNAUTHORIZED and
430 SOUP_STATUS_PROXY_UNAUTHORIZED don't.
432 * DNS errors now show up as the new status code
433 SOUP_STATUS_CANT_RESOLVE rather than being mixed in
434 with SOUP_ERROR_CANT_CONNECT.
436 * Minimal SOAP support has been added back, via
437 SoupSoapMessage/SoupSoapResponse
439 * The HTTP I/O state machine was completely rewritten, fixing
440 numerous crashes, leaks, and protocol errors.
442 * SoupUri now conforms to RFC 2396. Mostly.
444 * Various test programs have been added under tests/
448 * Support for OpenSSL (which was horribly buggy) and
449 Mozilla NSS (which was never finished). We only
450 support GNUTLS for SSL now.
454 * CGI support in SoupServer