70a6ef15a6444695751b266348387ca8c60b3f3d
[platform/upstream/libsoup.git] / NEWS
1 Changes in libsoup from the 2.2 series to 2.3.0.1:
2
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
7         releases.
8
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.)
12
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.
17
18         Specific user-reported bugs fixed in this release:
19
20         * SoupURI now correctly handles URIs with complex encoded
21           queries [#266516, Jean-Yves Lefort]
22
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]
26
27         * Digest authentication now properly handles "stale=true" and
28           "nextnonce=..." [#471380, Jari Urpalainen]
29
30         * SoupServer is now subclassible [#491653, Mathias Hasselmann]
31
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]
35
36         * The test programs no longer use a symbol name that conflicts
37           with Cygwin [#501631, Cygwin Ports Maintainer]
38
39         * libsoup can now handle the not-quite-HTTP responses returned
40           by Shoutcast servers [#502325, Wouter Cloetens]
41
42         * If you use libsoup while disconnected from the network, it
43           no longer caches the failed DNS results [#508593, Bradley
44           Worley]
45
46         Items from http://live.gnome.org/LibSoup/ToDo fixed:
47
48         * "Expect: 100-continue" processing now works correctly on
49           both client and server.
50
51         * SoupSessions are no longer leaked
52
53         * The XML-RPC API is improved. The SOAP API is gone...
54
55         * Added utility functions for HTML form handling
56
57         * Improved message header handling
58
59         * SoupServer now automatically adds a "Date" header
60
61 ==========
62
63 Changes in libsoup from 2.2.103 to 2.2.104:
64
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]
69
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
74           Cloetens]
75
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.)
80
81         * Discovered "valgrind --leak-resolution=med" and fixed some
82           more memory leaks.
83
84 Changes in libsoup from 2.2.102 to 2.2.103:
85
86         * Fix memory corruption in SoupSessionAsync that caused
87           rhythmbox to crash. [#484988, patch from Rob Bradford]
88
89         * Fix socket refcounting in SoupServer to fix warnings /
90           possible crash. [#459896, Emanuele Aina]
91
92 Changes in libsoup from 2.2.101 to 2.2.102:
93
94         * Unbreak the build when building without SSL. Not that you
95           should be building without SSL anyway, but... (reported by
96           guenther).
97
98 Changes in libsoup from 2.2.100 to 2.2.101:
99
100         * Fix build on cygwin [384498]
101
102         * Fix SSL rehandshaking on synchronous sockets [415402, Jacob
103           Berkman] and add a regression test for it.
104
105         * Fix two bugs in https tunnels over proxies that require
106           authentication (noticed by Varadhan), and add a regression
107           test for them.
108
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.
114
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.
119
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.
124
125         * Fix crash when the session's "authenticate" handler returns
126           a username and no password when using NTLM. [480987, Wendell
127           MacKenzie]
128
129         * Use "new" glib base64 and iso8601 methods rather than
130           duplicating them. [337010, patch from Emmanuele Bassi].
131
132         * Implement soup_session_queue_message() for SoupSessionSync.
133
134         * Add G_BEGIN_DECLS / G_END_DECLS to all headers that were
135           missing them. [438776, patch from Jonathon Jongsma].
136
137         * Fix broken definition of SOUP_IS_MESSAGE_FILTER_CLASS. Noted
138           by "cascardo" on libsoup-list.
139
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].
143
144 Changes in libsoup from 2.2.99 to 2.2.100:
145
146         * Fixed soup_headers_parse_status_line() so WebDAV response
147           parsing will work again. [406997]
148
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.
152
153 Changes in libsoup from 2.2.98 to 2.2.99:
154
155         * Fixed header parsing, including a crash in SoupServer with
156           certain malformed requests [391970].
157
158         * Fixed redirection to other hosts with SoupSessionAsync.
159           [382251]
160
161         * Fixed a small memory leak pointed out by Chris Austin.
162
163 Changes in libsoup from 2.2.97 to 2.2.98:
164
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
168           Todd Kulesza.
169
170         * Memory leak fixes from Andrew W. Nosenko.
171
172         * A few symbols that should have been static before now are.
173           [376387] Patch from Matthias Clasen.
174
175 Changes in libsoup from 2.2.96 to 2.2.97:
176
177         * Fixed SOAP and XML-RPC code to handle whitespace and
178           comments in the XML better. (Based on a patch from Andrew W.
179           Nosenko.)
180
181         * Fixed lots of typecasting/constness warnings in the code
182           (mostly via a patch from Andrew W. Nosenko)
183
184         * Fixed build on Cygwin [321827]
185
186         * Fixed libsoup-2.2.pc fields [343340] and make it get
187           uninstalled correctly [356809]. (Mikhail Zabaluev and
188           Matthew Barnes)
189
190         * Fixed some small leaks in SoupServer pointed out by Paolo
191           Borelli. [351500]
192
193 Changes in libsoup from 2.2.95.1 to 2.2.96:
194
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.)
199
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.
203
204         * Added soup_xmlrpc_message_from_string(), from Fernando
205           Herrera [348532].
206
207         * simple-httpd and "get" now support HEAD
208
209 Changes in libsoup from 2.2.94 to 2.2.95.1:
210
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
214           all before.
215
216         * Fixed a bug in soup_mktime_utc()
217
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")
221
222 Changes in libsoup from 2.2.93 to 2.2.94:
223
224         * Various fixes to the XML-RPC code (which apparently had not
225           actually ever worked before) from Brent Smith. [343973,
226           344222, 344458]
227
228         * Added client and server API tutorials to the docs
229
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.
233           [311825]
234
235 Changes in libsoup from 2.2.92 to 2.2.93:
236
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
242           Bauer.
243
244         * Fixed a deadlock when changing a session's proxy URI.
245           [309867 / bnc 174255, based on a patch by Veerapuram
246           Varadhan].
247
248         * Fixed https-via-proxies in the synchronous case. [bnc 174255]
249
250         * Fixed a crash in evolution-exchange [342545, fix based on an
251           analysis by Wang Xin].
252
253         * Fixed simple-proxy to not crash at startup. Oops. (Alex
254           Larsson)
255
256 Changes in libsoup from 2.2.91 to 2.2.92:
257
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
260           [328615].
261
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]
265
266         * Fixed some warnings (signed/unsigned mismatch).
267
268 Changes in libsoup from 2.2.7 to 2.2.91:
269
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.)
275
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.]
280
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).
284
285         * Fixed some bugs in soup_date_iso8601_parse(). [324671, from
286           Emmanuele Bassi]
287
288         * More Windows build fixes from Tor.
289
290 Changes in libsoup from 2.2.6.1 to 2.2.7:
291
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.)
295
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]
299
300         * Fixed the creation of struct elements in XMLRPC messages
301           [321362, patch from Sebastian Bauer]
302
303         * Plugged a small memory leak in SoupSocket (from Wang Xin).
304
305         * Fixed two compile problems, a gccism [320349, patch from
306           Roland Illig], and a strict-aliasing warning from gcc 4.1.
307
308 Changes in libsoup from 2.2.6 to 2.2.6.1:
309
310         * Fixed a crash when using SoupSoapMessage
311
312 Changes from 2.2.5 to 2.2.6:
313
314         * Fixed a crash when canceling a message (from Tambet Ingo)
315
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)
320
321         * Fixed a memory leak. (Tambet)
322
323         * Fixed a bug that would sometimes show up when connecting to
324           a server on localhost [#312540]
325
326         * Added some API to SoupServer and SoupSocket to help fix a
327           long-standing rcd bug.
328
329 Changes from 2.2.4 to 2.2.5:
330
331         * Win32 support (from Tor Lillqvist)
332
333         * Up-to-date API documentation pretty much everywhere
334
335         * Basic XMLRPC support (from Mariano Suarez-Alvarez, Fernando
336           Herrera, and Jeff Bailey)
337
338         * New HTTP timestamp-manipulation methods soup_date_parse,
339           soup_date_generate, and soup_date_iso8601_parse.
340
341         * SoupSession now handles relative URLs in the Location header
342           (in violation of RFC 2616, but in line with how some servers
343           behave.) [270688]
344
345 Changes from 2.2.3 to 2.2.4:
346
347         * Fixed a problem with NTLM authentication against
348           multi-domain servers. [306877]
349
350         * Fixed DNS lookups on Solaris. [254551, 268389]
351
352 Changes from 2.2.2 to 2.2.3:
353
354         * Now compiles against gnutls 1.2.0 [257811]
355
356         * Fixed a bug that could result in 100% CPU usage if an SSL
357           server closed the connection uncleanly. [273352]
358
359 Changes from 2.2.1 to 2.2.2:
360
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)
363
364         * HTTPS certificate validation now works when using an HTTP
365           proxy. [268583]
366
367         * HTTP proxy code deals better with proxies that try to make
368           the user do HTML-form-based authentication. [268531]
369
370         * 64-bit fixes for NTLM auth code. [270323, from Michael
371           Zucchi]
372
373 Changes from 2.2.0 to 2.2.1:
374
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
377           1.2.x. [266342]
378
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]
382
383
384 Changes in libsoup from the 2.0 series (1.99.x versions) to 2.2:
385
386         * Most of the libsoup datatypes are now GObjects. (SoupUri
387           is currently an exception to this.)
388
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().)
392
393         * SoupContexts are gone; soup_message_new() now takes a URI
394           string.
395
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
399           certificates, etc.)
400
401                 * You can create a SoupSessionAsync (for 2.0-like
402                   behavior) or SoupSessionSync (for blocking,
403                   synchronous usage).
404
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
408                   up handlers.)
409
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.
413
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.)
419
420         * The SOUP_ERROR_* values are now SOUP_STATUS_* (so that we
421           don't have "SOUP_ERROR_OK" and the like).
422
423                 * SOUP_MESSAGE_IS_ERROR() is gone, since some cases
424                   want to include 3xx responses and some don't.
425
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.
431
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.
435
436         * Minimal SOAP support has been added back, via
437           SoupSoapMessage/SoupSoapResponse
438
439         * The HTTP I/O state machine was completely rewritten, fixing
440           numerous crashes, leaks, and protocol errors.
441
442         * SoupUri now conforms to RFC 2396. Mostly.
443
444         * Various test programs have been added under tests/
445
446         * Removed:
447
448                 * Support for OpenSSL (which was horribly buggy) and
449                   Mozilla NSS (which was never finished). We only
450                   support GNUTLS for SSL now.
451
452                 * SOCKS support
453
454                 * CGI support in SoupServer