minor rfc850-date parsing improvement suggested by RFC2616 19.3.
[platform/upstream/libsoup.git] / ChangeLog
1 2007-09-24  Dan Winship  <danw@gnome.org>
2
3         * libsoup/soup-date.c (soup_date_parse): minor rfc850-date parsing
4         improvement suggested by RFC2616 19.3.
5
6         * libsoup/soup-headers.c (soup_headers_parse_request): allow
7         erroneous trailing whitespace after HTTP version. #475169
8
9         * libsoup/soup-message-server-io.c (parse_request_headers): fix
10         the parsing of the Host header to assume it already includes the
11         port (which it should; the only reason this ever worked is because
12         SoupUri ignores the second port number when parse_request_headers
13         generates a URL like "http://localhost:9999:9999/").
14
15         * tests/header-parsing.c (reqtests): add a test for #475169
16
17 2007-09-23  Dan Winship  <danw@gnome.org>
18
19         * libsoup/soup-message.c (soup_message_class_init): remove a
20         mysterious partial sentence in the ::wrote-chunk docstring.
21         #458116
22
23         * docs/reference/libsoup-sections.txt: Remove documentation of MD5
24         methods, which are not public. #440092
25
26 2007-09-23  Dan Winship  <danw@gnome.org>
27
28         * libsoup/soup-message.c (soup_message_set_auth)
29         (soup_message_set_proxy_auth): Only remove the Authorization /
30         Proxy-Authorization header from the message if it was previously
31         set by soup_message_set_auth(). (Eg, not if it was added by
32         SoupConnectionNTLM.) #471389
33
34         * libsoup/soup-connection-ntlm.h: fix a search-and-replace-o
35
36         * tests/ntlm-test.c: Simple NTLM regression test; doesn't really
37         test the crypto/encoding bits, just that the right headers are
38         being sent at the right times.
39
40 2007-09-14  Dan Winship  <danw@gnome.org>
41
42         Make "make check" pass on Fedora 7:
43
44         * configure.in: update apache/php tests with additional filenames
45
46         * tests/httpd.conf.in: updates for configure.in changes and
47         slightly-more-recent apache
48
49         * tests/ssl-test.c (start_writing): fix uninitialized struct field
50         (main): start server after setting up client since otherwise
51         there's a race condition since soup_gnutls_init() isn't actually
52         thread-safe. (FIXME)
53
54         * tests/xmlrpc-server.php: rewrite to not use $HTTP_RAW_POST_DATA
55         (which only exists if register_globals is set)
56
57 2007-06-01  Dan Winship  <danw@novell.com>
58
59         * libsoup/soup-message-filter.h (SOUP_IS_MESSAGE_FILTER_CLASS):
60         fix. noted by "cascardo" on libsoup-list.
61
62 2007-05-16  Jonathon Jongsma  <jjongsma@gnome.org>
63
64         * libsoup/*.h: add G_BEGIN_DECLS / G_END_DECLS to all installed
65         headers so that libsoup can be used from C++ programs. #438776
66
67 2007-04-16  Dan Winship  <danw@novell.com>
68
69         * libsoup/soup-ssl.h: Make a real SoupSSLCredentials type rather
70         than just using gpointer
71
72         * libsoup/soup-server.c (SoupServerPrivate): use it
73
74         * libsoup/soup-session.c (SoupSessionPrivate): use it
75
76         * libsoup/soup-gnutls.c: Use it, and consistently use "creds"
77         rather than "cred" as the abbreviation for "credentials".
78
79         * docs/reference/libsoup-sections.txt:
80         * docs/reference/tmpl/soup-misc.sgml: 
81         * docs/reference/tmpl/soup-ssl.sgml: update
82         
83 2007-03-29  Dan Winship  <danw@novell.com>
84
85         * libsoup/soup-session-sync.c (queue_message): Implement this by
86         sending the message (synchronously) in another thread and then
87         queueing the callback back in the main thread.
88
89         * libsoup/soup-session.c (soup_session_queue_message): update docs
90         to be more explicit about what thread the callback occurs in
91
92 2007-03-17  Dan Winship  <danw@novell.com>
93
94         * libsoup/soup-message.c (soup_message_set_auth)
95         (soup_message_get_auth, soup_message_set_proxy_auth)
96         (soup_message_get_proxy_auth): get/set auth/proxy_auth info for a
97         message.
98
99         * libsoup/soup-session.c (add_auth): Use soup_message_set_auth and
100         soup_message_set_proxy_auth.
101         (update_auth_internal): Call soup_message_get_auth or
102         soup_message_get_proxy_auth to determine the message's prior auth,
103         rather than calling lookup_auth() again, since it isn't guaranteed
104         to return the same thing now as it did when the message was
105         originally sent. Fixes erroneous 401s when queuing multiple
106         messages at once to an as-yet-unauthenticated-to server. #271540
107
108         * libsoup/soup-session-async.c (queue_message): don't run the
109         queue right away, do it at idle time. Otherwise in some cases
110         (especially errors), the message callbacks could be invoked before
111         queue_message returns.
112
113         * tests/auth-test.c: add a regression test for #271540.
114
115 2007-03-17  Dan Winship  <danw@novell.com>
116
117         * configure.in: require glib 2.12. check for timegm().
118
119         * libsoup/soup-date.c (soup_mktime_utc): Use timegm if available.
120         (soup_date_iso8601_parse): use g_time_val_from_iso8601. #337010,
121         patch from Emmanuele Bassi.
122
123         * libsoup/soup-types.h: remove local copy of
124         G_GNUC_NULL_TERMINATED since we now depend on a new-enough copy of
125         glib.
126
127         * libsoup/soup-misc.c (soup_base64_encode_close)
128         (soup_base64_encode_step, soup_base64_encode)
129         (soup_base64_decode_step): Make these just be wrappers around the
130         glib base64 methods. (For now; eventually they'll just go away.)
131
132         * libsoup/soup-auth-basic.c (authenticate): 
133         * libsoup/soup-auth-digest.c (authenticate):
134         * libsoup/soup-connection-ntlm.c (soup_ntlm_parse_challenge)
135         (soup_ntlm_response): 
136         * libsoup/soup-server-auth.c (soup_server_auth_new): 
137         * libsoup/soup-soap-message.c (soup_soap_message_write_base64): 
138         * libsoup/soup-xmlrpc-message.c
139         (soup_xmlrpc_message_write_base64): 
140         * libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_base64):
141         Use glib base64 methods
142
143 2007-03-16  Dan Winship  <danw@novell.com>
144
145         * libsoup/soup-message.c (soup_message_get_response_encoding):
146         update the handling of CONNECT: it has no response body by
147         default, but does have a body if its headers say so.
148
149         * tests/proxy-test.c: test libsoup's behavior when talking to
150         proxies.
151
152         * tests/httpd.conf.in: Load mod_proxy and mod_ssl, and add
153         sections configuring them, for proxy-test
154
155         * configure.in: update the apache-module-dir-finding code to deal
156         with the fact that some modules (eg, mod_ssl) might only be in the
157         mpm-specific module dir, while others (eg, mod_php5) might only be
158         in the generic module dir.
159
160 2007-03-12  Dan Winship  <danw@novell.com>
161
162         * tests/Makefile.am (INCLUDES): add $(LIBGNUTLS_CFLAGS) for
163         ssl-test. #417617, patch from Elijah Newren.
164
165 2007-03-12  Dan Winship  <danw@novell.com>
166
167         * libsoup/soup-session-sync.c (wait_for_connection): if
168         soup_connection_connect_sync() returns SOUP_STATUS_TRY_AGAIN, then
169         try again. (Duh.) Fixes SSL-via-proxy-when-using-synchronous-I/O-
170         where-the-proxy-closes-the-connection-when-returning-407. (Reported
171         by Varadhan.)
172
173         * tests/get.c: Rewrite to use soup_session_send_message rather
174         than soup_session_queue_message, and add a "-s" flag to use
175         SoupSessionSync rather than SoupSessionAsync (so we can test bugs
176         in the sync code paths).
177
178 2007-03-08  Dan Winship  <danw@novell.com>
179
180         * libsoup/soup-gnutls.c (do_handshake): don't return
181         G_IO_STATUS_AGAIN if we're doing blocking I/O; just keep retrying
182         until the handshake is complete.
183         (soup_gnutls_read, soup_gnutls_write): if we get
184         GNUTLS_E_REHANDSHAKE, call do_handshake() immediately rather than
185         returning G_IO_STATUS_AGAIN; if the socket is blocking then
186         G_IO_STATUS_AGAIN is wrong, and if the socket is non-blocking, we
187         might already need to return SOUP_SSL_ERROR_HANDSHAKE_NEEDS_WRITE
188         or SOUP_SSL_ERROR_HANDSHAKE_NEEDS_READ.
189
190         #415402, based on a patch from Jacob Berkman.
191
192         * tests/ssl-test.c: basic ssl test. In particular, tests that
193         rehandshake requests are handled correctly during both synchronous
194         and asynchronous I/O. Might eventually test other stuff too...
195
196         * configure.in: 
197         * tests/Makefile.am: updates for ssl-test
198
199 2007-02-19  Dan Winship  <danw@novell.com>
200
201         * configure.in: Get gcrypt libs/cflags.
202
203         * libsoup/Makefile.am (INCLUDES, libsoup_2_2_la_LIBADD): add
204         gcrypt flags. Patch from "Cygwin Ports Maintainer", #384498
205
206 2007-02-12  Dan Winship  <danw@novell.com>
207
208         * configure.in: 2.2.100
209
210 2007-02-12  Dan Winship  <danw@novell.com>
211
212         * libsoup/soup-headers.c (soup_headers_parse_status_line): Fix
213         this to handle "\0"-terminated status lines (eg, from WebDAV
214         responses), like the docs say it does. #406997
215         (soup_headers_parse): Balance that out by rejecting internal "\0"s
216         here.
217         (soup_headers_parse_request, soup_headers_parse_response): Update
218         docs to warn that @dest may be modified even on error. (This was
219         always true, it just wasn't documented.)
220
221 2007-01-16  Dan Winship  <danw@novell.com>
222
223         * tests/header-parsing.c (do_request_tests, do_response_tests):
224         initialize "errors" to 0. duh. Pointed out by Michael Wolf.
225
226 2007-01-08  Dan Winship  <danw@novell.com>
227
228         * configure.in: 2.2.99
229
230         * NEWS: update
231
232 2007-01-06  Dan Winship  <danw@novell.com>
233
234         * libsoup/soup-headers.c (soup_headers_parse): Rewrite this to be
235         easier to understand and more correct, and make the "str" param
236         const rather than overwriting it during parsing.
237         (soup_headers_parse_request, soup_headers_parse_response):
238         Likewise, make "str" param const. Fix the doc comment to describe
239         the correct constraint on str. Make the parsing slightly more
240         lenient as per sections 4.1 and 19.3 of RFC 2616.
241
242         * tests/header-parsing.c: new regression test, for Request-Line,
243         Status-Line, and message-header parsing.
244
245         Inspired by #391970 (crash in SoupServer when certain invalid
246         requests are received).
247
248 2006-12-05  Dan Winship  <danw@novell.com>
249
250         * libsoup/soup-message.c (soup_message_set_uri): Remove the calls
251         to soup_message_io_stop() here; the corresponding calls were
252         needed back in the SoupContext days, but they are wrong now and
253         cause async-redirects-to-other-hosts to fail. #382251. Also
254         clarify docs with respect to soup_session_requeue_message().
255
256         * libsoup/soup-message-io.c (soup_message_io_stop): Clarify docs
257
258         * libsoup/soup-session.c (finalize): Free ssl_creds. Pointed out
259         by Chris Austin.
260
261 2006-11-20  Dan Winship  <danw@novell.com>
262
263         * configure.in: 2.2.98
264
265         * NEWS: update
266
267 2006-11-20  Dan Winship  <danw@novell.com>
268
269         Patch from Andrew W. Nosenko:
270
271         * libsoup/soup-message-client-io.c (parse_response_headers): Avoid
272         memory leak when parse_response_headers() is called on a message
273         that has a 'reason_phrase' already for some reason.
274
275         * libsoup/soup-gnutls.c (soup_gnutls_free): Avoid memory leak:
276         hostname was not freed.
277         (soup_ssl_wrap_iochannel): Avoid memory leak: SoupGNUTLSChannel
278         'chan' was not freed in case of initialization error. Avoid double
279         close of the "real" (plain, non-ssl) channel FD.
280         
281         * libsoup/soup-socket.c (soup_socket_start_proxy_ssl): Avoid
282         memory leak: the "real" (plain, non-ssl) GIOChannel was never
283         "finally" unreffed (one more *_ref() than *_unref()) in case of
284         ssl-wrapping.
285
286 2006-11-20  Dan Winship  <danw@novell.com>
287
288         * libsoup/soup-connection-ntlm.c (send_request): 
289         * libsoup/soup-session-sync.c (queue_message): 
290         * libsoup/soup-status.c (reason_phrases): Add some missing
291         "static"s. Patch from Matthias Clasen, #376387
292
293         * libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_type)
294         (soup_xmlrpc_value_get_string): <value>foo</value> should mean the
295         same thing as <value><string>foo</string></value>. Pointed out by
296         Todd Kulesza. #364490
297
298 2006-11-06  Dan Winship  <danw@novell.com>
299
300         * configure.in: Bump version to 2.2.97. Bump AGE and CURRENT for
301         addition of soup_xml_real_node.
302
303         * NEWS: update
304
305 2006-11-06  Dan Winship  <danw@novell.com>
306
307         * libsoup/soup-misc.c (soup_xml_real_node): new method to find a
308         "real" (ie, not comment or whitespace) xml node
309
310         * libsoup/soup-soap-response.c (parse_parameters) 
311         (soup_soap_response_from_string) 
312         (soup_soap_parameter_get_first_child) 
313         (soup_soap_parameter_get_next_child): Use soup_xml_real_node.
314         Based on a patch from Andrew W. Nosenko.
315
316         * libsoup/soup-xmlrpc-message.c (soup_xmlrpc_message_from_string):
317         don't call xmlKeepBlanksDefault, which changes libxml's behavior
318         globally! Instead, use soup_xml_real_node() when traversing the
319         xml tree.
320
321         * libsoup/soup-xmlrpc-response.c
322         (soup_xmlrpc_response_from_string): don't call
323         xmlKeepBlanksDefault.
324         (exactly_one_child): rewrite in terms of soup_xml_real_node()
325         (which means it handles comments now as well)
326         (soup_xmlrpc_value_get_struct)
327         (soup_xmlrpc_value_array_get_iterator)
328         (soup_xmlrpc_value_array_iterator_prev)
329         (soup_xmlrpc_value_array_iterator_next): Use soup_xml_real_node.
330
331 2006-11-05  Dan Winship  <danw@novell.com>
332
333         * libsoup/soup-headers.c (soup_headers_parse_request): document
334         this (in particular, point out that str+len must point to exactly
335         the right place). Allow req_method and req_path to be NULL.
336         (soup_headers_parse_status_line, soup_headers_parse_response):
337         document. Also, change "status_phrase" argument to "reason_phrase"
338         to match the spec. Inspired by #339889.
339
340 2006-11-03  Dan Winship  <danw@novell.com>
341
342         * libsoup/*.c: fix lots of warnings. Partially from patches from
343         Andrew W. Nosenko, and also some fixes from libsoup-pre214-branch.
344         
345 2006-11-03  Dan Winship  <danw@novell.com>
346
347         * Makefile.am (uninstall-local): uninstall the pkgconfig file.
348         Based on #356809 from Matthew Barnes.
349
350         * libsoup/soup-server.c (get_property): Fix leaks pointed out by
351         Paolo Borelli. #351500
352
353         * libsoup/soup-uri.c (soup_uri_get_protocol): Fix an off by one
354         pointed out by Andrew W. Nosenko.
355
356         * configure.in: Use pkgconfig to find gnutls. Remove old static
357         linking stuff that was only needed for rcd.
358
359         * acinclude.m4: remove gnutls stuff
360
361         * libsoup.pc.in: Use Requires rather than putting xml/ssl
362         dependencies directly into Libs/Cflags. From Mikhail Zabaluev.
363         #343340.
364
365         * libsoup/Makefile.am (libsoup_2_2_la_LDFLAGS): fix build on
366         cygwin. From "Cygwin Ports maintainer", #321827.
367
368 2006-07-24  Dan Winship  <danw@novell.com>
369
370         * configure.in: 2.2.96. bump AGE and CURRENT for new API
371
372         * NEWS: update
373
374         * libsoup/soup-xmlrpc-message.c (soup_xmlrpc_message_from_string):
375         New, from Fernando Herrera, bug 348532.
376
377 2006-07-21  Dan Winship  <danw@novell.com>
378
379         * libsoup/soup-auth.c (soup_auth_new_from_header_list): if the
380         constructed auth doesn't have a realm, it's invalid, as per RFC
381         2617. Based on a patch from Nate Nielsen on libsoup-list.
382         (soup_auth_get_realm): remove "if available" from docs; all auths
383         always have a realm.
384
385         * libsoup/soup-message-server-io.c (get_response_headers): If the
386         server handler set a Content-Length header on the message, don't
387         add a second one. (Preserves compatibility with an old hacky way
388         that people might have been handling HEAD from SoupServer.)
389
390         * README: update to mention mailing list and bugzilla
391
392         * HACKING: kill this since there's nothing here that isn't either
393         obvious, or redundant with the README
394
395 2006-07-21  Dan Winship  <danw@novell.com>
396
397         * libsoup/soup-server-message.c (soup_server_message_init):
398         initialize encoding to SOUP_TRANSFER_CONTENT_LENGTH rather than
399         SOUP_TRANSFER_UNKNOWN, since SOUP_TRANSFER_UNKNOWN has never
400         actually worked here, and so there was an undocumented requirement
401         that you manually set the encoding on every response
402         (which SoupServer itself was not doing on internal errors).
403         Problem pointed out by Dennis Jacobfeuerborn on libsoup-list.
404         (soup_server_message_set_encoding): reject the new
405         SoupTransferEncoding values, for compatibility
406
407         * libsoup/soup-message.h (SoupTransferEncoding): Clarify that
408         SOUP_TRANSFER_UNKNOWN is essentially an error value, since in the
409         public API, it always has been, due to bugs. Add some new values,
410         currently just for internal use: SOUP_TRANSFER_NONE (for cases
411         like HEAD which never have a body), SOUP_TRANSFER_EOF (to replace
412         SOUP_TRANSFER_UNKNOWN), and SOUP_TRANSFER_BYTERANGES (which isn't
413         actually implemented yet).
414
415         * libsoup/soup-message.c (soup_message_get_request_encoding,
416         soup_message_get_response_encoding): figure out the body encoding
417         being used by the request/response, including all the tricky
418         cases like HEAD/1xx/etc.
419         (soup_message_is_keepalive): if the response encoding is
420         SOUP_TRANSFER_EOF, then the message isn't keepalive.
421
422         * libsoup/soup-message-client-io.c (parse_response_headers): use
423         soup_message_get_response_encoding.
424
425         * libsoup/soup-message-server-io.c (parse_request_headers): use
426         soup_message_get_request_encoding.
427         (get_response_headers): use both soup_server_message_get_encoding
428         and soup_message_get_response_encoding, to properly distinguish
429         between the wire encoding and the alleged-by-headers encoding
430         (which differ for HEAD, etc).
431
432         * libsoup/soup-message-io.c (io_error, read_body_chunk):
433         s/SOUP_TRANSFER_UNKNOWN/SOUP_TRANSFER_EOF/.
434         (io_body_state): if encoding is SOUP_TRANSFER_NONE, jump right to
435         SOUP_MESSAGE_IO_STATE_FINISHING.
436
437         * libsoup/soup-server.c (request_finished): Check
438         soup_socket_is_connected() *before* soup_message_is_keepalive(),
439         since the message will be invalid if the client unexpectedly
440         dropped the connection.
441
442         * tests/simple-httpd.c (server_callback): handle HEAD requests.
443         Remove no-longer-necessary soup_server_message_set_encoding()
444         call.
445
446         * tests/get.c: add -d (debug) flag to print headers, and -h flag
447         to do a HEAD rather than GET
448
449 2006-07-10  Dan Winship  <danw@novell.com>
450
451         * configure.in: 2.2.95.1, and bump SOUP_AGE/SOUP_CURRENT this
452         time. Pointed out by Daniel Holbach.
453         
454 2006-07-10  Dan Winship  <danw@novell.com>
455
456         * configure.in: 2.2.95
457
458         * NEWS: update
459
460 2006-06-19  Dan Winship  <danw@novell.com>
461
462         * tests/Makefile.am (noinst_PROGRAMS): don't build xmlrpc-test
463         unless we have apache/php/xmlrpc-epi. Fixes the build. #345342
464
465         * configure.in: fix some quoting
466
467 2006-06-14  Dan Winship  <danw@novell.com>
468
469         * configure.in: add tests for apache mod_php5 and xmlrpc-epi-php
470
471         * tests/xmlrpc-test.c: XML-RPC regression test
472
473         * tests/xmlrpc-server.php: PHP server for xmlrpc-test
474
475         * tests/httpd.conf.in: add php stuff
476
477         * tests/apache-wrapper.c (apache_cleanup): Use "graceful-stop"
478         rather than "stop", so that it stops listening on the socket
479         before exiting, so that we can immediately start another apache
480         (eg, in "make check").
481
482         * libsoup/soup-date.c (soup_mktime_utc): Fix a bug in leap-year
483         counting.
484
485         * libsoup/soup-xmlrpc-message.c
486         (soup_xmlrpc_message_write_datetime): rename from
487         "..._write_time", to make it consistent with the XML-RPC type name
488         and the corresponding SoupXmlrpcResponse method. Also, fix it to
489         use the same ISO 8601 format as the spec, and use the right value
490         for the seconds field.
491         (soup_xmlrpc_message_write_base64): Change the buf arg to a
492         gconstpointer rather than a const char *.
493
494         * libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_base64):
495         Return a GByteArray containing the decoded data, rather than
496         the base64-encoded string.
497         (soup_xmlrpc_value_dump_internal): Update for that (and don't
498         leak it).
499         (soup_xmlrpc_value_array_get_iterator,
500         soup_xmlrpc_value_array_iterator_get_value): Make these actually
501         work.
502
503 2006-06-12  Dan Winship  <danw@novell.com>
504
505         * configure.in: 2.2.94
506
507         * NEWS: update
508
509 2006-06-12  Dan Winship  <danw@novell.com>
510
511         * docs/reference/client-howto.xml: 
512         * docs/reference/server-howto.xml: New client and server API
513         tutorials.
514
515         * docs/reference/*: reorganize, regenerate, fill in some missing
516         pieces, etc
517
518         * libsoup/soup-connection.c (soup_connection_new): document the
519         varargs param
520
521         * libsoup/soup-date.h: sync prototypes to declarations for gtk-doc.
522
523         * libsoup/soup-headers.c (soup_headers_parse_response): fix typo
524         in doc.
525
526 2006-06-12  Dan Winship  <danw@novell.com>
527
528         * libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_int,
529         soup_xmlrpc_value_get_double): Further fixes from Brent Smith.
530         #344458.
531         (soup_xmlrpc_value_get_boolean): Similar fix, plus actually set
532         the output parameter and make the return value match the other
533         get_* methods.
534
535 2006-06-09  Dan Winship  <danw@novell.com>
536
537         * configure.in: Add tests for apache, output tests/httpd.conf
538
539         * tests/htdigest: 
540         * tests/htpasswd: 
541         * tests/httpd.conf.in: Apache 2.2 config files for auth-test
542
543         * tests/apache-wrapper.c (apache_init, apache_cleanup): functions
544         to start/stop apache
545
546         * tests/auth-test.c: Use apache-wrapper functions to start a local
547         apache process to test authentication against, since the auth-test
548         tree at developer.ximian.com went missing a long time ago. #311825
549
550         * tests/Makefile.am (auth_test_SOURCES): use apache-wrapper.c
551         (TESTS): include auth-test if HAVE_APACHE.
552
553         * libsoup/soup-session.c (lookup_auth): Fix this in the case of a
554         URI pointing to a directory rather than a file.
555
556 2006-06-08  Dan Winship  <danw@novell.com>
557
558         * libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_int,
559         soup_xmlrpc_value_get_double, soup_xmlrpc_value_get_boolean):
560         Check return value of strtol/g_ascii_strtod correctly. #344222,
561         patch from Brent Smith.
562
563 2006-06-07  Dan Winship  <danw@novell.com>
564
565         * libsoup/soup-xmlrpc-response.c
566         (soup_xmlrpc_response_from_string): record whether or not the
567         response was a fault.
568         (soup_xmlrpc_response_is_fault): test that. #343973, patch from
569         Brent Smith.
570
571 2006-05-29  Dan Winship  <danw@novell.com>
572
573         * configure.in: 2.2.93
574
575         * NEWS: update
576
577 2006-05-29  Dan Winship  <danw@novell.com>
578
579         * libsoup/soup-message-io.c (SoupMessageIOState): add a new state
580         "FINISHING" which means "done I/O, but not yet done processing and
581         cleanup" before "DONE" (which now always means "completely done").
582         (soup_message_io_stop): disconnect the socket if the read state is
583         "< FINISHING", not "!= DONE".
584         (io_error): on an EOF-that-signals-end-of-data, set state to
585         FINISHING and run io_read().
586         (io_read, io_write): remove the g_return_if_fails from before.
587         s/DONE/FINISHING/ in most places. In the FINISHING handler, stop
588         listening for the readable/writable signal (eg, so we don't end up
589         reading a following pipelined request), and set the state to DONE.
590         (soup_message_io_unpause): Only reconnect the readable/writable
591         signals if the io state isn't DONE. Guard the calls to
592         io_read/io_write better so that it's safe to call this even after
593         they are both DONE, since it may be easier for us to test that
594         than for the caller to.
595
596         Fixes 334469, 342640, and another bug caused by the earlier
597         workaround to 334469. Based on patches and analysis from William
598         Jon McCann and Armin Bauer.
599
600         * tests/simple-proxy.c (main): add g_thread_init (NULL) to make
601         this work again. (Pointed out by Alex Larsson)
602
603 2006-05-26  Dan Winship  <danw@novell.com>
604
605         * libsoup/soup-socket.c: #include <sys/time.h> for struct timeval.
606         #342048
607
608         * libsoup/soup-connection.c (soup_connection_connect_sync): Start
609         SSL after CONNECTing! Doh. Part of bnc #174255.
610         (SoupConnectionMode): new enum for the three types of
611         SoupConnection (direct, proxy, tunnel).
612         (set_property): set priv->mode according to proxy_uri and
613         conn_uri.
614         (socket_connect_result, soup_connection_connect_sync): use
615         priv->mode to decide whether or not to tunnel.
616         (send_request): Only pass TRUE for is_proxy to
617         soup_message_send_request if mode is PROXY, not if it's TUNNEL.
618         (Also part of bnc #174255).
619
620 2006-05-26  Dan Winship  <danw@novell.com>
621
622         * libsoup/soup-message-io.c (soup_message_io_in_progress): tests
623         if IO is currently in progress on a message.
624
625         * libsoup/soup-session-async.c (run_queue): don't process messages
626         that are io_in_progress. #342545, fix based on analysis from Wang
627         Xin. (In the future we may want to re-fix this by adding a
628         REQUEUED message status separate from QUEUED.)
629
630 2006-05-22  Dan Winship  <danw@novell.com>
631
632         * libsoup/soup-session.c (cleanup_hosts): Don't free the hosts
633         while holding host_lock; that's not allowed and can cause
634         deadlock. #309867. Based on a patch from Veerapuram Varadhan for
635         part of bnc #174255.
636
637 2006-04-10  Dan Winship  <danw@novell.com>
638
639         * configure.in: bump version to 2.2.92
640
641         * NEWS: update
642
643 2006-04-10  Dan Winship  <danw@novell.com>
644
645         * libsoup/soup-message-io.c (io_write, io_read): g_return_if_fail
646         if these get called after the IO is done. This isn't supposed to
647         happen, but apparently does. Workaround for #334469.
648
649         * libsoup/soup-auth-digest.c (qop_types, algorithm_types):
650         NULL-terminate these so we don't crash when trying to parse an
651         invalid value. (Flip side of the previous #328615 patch.)
652
653 2006-04-02  Dan Winship  <danw@novell.com>
654
655         * libsoup/soup-server-auth.c (soup_server_auth_context_challenge):
656         Write out correct digest algorithm value. #328615.
657
658         * libsoup/soup-headers.c (soup_headers_parse_request): Rewrite
659         Request-Line-parsing code to not have a lame max length. #335040.
660
661         * Makefile.am (install-data-local): Install the .pc file mode 644,
662         not 755. #330878
663
664         * libsoup/soup-auth-digest.c:
665         * libsoup/soup-auth.c:
666         * libsoup/soup-message-client-io.c:
667         * libsoup/soup-message-server-io.c:
668         * libsoup/soup-message.c:
669         * libsoup/soup-method.c:
670         * libsoup/soup-server-auth.c:
671         * tests/get.c: replace locale-ish strcasecmps with
672         g_ascii_strcasecmp
673
674         * libsoup/*.c: fix most signed/unsigned mismatch warnings
675
676 2006-03-03  Dan Winship  <danw@novell.com>
677
678         * configure.in: bump version to 2.2.91.
679
680         * NEWS: Update
681
682 2006-03-03  Dan Winship  <danw@novell.com>
683
684         * libsoup/soup-dns.c (soup_dns_lookup_resolve_async): Take a
685         GMainContext as well, and update the resolution code to dispatch
686         each lookup result in the correct context.
687
688         * libsoup/soup-address.c (soup_address_resolve_async_full): New
689         method that takes a GMainContext to pass to
690         soup_dns_lookup_resolve_async.
691
692         * libsoup/soup-socket.c (soup_socket_connect): Use
693         soup_address_resolve_async_full. Fixes a problem reported by Armin
694         Bauer.
695
696         * configure.in: update to require glib 2.6, since apparently the
697         code does.
698
699 2006-02-25  Veerapuram Varadhan <vvaradhan@novell.com>
700
701         * libsoup/soup-connection.c:
702         * libsoup/soup-session.c:
703         * libsoup/soup-socket.c: add a "timeout" property,
704         which gets passed from server to socket, and session to connection
705         to socket, allowing blocking non-responsive sync connections to 
706         return.  Combination of "EAGAIN" && "Blocking" connection is treated
707         as error and the connection will be terminated and the control 
708         is returned to the caller immediately.
709                 
710 2006-02-02  Tor Lillqvist  <tml@novell.com>
711
712         * configure.in: Don't use getaddrinfo() etc or try to support IPv6
713         on Windows, as they are present by default on XP only. We do want
714         to support Windows 2000, too.
715
716 2005-12-21  Dan Winship  <danw@novell.com>
717
718         * libsoup/soup-date.c (soup_date_iso8601_parse): fix two bugs in
719         the YYYYMMDD case.
720
721         * tests/date.c: add three more ISO 8601 cases, to exercise all the
722         code paths.
723
724         #324671, from Emmanuele Bassi
725         
726 2005-11-25  Dan Winship  <danw@novell.com>
727
728         * README: sync to text on wiki, and point to wiki
729
730         * TODO: moved to http://live.gnome.org/LibSoup_2fToDo
731
732 2005-11-17  Dan Winship  <danw@novell.com>
733
734         * libsoup/soup-message-io.c (io_cleanup): clear priv->io_data
735         right away, to protect against this being re-entered mid-cleanup
736         (when we unref the connection). #321208, based on a patch from
737         Jedy Wang.
738
739 2005-11-16  Dan Winship  <danw@novell.com>
740
741         * libsoup/soup-xmlrpc-message.c
742         (soup_xmlrpc_message_start_member): add the "name" element to the
743         struct member. #321362, patch from Sebastian Bauer.
744
745 2005-11-10  Dan Winship  <danw@novell.com>
746
747         * configure.in: bump version to 2.2.90. This will not be
748         officially released, but once these patches have gotten some
749         testing they may be pulled up to the gnome-2-12 branch.
750
751         * libsoup/soup-connection.c:
752         * libsoup/soup-server.c: 
753         * libsoup/soup-session.c: 
754         * libsoup/soup-socket.c: add an "async-context" property,
755         which gets passed from server to socket, and session to connection
756         to socket, allowing async usage outside the main thread. Based on
757         patches from Armin Bauer and Jürg Billeter.
758
759         * libsoup/soup-misc.c (soup_add_io_watch, soup_add_idle,
760         soup_add_timeout): utility routines to add watches, idles, and
761         timeouts to non-default GMainContexts.
762
763         * libsoup/soup-message-io.c (io_write): set the read state
764         appropriately after writing a "100 Continue" response
765         (io_read): More 100-Continue stuff. I don't think this is quite
766         right so it will probably change again later.
767
768 2005-11-01  Dan Winship  <danw@novell.com>
769
770         * docs/reference/libsoup-docs.sgml: tell it to generate an index
771
772         * docs/reference/tmpl/*.sgml: regen with newer gtk-doc
773
774 2005-11-01  Dan Winship  <danw@novell.com>
775
776         * libsoup/soup-connection.c (set_current_request,
777         clear_current_request): Cast the argument to
778         g_object_add/remove_weak_pointer to the wrong type, to make gcc
779         4.1 happy, because C is stupid and "void **" means "a pointer to a
780         void *", not "a pointer to any kind of pointer".
781
782         * libsoup/soup-xmlrpc-response.c
783         (soup_xmlrpc_value_dump_internal): fix gccism. #320349, from
784         Roland Illig.
785
786 2005-10-27  Dan Winship  <danw@novell.com>
787
788         * libsoup/soup-socket.c (soup_socket_client_new_async,
789         soup_socket_client_new_sync): unref the SoupAddress passed to
790         soup_socket_connect to avoid a leak. Based on a patch from Wang
791         Xin.
792         (socket_read_watch, read_from_network, socket_write_watch,
793         soup_socket_write): request and handle G_IO_ERR and G_IO_HUP
794         events when polling, since poll() will return them whether or not
795         you asked for them, but glib will ignore them unless you did,
796         which will result in CPU suckage if such an error occurs. #319305,
797         patch from Jonathan Matthew.
798
799 2005-10-27  Dan Winship  <danw@novell.com>
800
801         bgo #316313 / bnc #116762, and probably also bgo #318252
802
803         * libsoup/soup-message-io.c (soup_message_io_stop): clear io->conn
804         after releasing it, to make sure we can't accidentally release it
805         twice.
806
807         * libsoup/soup-connection.c (clear_current_request): Call
808         soup_message_io_stop() on the cleared request.
809
810         * libsoup/soup-connection-ntlm.c (ntlm_authorize_post): do a
811         little dance here to make sure the session can't queue another
812         message on the connection while we're in the process of requeuing
813         the original one.
814
815 2005-08-30  Tor Lillqvist  <tml@novell.com>
816
817         * libsoup-zip.in: Include documentation in developer zipfile.
818
819 2005-08-22  Dan Winship  <danw@novell.com>
820
821         * libsoup/soup-soap-message.c (soup_soap_message_class_init): Call
822         g_type_class_add_private.
823
824         * configure.in: Bump to 2.2.6.1
825
826         * NEWS: update
827
828 2005-08-22  Dan Winship  <danw@novell.com>
829
830         * configure.in: Bump to 2.2.6. Bump SOUP_AGE and SOUP_CURRENT for
831         soup_server_get_socket() addition.
832
833         * NEWS: update
834
835 2005-08-22  Dan Winship  <danw@novell.com>
836
837         * libsoup/soup-connection.c (set_current_request,
838         clear_current_request): Fix g_object_add/remove_weak_pointer usage
839         to prevent a crash when canceling a request. From Tambet.
840
841 2005-08-16  Dan Winship  <danw@novell.com>
842
843         Fix a connection leak reported by Tambet.
844
845         * libsoup/soup-connection.c (send_request): rather than tracking
846         the message progress via signals, call
847         soup_message_send_request_internal() and have it call
848         soup_connection_release() when it's done.
849         (request_restarted, request_done): gone
850         (clear_current_request): handle disconnecting (if necessary) and
851         updating last_used time here.
852         (soup_connection_release): Call clear_current_request().
853         (dispose): Call clear_current_request()
854
855         * libsoup/soup-message-client-io.c
856         (soup_message_send_request_internal): New. Takes a SoupConnection
857         in addition to the other args, and passes that on to
858         soup-message-io.
859
860         * libsoup/soup-message-io.c (SoupMessageIOData): add a
861         SoupConnection field.
862         (io_cleanup): if io->conn is set, unref it.
863         (soup_message_io_stop): if io->conn is set, and we ended in a
864         clean state, call soup_connection_release() on it.
865         (soup_message_io_client): Add a SoupConnection arg, which gets
866         reffed and stored in io->conn.
867
868         * TODO: misc updates
869
870 2005-08-15  Dan Winship  <danw@novell.com>
871
872         * libsoup/soup-connection.h (soup_connection_new):
873         * libsoup/soup-server.h (soup_server_new):
874         * libsoup/soup-session-async.h (soup_session_async_new_with_options): 
875         * libsoup/soup-session-sync.h (soup_session_sync_new_with_options): 
876         * libsoup/soup-socket.h (soup_socket_new): use G_GNUC_NULL_TERMINATED.
877
878         * libsoup/soup-types.h (G_GNUC_NULL_TERMINATED): steal the
879         definition of this from glib 2.8 for use when compiling against
880         glib 2.6.
881
882 2005-08-15  Tambet Ingo  <tambet@ximian.com>
883
884         * libsoup/soup-socket.c (update_fdflags, set_property): Fix compilation
885         errors.
886
887         * libsoup/soup-server.c (soup_server_get_listener): ditto.
888
889 2005-08-12  Dan Winship  <danw@novell.com>
890
891         * libsoup/soup-server.c (soup_server_get_listener): new method to
892         get the server's listening socket.
893
894         * libsoup/soup-socket.c: add a new "cloexec" property, to set
895         FD_CLOEXEC on the socket. Update everything for that.
896
897 2005-08-05  Dan Winship  <danw@novell.com>
898
899         * libsoup/soup-socket.c (finalize): Free priv->read_buf. From
900         Tambet.
901         (soup_socket_connect): Make sure that get_iochannel() gets called
902         if the connect succeeds right away, or the socket will fail on
903         the first read or write. [#312540]
904
905 2005-08-01  Dan Winship  <danw@novell.com>
906
907         * configure.in: drop version back down to 2.2.5 and
908         SOUP_API_VERSION back to 2.2; due to various snafus, there has
909         never yet been an official release of the 2.4 API and the GNOME
910         2.12 betas have been shipping with libsoup 2.2 tarballs (while
911         jhbuild has been using 2.4, with evolution and related packages
912         having configure hacks to build against either). As there never
913         ended up being any API-incompatible changes in the 2.4 series, we
914         can just merge it back into the 2.2 series and kill off 2.4.
915
916         * NEWS: Copy in the 2.2-series news from the gnome-2-10 branch,
917         and add new NEWS
918
919         * libsoup-zip.in: s/2.2/@SOUP_API_VERSION@/
920
921         * libsoup/Makefile.am (libsoupincludedir, lib_LTLIBRARIES,
922         libsoup_2_2_la_LDFLAGS, libsoup_2_2_la_LIBADD,
923         libsoup_2_2_la_SOURCES): s/4/2/ in all the places automake won't
924         let us use a variable.
925
926 2005-08-01  Dan Winship  <danw@novell.com>
927
928         * libsoup/soup-md5-utils.c (soup_md5_final_hex): Finalize a
929         SoupMD5Context and write out the digest in hex digits.
930
931         * libsoup/soup-auth-digest.c (authenticate, compute_response):
932         * libsoup/soup-server-auth.c (check_digest_passwd): Use that,
933         rather than duplicating the code in both places here.
934
935         Patch from Wim Lewis.
936         
937 2005-07-15  Dan Winship  <danw@novell.com>
938
939         * libsoup/soup-session.c (redirect_handler): Allow relative URIs,
940         since some servers are lame. Based on a patch from Jean-Yves
941         Lefort. [#270688]
942
943         * tests/uri-parsing.c: add some more tests to make sure that
944         things that should be %-escaped do get %-escaped
945
946 2005-07-06  Tor Lillqvist  <tml@novell.com>
947
948         * libsoup/soup-date.c (soup_gmtime): Mention in the doc comment
949         that gmtime() is thread-safe on Windows.
950         (soup_date_generate): Use soup_gmtime() instead of gmtime_r().
951
952 2005-06-14  Dan Winship  <danw@novell.com>
953
954         * configure.in: check for gmtime_r
955
956         * libsoup/soup-date.c: date/time-manipulation functions
957
958         * libsoup/soup-xmlrpc-message.c: 
959         * libsoup/soup-xmlrpc-response.c: XMLRPC message classes, from
960         Mariano Suarez-Alvarez, Fernando Herrera, and Jeff Bailey.
961         [#300227]
962
963         * tests/date.c: soup-date test code
964
965         * tests/getbug.c: XMLRPC test code. (Should be switched to use
966         bugzilla.gnome.org once bgo supports XMLRPC.)
967
968         * TODO: XMLRPC is implemented now (but shares the problem with
969         SOAP that the API is not very good).
970
971 2005-06-14  Dan Winship  <danw@novell.com>
972
973         * libsoup/*.[ch]: add/fix gtk-doc comments, make functions match
974         prototypes, etc
975
976         * docs/reference/*: update, fix, etc
977
978 2005-06-13  Tor Lillqvist  <tml@novell.com>
979
980         * configure.in: Check also for inet_ntop(). Pre-cache knowledge
981         that we do have inet_pton() and inet_ntop() on Windows (because we
982         implement them ourselves in soup-dns.c).
983         
984         * libsoup/soup-dns.c (inet_pton, inet_ntop): Fix the Win32
985         implementations, they were completely bogus.
986         (soup_dns_ntop): Make it compile if HAVE_INET_NTOP.
987
988 2005-06-08  Dan Winship  <danw@novell.com>
989
990         * libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): Fix this to
991         use just the domain name for the domain, not the whole
992         DOMAIN\username. Based on a patch by Jeroen Hautekeete in #306877.
993
994 2005-05-26  Dan Winship  <danw@novell.com>
995
996         * libsoup/soup-session.c (cleanup_hosts): lock host_lock around
997         this, since it can be called from set_property(). Possible fix for
998         bnc #81641.
999
1000 2005-05-05  Dan Winship  <danw@novell.com>
1001
1002         * docs/reference/Makefile.am (SCANGOBJ_OPTIONS): Use
1003         --type-init-func to force g_thread_init to be called. [#302674]
1004
1005 2005-04-18  Tor Lillqvist  <tml@novell.com>
1006
1007         * configure.in: Call AC_LIBTOOL_WIN32_DLL. Check for Win32, set
1008         Automake conditional OS_WIN32. Pre-cache information that we do
1009         have getaddrinfo(), getnameinfo(), and IPv6 on Win32. (The tests
1010         wouldn't notice as they don't include the necessary headers or
1011         link with -lws2_32. Easiest to just pre-cache it.)
1012
1013         * libsoup-zip.in: New file, to build zipfile-based distribution of
1014         libsoup for Win32. 
1015
1016         * Makefile.am (EXTRA_DIST)
1017         * configure.in (AC_OUTPUT): Add libsoup-zip(.in).
1018
1019         * libsoup/Makefile.am: Use -no-undefined on Win32. Link with
1020         WinSock library -lws2_32.
1021         
1022         * libsoup/soup-portability.h: New file. On Unix it includes the
1023         traditional BSD socket etc headers. On Win32 it includes
1024         winsock2.h and ws2tcpip.h.
1025
1026         * libsoup/*.c
1027         * libsoup/*.h: Correspondingly, don't include the BSD socket API
1028         headers directly.
1029
1030         * libsoup/soup-address.h
1031         * libsoup/soup-dns.h: Include soup-portability.h
1032
1033         * libsoup/soup-address.c (soup_address_class_init): This function
1034         should get called before libsoup uses the WinSock API, so this is
1035         a good place to call WSAStartup().
1036         
1037         * libsoup/soup-auth-digest.c (get_protection_space): Use
1038         g_strsplit() instead of the relatively unportable strtok_r().
1039
1040         * libsoup/soun-dns.c: Remove unused headers. Implement
1041         inet_pton() and inet_ntop() on Win32 using WSAStringToAddress()
1042         and WSAAddressToString().
1043
1044         * libsoup/soup-socket.c (SOUP_CLOSE_SOCKET, SOUP_IS_SOCKET_ERROR,
1045         SOUP_IS_INVALID_SOCKET, SOUP_IS_CONNECT_STATUS_INPROGRESS):
1046         Portability macros.
1047         (soup_socket_class_init): Call soup_address_get_type() to make
1048         sure WSAStartup() gets called (through soup_address_class_init()).
1049         (update_fdflags): Use ioctlsocket(FIONBIO) on Win32.
1050         (soup_socket_write): Conditionalize SIGPIPE use.
1051         
1052         * tests/get.c: mkdir() is different in Microsoft's C library.
1053
1054         * tests/simple-httpd.c: Rename TRY_AGAIN label to AGAIN to avoid
1055         some clash with winsock2.h (which includes windows.h). The Win32
1056         headers pollute the namespace wildly.
1057
1058 2005-04-15  Dan Winship  <danw@novell.com>
1059
1060         * libsoup/soup-dns.c (resolve_name): make this work with
1061         pre-EAI_OVERFLOW glibc [#300620]
1062
1063 2005-04-12  Dan Winship  <danw@novell.com>
1064
1065         * configure.in: Remove the various gethostbyname_r checks and just
1066         check for getnameinfo/getaddrinfo.
1067
1068         * libsoup/soup-dns.c: de-nastify. Make this use threads instead of
1069         forking. Change the API around a bunch in the process.
1070
1071         * libsoup/soup-address.c: Update for soup-dns changes
1072
1073         * tests/dns.c: take multiple hostnames on the command line and
1074         resolve them all at once (patch from tml)
1075
1076 2005-04-11  Dan Winship  <danw@novell.com>
1077
1078         * configure.in: require glib-2.0 >= 2.4.0
1079
1080         * libsoup/*.c: use G_DEFINE_TYPE and
1081         g_type_class_add_private/G_TYPE_INSTANCE_GET_PRIVATE
1082
1083         * libsoup/soup-types.h: kill SOUP_MAKE_TYPE and
1084         SOUP_MAKE_TYPE_WITH_IFACE
1085
1086         * tests/revserver.c: use GThread. (patch from tml)
1087
1088 2005-04-11  Dan Winship  <danw@novell.com>
1089
1090         * configure.in: bump version to 2.3.0. bump SOUP_API_VERSION to
1091         2.4
1092
1093         * libsoup.pc.in: rename from libsoup-2.2.pc.in
1094
1095         * Makefile.am (EXTRA_DIST, pkgconfig_DATA, install-data-local):
1096         install the .pc file by hand, renaming it to include the
1097         SOUP_API_VERSION
1098
1099         * libsoup/Makefile.am: s/2.2/2.4/
1100
1101 2005-03-09  Dan Winship  <danw@novell.com>
1102
1103         * libsoup/soup-gnutls.c (soup_gnutls_read): return G_IO_STATUS_EOF
1104         if gnutls returns 0. [#73352]
1105         (verify_certificate): put an #ifdef around
1106         GNUTLS_CERT_NOT_TRUSTED so it works with gnutls 1.2.x. [#57811]
1107
1108 2005-01-08  Not Zed  <NotZed@Ximian.com>
1109
1110         ** See ximian bug #70323.
1111
1112         * libsoup/soup-connection-ntlm.c: replace all unsigned long/long
1113         types with guint32, as the code needs 32 bit longs.
1114
1115 2004-10-20  Dan Winship  <danw@novell.com>
1116
1117         * libsoup/soup-gnutls.c: Commit the alleged changes from the 10-06
1118         commit, which somehow did not actually get committed then.
1119
1120         * libsoup/soup-connection.c (SoupConnectionPrivate): add a flag
1121         indicating whether or not the connection is connected.
1122         (tunnel_connect_finished): If successful, set connected. If the
1123         server returns a 3xx response, translate it to 407 (under the
1124         assumption that it's trying to redirect us to an HTML login page,
1125         as in bug 68531). Use soup_socket_start_proxy_ssl() rather than
1126         soup_socket_start_ssl().
1127         (socket_connect_result, soup_connection_connect_sync): If
1128         successful, set connected
1129         (soup_connection_disconnect): Don't emit "disconnected" if we
1130         aren't yet connected, or the message that was waiting for this
1131         connection may get stranded in the queue. (also part of 68531)
1132
1133         * libsoup/soup-socket.c (soup_socket_start_proxy_ssl): New, starts
1134         SSL and lets the caller pass the expected hostname. Fixes a
1135         problem where SSL certification validation would always fail if
1136         you used a proxy, because it was comparing the cert against the
1137         proxy's hostname. (68583)
1138
1139 2004-10-06  Dan Winship  <danw@novell.com>
1140
1141         * libsoup/soup-ssl.h (SoupSocketError): add
1142         SOUP_SSL_ERROR_CERTIFICATE.
1143
1144         * libsoup/soup-gnutls.c (do_handshake): Pass the GError to
1145         verify_certificate.
1146         (verify_certificate): Set the GError appropriately rather than
1147         spewing g_warnings.
1148
1149         * libsoup/soup-socket.c (read_from_network, soup_socket_write): If
1150         the GIOChannel operation returns an error, store it as GOBject
1151         data on the socket (as a hack so soup-message-io.c can access it
1152         without us needing to change SoupSocket's API).
1153
1154         * libsoup/soup-message-io.c (io_error): peek at the socket's
1155         "last_error" datum and set the message's status to SSL_FAILED
1156         (with the GError's message string) rather than IO_ERROR, if
1157         appropriate. For 64414.
1158
1159 2004-09-30  Dan Winship  <danw@novell.com>
1160
1161         * libsoup/soup-gnutls.c (soup_gnutls_init): Add this, with some
1162         extra initialization needed for libgcrypt 1.2 or higher. Fixes
1163         66342.
1164         (soup_ssl_get_client_credentials,
1165         soup_ssl_get_server_credentials): Call soup_gnutls_init().
1166
1167 2004-08-26  Dan Winship  <danw@novell.com>
1168
1169         * configure.in: Bump version to 2.2.0.
1170
1171         * AUTHORS: Update this to reflect the last 2 years.
1172
1173         * NEWS: Brief summary of 1.99.x -> 2.2 changes
1174
1175         * README, TODO: Updates
1176
1177 2004-08-26  Dan Winship  <danw@novell.com>
1178
1179         * libsoup/*: add/fix lots of gtk-doc comments
1180         
1181         * libsoup/soup-misc.c (soup_str_case_hash, soup_str_case_equal):
1182         Fix bug noticed while documenting. (We were using the
1183         locale-case-insensitive functions rather than the g_ascii_ ones.)
1184
1185         * libsoup/soup-message.h (SoupMessageFlags): remove the (never
1186         implemented) NO_PIPELINE and NO_COOKIE flags.
1187
1188         * docs/reference/tmpl/*.sgml: Regenerate, fill in some stuff.
1189         There are still problems here with gtk-doc not recognizing many of
1190         the objects in libsoup...
1191
1192 2004-08-13  JP Rosevear  <jpr@novell.com>
1193
1194         * configure.in: bump version, libtool number
1195
1196 2004-08-09  Dan Winship  <danw@novell.com>
1197
1198         * libsoup/soup-connection.c (soup_connection_connect_sync): Don't
1199         use conn after emitting the "connect_result" signal, since it
1200         might be destroyed by that. Based on a patch from hpj.
1201
1202 2004-08-02  Dan Winship  <danw@novell.com>
1203
1204         * libsoup/soup-uri.h: Add flag "broken_encoding" to SoupUri.
1205
1206         * libsoup/soup-uri.c: (soup_uri_to_string): if broken_encoding is
1207         set, don't re-encode the URL parts. Based on a patch by
1208         Alfred.Peng@Sun.COM.
1209
1210 2004-07-19  JP Rosevear  <jpr@novell.com>
1211
1212         * configure.in: bump version, libtool number
1213
1214 2004-07-15  Dan Winship  <danw@novell.com>
1215
1216         * libsoup/soup-session-sync.c (send_message): Simplify this. If
1217         the message comes back from soup_connection_send_request not
1218         FINISHED, get a new connection rather than reusing the old one.
1219         This fixes a race condition in which a connection could end up
1220         double-booked, and fixes the handling of messages that get
1221         redirected to another server.
1222
1223 2004-07-13  Dan Winship  <danw@novell.com>
1224
1225         * libsoup/soup-session.c (connect_result): If the connection
1226         attempt succeeded, reserve the connection before releasing
1227         host_lock. Otherwise, another thread might find it in the
1228         connection pool before the caller can queue a message on it.
1229         #60693
1230
1231         * libsoup/soup-session-async.c (got_connection): Call
1232         soup_connection_release(), since we don't have a specific message
1233         in mind for the connection, so we need it to be considered idle.
1234
1235         * libsoup/soup-connection.c (soup_connection_release): New
1236         function, to undo a soup_connection_reserve().
1237         (soup_connection_send_request, soup_connection_reserve,
1238         soup_connection_authenticate, soup_connection_reauthenticate):
1239         Document these
1240
1241 2004-07-12  Dan Winship  <danw@novell.com>
1242
1243         * libsoup/soup-session-sync.c (send_message): signal the
1244         "connections available" condition after the message finishes. Duh.
1245
1246         * libsoup-2.2.pc.in (Cflags, Libs): add XML_CFLAGS and XML_LIBS
1247
1248 2004-07-08  Dan Winship  <danw@novell.com>
1249
1250         * libsoup/soup-soap-response.c: Revert previous change for now; it
1251         breaks the build on distros with older libxmls.
1252
1253 2004-07-08  Dan Winship  <danw@novell.com>
1254
1255         * tests/dict.c: Basic SOAP test, using Aonaware's SOAP->DICT
1256         gateway
1257
1258 2004-07-07  Fernando Herrera  <fherrera@onirica.com>
1259
1260         * libsoup/soup-soap-response.c: (finalize), (init),
1261         (soup_soap_response_from_string): Use a parse context for the
1262         xml document, so we can safely use the option to ignore
1263         blank spaces and '\n'.
1264
1265 2004-07-06  Dan Winship  <danw@novell.com>
1266
1267         * libsoup/soup-uri.c (soup_uri_new_with_base): if the protocol is
1268         http or https, require a hostname. For #61049
1269
1270         * tests/uri-parsing.c (rel_tests, do_uri): Update for that
1271
1272 2004-06-03  JP Rosevear <jpr@novell.com>
1273
1274         * configure.in: bump version to 2.1.11, libtool number
1275
1276 2004-06-01  Dan Winship  <danw@novell.com>
1277
1278         * libsoup/soup-address.c: Redo the various IPv4/IPv6-abstracting
1279         macros to not use ?: expressions as lvalues, since that's
1280         apparently a GNU extension.
1281         (soup_address_resolve_async): Use a timeout rather than an idle
1282         handler to poll the dns result. (soup-dns really should be
1283         rewritten to not require polling, but this is easier for now.)
1284         #59240
1285
1286         * libsoup/soup-server.c (call_handler): Don't use GNU-only
1287         non-constant structure initialization
1288
1289         * tests/dns.c: Simple test of the dns code
1290
1291         * tests/Makefile.am (noinst_PROGRAMS): build it
1292
1293 2004-05-19  JP Rosevear  <jpr@novell.com>
1294
1295         * configure.in (SOUP_API_VERSION): bump version, libtool numbers
1296
1297 2004-05-18  Dan Winship  <danw@novell.com>
1298
1299         * libsoup/soup-ssl.h:
1300         * libsoup/soup-nossl.c: define some GError codes and stuff
1301
1302         * libsoup/soup-gnutls.c: add missing #include <gnutls/x509.h>
1303         (do_handshake): when returning G_IO_STATUS_AGAIN, set the GError
1304         to SOUP_SSL_ERROR_HANDSHAKE_NEEDS_READ or _NEEDS_WRITE
1305         appropriately.
1306
1307         * libsoup/soup-socket.c (soup_socket_write): Handle
1308         SOUP_SSL_ERROR_HANDSHAKE_NEEDS_READ, by setting an io watch for
1309         G_IO_IN instead of G_IO_OUT. Fixes the rcd-sucking-up-all-cpu bug
1310         (#58434)
1311         (read_from_network): Handle the reverse case (which would cause
1312         hanging rather than spinning, and might be the cause of some
1313         connector 1.5 slowness?)
1314
1315 2004-05-11  Dan Winship  <danw@novell.com>
1316
1317         * libsoup/soup-misc.c (soup_signal_connect_once): Do this less
1318         kludgefully, using the magic of GClosure, to fix x86_64 problems
1319         reported by snorp.
1320
1321 2004-05-04  Sivaiah Nallagatla <snallagatla@novell.com>
1322
1323         * libsoup/soup-soap-message.c (finalize) : free
1324         the elements of priv structure before freeing priv
1325
1326 2004-04-20  Dan Winship  <danw@ximian.com>
1327
1328         * libsoup/soup-connection-ntlm.c (ntlm_authorize_post): if
1329         re-sending the message, call soup_message_restarted()
1330         (send_request): Connect to "restarted" signal, and remove the 401
1331         handlers from there; doing it here didn't work because if the
1332         connection was closed, the message would be re-sent on a new
1333         connection, but would still have the handlers from the old
1334         connection attached to it, which would make authentication fail.
1335
1336         * libsoup/soup-message-handlers.c (soup_message_run_handlers):
1337         Copy the handler list before starting, to protect against handlers
1338         that modify the handler list.
1339
1340 2004-04-15  Dan Winship  <danw@ximian.com>
1341
1342         * libsoup/soup-connection.c (soup_connection_connect_sync):
1343         Connect to the socket's "disconnect" signal. (We were only doing
1344         this from the async version before, which meant that synchronous
1345         SoupConnections could outlive their sockets and start causing
1346         errors.) #57004
1347
1348         * libsoup/soup-connection-ntlm.c (send_request): Remove the old
1349         Authorization header before adding a new one.
1350
1351 2004-04-02  JP Rosevear  <jpr@ximian.com>
1352
1353         * configure.in: bump version, libtool number
1354
1355 2004-03-15  Dan Winship  <danw@ximian.com>
1356
1357         * libsoup/soup-soap-message.c (soup_soap_message_persist): Fix up
1358         types to kill a warning with -Wall -O2
1359
1360 2004-03-05  JP Rosevear <jpr@ximian.com>
1361
1362         * configure.in: bump version, libtool number
1363
1364 2004-03-02  Dan Winship  <danw@ximian.com>
1365
1366         * libsoup/soup-dns.c (check_hostent): Only loop on EINTR if
1367         bytes_read is -1, since the value of errno is irrelevant when
1368         bytes_read is 0. Probably #54960.
1369
1370 2004-03-01  Rodrigo Moya <rodrigo@ximian.com>
1371
1372         * libsoup/soup-soap-response.h: removed not-implemented function's
1373         prototype.
1374
1375 2004-02-27  Rodney Dawes  <dobey@ximian.com>
1376
1377         * configure.in:
1378         * libsoup/Makefile.am: Use a different variable for linking to the
1379         static version of gnutls, so we don't pull the .a files into the .pc
1380
1381         Fixes #53346
1382
1383 2004-02-20  Dan Winship  <danw@ximian.com>
1384
1385         * libsoup/soup-message-io.c (read_metadata, read_body_chunk,
1386         write_data): Pass gsize *, not guint *, to soup_socket_read/write,
1387         to make this work on 64-bit platforms. (Grr. C type checking
1388         sucks.) #54631
1389         
1390         * tests/revserver.c: Likewise
1391
1392 2004-02-18  Rodrigo Moya <rodrigo@ximian.com>
1393
1394         Fixes #54512
1395
1396         * libsoup/soup-soap-response.c (soup_soap_parameter_get_int_value):
1397         don't leak the value returned from xmlNodeGetContent().
1398         (soup_soap_parameter_get_string_value,
1399         soup_soap_parameter_get_property): return a g_strdup'ed
1400         string, not the value returned by xmlNodeGetContent, so that
1401         callers can use g_free, and not xmlFree.
1402
1403         * libsoup/soup-soap-response.h: made soup_parameter_get_property
1404         not return const.
1405
1406 2004-02-17  Dan Winship  <danw@ximian.com>
1407
1408         * libsoup/soup-soap-message.h (SOUP_IS_SOAP_MESSAGE_CLASS): Fix a
1409         typo. #54433, from Mariano Suarez-Alvarez.
1410
1411         * libsoup/soup-soap-response.h (SOUP_IS_SOAP_RESPONSE_CLASS):
1412         Likewise
1413
1414 2004-02-17  Rodney Dawes  <dobey@ximian.com>
1415
1416         * libsoup/soup-message.c (soup_message_new): HTTP connections require
1417         a hostname, and we also hash on the host for message queueing in the
1418         session, if the host is NULL we free the SoupUri and return NULL
1419
1420 2004-02-14  Dan Winship  <danw@ximian.com>
1421
1422         * configure.in: Use POSIX-compliant "test $foo = bar", rather than
1423         GNU-only "test $foo == bar". #54354, from Julio M. Merino Vidal.
1424
1425 2004-02-12  Joe Shaw  <joe@ximian.com>
1426
1427         * libsoup/soup-dns.c (check_hostent): Call read() in a do-while
1428         loop to prevent DNS errors from short reads.
1429
1430 2004-02-11  Joe Shaw  <joe@ximian.com>
1431
1432         * configure.in: Bumped version number to 2.1.7 and libtool
1433         current. 
1434
1435 2004-02-11  Dan Winship  <danw@ximian.com>
1436
1437         * libsoup/soup-connection.c (soup_connection_disconnect): Update
1438         Joe's comment here with a gory explanation of exactly what's going
1439         on. (It's not just an SSL bug either, it affects all connections.)
1440
1441 2004-02-10  Joe Shaw  <joe@ximian.com>
1442
1443         * libsoup/soup-connection.c (soup_connection_disconnect): Add a
1444         workaround for SSL connections which time-out but don't close the
1445         socket until we try sending data again later.
1446
1447         * libsoup/soup-socket.c (soup_socket_connect, soup_socket_listen):
1448         Don't free the sockaddr from soup_address_get_sockaddr(); we don't
1449         own it, the SoupAddress does.
1450
1451 2004-02-09  JP Rosevear  <jpr@ximian.com>
1452
1453         * configure.in: Bump libtool numbers
1454
1455 2004-02-05  Dan Winship  <danw@ximian.com>
1456
1457         * libsoup/soup-session.c (soup_session_add_filter): Ref the filter
1458         when adding it.
1459         (soup_session_remove_filter): And unref it here (we were already
1460         unreffing it in dispose().)
1461
1462 2004-02-05  Joe Shaw  <joe@ximian.com>
1463
1464         * libsoup/soup-dns.c (soup_dns_entry_unref): Don't try to free the
1465         hostent if it's NULL.
1466         (soup_dns_entry_check_lookup): If the entry is resolved, but the
1467         hostent is NULL, uncache it.
1468
1469 2004-02-04  Dan Winship  <danw@ximian.com>
1470
1471         * libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): Always
1472         remove the WWW-Authenticate headers before returning, so the
1473         session won't fall back to Basic auth. Also, leave the connection
1474         in the "authenticating" state rather than setting it to
1475         "authenticated".
1476         (ntlm_authorize_post): Only requeue the message if it's in the
1477         "authenticating" state (and set it to "authenticated"). Fixes an
1478         "unepectedly disconnected" error if authentication fails.
1479
1480 2004-02-03  Dan Winship  <danw@ximian.com>
1481
1482         * libsoup/soup-message-io.c (io_cleanup): Call
1483         soup_message_io_stop so we don't get a callback on the io after
1484         it's been cleaned up.
1485
1486         * libsoup/soup-session.c (add_auth): Only remove the Authorization
1487         header if we have another one to add. (Otherwise it messes up
1488         SoupConnectionNTLM.)
1489
1490         * libsoup/soup-socket.c (read_from_buf): Use memmove rather than
1491         memcpy here, since the source and destination will overlap if
1492         *nread is small and read_buf->len is large. (Noticed by valgrind,
1493         #53625.)
1494
1495 2004-02-02  Joe Shaw  <joe@ximian.com>
1496
1497         * libsoup/soup-gnutls.c (soup_gnutls_close): Call gnutls_bye()
1498         with the GNUTLS_SHUT_WR flag (instead of RDWR) and check only for
1499         GNUTLS_E_INTERRUPTED.  GNUTLS_E_AGAIN will be returned by recv()
1500         when there are no messages on the wire on a non-blocking socket.
1501         This sends a SSL hangup message and then allows us to immediately
1502         close the socket.
1503
1504 2004-01-30  Rodrigo Moya <rodrigo@ximian.com>
1505
1506         * configure.in: bumped version number to 2.1.6.
1507
1508 2004-01-29  Rodrigo Moya <rodrigo@ximian.com>
1509
1510         * libsoup/soup-soap-response.[ch] (soup_soap_parameter_get_property):
1511         new function.
1512
1513 2004-01-29  Rodrigo Moya <rodrigo@ximian.com>
1514
1515         * libsoup/soup-soap-response.[ch]
1516         (soup_soap_parameter_get_string_value): removed 'const' from return
1517         type.
1518
1519 2004-01-29  Joe Shaw  <joe@ximian.com>
1520
1521         * libsoup/soup-gnutls.c (verify_certificate): Initialize the
1522         certificate before we try to use it.  Ahem.
1523
1524 2004-01-23  Joe Shaw  <joe@ximian.com>
1525
1526         * configure.in: Bump version to 2.1.5 and SOUP_RELEASE to 2
1527
1528 2004-01-21  Joe Shaw  <joe@ximian.com>
1529
1530         * configure.in: Require at least GnuTLS 1.0.0.
1531
1532         * libsoup/soup-gnutls.c: Fix the use of deprecated GnuTLS
1533         functions.
1534         (verify_certificate): Use gnutls_x509_crt_import() and
1535         gnutls_x509_crt_check_hostname() instead of
1536         gnutls_x509_check_certificates_hostname().
1537         (init_dh_params): Use gnutls_dh_params_generate2() instead of
1538         gnutls_dh_params_generate() and gnutls_dh_params_set().
1539
1540 2004-01-20  Joe Shaw  <joe@ximian.com>
1541
1542         * libsoup/soup-gnutls.c (soup_gnutls_close): gnutls_bye() doesn't
1543         close the socket itself, so we need to do it or else our
1544         connections stay in CLOSE_WAIT forever.
1545
1546 2004-01-16  Jason Leach  <leach@wam.umd.edu>
1547
1548         * libsoup/Makefile.am: builddir != srcdir fixes.
1549
1550 2004-01-14  Joe Shaw  <joe@ximian.com>
1551
1552         * libsoup/soup-gnutls.c (verify_certificate): Remove the
1553         check for GNUTLS_CERT_CORRUPTED, it's not in 1.0.x.
1554
1555 2004-01-12  JP Rosevear  <jpr@ximian.com>
1556
1557         * configure.in: bump version and libtool revision
1558
1559 2004-01-12  Dan Winship  <danw@ximian.com>
1560
1561         * tests/simple-httpd.c (main): Add a g_thread_init() so this works
1562         again.
1563
1564 2004-01-10  Larry Ewing  <lewing@ximian.com>
1565
1566         * libsoup-2.2.pc.in (Libs): use LIBGNUTLS_LIBS in the substitution
1567         string.
1568
1569 2004-01-09  Joe Shaw  <joe@ximian.com>
1570
1571         * acinclude.m4: Include the libgnutls.m4 file.
1572
1573         * configure.in: Remove manual checking for libgnutls-config and
1574         use the AM_PATH_LIBGNUTLS so we can pass in a minimum required
1575         version, which is 0.9.7 for now.
1576
1577         * libsoup/Makefile.am: Some changes for the above change.
1578
1579         * libsoup/soup-gnutls.c: Check for HAVE_SSL, not
1580         HAVE_GNUTLS_GNUTLS_H.
1581         (verify_certificate): Uncomment the SSL certificate hostname
1582         check.
1583
1584         * libsoup/soup-session.c (set_property): Be smart about flushing
1585         our SSL credentials only when the CA file is set to something
1586         different than it was before.
1587
1588 2004-01-09  Harish K <kharish@novell.com>
1589         * libsoup/soup-soap-response.c (soup_soap_response_from_string): 
1590         added code to ignore Header element, if present, while creating 
1591         response objects.  
1592         
1593 2004-01-05  Dan Winship  <danw@ximian.com>
1594
1595         * configure.in: Remove no-longer-relevant socklen_t check
1596
1597         * libsoup/soup-address.c: Reorder #includes for FreeBSD (From Joe
1598         Marcus Clarke, #52566)
1599
1600         * libsoup/soup-dns.c: Likewise
1601
1602 2003-12-29  JP Rosevear <jpr@ximian.com>
1603
1604         * configure.in: bump version and libtool numbers
1605
1606 2003-12-22  Dan Winship  <danw@ximian.com>
1607
1608         * README, TODO: Update these
1609
1610 2003-12-22  Dan Winship  <danw@ximian.com>
1611
1612         * libsoup/soup-socket.c: Lots of thread-safety stuff, primarly so
1613         you can disconnect a socket from one thread while doing I/O in
1614         another.
1615
1616         * libsoup/soup-message-io.c (soup_message_io_cancel): Split into
1617         soup_message_io_stop() and io_cleanup(), to separate out the "stop
1618         reading/writing" and "free data" phases to allow thread-safe
1619         synchronous cancellation.
1620         (soup_message_io_finished): call both soup_message_io_stop() and
1621         io_cleanup()
1622         (io_error): Only set SOUP_STATUS_IO_ERROR on the message if it
1623         doesn't already have a transport error status (eg, CANCELLED).
1624         (new_iostate): Call io_cleanup() if needed.
1625
1626         * libsoup/soup-status.h: add "SOUP_STATUS_NONE" for 0, to make it
1627         clearer that it's not a status.
1628
1629         * libsoup/soup-message.c (finalize, restarted, finished,
1630         soup_message_set_uri): s/soup_message_io_cancel/soup_message_io_stop/
1631         (soup_message_cleanup_response): s/0/SOUP_STATUS_NONE/
1632
1633         * libsoup/soup-connection.c (send_request): Remove
1634         soup_message_io_cancel call.
1635
1636         * libsoup/soup-session-sync.c (send_message): Connect to the
1637         connection's "disconnected" signal rather than using a weak ref,
1638         since that's what we really care about, and it's possible that the
1639         connection may have an extra ref on it somewhere that would keep
1640         it from being destroyed even if it was disconnected.
1641
1642 2003-12-20  Joe Shaw  <joe@ximian.com>
1643
1644         * libsoup/soup-session.c (lookup_auth): If const_path is NULL un
1645         the non-proxy case, then use the root ("/").
1646
1647 2003-12-19  Dan Winship  <danw@ximian.com>
1648
1649         * libsoup/soup-message-filter.c: New. An interface for objects
1650         that want to act on every message passing through a session.
1651         (Initially being used for authentication, but could also be used
1652         for cache handling, cookie management, etc.)
1653
1654         * libsoup/soup-connection.c (class_init, etc): Add a message
1655         filter property.
1656         (send_request): If the connection has a message filter set, run
1657         it on the message before sending it.
1658         (soup_connection_connect_async, etc): When setting up a tunnel, if
1659         we get back a 407 and the session tries to requeue the message,
1660         either re-send it, or return SOUP_STATUS_TRY_AGAIN (depending on
1661         whether or not the proxy closed the connection).
1662         (soup_connection_connect_sync): Likewise
1663         (send_request, request_done): Ref/unref the connection
1664
1665         * libsoup/soup-session.c (soup_session_get_type): Implement the
1666         SoupMessageFilter interface.
1667         (soup_session_get_connection): Use the session as the connection's
1668         message filter
1669         (soup_session_add_filter, soup_session_remove_filter): Add/remove
1670         filters from the session
1671         (setup_message): do auth handling, and call each of the session's
1672         filters' setup_message methods as well.
1673         (soup_session_send_message_via): No longer needed.
1674         (connect_result): Handle SOUP_STATUS_TRY_AGAIN.
1675
1676         * libsoup/soup-session-async.c (run_queue): Use
1677         soup_connection_send_request, since soup_session_send_message_via
1678         is gone now.
1679
1680         * libsoup/soup-session-sync.c (send_message): Likewise
1681
1682         * libsoup/soup-message.c (soup_message_is_keepalive): A successful
1683         response to a CONNECT is always keepalive, even if it's HTTP/1.0
1684         with no Connection header.
1685
1686         * libsoup/soup-status.h: add SOUP_STATUS_TRY_AGAIN
1687
1688         * libsoup/soup-types.h: Add SoupMessageFilter, and macros for
1689         gobject interface types.
1690
1691         * tests/get.c (main): Add a -p flag to specify a proxy
1692
1693         * tests/simple-proxy.c: Fix #includes
1694
1695 2003-12-18  Dan Winship  <danw@ximian.com>
1696
1697         * libsoup/soup-connection.c (soup_connection_disconnect): Actually
1698         disconnect the socket rather than just unreffing it, since the IO
1699         code may be holding an extra ref on it.
1700         (send_request): connect to the "restarted" signal too
1701         (request_restarted): Deal with "Connection: close"
1702
1703         * libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): Make this
1704         not go into an infinite loop if the server only supports Basic.
1705
1706 2003-12-17  Rodrigo Moya <rodrigo@ximian.com>
1707
1708         * libsoup/Makefile.am: install soup-message-queue.h with the rest
1709         of the headers.
1710
1711 2003-12-17  Dan Winship  <danw@ximian.com>
1712
1713         * configure.in: Add gthread to glib check
1714
1715         * libsoup/soup-session.c: Make this an abstract class.
1716
1717         * libsoup/soup-session-async.c: A SoupSession class for
1718         asynchronous gmain-based operation; replaces the old SoupSession.
1719
1720         * libsoup/soup-session-sync.c: A SoupSession class for synchronous
1721         blocking operation for use with threaded apps.
1722
1723         * libsoup/soup-types.h, libsoup/soup.h: add the new session
1724         subclasses
1725
1726         * libsoup/soup-connection.c (soup_connection_connect_sync): Don't
1727         try to unref the socket if the socket creation fails.
1728         (soup_connection_reserve): New, to explicitly mark a connection as
1729         being in use without queueing a message on it.
1730
1731         * libsoup/soup-dns.c (check_hostent): Oof. Fix the logic of the
1732         "block" flag to not be reversed.
1733
1734         * libsoup/soup-message.c (finished): set status to FINISHED here.
1735         (soup_message_cancel): Gone; needs to be done at the session
1736         level.
1737
1738         * libsoup/soup-message-queue.c: Add a mutex and make all of the
1739         operations thread-safe.
1740
1741         * libsoup/soup-socket.c (disconnect_internal): Make this
1742         thread-safe.
1743         (soup_socket_connect): Make the sync case work correctly.
1744
1745         * libsoup/Makefile.am: add the SoupSession subclasses
1746
1747         * tests/Makefile.am: libsoup depends on libgthread now, so
1748         revserver doesn't need to explicitly.
1749
1750         * tests/get.c, tests/auth-test.c, tests/simple-proxy.c: Use
1751         soup_session_async_new().
1752
1753 2003-12-16  Rodrigo Moya <rodrigo@ximian.com>
1754
1755         * libsoup/soup-soap-response.[ch] (soup_soap_parameter_get_int_value):
1756         new function.
1757
1758 2003-12-16  Joe Shaw  <joe@ximian.com>
1759
1760         * libsoup/soup-connection.c (socket_connect_result,
1761         soup_connection_connect_sync): Only set up a tunnel if the
1762         destination protocol is HTTPS.
1763
1764         * libsoup/soup-message.c (class_init): Add a default handler for
1765         wrote_body.
1766         (wrote_body): Run the SOUP_HANDLER_POST_REQUEST handlers here.
1767         (soup_message_cancel): Don't set the status to
1768         SOUP_STATUS_CANCELLED and call soup_message_finished() if the
1769         status is already SOUP_MESSAGE_STATUS_FINISHED.
1770
1771         * libsoup/soup-session.c (set_property): Don't cancel the session
1772         if the proxy URI set as a property isn't different from the old
1773         one.
1774         (get_host_for_message): Refactor some code so that we can easily
1775         get the right SoupSessionHost for proxies as well as from the
1776         message.
1777         (authenticate_auth): Take a gboolean proxy parameter.  Check it to
1778         see which URI (message URI or proxy URI) to use for
1779         authentication.  Add a long comment about lack of clarity in RFC
1780         2617 with respect to proxies and protection spaces.
1781
1782 2003-12-15  Dan Winship  <danw@ximian.com>
1783
1784         * libsoup/soup-socket.h (soup_socket_read, soup_socket_read_until,
1785         soup_socket_write): s/guint/gsize/ to match the definitions in
1786         soup-socket.c. #52167.
1787
1788 2003-12-12  Rodrigo Moya <rodrigo@ximian.com>
1789
1790         * libsoup/soup-soap-message.c: removed debugging of the messages here.
1791
1792 2003-12-12  Rodrigo Moya <rodrigo@ximian.com>
1793
1794         * libsoup/soup-soap-message.c (soup_soap_message_start_envelope):
1795         added information for SOAP-ENV namespace.
1796
1797 2003-12-10  Dan Winship  <danw@ximian.com>
1798
1799         * libsoup/soup-message-client-io.c (parse_response_headers): if we
1800         receive an HTTP/1.0 response to an HTTP/1.1 request, downgrade the
1801         message's http_version so the keep-alive handling is correct.
1802         Fixes a problem noticed almost simultaneously by Rodrigo and Joe.
1803
1804         * libsoup/soup-message.c (soup_message_restarted, etc): Add a
1805         "restarted" signal as suggested by Joe.
1806
1807         * libsoup/soup-message-io.c (soup_message_io_finished): emit
1808         either "restarted" or "finished" as appropriate
1809
1810         * libsoup/soup-session.c (soup_session_queue_message): Connect to
1811         "restarted" and run the queue if a message gets restarted
1812
1813         * libsoup/soup-status.h: Remove a stray comma that gtk-doc doesn't
1814         like.
1815
1816 2003-12-10  Tambet Ingo  <tambet@ximian.com>
1817
1818         * configure.in: Use autoconfig to check for socklen_t ...
1819
1820         * libsoup/soup-address.c: ... and remove it from here ...
1821
1822         * libsoup/soup-dns.c: ... and here.
1823
1824 2003-12-09  Rodrigo Moya <rodrigo@ximian.com>
1825
1826         * libsoup/soup-soap-message.c (soup_soap_message_persist):
1827         (soup_soap_message_parse_response): print out request/response's
1828         contents, if in debug mode.
1829
1830 2003-12-07  JP Rosevear  <jpr@ximian.com>
1831
1832         * configure.in: Bump version
1833
1834 2003-11-28  Rodrigo Moya <rodrigo@ximian.com>
1835
1836         * libsoup/soup-soap-response.[ch]
1837         (soup_soap_parameter_get_first_child,
1838         soup_soap_parameter_get_first_child_by_name,
1839         soup_soap_parameter_get_next_child,
1840         soup_soap_parameter_get_next_child_by_name): new functions to
1841         manage SoupSoapParameter's children.
1842         (soup_soap_response_get_first_parameter): dont return a GList, but
1843         a SoupSoapParameter contained in the GList.
1844
1845 2003-11-26  Rodrigo Moya <rodrigo@ximian.com>
1846
1847         * libsoup/soup-soap-response.[ch]
1848         (soup_soap_parameter_get_string_value): new function.
1849
1850 2003-11-26  Rodrigo Moya <rodrigo@ximian.com>
1851
1852         * libsoup/soup-soap-response.[ch]: added SoupSoapParameter
1853         structure, to "hide" the usage of xmlNode's.
1854         (soup_soap_parameter_get_name): functions to manage SOAP
1855         response parameters.
1856         (soup_soap_response_get_first_parameter,
1857         soup_soap_response_get_first_parameter_by_name,
1858         soup_soap_response_get_next_parameter,
1859         soup_soap_response_get_next_parameter_by_name):
1860         new functions for an easy access to the response's parameters.
1861         (soup_soap_response_from_string): removed warnings.
1862
1863 2003-11-25  Rodrigo Moya <rodrigo@ximian.com>
1864
1865         * libsoup/soup-soap-response.c (soup_soap_response_set_method_name):
1866         fixed typo.
1867
1868 2003-11-25  Rodrigo Moya <rodrigo@ximian.com>
1869
1870         * libsoup/soup-soap-response.[ch] (soup_soap_response_get_method_name,
1871         soup_soap_response_set_method_name, soup_soap_message_get_parameters):
1872         new functions.
1873         (finalize): NULL out new private fields.
1874         (soup_soap_response_from_string): added validation code.
1875
1876 2003-11-23  Rodrigo Moya <rodrigo@ximian.com>
1877
1878         * libsoup/soup-soap-response.[ch]: new class for managing SOAP
1879         responses.
1880
1881         * libsoup/soup-soap-message.[ch] (soup_soap_message_parse_response):
1882         new function.
1883
1884         * libsoup/Makefile.am: added new files.
1885
1886 2003-11-18  Rodney Dawes  <dobey@ximian.com>
1887
1888         * gtk-doc.make: Add gtk-doc.make to cvs for systems without gtk-doc
1889
1890 2003-11-18  Rodney Dawes  <dobey@ximian.com>
1891
1892         * acinclude.m4: Add GTK_DOC_CHECK
1893
1894 2003-11-18  Dan Winship  <danw@ximian.com>
1895
1896         * configure.in: Replace old gtk-doc test with GTK_DOC_CHECK()
1897         (AC_OUTPUT): add docs/Makefile, docs/reference/Makefile
1898
1899         * autogen.sh (REQUIRED_AUTOMAKE_VERSION): 1.6, for gtk-doc.make
1900
1901         * Makefile.am: updates for gtk-doc
1902         (SUBDIRS): add back "docs"
1903
1904         * docs/Makefile.am (EXTRA_DIST): remove, since those old docs
1905         aren't around any more
1906
1907         * docs/reference/*: set up gtk-doc
1908
1909         * libsoup/Makefile.am (INCLUDES): Change G_LOG_DOMAIN to
1910         "libsoup". Remove unused defines.
1911
1912         * libsoup/soup-connection.c: Fix doc comments
1913         * libsoup/soup-message.c: Likewise
1914         * libsoup/soup-misc.c: Likewise
1915         * libsoup/soup-socket.c: Likewise
1916         * libsoup/soup-uri.c: Likewise
1917
1918         * libsoup/soup-address.h: Fixes to please gtk-doc
1919         * libsoup/soup-connection.h: Likewise
1920         * libsoup/soup-message.h: Likewise
1921         * libsoup/soup-message-private.h: Likewise
1922         * libsoup/soup-misc.h: Likewise
1923         * libsoup/soup-server-auth.h: Likewise
1924         * libsoup/soup-socket.h: Likewise
1925         * libsoup/soup-status.h: Likewise
1926
1927 2003-11-18  Dan Winship  <danw@ximian.com>
1928
1929         * configure.in: Fix up the SSL checks some. Remove some useless
1930         old header checks.
1931
1932         * libsoup/soup-misc.h: declare soup_ssl_supported.
1933
1934         * libsoup/soup-gnutls.c: add soup_ssl_supported declaration.
1935
1936         * libsoup/soup-nossl.c: Not an SSL implementation, built if
1937         HAVE_SSL is not defined.
1938
1939         * libsoup/Makefile.am (libsoup_2_2_la_SOURCES): add soup-nossl.c
1940
1941         * libsoup/soup-socket.c (soup_socket_start_ssl): Return success or
1942         failure.
1943         (listen_watch): Deal with soup_socket_start_ssl failing.
1944
1945         * libsoup/soup-connection.c (tunnel_connect_finished,
1946         socket_connect_result, soup_connection_connect_sync): Deal with
1947         the soup_socket_start_ssl failing.
1948
1949         * libsoup/soup-server.c (soup_server_new): Deal with
1950         soup_ssl_get_server_credentials failing
1951
1952 2003-11-18  Rodrigo Moya <rodrigo@ximian.com>
1953
1954         * libsoup/soup-soap-message.[ch] (soup_soap_message_start_fault,
1955         soup_soap_message_end_fault, soup_soap_message_start_fault_detail,
1956         soup_soap_message_end_fault_detail, soup_soap_message_start_header,
1957         soup_soap_message_end_header,
1958         soup_soap_message_start_header_element,
1959         soup_soap_message_end_header_element, soup_soap_message_write_int,
1960         soup_soap_message_write_double, soup_soap_message_write_base64,
1961         soup_soap_message_write_time, soup_soap_message_write_string,
1962         soup_soap_message_write_buffer, soup_soap_message_set_element_type,
1963         soup_soap_message_set_null, soup_soap_message_add_attribute,
1964         soup_soap_message_add_namespace,
1965         soup_soap_message_set_default_namespace,
1966         soup_soap_message_get_namespace_prefix,
1967         soup_soap_message_set_encoding_style, soup_soap_message_reset,
1968         soup_soap_message_persist): new functions from old SoupSerializer.
1969
1970 2003-11-17  Rodrigo Moya <rodrigo@ximian.com>
1971
1972         * libsoup/soup-soap-message.[ch] (soup_soap_message_new,
1973         soup_soap_message_new_from_uri): added a bunch of initialization
1974         parameters.
1975         (soup_soap_message_get_xml_doc, soup_soap_message_start_envelope,
1976         soup_soap_message_end_envelope, soup_soap_message_start_body,
1977         soup_soap_message_end_body, soup_soap_message_start_element,
1978         soup_soap_message_end_element):
1979         new functions.
1980
1981         * configure.in: depend on libxml-2.0 for the SOAP code.
1982
1983         * libsoup/Makefile.am: use XML CFLAGS and LIBS.
1984
1985 2003-11-17  Joe Shaw  <joe@ximian.com>
1986
1987         * configure.in: Add in the --enable-libgpg-error flag from the 2.0
1988         branch.
1989
1990         * acinclude.m4: Include the gpg-error macros.
1991
1992 2003-11-17  Rodrigo Moya <rodrigo@ximian.com>
1993
1994         * libsoup/soup-soap-message.[ch]: new class to make it easier to
1995         build SOAP messages.
1996
1997         * libsoup/Makefile.am: added new files.
1998
1999         * configure.in: increased version number.
2000
2001 2003-10-24  Joe Shaw  <joe@ximian.com>
2002
2003         * libsoup/soup-address.c (update_address_from_entry): Call
2004         soup_dns_entry_get_hostent() on the SoupAddress passed in, not the
2005         one in addr->priv->lookup.  Fixes a crash on synchronous DNS
2006         lookups.
2007
2008         * libsoup/soup-server.c (soup_server_new): We need to ref the
2009         address we're binding to, because soup_socket_get_local_address()
2010         doesn't ref for us.
2011
2012 2003-10-23  Dan Winship  <danw@ximian.com>
2013
2014         * libsoup/soup-socket.c (init): Initialize flags to default
2015         values.
2016
2017 2003-09-23  Dan Winship  <danw@ximian.com>
2018
2019         * libsoup/soup-gnutls.c (SoupGNUTLSCred): Remove refcounting, but
2020         note whether or not the CA file has been loaded.
2021         (SoupGNUTLSChannel): add a "hostname" field.
2022         (verify_certificate): Remove the comment about not being able to
2023         verify the hostname because of soup problems. Now it's because of
2024         GNUTLS problems instead.
2025         (soup_ssl_wrap_iochannel): Renamed from soup_ssl_get_iochannel,
2026         and takes a hostname and a creds argument now.
2027         (soup_ssl_get_client_credentials,
2028         soup_ssl_get_server_credentials): Return client/server credentials
2029         structures.
2030         (soup_ssl_free_client_credentials,
2031         soup_ssl_free_server_credentials): and free them.
2032
2033         * libsoup/soup-session.c (class_init, set_property, get_property):
2034         add ssl_ca_file property
2035         (get_host_for_message): when returning an SSL host for the first
2036         time, create a client credentials structure for the session.
2037         (run_queue): Pass the ssl creds to the new connection. Also fix an
2038         unrelated bug that caused infinite loops on "bad hostname".
2039
2040         * libsoup/soup-server.c: Use GObject properties, including
2041         ssl_cert_file and ssl_key_file properties.
2042         (soup_server_new): Remove "protocol" argument; if the cert file
2043         and key file properties were set, create a server credential
2044         structure from them and pass that to soup_socket_server_new.
2045
2046         * libsoup/soup-connection.c (SoupConnectionPrivate): Rename
2047         dest_uri to origin_uri to match RFC 2616 terminology. Add an
2048         "ssl_creds" field.
2049         (class_init, set_property, get_property): add SSL_CREDS property
2050         (soup_connection_connect_async, soup_connection_connect_sync):
2051         Pass ssl_creds to soup_socket_client_new calls.
2052
2053         * libsoup/soup-socket.c: Use GObject properties, including an
2054         ssl_creds property
2055         (soup_socket_set_flags): Gone (replaced with boolean properties)
2056         (soup_socket_new): Make this take a list of properties
2057         (listen_watch): copy ssl creds from listener to new socket
2058         (soup_socket_start_ssl): Pass remote hostname and socket creds
2059         structure to soup_ssl_wrap_iochannel.
2060         (soup_socket_client_new_async, soup_socket_client_new_sync,
2061         soup_socket_server_new): Replace the SSL boolean with an ssl_creds
2062         structure.
2063
2064         * libsoup/soup-misc.c (soup_set_ssl_ca_file,
2065         soup_set_ssl_cert_files, soup_get_ssl_ca_file,
2066         soup_get_ssl_cert_files): Gone. SSL state is now per-session or
2067         per-server.
2068
2069         * tests/get.c: add a "-c CAfile" argument, for loading a CA
2070         certificate file to validate https connections against
2071
2072         * tests/simple-httpd.c: Add "-c certfile" and "-k keyfile"
2073         arguments for loading an SSL server certificate. Only start an SSL
2074         server if those arguments were used.
2075
2076         * tests/test-cert.pem: 
2077         * tests/test-key.pem: SSL certificate for testing simple-httpd
2078
2079         * tests/revserver.c: Update for API changes
2080         * tests/simple-proxy.c: Likewise
2081
2082 2003-09-22  Dan Winship  <danw@ximian.com>
2083
2084         * libsoup/soup-message-io.c: Move RESPONSE_BLOCK_SIZE #define here
2085         from soup-private.h
2086
2087         * libsoup/soup-misc.c (soup_load_config, etc): Remove all this.
2088         (soup_set_security_policy, soup_get_security_policy): Remove,
2089         since the GNUTLS backend doesn't actually implement it.
2090         (soup_set_ssl_ca_dir, soup_get_ssl_ca_dir): Likewise
2091
2092         * libsoup/soup-misc.h: sync to soup-misc.c. Don't #include extra
2093         stuff.
2094
2095         * libsoup/soup-types.h (SOUP_MAKE_TYPE): Move this here from
2096         soup-private.h
2097
2098         * libsoup/soup-ssl.h: Merge soup_ssl_get_iochannel and
2099         soup_ssl_get_server_iochannel into a single function that takes a
2100         SoupSSLType.
2101
2102         * libsoup/soup-gnutls.c: Remove soup_get_ssl_ca_dir() reference.
2103         (soup_ssl_get_iochannel): Renamed from soup_gnutls_get_iochannel.
2104         (soup_gnutls_set_security_policy): Gone
2105
2106         * libsoup/soup-gnutls.h
2107         * libsoup/soup-ssl.c: Gone; soup-ssl.h is the #include file for
2108         soup-gnutls.c now
2109
2110         * libsoup/soup-socket.c: Move soup_sockaddr_max
2111         #define here from soup-private.h
2112         (soup_socket_start_ssl): Update for new soup_ssl_get_iochannel
2113         prototype.
2114
2115         * libsoup/soup-private.h: Gone
2116         
2117         * libsoup/soup-address.c: Fix #includes for soup-private.h and
2118         soup-misc.h changes
2119         * libsoup/soup-auth-digest.c: Likewise
2120         * libsoup/soup-auth.c: Likewise
2121         * libsoup/soup-connection-ntlm.c: Likewise
2122         * libsoup/soup-connection.c: Likewise
2123         * libsoup/soup-dns.c: Likewise
2124         * libsoup/soup-gnutls.c: Likewise
2125         * libsoup/soup-headers.c: Likewise
2126         * libsoup/soup-message-client-io.c: Likewise
2127         * libsoup/soup-message-handlers.c: Likewise
2128         * libsoup/soup-message-io.c: Likewise
2129         * libsoup/soup-message-server-io.c: Likewise
2130         * libsoup/soup-message.c: Likewise
2131         * libsoup/soup-server-message.c: Likewise
2132         * libsoup/soup-server.c: Likewise
2133         * libsoup/soup-session.c: Likewise
2134         * libsoup/soup-socket.c: Likewise
2135         * tests/auth-test.c: Likewise
2136
2137 2003-09-19  Dan Winship  <danw@ximian.com>
2138
2139         * libsoup/soup-address.c (update_address_from_entry): free the
2140         hostent.
2141
2142         * libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): Don't leak
2143         the domain
2144
2145         * libsoup/soup-gnutls.c (soup_gnutls_get_iochannel): Add some more
2146         iochannel initialization. Not sure how this worked before...
2147
2148         * libsoup/soup-message.c (soup_message_cleanup_response): Renamed
2149         from soup_message_prepare (and a few things removed).
2150
2151         * libsoup/soup-message-client-io.c (soup_message_send_request):
2152         s/soup_message_prepare/soup_message_cleanup_response/
2153
2154         * libsoup/soup-message-io.c (io_read): Replace the final "\r\n"
2155         with "\0" on the headers before passing them to the parse
2156         function.
2157         (io_read): Call soup_message_cleanup_response after returning an
2158         informational response so the data doesn't leak.
2159
2160         * libsoup/soup-headers.c (soup_headers_parse): Update for
2161         soup-message-io.c:io_read change
2162
2163         * libsoup/soup-server.c (soup_server_new,
2164         soup_server_new_with_host): Don't leak the SoupAddress.
2165
2166         * libsoup/soup-session.c (class_init): Make PROP_PROXY_URI not
2167         CONSTRUCT_ONLY.
2168         (set_property): If the proxy uri changes, call
2169         soup_session_abort() and cleanup_hosts().
2170         (request_finished, final_finished): Fix a bug when requeuing
2171         messages.
2172
2173         * tests/libsoup.supp: valgrind suppression file for soup tests
2174
2175         * tests/Makefile.am (EXTRA_DIST): dist it.
2176         (noinst_PROGRAMS): move the former check_PROGRAMS to
2177         noinst_PROGRAMS instead.
2178
2179 2003-09-18  Dan Winship  <danw@ximian.com>
2180
2181         * libsoup/soup-message.c: Add wrote_informational and
2182         got_informational signals.
2183
2184         * libsoup/soup-message-client-io.c (get_request_headers): Set the
2185         EXPECT_CONTINUE flag on the message if that header is set.
2186
2187         * libsoup/soup-message-server-io.c (parse_request_headers):
2188         Likewise
2189
2190         * libsoup/soup-message-io.c (io_write): Set read_state to HEADERS
2191         when blocking on an expect-continue. Emit wrote_informational
2192         instead of wrote_headers in the 1xx case.
2193         (io_read): Set read_state to BLOCKING, not NOT_STARTED after
2194         reading a 100 Continue response. Emit got_informational instead of
2195         got_headers in the 1xx case.
2196
2197         * libsoup/soup-session.c (soup_session_send_message): Reorder
2198         things to deal with the fact that the message could finish right
2199         away if there is a connection available and the server is very
2200         close.
2201
2202         * libsoup/soup-status.h: Rename SOUP_STATUS_CLASS_TRANSPORT to
2203         SOUP_STATUS_CLASS_TRANSPORT_ERROR.
2204
2205 2003-09-17  Dan Winship  <danw@ximian.com>
2206
2207         * libsoup/soup-session.c (find_oldest_connection): Fix two bugs
2208         (one that pruned too little, one that pruned too much).
2209         (queue_message): When requeuing, don't run the queue;
2210         final_finished will take care of that later.
2211         (soup_session_abort): New, to cancel all pending requests.
2212
2213         * libsoup/soup-socket.c (soup_socket_connect, got_address): ref
2214         the socket while waiting for the address to resolve
2215
2216 2003-09-17  Dan Winship  <danw@ximian.com>
2217
2218         * libsoup/soup-connection.c (soup_connection_new): Replaces the
2219         three previous soup_connection_new* functions and uses gobject
2220         properties to set the destination and proxy uris.
2221         (class_init): set up two more signals, authenticate and
2222         reauthenticate.
2223         (soup_connection_send_request): virtualize
2224         (send_request): Default implementation
2225
2226         * libsoup/soup-connection-ntlm.c: New SoupConnection subclass that
2227         also handles NTLM authentication. Includes all of the NTLM code
2228         formerly in soup-auth-ntlm.c.
2229
2230         * libsoup/soup-auth-ntlm.[ch]: Gone.
2231
2232         * libsoup/soup-auth.c: Remove NTLM refs
2233
2234         * libsoup/soup-session.c (class_init): Add gobject properties for
2235         proxy, max_conns, use_ntlm. Change the "authenticate" and
2236         "reauthenticate" signal prototypes to not pass a SoupAuth (so they
2237         can be used for authenticating SoupConnectionNTLM as well, which
2238         doesn't use a SoupAuth).
2239         (soup_session_new): Renamed from soup_session_new_default.
2240         (soup_session_new_with_options): Replaces
2241         soup_session_new_with_proxy and soup_session_new_full. Takes
2242         gobject properties.
2243         (run_queue): Create a new connection of type SoupConnection or
2244         SoupConnectionNTLM depending on our "use_ntlm" property. Connect
2245         to its authenticate and reauthenticate signals.
2246         (connection_authenticate, connection_reauthenticate): proxy these
2247         signals.
2248
2249         * libsoup/soup-address.c (update_address_from_entry): Fix a
2250         crasher when failing to resolve the address.
2251
2252         * libsoup/soup-dns.c (check_hostent): Fix some "how was this
2253         working before" bugs.
2254
2255         * libsoup/soup-message-client-io.c (soup_message_send_request):
2256         call soup_message_prepare() to clean up the existing response
2257         state.
2258
2259         * libsoup/soup-message-io.c (io_error): Set the read_state to DONE
2260         when processing an OK EOF.
2261
2262         * libsoup/soup-status.h (SoupStatusClass): fix the numbering of
2263         these so that SOUP_STATUS_CLASS_SUCCESS is 2, etc.
2264
2265         * tests/auth-test.c (authenticate, reauthenticate): Update for new
2266         prototypes.
2267         (main): Use soup_session_new.
2268         * tests/get.c (main): Likewise.
2269         * tests/simple-proxy.c (main): Likewise.
2270
2271 2003-09-10  Dan Winship  <danw@ximian.com>
2272
2273         * libsoup/soup-session.c: Add "authenticate" and "reauthenticate"
2274         signals.
2275         (invalidate_auth): Remove the call to soup_auth_invalidate.
2276         (authenticate_auth): soup_auth_fn is gone. If the URI doesn't
2277         contain authentication, then emit "authenticate" or
2278         "reauthenticate" (depending on whether or not this is the first
2279         time we've asked for a password for this auth).
2280         (update_auth_internal): If the server rejects our
2281         username/password, don't bail out immediately. Try doing a
2282         "reauthenticate" first.
2283
2284         * libsoup/soup-misc.c (soup_set_authorize_callback): Gone
2285
2286         * libsoup/soup-auth.c (soup_auth_new_from_header_list): Remove the
2287         "pref" arg.
2288         (soup_auth_invalidate): Remove this; it doesn't actually do
2289         anything useful for us.
2290
2291         * libsoup/soup-auth-basic.c (invalidate): Remove
2292         * libsoup/soup-auth-digest.c: (invalidate): Remove
2293         * libsoup/soup-auth-ntlm.c: (invalidate): Remove
2294
2295         * libsoup/soup-uri.c: Remove all references to "authmech".
2296         (soup_uri_set_auth): Remove this too.
2297
2298         * tests/auth-test.c: Update to use the "authenticate" and
2299         "reauthenticate" signals instead of encoding usernames and
2300         passwords in the URIs. Add a few more test cases.
2301
2302 2003-09-10  Dan Winship  <danw@ximian.com>
2303
2304         * libsoup/soup-message-private.h (SoupMessagePrivate): Remove the
2305         "status" field from here, since it's mostly used by SoupSession,
2306         which shouldn't need access to SoupMessagePrivate.
2307
2308         * libsoup/soup-message.h (SoupMessage): Move it here.
2309         (SoupCallbackFn): Remove this alias for SoupMessageCallbackFn.
2310         (soup_message_set_uri): also moved from soup-message-private.h
2311
2312         * libsoup/soup-message.c: s/msg->priv->status/msg->status/.
2313
2314         * libsoup/soup-message-handlers.c:
2315         s/SoupCallbackFn/SoupMessageCallbackFn/ everywhere.
2316
2317         * libsoup/soup-message-io.c (soup_message_io_client,
2318         soup_message_io_server, soup_message_io_unpause): Don't set up an
2319         idle handler, just jump right in to reading/writing; if this is a
2320         synchronous socket, then the caller wants to block, and if it's
2321         not, then we'll quickly get an EAGAIN anyway.
2322
2323         * libsoup/soup-session.c: (queue_message): Likewise.
2324         (*) Update for SoupMessageStatus move and remove
2325         soup-message-private.h include.
2326
2327         * libsoup/soup-server-message.c: Remove soup-message-private.h
2328         include.
2329
2330         * libsoup/soup-server.c: Likewise.
2331
2332         * libsoup/soup-connection.c (soup_connection_is_connected,
2333         soup_connection_is_new): Remove these, since they weren't being
2334         used.
2335
2336         * libsoup/soup-md5-utils.c: Moved from md5-utils.c and renamed, to
2337         avoid namespace pollution.
2338
2339         * libsoup/soup-auth-digest.c: Update for that.
2340         * libsoup/soup-server-auth.c: Likewise
2341
2342         * tests/auth-test.c: Remove soup-message-private.h include
2343
2344 2003-09-09  Dan Winship  <danw@ximian.com>
2345
2346         Beginnings of improved synchronous API support
2347
2348         * libsoup/soup-dns.c: Simplify this by making it not automatically
2349         return the result: force the caller to poll. (This isn't really a
2350         performance issue: the results should come back quickly anyway.)
2351         Also, make the cache thread-safe.
2352         (soup_dns_entry_from_name): Was soup_gethostbyname
2353         (soup_dns_entry_from_addr): Was soup_gethostbyaddr
2354         (soup_dns_entry_check_lookup): Used to poll to see if DNS is done
2355         (soup_dns_entry_get_hostent): Gets the hostent from an entry (and
2356         blocks if it's not resolved yet).
2357
2358         * libsoup/soup-address.c: Update for soup-dns changes.
2359         (soup_address_new): Don't automatically start resolving the
2360         hostname now, since we don't know if the caller is going to want
2361         it resolved synchronously or asynchronously.
2362         (soup_address_resolve_async): Renamed from soup_address_resolve.
2363         (soup_address_resolve_sync): New routine to do blocking
2364         synchronous DNS.
2365
2366         * libsoup/soup-socket.c (soup_socket_connect): Now returns a
2367         status value directly when connecting synchronously.
2368         (soup_socket_client_new_async, soup_socket_client_new_sync):
2369         Separate async/sync client socket functions.
2370         (soup_socket_get_iochannel): Made static since it was not used
2371         outside soup-socket.
2372
2373         * libsoup/soup-connection.c (soup_connection_new,
2374         soup_connection_new_proxy, soup_connection_new_tunnel): Just set
2375         up the data, don't actually start connecting.
2376         (soup_connection_connect_async, soup_connection_connect_sync): New
2377         async and sync SoupConnection connecting routines.
2378         (soup_connection_get_socket): Remove this since it wasn't being
2379         used.
2380
2381         * libsoup/soup-session.c (final_finished): Run the queue since a
2382         connection is now freed up.
2383         (run_queue): Update for soup_connection_new* changes.
2384
2385         * libsoup/soup-misc.c (soup_substring_index): Remove, since it
2386         wasn't being used any more.
2387
2388         * libsoup/soup-private.h: Remove some prototypes for functions
2389         that no longer exist.
2390
2391         * libsoup/soup-uri.c (soup_uri_copy_root): New utility function
2392         (copies the protocol, host, and port of a SoupUri).
2393
2394         * tests/auth-test.c:
2395         * tests/get.c:
2396         * tests/simple-proxy.c: belatedly update for soup-session change
2397
2398         * tests/revserver.c: Handle each new connection in its own thread,
2399         using synchronous SoupSocket calls.
2400
2401 2003-09-05  Dan Winship  <danw@ximian.com>
2402
2403         * libsoup/soup-session.c: Move a bunch of logic here from
2404         soup-context. Now the session keeps track of hosts (instead of
2405         having a global soup_hosts hash) and their connections.
2406         (soup_session_new_with_proxy, soup_session_new_full): New session
2407         constructors to specify a proxy or a proxy and connection limits
2408         (send_request): Add Authorization and Proxy-Authorization headers
2409         before sending off the request.
2410         (soup_session_queue_message, et al): Improve the way this works.
2411         There's no need to use timeouts to wait for connections to become
2412         free; we *know* when they become free.
2413
2414         * libsoup/soup-private.h: Remove SoupHost and some other
2415         no-longer-used stuff.
2416
2417         * libsoup/soup-misc.c (soup_set_proxy, soup_get_proxy,
2418         soup_set_connection_limit, soup_set_connection_limit): Gone. These
2419         are all per-session now.
2420
2421         * libsoup/soup-message.c: Remove all SoupContext references
2422         (mostly replaced with SoupUri references)
2423         (cleanup_message): priv->connect_tag and priv->connection are gone
2424         now, so this was just soup_message_io_cancel(). So remove
2425         cleanup_message and replace it with that everywhere.
2426         (soup_message_disconnect): Gone.
2427         (soup_message_set_uri): Replaces soup_message_set_context.
2428         (soup_message_set_connection, soup_message_get_connection): Gone
2429
2430         * libsoup/soup-message-server-io.c (parse_request_headers):
2431         s/soup_message_set_context/soup_message_set_uri/
2432
2433         * libsoup/soup-message-private.h (SoupMessagePrivate): Remove
2434         connect_tag, context, and connection.
2435
2436         * libsoup/soup-message-client-io.c (encode_http_auth): Gone.
2437
2438         * libsoup/soup-context.c: Gone
2439
2440         * tests/auth-test.c (identify_auth): update for session/context
2441         changes
2442
2443 2003-09-03  Dan Winship  <danw@ximian.com>
2444
2445         * libsoup/soup-status.h: Renamed from soup-error.h, with types
2446         and defines renamed accordingly.
2447
2448         * libsoup/soup-message.h (SoupMessage): Rename errorcode to
2449         status_code and errorphrase to reason_phrase. Remove errorclass.
2450         (SOUP_MESSAGE_IS_ERROR): Remove this. You can't classify redirects
2451         as being either "errors" or "not errors", so its semantics are
2452         guaranteed to be wrong sometimes.
2453
2454         * libsoup/soup-message.c (soup_message_set_status,
2455         soup_message_set_status_full): Renamed
2456
2457         * libsoup/soup-message-handlers.c
2458         (soup_message_add_status_code_handler,
2459         soup_message_add_status_class_handler): Rename.
2460
2461         * libsoup/soup-session.c (soup_session_send_message): Make this
2462         return a status code rather than a status class.
2463
2464         * libsoup/soup-message-private.h (SoupMessagePrivate): Remove some
2465         unrelated unused fields (retries, callback, user_data).
2466
2467         * ...: Updates
2468
2469 2003-09-02  Dan Winship  <danw@ximian.com>
2470
2471         * libsoup/soup-session.c: First draft at the new object to
2472         maintain formerly-global state. (Not yet complete; still need to
2473         get rid of SoupContext).
2474
2475         * libsoup/soup-message-queue.c: Data structure used by SoupSession
2476
2477         * libsoup/soup-queue.c: Gone. Mostly moved into soup-session, but
2478         some bits went into soup-connection.
2479
2480         * libsoup/soup-connection.c (soup_connection_send_request): New,
2481         to send a request on a connection. The connection updates its
2482         internal state and then hands off to soup_message_send_request.
2483         (request_done): Callback set up by soup_connection_send_request.
2484         Marks the connection as no-longer-in-use, and disconnects it if
2485         the message says to.
2486         (soup_connection_set_in_use, soup_connection_mark_old): No longer
2487         needed; the connection takes care of this itself now.
2488         (soup_connection_new_proxy): New, to create a new connection that
2489         is explicitly marked as being through an HTTP proxy.
2490         (soup_connection_new_tunnel): New, to create a new HTTPS
2491         connection through a proxy. (Includes the code to send the
2492         CONNECT.)
2493
2494         * libsoup/soup-context.c (try_existing_connections): Don't need to
2495         call soup_connection_set_in_use.
2496         (try_create_connection): Use soup_connection_new,
2497         soup_connection_new_proxy, or soup_connection_new_tunnel as
2498         appropriate.
2499
2500         * libsoup/soup-message.c (soup_message_prepare): Replaces
2501         queue_message.
2502         (soup_message_queue, soup_message_requeue, soup_message_prepare):
2503         Gone. This must be done via a SoupSession now.
2504         (soup_message_set_connection): don't need to mark in_use/not
2505         in_use. Also, msg->priv->socket is gone now.
2506         (soup_message_get_socket): Gone.
2507
2508         * libsoup/soup-message-handlers.c (soup_message_run_handlers):
2509         Remove references to global handlers.
2510         (redirect_handler, authorize_handler): Moved to soup-session.c.
2511
2512         * libsoup/soup-misc.c (soup_shutdown): Gone; just unref the
2513         session to shut down now.
2514
2515         * libsoup/soup.h: add soup-session.h
2516
2517         * libsoup/Makefile.am: updates
2518
2519         * tests/auth-test.c, tests/get.c, tests/simple-proxy.c: Use
2520         SoupSession.
2521
2522 2003-08-29  Dan Winship  <danw@ximian.com>
2523
2524         * libsoup/soup-message-io.c: Major rewrite. There is now only a
2525         single IO state object (instead of one for reading and one for
2526         writing), and the IO code handles switching back and forth between
2527         reading and writing as appropriate (including handling the extra
2528         switches needed for "Expect: 100-continue").
2529         (soup_message_io_client, soup_message_io_server): The new entry
2530         points.
2531         (soup_message_io_cancel): If the caller cancels the IO when we
2532         were expecting to read more data, disconnect the socket.
2533
2534         * libsoup/soup-message.h (SoupMessageFlags): add
2535         SOUP_MESSAGE_EXPECT_CONTINUE, to indicate that the IO code should
2536         do the special expect-continue handling.
2537
2538         * libsoup/soup-message.c: Move all the signal stuff here. Remove
2539         the "done_reading" and "done_writing" signals and replace them
2540         with a single "finished" signal. (A single signal. Say that 10
2541         times fast!)
2542         (soup_message_got_headers, etc): Functions to emit signals.
2543         (got_headers, got_chunk, got_body): Default signal methods that
2544         call soup_message_run_handlers.
2545         (finished): Default signal method that replaces
2546         soup_message_issue_callback.
2547         ([various]): s/soup_message_issue_callback/soup_message_finished/
2548         (soup_message_requeue): There's no soup_message_set_read_callbacks
2549         any more, so if the caller requeues while it's still reading, just
2550         cancel the read.
2551         (soup_message_add_chunk, soup_message_add_final_chunk,
2552         soup_message_pop_chunk): Moved here from soup-server-message,
2553         although we don't actually quite support using chunked encoding
2554         for requests yet.
2555
2556         * libsoup/soup-server-message.c (soup_server_message_new): No
2557         longer takes a socket argument.
2558         (soup_server_message_add_chunk, soup_server_message_get_chunk):
2559         Moved into SoupMessage.
2560
2561         * libsoup/soup-message-handlers.c (global_handlers): Make these
2562         POST_BODY rather than PRE_BODY, so they won't mess up the IO
2563         channel when the requeue the message.
2564         (soup_message_run_handlers): Don't need to issue the message
2565         callback from here any more.
2566         (authorize_handler): Just leave the error as 401 or 407 (see
2567         soup-error.h change)
2568
2569         * libsoup/soup-message-client-io.c (soup_message_send_request):
2570         Replaces soup_message_write_request and
2571         soup_message_read_response.
2572
2573         * libsoup/soup-message-server-io.c: Parallel to
2574         soup-message-client-io.c, this defines the server-side header
2575         handling.
2576         (soup_message_read_request): Its entry point.
2577
2578         * libsoup/soup-server.c: Lots of code moved into
2579         soup-message-server-io.c. Update for other changes.
2580
2581         * libsoup/soup-queue.c: Update for changes
2582
2583         * libsoup/soup-socket.c (read_from_network, soup_socket_write):
2584         Don't call soup_socket_disconnect() on an error, just return
2585         SOUP_SOCKET_ERROR. Otherwise soup_socket_disconnect() could emit
2586         signals that will mess up the caller of the read/write function.
2587
2588         * libsoup/soup-connection.c (soup_connection_disconnect): When
2589         disconnecting the socket, disconnect from its signals first to
2590         prevent bad reentrancy.
2591
2592         * libsoup/soup-error.h: Kill off SOUP_ERROR_CANT_AUTHENTICATE and
2593         SOUP_ERROR_CANT_AUTHENTICATE_PROXY, since they don't really say
2594         anything that SOUP_ERROR_UNATHORIZED and
2595         SOUP_ERROR_PROXY_UNAUTHORIZED don't say. (And now, all of the
2596         "transport" errors actually are transport-related.)
2597
2598         * tests/auth-test.c (main): s/CANT_AUTHENTICATE/UNAUTHORIZED/
2599
2600         * tests/simple-proxy.c: Complicate this a bunch. In particular,
2601         use SOUP_MESSAGE_OVERWRITE_CHUNKS and the GOT_CHUNK signal, and
2602         pass the data back to the client in chunked format.
2603
2604 2003-08-27  Dan Winship  <danw@ximian.com>
2605
2606         * libsoup/soup-types.h: New header with typedefs, to avoid
2607         #include loops among other headers.
2608
2609         * libsoup/Makefile.am (libsoupinclude_HEADERS): add it
2610
2611         * libsoup/*.[ch], tests/*.c: Update for soup-types.h
2612         
2613 2003-08-26  Dan Winship  <danw@ximian.com>
2614
2615         * libsoup/soup-message-client-io.c (soup_message_write_request,
2616         soup_message_read_response): Higher-than-soup-message-io-level
2617         functions to do client-side IO. (Code that used to be in
2618         soup-queue.c)
2619         (get_request_header_cb): Fix a bug in the generation of the Host:
2620         header; need to include the port number if it's not the default.
2621
2622         * libsoup/soup-message-io.c (soup_message_write,
2623         soup_message_write_simple): Take separate user_datas for the get_*
2624         callbacks and the done callbacks.
2625
2626         * libsoup/soup-queue.c: Update to use soup_message_write_request
2627         and soup_message_read_response.
2628
2629         * libsoup/soup-connection.c (soup_connection_new): Change the
2630         prototype to take a SoupUri and a callback.
2631
2632         * libsoup/soup-context.c (try_create_connection,
2633         soup_context_connect_cb): Update for soup_connection_new change.
2634
2635         * libsoup/soup-server.c (read_done_cb, issue_bad_request): Update
2636         for soup_message_write changes
2637
2638         * libsoup/soup-uri.c (soup_uri_uses_default_port): new utility
2639         function
2640
2641 2003-08-26  Dan Winship  <danw@ximian.com>
2642
2643         * libsoup/soup-message-private.h: Define SoupMessage signal stuff
2644         (READ_HEADERS, READ_CHUNK, READ_BODY, READ_ERROR, WROTE_HEADERS,
2645         WROTE_CHUNK, WROTE_BODY, WRITE_ERROR).
2646
2647         * libsoup/soup-message.c (class_init): set up signals
2648         (requeue_read_finished): Update for changes.
2649
2650         * libsoup/soup-message-io.c (soup_message_read): Split out
2651         parse_headers_cb from read_headers_cb. Also add a SoupDataBuffer *
2652         arg to say where to store the message body. Set up
2653         read_headers_cb, read_chunk_cb, read_body_cb, and error_cb as
2654         signal handlers.
2655         (do_read): Call r->parse_headers_cb, then emit READ_HEADERS
2656         (read_body_chunk): emit READ_CHUNK.
2657         (issue_final_callback): Set r->body. emit READ_BODY.
2658         (failed_read): emit READ_ERROR.
2659         (soup_message_read_set_callbacks): Disconnect old signal handlers,
2660         connect new ones.
2661         (soup_message_read_cancel): Disconnect signal handlers.
2662         (soup_message_write, soup_message_write_simple): Set up
2663         wrote_body_cb and error_cb as signal handlers.
2664         (do_write): emit WROTE_HEADERS and WROTE_CHUNK, even though
2665         nothing currently ever listens for them. emit WROTE_BODY when
2666         done.
2667         (failed_write): emit WRITE_ERROR
2668
2669         * libsoup/soup-queue.c (soup_queue_parse_headers_cb,
2670         soup_queue_read_headers_cb): Split this into two unequal chunks.
2671         (read_header_cb only runs the pre-body handlers).
2672         (soup_queue_read_chunk_cb, soup_queue_read_done_cb): Update
2673         prototypes.
2674         (soup_queue_write_done_cb): Update call to soup_message_read
2675
2676         * libsoup/soup-server.c (parse_headers_cb): Renamed from
2677         read_headers_cb
2678         (read_done_cb): Update prototype
2679         (start_request): Update soup_message_read call.
2680
2681 2003-08-25  Dan Winship  <danw@ximian.com>
2682
2683         * libsoup/soup-message-io.c (soup_message_read,
2684         soup_message_write, soup_message_write_simple): Add a "user_data"
2685         arg, pass it to the callbacks.
2686
2687         * libsoup/soup-message.c (soup_message_requeue,
2688         requeue_read_finished, requeue_read_error): Update for that
2689
2690         * libsoup/soup-queue.c: Likewise
2691
2692         * libsoup/soup-server.c: Likewise
2693
2694 2003-08-25  Dan Winship  <danw@ximian.com>
2695
2696         * libsoup/soup-message.c (soup_message_new): Take a uri string
2697         instead of a context. Also, swap the args (so the method comes
2698         before the URI, just like in the protocol).
2699         (soup_message_new_from_uri): Like soup_messgae_new, but takes a
2700         SoupUri instead of a string
2701         (soup_message_set_request, soup_message_set_response): Replace
2702         soup_message_new_full.
2703         (cleanup_message): Was soup_message_cleanup, but is static now.
2704         (queue_message): Do the pre-queuing message cleanup here instead
2705         of in soup_queue_message.
2706         (soup_message_queue): Set the callback and user_data, then call
2707         queue_message.
2708         (requeue_read_error, requeue_read_finished, soup_message_requeue):
2709         Use queue_message
2710         (soup_message_get_uri): Replaces soup_message_get_context.
2711
2712         * libsoup/soup-message.h (SoupMessage): Remove msg->context. (It's
2713         part of SoupMessagePrivate now)
2714
2715         * libsoup/soup-context.c: #include soup-message-private
2716         (soup_context_from_uri): constify the uri arg.
2717
2718         * libsoup/soup-queue.c: Various context/uri fixes
2719         (proxy_https_connect): Use soup_message_new_from_uri.
2720         (soup_queue_message): Drastically simplified since most of the
2721         work is in soup-messsage.c:queue_message() now
2722
2723         * libsoup/soup-auth-digest.c (compute_response,
2724         get_authorization): Use soup_message_get_uri.
2725
2726         * libsoup/soup-server-auth.c (parse_digest): Likewise
2727
2728         * libsoup/soup-server.c (call_handler): Likewise
2729
2730         * tests/simple-httpd.c (server_callback): Likewise.
2731
2732         * tests/simple-proxy.c (server_callback): Likewise
2733
2734         * tests/get.c (got_url): Likewise.
2735         (get_url): Update soup_message_new usage.
2736
2737         * tests/auth-test.c: #include soup-message-private. Update for
2738         context changes and soup_message_new change.
2739
2740 2003-08-22  Dan Winship  <danw@ximian.com>
2741
2742         * libsoup/soup-message-private.h: New file containing
2743         SoupMessagePrivate and some other soup-message-internal
2744         types/functions. Also includes the new, expanded SoupMessageStatus
2745         enum.
2746
2747         * libsoup/soup-message-io.c: Replaces what used to be in
2748         soup-transfer, but now all the interfaces take SoupMessages
2749         instead of SoupReader/SoupWriter and deal with maintaining
2750         msg->priv->{read,write}_state themselves. Fixes up all the
2751         refcounting madness.
2752
2753         * libsoup/soup-message-handlers.c: Move the handler code here,
2754         mostly unchanged. (But rename SoupHandlerType to SoupHandlerPhase
2755         to make the distinction from SoupHandlerKind clearer.)
2756
2757         * libsoup/soup-message.c: Update for soup-message-io and new
2758         SoupMessageStatus values. Remove handler code.
2759         (soup_message_cleanup): Remove the hack to try to preserve the
2760         connection if the message gets cleaned up before it finishes
2761         reading. soup_message_requeue handles this in the requeuing case,
2762         and there's no especially compelling reason to bother doing it in
2763         any other case. (And the soup-message-io api doesn't support
2764         having a read operation that's not connected to any message.)
2765
2766         * libsoup/soup-private.h: remove SoupMessagePrivate
2767
2768         * libsoup/soup-queue.c: Update for soup-message-io and new
2769         SoupMessageStatus values.
2770
2771         * libsoup/soup-server-message.c: Likewise
2772
2773         * libsoup/soup-server.c: Likewise
2774
2775         * libsoup/soup-transfer.c: Gone (yay)
2776
2777         * libsoup/Makefile.am (libsoup_2_2_la_SOURCES): update
2778
2779 2003-08-20  Dan Winship  <danw@ximian.com>
2780
2781         * libsoup/soup-message.c: Make this a GObject. (Note that since
2782         SoupMessage was not refcounted before, it's not really refcounted
2783         now either. TBF)
2784         (soup_message_free): Gone, replaced by g_object_unref
2785         (soup_message_copy, soup_message_foreach_remove_header): Remove
2786         these, since neither was currently functional.
2787         (soup_message_is_keepalive): New utility function to look at
2788         HTTP version and request/response headers to decide if a message
2789         indicates the connection should be kept alive.
2790         (soup_message_set_connection, soup_message_get_connection): New
2791         (soup_message_get_socket): New
2792
2793         * libsoup/soup-server-message.c: Make this a subclass of
2794         SoupMessage.
2795         (soup_server_message_new): Now takes a SoupServer and SoupSocket
2796         (soup_server_message_get_server): New
2797         (soup_server_message_set_encoding,
2798         soup_server_message_get_encoding): Get/set whether the message
2799         should be sent with content-length or chunked encoding
2800         (soup_server_message_is_started, soup_server_message_is_finished):
2801         Private member accessors.
2802         (soup_server_message_add_chunk): Renamed from add_data
2803         (soup_server_message_get_chunk): Pops a chunk from the list.
2804         (soup_server_message_get_source): Gone
2805
2806         * libsoup/soup-server.c: Update for SoupServerMessage changes.
2807         (error_cb, write_done_cb): All the cleanup stuff that used to be
2808         here happens automatically by unreffing the message now.
2809         (get_response_header): Remove some erroneous leftover CGI stuff
2810         (issue_bad_request): add "Connection: close" to the response.
2811         (read_headers_cb): clean this up a bit. Reject HTTP/1.1 messages
2812         with no Host header as per RFC 2616.
2813
2814         * libsoup/soup-connection.c (soup_connection_start_ssl): Gone
2815         (soup_connection_set_in_use): Let the caller set the connection to
2816         "not in use" even after the socket has been disconnected.
2817
2818         * libsoup/soup-context.c: Use soup_message_get_connection
2819
2820         * libsoup/soup-headers.c (soup_headers_parse_request): Remove the
2821         check on request length, since it was rejecting
2822         "GET / HTTP/1.0\r\n\r\n", which is a valid complete request.
2823
2824         * libsoup/soup-queue.c: Use soup_message_get_connection and
2825         soup_message_get_socket.
2826         (soup_queue_read_done_cb): Use soup_message_is_keepalive
2827         (proxy_https_connect_cb): Use soup_socket_start_ssl rather than
2828         soup_connection_start_ssl
2829
2830         * libsoup/soup-socket.c (finalize): disconnect the GIOChannel
2831         handlers if the socket hasn't been disconnected yet.
2832
2833         * libsoup/soup-transfer.c (soup_reader_read_body_chunk,
2834         reader_read): Fix these so that reader_read will exit properly if
2835         the read is cancelled.
2836
2837         * tests/auth-test.c (main): s/soup_message_free/g_object_unref/
2838
2839         * tests/simple-httpd.c (server_callback): set the message to
2840         content-length encoding.
2841         * tests/simple-proxy.c (server_callback): Likewise
2842
2843 2003-08-19  Dan Winship  <danw@ximian.com>
2844
2845         * libsoup/soup-socket.c (soup_socket_read,
2846         soup_socket_read_until, soup_socket_write): New API for doing
2847         socket IO. Works both synchronously and asynchronously, and
2848         buffers data to prevent the "100 Continue" problem.
2849         (soup_socket_set_flag): Replaces formerly-private
2850         soup_set_sockopts. (primarily to let the caller turn off
2851         SOUP_SOCKET_FLAG_NONBLOCKING).
2852
2853         * libsoup/soup-transfer.c (soup_transfer_read,
2854         soup_transfer_write, soup_transfer_write_simple): Take a
2855         SoupSocket instead of a GIOChannel. Use the new socket IO api.
2856         Changed the prototypes of some of the callbacks to be less
2857         hackish.
2858
2859         * libsoup/soup-connection.c (soup_connection_get_socket): Replaces
2860         soup_connection_get_iochannel.
2861
2862         * libsoup/soup-message.c: Fix up for soup-transfer changes
2863
2864         * libsoup/soup-queue.c: Likewise
2865
2866         * libsoup/soup-server.c: Likewise
2867
2868         * tests/revserver.c: A slightly more complicated replacement for
2869         timeserver. (Does both reads and writes)
2870
2871 2003-08-19  Dan Winship  <danw@ximian.com>
2872
2873         * libsoup/soup-socks.[ch]: Remove this. RC doesn't let you
2874         configure it, and no one has complained, and it looks like the
2875         SOCKS5 auth code doesn't actually work anyway...
2876
2877         * libsoup/soup-queue.c (proxy_connect): Remove SOCKS code.
2878
2879         * libsoup/soup-uri.h: Remove SOUP_PROTOCOL_SOCKS4 and
2880         SOUP_PROTOCOL_SOCKS5
2881
2882         * libsoup/soup-misc.c: Remove a references to SOCKS in a comment
2883
2884         * libsoup/Makefile.am (libsoup_2_2_la_SOURCES): remove
2885         soup-socks.[ch]
2886
2887 2003-08-19  Dan Winship  <danw@ximian.com>
2888
2889         * libsoup/soup-server.c: Make this a GObject. Remove
2890         SoupServerMessage code (to soup-server-message.c). Remove CGI
2891         server code (for now?)
2892         (soup_server_add_handler, soup_server_remove_handler): Rename
2893         (from register/unregister) to make it clearer what they do.
2894
2895         * libsoup/soup-server-message.c: Moved out of soup-server.c
2896
2897         * libsoup/soup-private.h: Remove SoupServer def
2898
2899         * libsoup/Makefile.am (libsoupinclude_HEADERS,
2900         libsoup_2_2_la_SOURCES): add soup-server-message.[ch]
2901
2902         * tests/simple-httpd.c: 
2903         * tests/simple-proxy.c: Update for SoupServer changes
2904
2905 2003-08-18  Dan Winship  <danw@ximian.com>
2906
2907         * libsoup/soup-address.c (SoupAddressPrivate): Make this more like
2908         a struct sockaddr again (like it used to be). In particular, add
2909         back the "port" field. Add a bunch of macros to try (and fail) to
2910         simplify some of the code.
2911         (soup_address_new): Now returns a SoupAddress directly rather than
2912         a random handle, and the caller can just use g_object_unref to
2913         cancel the lookup. Also, the callback now uses a
2914         SoupKnownErrorCode rather than a special-purpose address-lookup
2915         error code.
2916         (soup_address_new_cancel): No longer needed.
2917         (soup_address_new_sync): Removed
2918         (soup_address_new_any): Replaces soup_address_ipv4_any and
2919         soup_address_ipv6_any.
2920         (soup_address_get_name, etc): Gone. Use soup_address_resolve()
2921         now.
2922         (soup_address_get_physical): Renamed from
2923         soup_address_get_canonical_name.
2924         (soup_address_get_sockaddr): Replaces soup_address_make_sockaddr()
2925
2926         * libsoup/soup-socket.c: Update for SoupAddress changes and make
2927         similar changes here.
2928         (soup_socket_new): Just creates a generic SoupSocket now.
2929         (soup_socket_connect): Client setup
2930         (soup_socket_listen): Server setup. Now also sets up an iochannel
2931         listening for connects and emits a "new_connection" signal as they
2932         come in.
2933         (soup_socket_start_ssl): Turns on SSL.
2934         (soup_socket_client_new, soup_socket_server_new): Utility
2935         functions that wrap the above.
2936         (soup_socket_new_cancel, soup_socket_new_sync): Gone
2937         (soup_socket_server_accept, soup_socket_server_try_accept): No
2938         longer needed.
2939         (soup_socket_get_iochannel): No longer adds a ref when returning
2940         the iochannel. Also, we set it to "close_on_unref" so that if a
2941         caller adds a ref to it, the connection will actually remain open
2942         even after the SoupSocket is destroyed.
2943         (soup_socket_get_local_address, soup_socket_get_remote_address):
2944         Let the caller get both of these.
2945
2946         * libsoup/soup-connection.c: Don't keep a private copy of the
2947         socket's iochannel.
2948         (soup_connection_new): Don't need to set socket options here.
2949         SoupSocket does it.
2950         (soup_connection_start_ssl): Just call soup_socket_start_ssl.
2951         (soup_connection_get_iochannel): Just return the socket's
2952         iochannel (and don't ref it)
2953
2954         * libsoup/soup-error.c: add SOUP_ERROR_CANT_RESOLVE and
2955         SOUP_ERROR_CANT_RESOLVE_PROXY
2956
2957         * libsoup/soup-dns.c (soup_ntop): Make the address arg const.
2958         Remove the "FIXME add a CANT_RESOLVE error" and return
2959         SOUP_ERROR_CANT_RESOLVE instead.
2960
2961         * libsoup/soup-server.c: Update for socket/address changes. Don't
2962         poke into SoupSocket's private fields.
2963         (soup_server_run_async): Just connect to the socket's
2964         "new_connection" signal.
2965
2966         * libsoup/soup-context.c (try_create_connection,
2967         soup_context_connect_cb): Update for socket changes. Replace
2968         SOUP_CONNECT_ERROR codes with plain SOUP_ERROR codes.
2969
2970         * libsoup/soup-misc.c (soup_signal_connect_once): Utility function
2971         to connect to a signal handler and connect another function to
2972         clean up the first signal handler after its first invocation.
2973         (Lets us use signals to replace one-off callbacks.)
2974
2975         * libsoup/soup-private.h: Remove SoupSocketPrivate since it is
2976         actually private now.
2977         (struct _SoupServer): Remove accept_tag.
2978
2979         * libsoup/soup-queue.c (soup_queue_read_done_cb, start_request):
2980         Don't unref the iochannel.
2981         (soup_queue_connect_cb): Takes a SoupKnownErrorCode now.
2982
2983         * libsoup/soup-socks.c: Update for socket/address changes
2984
2985         * tests/simple-httpd.c (main):
2986         s/SOUP_SERVER_ANY_PORT/SOUP_ADDRESS_ANY_PORT/
2987         * tests/simple-proxy.c (main): Likewise
2988
2989         * tests/timeserver.c: Update for SoupSocket's "new_connection"
2990         signal, and for SoupAddress changes.
2991
2992 2003-08-14  Dan Winship  <danw@ximian.com>
2993
2994         * libsoup/soup-connection.c: New, split out from soup-context and
2995         made into a GObject.
2996         (soup_connection_disconnect): Disconnects the connection and emits
2997         a signal. (Replaces the old "keep_alive" flag.)
2998         (soup_connection_is_connected): Checks if the connection is still
2999         connected
3000         (connection_died): Just disconnect, rather than freeing the
3001         connection. This way if anyone else is still referencing it they
3002         won't end up with an invalid pointer.
3003
3004         * libsoup/soup-context.c: Make this a GObject, remove all the
3005         SoupConnection code. Add an "ntlm_auths" field to SoupHost so that
3006         SoupContext can keep track of connection auth stuff there without
3007         SoupConnection needing to care. Various other updates.
3008
3009         * libsoup/soup-private.h: Remove SoupContext and SoupConnection
3010         definitions.
3011
3012         * libsoup/*.c, tests/get.c: Update for context/connection changes
3013
3014         * libsoup/soup-socks.c (soup_connect_socks_proxy): Change the
3015         definition to deal with the fact that there's no
3016         soup_connection_get_context any more.
3017
3018         * libsoup/soup-queue.c (soup_queue_read_headers_cb): Don't deal
3019         with connection persistence here.
3020         (soup_queue_read_done_cb): Do it here instead. Disconnect the
3021         connection when appropriate.
3022         (proxy_connect, proxy_https_connect, proxy_https_connect_cb):
3023         Reference-count the connection properly. (I think.)
3024
3025         * libsoup/soup-marshal.list: New, for SoupConnection's
3026         "disconnected" signal.
3027
3028         * libsoup/Makefile.am: add rules to build soup-marshal.[ch]
3029
3030         * configure.in: Use AM_PATH_GLIB_2 rather than pkg-config, so that
3031         GLIB_GENMARSHAL gets set too.
3032
3033 2003-08-14  Dan Winship  <danw@ximian.com>
3034
3035         * libsoup/soup-error.c: Fix a spelling mistake.
3036
3037         * libsoup/*.c: Fix use of @/%/#/() in gtk-doc comments
3038
3039 2003-08-12  Dan Winship  <danw@ximian.com>
3040
3041         * libsoup/soup-auth.c: Make this an abstract GObject. Tweak some
3042         of the interfaces around a little bit.
3043
3044         * libsoup/soup-auth-basic.c: subclass for Basic auth
3045
3046         * libsoup/soup-auth-digest.c: subclass for Digest auth
3047
3048         * libsoup/soup-auth-ntlm.c: subclass for NTLM auth. Move all of
3049         the code from soup-ntlm.c here, and make it private.
3050
3051         * libsoup/soup-ntlm.c: gone
3052
3053         * libsoup/soup-misc.h: Remove the definition of SoupAuthType from
3054         here, and change the signature of SoupAuthorizeFn.
3055
3056         * libsoup/soup-context.c: Use g_object_unref to free auths, use
3057         methods instead of directly access private fields.
3058
3059         * libsoup/soup-queue.c: Likewise
3060
3061         * libsoup/soup-server-auth.c (soup_server_auth_free): Remove all
3062         NTLM references. We have no plans to implement server-side NTLM
3063         auth.
3064
3065         * tests/auth-test.c (identify_auth): Update for auth api changes
3066
3067 2003-08-12  Dan Winship  <danw@ximian.com>
3068
3069         * configure.in (GLIB): add gobject-2.0 to the PKG_CHECK_MODULES
3070         call
3071
3072         * libsoup/soup-address.c: Make this a GObject.
3073         (soup_address_ref, soup_address_unref): Gone.
3074         (soup_address_copy): Gone. Wasn't being used anyway.
3075
3076         * libsoup/soup-dns.c: Move all of the DNS code and caching stuff
3077         here from soup-address.c, so that soup-address doesn't need to
3078         worry about trying to cache zero-ref addresses.
3079
3080         * libsoup/soup-socket.c: Make this a GObject. Use "guint"
3081         consistently for port numbers.
3082         (soup_socket_ref, soup_socket_unref): Gone.
3083
3084         * libsoup/soup-private.h: Change the SoupSocket definition to be
3085         SoupSocketPrivate. (Still need to keep this here since soup-server
3086         pokes around in its internals.)
3087         (SOUP_MAKE_TYPE): Copied from gal's E_MAKE_TYPE.
3088
3089         * libsoup/soup-server.c (read_done_cb, write_done_cb): Unref the
3090         reader/writer rather than leaking them.
3091
3092         * libsoup/*: Use GObject methods for socket/address refcounting
3093         
3094         * tests/auth-test.c (main)
3095         * tests/timeserver.c (main): Call g_type_init.
3096
3097         * tests/get.c (main): Call g_type_init.
3098         (get_url, got_url): Fix some bugs that could make -r mode get into
3099         infinite loops downloading the same files over and over. Plug some
3100         memory leaks to make this more useful for valgrinding libsoup.
3101
3102         * tests/simple-httpd.c (main): Call g_type_init. Set up a signal
3103         handler for SIGINT so we can exit cleanly, since valgrind won't
3104         give a leak report if you don't. Plug a few memory leaks.
3105
3106         * tests/simple-proxy.c (main): Likewise 
3107
3108 2003-08-12  Dan Winship  <danw@ximian.com>
3109
3110         Pull over some new test programs from the soup-refactoring branch,
3111         along with the SoupUri changes they depend on.
3112
3113         * tests/simple-httpd.c: A really simple HTTP server, to test the
3114         server code.
3115
3116         * tests/simple-proxy.c: An even simpler HTTP proxy
3117
3118         * tests/get.c: Add "-r" flag to recursively get files (thereby
3119         testing multiple-connections-at-once code). Also good for setting
3120         up a tree to use with simple-httpd.
3121
3122         * tests/timeserver.c (main): Fix a bug. (s/ipv6/ipv4/ in the
3123         normal case)
3124
3125         * tests/uri-parsing.c: Regression test for the new soup-uri.c
3126
3127         * libsoup/soup-uri.c: Rewrite/update to conform to RFC 2396, and
3128         pull in some optimizations from camel-url. Also, make SoupProtocol
3129         a GQuark so we can still compare them with ==, but we can also
3130         recognize any protocol.
3131         (soup_uri_new_with_base): New, to merge base and relative URIs
3132         (soup_uri_to_string): Update this. Change the "show_password" flag
3133         (which we always passed FALSE for) to "just_path", for places that
3134         want the path+query without the protocol, host, etc.
3135
3136         * libsoup/soup-queue.c (soup_get_request_header): Just use
3137         soup_uri_to_string to generate the request URI.
3138
3139         * libsoup/soup-auth.c (compute_response, digest_auth_func): Use
3140         "soup_uri_to_path (uri, TRUE)" rather than trying to reassemble
3141         the URI by hand badly.
3142         * libsoup/soup-server-auth.c (parse_digest): Likewise
3143
3144         * libsoup/soup-socks.c (soup_connect_socks_proxy): Change a
3145         switch() to an series of if()s since SOUP_PROTOCOL_* aren't
3146         constants any more.
3147
3148         * libsoup/soup-context.c (soup_context_uri_hash,
3149         soup_context_uri_equal): s/querystring/query/
3150
3151 2003-08-12  Dan Winship  <danw@ximian.com>
3152
3153         * configure.in: Bump API version to 2.2 and package version to
3154         2.1.0. Remove NSS and OpenSSL checks and proxy-related config. Use
3155         libgnutls-config to find GNUTLS.
3156
3157         * libsoup-2.2.pc.in: Update, and rename from soup-2.0.pc
3158
3159         * Makefile.am: Update for pc file rename
3160
3161         * libsoup/Makefile.am: s/2.0/2.2/ everywhere. Remove NSS, OpenSSL,
3162         and libsoup-ssl-proxy stuff.
3163
3164         * libsoup/soup-ssl-proxy.c
3165         * libsoup/soup-nss.[ch]
3166         * libsoup/soup-openssl.[ch]: gone
3167
3168         * libsoup/soup-ssl.c: remove NSS and OpenSSL bits
3169
3170         * tests/Makefile.am (get_LDADD, timeserver_LDADD,
3171         auth_test_LDADD): Update libsoup version
3172
3173 2003-08-07  Dan Winship  <danw@ximian.com>
3174
3175         * libsoup/soup-auth.c (soup_auth_lookup, soup_auth_set_context,
3176         soup_auth_invalidate): These are all really SoupContext functions,
3177         so move them to soup-context.c (and rename them appropriately).
3178         (soup_auth_get_protection_space): New method to get the
3179         "protection space" of an auth (paths where it is valid).
3180         (soup_auth_invalidate): New method to try to un-authenticate an
3181         auth (so we can keep the domain info cached even if the auth info
3182         is wrong).
3183         (basic_pspace_func): Basic protection space is all directories
3184         below the current one.
3185         (basic_invalidate_func): Clear the encoded username/password
3186         (digest_pspace_func): Digest protection space is either the whole
3187         server, or "what the domain parameter says" (though we don't deal
3188         with cross-host domains).
3189         (digest_invalidate_func): Return FALSE; bad digest auth info isn't
3190         cacheable.
3191         (digest_parse_func, digest_free): Set/free domain parameter
3192         (ntlm_pspace): NTLM protection space is always the whole server.
3193         (ntlm_invalidate): Clear the auth state.
3194         (soup_auth_new_ntlm): Make this non-static
3195         (SoupAuth): Replace the quad-state "status" field with an
3196         "authenticated" boolean.
3197         
3198         * libsoup/soup-private.h (SoupHost): Replace the "valid_auths"
3199         hash with separate "auth_realms" (path->realm) and "auths"
3200         (realm->auth) hashes. Also add a "use_ntlm" flag.
3201
3202         * libsoup/soup-context.c (soup_context_unref): Update SoupHost
3203         freeing code.
3204         (connection_free): Don't the connection's auth, just free it.
3205         (soup_context_lookup_auth): Formerly soup_auth_lookup, but now
3206         does two-stage lookup (path->realm then realm->auth) and also
3207         deals with NTLM hacks.
3208         (soup_context_update_auth): Mostly formerly soup_auth_set_context,
3209         but also large parts of authorize_handler. Updates the auth hashes
3210         based on information from a 401 or 407 response. Does a better job
3211         than authorize_handler did of not throwing away good information.
3212         (soup_context_preauthenticate): New; fakes up auth info so that
3213         requests will end up using authentication without the server
3214         needing to return an error first.
3215         (soup_context_authenticate_auth): Moved out of authorize_handler
3216         so it can be used at request-sending time too, if we know that we
3217         need it. (That way we can avoid requeuing the request if it isn't
3218         going to be able to be authenticated.)
3219         (soup_context_invalidate_auth): Sort of like the old
3220         soup_auth_invalidate, but only destroys the auth data, while still
3221         remembering the path->realm mapping.
3222
3223         * libsoup/soup-message.c (authorize_handler): Mostly moved into
3224         soup_context_update_auth.
3225         (maybe_validate_auth): Remove this; it was only useful because of
3226         bugs elsewhere in the auth handling.
3227         
3228         * libsoup/soup-queue.c (soup_encode_http_auth): Update for
3229         soup_context_lookup_auth. If the returned auth isn't
3230         authenticated, call soup_context_authenticate_auth() on it.
3231
3232         * tests/auth-test.c: New (from soup-refactoring branch). Tests
3233         that the Basic/Digest auth code does the right thing. (TODO: find
3234         a good way to add NTLM tests too.)
3235
3236         * tests/Makefile.am (check_PROGRAMS): add auth-test
3237
3238 2003-07-29  Dan Winship  <danw@ximian.com>
3239
3240         * configure.in: 1.99.25 ("Potato and Leek Soup")
3241
3242         * libsoup/soup-message.c (requeue_read_finished,
3243         release_connection): Free the passed-in body data. Otherwise the
3244         response body ends up getting leaked on most 3xx and 4xx
3245         responses.
3246         (soup_message_cleanup): Remove a piece of code that didn't
3247         actually do anything and its associated confused comment.
3248
3249         * libsoup/soup-auth.c (ntlm_free): plug an occasional NTLM auth leak
3250
3251         * libsoup/soup-context.c (connection_free): plug a non-occasional
3252         NTLM auth leak.
3253
3254 2003-06-26  Joe Shaw  <joe@ximian.com>
3255
3256         * configure.in: Version 1.99.24
3257
3258 2003-06-24  Dan Winship  <danw@ximian.com>
3259
3260         * configure.in: Check pkgconfig for openssl, since 0.9.7 (a) uses
3261         it, and (b) depends on lots of new things sometimes (like on RH9).
3262
3263         * libsoup/soup-openssl.c: 
3264         * libsoup/soup-ssl-proxy.c: Change #ifdef HAVE_OPENSSL_SSL_H to
3265         just #ifdef HAVE_OPENSSL since the header check doesn't get run in
3266         the pkgconfig case
3267
3268 2003-06-19  Dan Winship  <danw@ximian.com>
3269
3270         * libsoup/soup-queue.c (soup_queue_read_done_cb): unref the
3271         old read_tag before changing/clearing it.
3272         (soup_queue_write_done_cb): Likewise with the write_tag.
3273
3274         * libsoup/soup-transfer.c (issue_final_callback): ref the reader
3275         around the stop+callback.
3276         (soup_transfer_write_cb): Likewise.
3277
3278 2003-06-12  Dan Winship  <danw@ximian.com>
3279
3280         * libsoup/soup-transfer.c (SoupReader, SoupWriter): add a
3281         ref_count field.
3282         (soup_transfer_read, create_writer): Set initial ref_count to 2
3283         (one for soup-transfer, one for the caller).
3284         (soup_transfer_read_ref, soup_transfer_read_unref): ref/unref a
3285         reader
3286         (soup_transfer_read_stop): Clears the GIOChannel callbacks and
3287         drops soup-transfer's ref.
3288         (soup_transfer_read_cancel): Now just a stop+unref
3289         (soup_transfer_write_ref, soup_transfer_write_unref,
3290         soup_transfer_write_stop, soup_transfer_write_cancel): Similarly.
3291
3292         * libsoup/soup-message.c (soup_message_cleanup): when setting up
3293         the "finish reading" callbacks, unref the reader so it will be
3294         destroyed once it's done reading.
3295         (soup_message_requeue): Likewise.
3296
3297         * libsoup/soup-queue.c (soup_queue_read_headers_cb): Update for
3298         prototype change (no longer returns a SoupTransferDone).
3299         (soup_queue_read_chunk_cb): Likewise.
3300
3301         * libsoup/soup-server.c (read_headers_cb): Likewise
3302
3303 2003-06-11  Dan Winship  <danw@ximian.com>
3304
3305         * libsoup/soup-transfer.c: Change all functions to take a
3306         SoupReader * or SoupWriter * instead of a guint.
3307
3308         * libsoup/soup-private.h (SoupMessagePrivate): make read_tag and
3309         write_tag pointers instead of guints.
3310
3311 2003-06-02  Chris Toshok  <toshok@ximian.com>
3312
3313         * libsoup/soup-ssl.c: remove #include for soup-nss.h
3314
3315 2003-06-02  Chris Toshok  <toshok@ximian.com>
3316
3317         * libsoup/Makefile.am (INCLUDES): remove NSS_CFLAGS.
3318         (libsoup_2_0_la_LIBADD): remove NSS_LIBS.
3319         (libsoup_2_0_la_SOURCES): remove soup-nss.[ch]
3320
3321 2003-06-02  Chris Toshok  <toshok@ximian.com>
3322
3323         * configure.in: Bump version to 1.99.23.
3324
3325 2003-05-30  Chris Toshok  <toshok@ximian.com>
3326
3327         * libsoup/soup-queue.c (soup_queue_error_cb): always force a
3328         reconnect when there's an error with ssl connection.  This fixes
3329         #43387, but it runs the risk of sending requests multiple times to
3330         the exchange server, and it results in lots of shorter lived
3331         connections and more forking (in the ssl proxy case), depending on
3332         the length of the operation.
3333
3334 2003-05-21  Dan Winship  <danw@ximian.com>
3335
3336         * configure.in: 1.99.22 (codename: French Onion Soup)
3337
3338 2003-05-20  Dan Winship  <danw@ximian.com>
3339
3340         * libsoup/soup-message.c (soup_message_requeue): Clear the
3341         write_tag as well so we don't double-cancel it. #43395.
3342
3343         * libsoup/soup-queue.c (soup_queue_error_cb): The connection might
3344         be destroyed by the end of the func, so we have to call
3345         soup_connection_set_used at the beginning.
3346
3347         * libsoup/soup-openssl.c (soup_openssl_read, soup_openssl_write):
3348         Call g_set_error() so that we don't SEGV immediately after
3349         returning G_IO_STATUS_ERROR.
3350
3351 2003-05-08  Joe Shaw  <joe@ximian.com>
3352
3353         * configure.in: Bump version to 1.99.21
3354
3355         * libsoup/soup-queue.c (proxy_connect): If the proxy HTTPS
3356         tunnelling fails, the other message which shares our same
3357         connection will free it first, so set ours to NULL.
3358
3359 2003-05-08  Dan Winship  <danw@ximian.com>
3360
3361         * libsoup/soup-auth.c (ntlm_auth): If the auth status is PENDING,
3362         return an NTLM request string. Otherwise return the "response"
3363         field (which should include the NTLM authenticate message)
3364         (ntlm_init): Don't bother setting "response" to the NTLM request
3365         string. Just leave it NULL in that case.
3366
3367         * libsoup/soup-message.c (authorize_handler): Never try to reuse
3368         an NTLM auth returned from soup_auth_lookup. Only set the auth on
3369         the connection when it's SOUP_AUTH_STATUS_SUCCESSFUL. Otherwise,
3370         call soup_auth_set_context() on it just like for non-NTLM auth.
3371         The net effect of all of this is that now we record when a context
3372         needs NTLM auth just like with non-NTLM auth, so that that info
3373         gets preserved across connections.
3374         (soup_message_requeue): No longer need the hackery here to
3375         preserve the connection auth state.
3376
3377 2003-05-07  Dan Winship  <danw@ximian.com>
3378
3379         * libsoup/soup-context.c (soup_connection_set_in_use): New, to
3380         toggle the connection's in_use flag, and set up the death watch
3381         when it's not in use.
3382         (connection_death): This is only hooked up when the connection is
3383         not in use now, so don't need to check that. Should fix the
3384         infinite connection_death loop.
3385         (soup_connection_is_new): Keep a distinct "new" flag rather than
3386         defining "new" as "has been released at least once".
3387         (soup_connection_set_used): Mark a connection no-longer new.
3388         (soup_context_connect_cb): Mark the connection as new. Don't set
3389         up the death watch since it's in_use.
3390         (try_existing_connections): Use soup_connection_set_in_use.
3391         (soup_connection_release): Likewise
3392
3393         * libsoup/soup-message.c (requeue_read_finished): Call
3394         soup_connection_set_used so that the connection isn't still
3395         considered new when we send the message the second time.
3396
3397         * libsoup/soup-queue.c (soup_queue_error_cb): Call
3398         soup_connection_set_used (assuming we don't close the connection)
3399         (soup_queue_read_done_cb): Likewise.
3400
3401         * libsoup/soup-transfer.c (soup_transfer_read_cb): If we read
3402         nothing, call soup_transfer_read_error_cb rather than just
3403         cancelling, or else it will get cancelled again later.
3404
3405 2003-05-07  Dan Winship  <danw@ximian.com>
3406
3407         * soup-2.0.pc.in (Libs): Don't put @OPENSSL_LIBS@ here; the
3408         library doesn't depend on them, only the proxy does. #42473
3409
3410 2003-05-06  Dan Winship  <danw@ximian.com>
3411
3412         * src/libsoup/soup-message.c (global_handlers): Change the
3413         redirect handler to be a RESPONSE_ERROR_CLASS_HANDLER for
3414         SOUP_ERROR_CLASS_REDIRECT rather than a RESPONSE_HEADER_HANDLER
3415         for "Location" to get around the non-64-bit-clean union
3416         initialization pointed out by Jeremy Katz <katzj@redhat.com>.
3417         (redirect_handler): Update for that.
3418
3419 2003-04-28  Dan Winship  <danw@ximian.com>
3420
3421         * configure.in: 1.99.20
3422
3423         * libsoup/soup-transfer.c (soup_transfer_read_error_cb): Make sure
3424         we always call UNIGNORE_CANCEL. Might fix #41971
3425
3426 2003-04-25  Dan Winship  <danw@ximian.com>
3427
3428         * libsoup/soup-queue.c (soup_queue_error_cb): if an old connection
3429         suddenly gets an io error while reading or writing, assume it's a
3430         timeout or something, close the connection, and requeue the
3431         message.
3432
3433 2003-04-23  Dan Winship  <danw@ximian.com>
3434
3435         * libsoup/soup-message.c (soup_message_cleanup): Don't set up the
3436         soup-transfer callbacks to keep reading off the connection unless
3437         we're actually going to keep the connection around afterward.
3438         Otherwise we can just close it.
3439
3440         * libsoup/soup-transfer.c: Re-kludge the awful IGNORE_CANCEL
3441         thingy so that it's possible to cancel a read from inside a
3442         callback so that the above change actually works instead of just
3443         crashing.
3444
3445 2003-04-20  Rodney Dawes  <dobey@ximian.com>
3446
3447         * configure.in: Up version to 1.99.18
3448         * libsoup/Makefile.am: Line separator after GNUTLS_CFLAGS
3449         
3450 2003-04-11  Dan Winship  <danw@ximian.com>
3451
3452         * libsoup/soup-context.c (soup_connection_purge_idle): New
3453         function to close all idle connections. (Needed for #41117 or else
3454         there's no way to force-discard NTLM authentication.)
3455
3456         * libsoup/soup-queue.c (soup_queue_shutdown): Use it
3457
3458 2003-04-10  Joe Shaw  <joe@ximian.com>
3459
3460         * libsoup/soup-queue.c (proxy_https_connect):
3461         proxy_https_connect_cb() might not get called if connecting to the
3462         proxy fails, and it causes us to double-free the connection.
3463         Always set the message's connection to NULL before freeing it.
3464
3465 2003-04-09  Dan Winship  <danw@ximian.com>
3466
3467         * configure.in: 1.99.17
3468
3469 2003-04-07  Dan Winship  <danw@ximian.com>
3470
3471         * libsoup/soup-context.c (connection_death): Revert Joe's changes.
3472         We can't release the connection there because there may be
3473         SoupMessages still pointing to it. (Needs to be revisited.)
3474
3475 2003-04-03  JP Rosevear  <jpr@ximian.com>
3476
3477         * libsoup/soup-ssl.c (soup_ssl_hup_waitpid): guard against EINTR
3478         error during waitpid
3479
3480         * libsoup/soup-address.c: ditto
3481
3482 2003-04-02  Joe Shaw  <joe@ximian.com>
3483
3484         * libsoup/soup-context.c (connection_death): Only drop the
3485         connection if we get an error condition on the channel.  Fixes a
3486         double-free.
3487
3488 2003-04-02  Joe Shaw  <joe@ximian.com>
3489
3490         * libsoup/soup-context.c (connection_death): Just call
3491         soup_connection_release() from here and return whether the
3492         connection is in use.
3493
3494 2003-03-31  Ian Peters  <itp@ximian.com>
3495
3496         * libsoup/soup-gnutls.c (soup_gnutls_close): loop on gnutls_bye in
3497         case of EAGAIN or EINTR, since shutting down an SSL connection
3498         requires more than just closing a socket.
3499
3500 2003-03-28  Dan Winship  <danw@ximian.com>
3501
3502         * libsoup/soup-message.c (soup_message_set_context): If the new
3503         context points to a different server from the old context, call
3504         soup_message_cleanup. Otherwise it tries to reuse the old
3505         connection...
3506
3507 2003-03-25  Joe Shaw  <joe@ximian.com>
3508
3509         * configure.in: Bump up to 1.99.16
3510
3511 2003-03-24  Joe Shaw  <joe@ximian.com>
3512
3513         * soup-error.[ch]: Add SOUP_ERROR_SSL_FAILED which gives a
3514         slightly better error message on various SSL failures than the
3515         previous message.
3516
3517         * soup-queue.c (soup_queue_error_cb): Throw the
3518         SOUP_ERROR_SSL_FAILED error when we fail an SSL handshake.
3519
3520 2003-03-21  Joe Shaw  <joe@ximian.com>
3521
3522         * soup-server.c: Use non-deprecated g_main_loop_* calls
3523         throughout.
3524         (soup_server_unref): Don't unref the main loop if it's NULL.
3525         Fixes a glib warning.
3526
3527 2003-03-18  Dan Winship  <danw@ximian.com>
3528
3529         * configure.in: comment out NSS checks. The NSS code doesn't work
3530         and there are no current plans to fix it.
3531
3532         * README (Features): Mention GnuTLS, remove NSS and the rest of
3533         the "Planned Features" section.
3534
3535         * MAINTAINERS: remove Alex
3536
3537         * libsoup/soup-openssl.c (soup_openssl_get_iochannel): Bump the
3538         timeout to 10 seconds (and get rid of the 3 tries) so we don't
3539         fail to connect just because the server is slow/far away.
3540
3541 2003-03-17  Joe Shaw  <joe@ximian.com>
3542
3543         * configure.in: Bump up to 1.99.15.
3544
3545 2003-03-12  Ian Peters  <itp@ximian.com>
3546
3547         * libsoup/soup-gnutls.c: because creating client credentials is
3548         expensive, keep the same one around as long as possible, only
3549         recreating it if the ssl_ca_file changes.  Wrap
3550         gnutls_certificate_credentials in a refcounted struct to avoid
3551         freeing it while another established connection may potentially
3552         need it (say, to rehandshake).
3553
3554 2003-03-11  Frank Belew  <frb@ximian.com>
3555
3556         * soup-2.0.pc.in: add ssl libs to defaults, since ssl doesn't 
3557         use pkgconfig
3558
3559 2003-03-10  Joe Shaw  <joe@ximian.com>
3560
3561         * configure.in: Bump up to 1.99.14.
3562
3563         * configure.in, libsoup/Makefile.am, libsoup/soup.gnutls.[ch],
3564         libsoup/soup-ssl.c: Add support for GnuTLS.  Patch from Ian
3565         Peters.
3566
3567 2003-03-07  Joe Shaw  <joe@ximian.com>
3568
3569         * configure.in: Bump up to 1.99.13.
3570
3571         * libsoup/soup-context.c (soup_context_connect_cb): Add G_IO_IN to
3572         the list of conditions to watch.  If the remote end hangs up the
3573         connection, we'll get a successful read of 0 bytes, not a HUP.
3574         The connection will have to be released by the point we check for
3575         it in connection_death().
3576
3577         * libsoup/soup-queue.c (soup_queue_error_cb): Get rid of some
3578         (apparently) errant resetting of the read and write tags.  I think
3579         this might have been causing some reentrancy and crashes.
3580
3581         * libsoup/soup-socket.c (soup_socket_get_iochannel): Set the IO
3582         channel to NULL encoding and not buffered.
3583
3584         * libsoup/soup-transfer.c (soup_transfer_read_cb): Remove some
3585         incorrect comments.
3586
3587 2003-02-28  Joe Shaw  <joe@ximian.com>
3588
3589         * configure.in: Bump up to 1.99.12.
3590
3591         * libsoup/soup-transfer.c (soup_transfer_read_cb): We can get a
3592         header_len of 0 and a total_read of 0 in the case of a SIGPIPE; in
3593         this case we probably don't want to call the error callback, we
3594         just want to act like our transfer was cancelled.
3595
3596 2003-02-27  Joe Shaw  <joe@ximian.com>
3597
3598         Try to apply some order to the iochannel refcounting...
3599
3600         * configure.in: Bump up to 1.99.11.
3601
3602         * libsoup/soup-context.c (soup_connection_get_iochannel): The
3603         connections needs to own a reference to the iochannel!  If we're
3604         using HTTPS, release the ref we get from soup_socket_get_iochannel
3605         and replace it with the ref we get from soup_ssl_get_iochannel().
3606         Then, always ref the channel that we return (ugh, but that's the
3607         soup way).
3608         (connection_free): Release the connection's ref to the iochannel.
3609
3610         * libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Ref the
3611         iochannel. The reference we pass back will be owned by the
3612         connection.
3613         (soup_ssl_hup_waitpid): Release our ref.
3614
3615 2003-02-27  Joe Shaw  <joe@ximian.com>
3616
3617         * configure.in: Bump up to 1.99.10.
3618
3619         * libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Ref the
3620         iochannel, return to the status quo.  Sigh.
3621
3622 2003-02-26  Joe Shaw  <joe@ximian.com>
3623
3624         * configure.in: Bump up to 1.99.9.
3625
3626         * libsoup/soup-ssl.c (soup_ssl_hup_waitpid): Comment out the unref,
3627         it's causing problems with HTTPS and proxies; the iochannel
3628         refcounting is waaaaaay horked.
3629
3630 2003-02-26  Frank Belew  <frb@ximian.com>
3631
3632         * libsoup/Makefile.am: added workaround to link ssl-proxy statically
3633
3634 2003-02-11  Joe Shaw  <joe@ximian.com>
3635
3636         * configure.in: Bump up to 1.99.8 for snaps.
3637
3638         * libsoup/soup-address.c (soup_gethostbyname): Fix this for Solaris.
3639         It returns the address to the resulting hostent or NULL on failure,
3640         unlike Linux which returns an error code.
3641
3642 2003-02-11  Joe Shaw  <joe@ximian.com>
3643
3644         * configure.in: Bump up to 1.99.7 for snaps.
3645
3646         * libsoup/soup-openssl.c (soup_openssl_get_iochannel): Print out
3647         the error string from OpenSSL if we can't establish a connection.
3648
3649 2003-02-04  Joe Shaw  <joe@ximian.com>
3650
3651         * configure.in: Bump up to 1.99.6 for snaps.
3652
3653         * libsoup/soup-server.c (destroy_message): We already assigned
3654         chan, so don't reassign it, and unref it in all cases.
3655         (issue_bad_request): Always unref after a call to
3656         soup_socket_get_iochannel(), because it refs it.
3657         (conn_accept): Fix some funky GIOChannel reffing here.
3658
3659         * libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Don't call
3660         g_io_channel_ref() on the socket.  This is the exact opposite of
3661         what we want to do.  Create a temporary structure containing the
3662         parent pid and the old socket and unref the socket when our
3663         callback is called.  This should fix GIOChannels being leaked on
3664         SSL connections.
3665
3666         * libsoup/soup-ssl-proxy.c: Always close the GIOChannels after the
3667         main loop quits.
3668
3669 2003-01-22  Joe Shaw  <joe@ximian.com>
3670
3671         * configure.in: Bump up to 1.99.5 for the snaps.
3672
3673         * libsoup/soup-address.c (soup_address_new): If we found the
3674         address in our hash, we need to return NULL or else Soup will
3675         think we're doing an async lookup and do some cancellation on
3676         us.  Besides, we were returning the wrong type anyway and it
3677         was crashing things.
3678
3679 2003-01-17  Joe Shaw  <joe@ximian.com>
3680
3681         * libsoup/soup-ssl-proxy.c (soup_ssl_proxy_readwrite): It's not
3682         uncommon for us to get a G_IO_ERROR_AGAIN when trying to write
3683         out, so keep trying until we succeed.
3684
3685 2003-01-10  Joe Shaw  <joe@ximian.com>
3686
3687         * libsoup/soup-openssl.c (verify_cb): Load some X509 and SSL error
3688         strings and print out the error when the cert can't verify.
3689
3690 2003-01-09  Dan Winship  <danw@ximian.com>
3691
3692         * libsoup/soup-address.c (soup_gethostbyname): Fix a memcpy
3693         overrun noticed by valgrind
3694
3695 2002-12-20  Joe Shaw  <joe@ximian.com>
3696
3697         * libsoup/soup-server.c (soup_server_new_with_host): Added.
3698         Starts a server only on the interface specified, instead of all
3699         network interfaces.
3700
3701 2002-12-16  Jeremy Katz  <katzj@redhat.com>
3702
3703         * configure.in: use $libdir instead of /usr/lib when looking for
3704         libraries
3705
3706 2002-12-11  Joe Shaw  <joe@ximian.com>
3707
3708         * libsoup/soup-queue.c (proxy_https_connect_cb): I am an idiot.
3709         Don't set a variable to NULL and then immediately try to
3710         dereference it.
3711
3712 2002-12-09  Joe Shaw  <joe@ximian.com>
3713
3714         * libsoup/soup-openssl.c (soup_openssl_get_iochannel): Put a
3715         timeout on the select()s when we get SSL_ERROR_WANT_READ/WRITE so
3716         we don't hang forever if we don't get more data.
3717
3718         * libsoup/soup-ssl-proxy.c (main): Don't set our fds to blocking
3719         or else we'll hang forever in SSL_connect() if the other side
3720         hangs up.
3721
3722         * libsoup/soup-queue.c (proxy_https_connect_cb): We never want to
3723         release the connection on message free, even if the connection was
3724         unsuccessful.
3725
3726 2002-12-03  Joe Shaw  <joe@ximian.com>
3727
3728         * libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Call
3729         g_io_channel_set_close_on_unref() on the second half of the socket
3730         pair so we don't leak file descriptors.
3731
3732 2002-12-03  Frank Belew  <frb@ximian.com>
3733
3734         * libsoup/soup-address.c: add signal.h to the list of headers to 
3735         pick up SIGKILL
3736         
3737 2002-11-25  Joe Shaw  <joe@ximian.com>
3738
3739         * Makefile.am: Build the tests directory again
3740
3741 2002-11-21  Rodney Dawes  <dobey@ximian.com>
3742
3743         * configure.in: Don't require autoconf 2.5x, needs to work with 2.13
3744         
3745 2002-11-20  Michael Meeks  <michael@ximian.com>
3746
3747         * configure.in: require autoconf 2.52 not 2.53.
3748
3749 2002-11-18  Dan Winship  <danw@ximian.com>
3750
3751         * libsoup/soup-address.c (soup_address_hash): Don't use s6_addr32
3752         since it's apparently non-portable. Use s6_addr instead.
3753         (soup_gethostbyaddr): fix a sometimes-uninitialized variable.
3754
3755         * libsoup/soup-error.c: Fix spelling of
3756         SOUP_ERROR_MOVED_PERMANENTLY and its description.
3757
3758         * libsoup/soup-message.c (soup_message_get_request_header, etc):
3759         Remove long-deprecated API.
3760
3761         * libsoup/soup-socket.c (soup_socket_connect): remove unused
3762         variable.
3763
3764         * libsoup/soup-openssl.c (soup_openssl_read): Use gsize.
3765         * libsoup/soup-server.c (cgi_read): Likewise
3766         * libsoup/soup-socks.c (soup_socks_write, soup_socks_read):
3767         Likewise.
3768         * libsoup/soup-ssl-proxy.c (soup_ssl_proxy_readwrite): Likewise.
3769         * libsoup/soup-transfer.c (soup_transfer_read_cb,
3770         soup_transfer_write_cb): Likewise.
3771
3772         * tests/timeserver.c: Add "-6" to listen on the IPv6 local address
3773         instead of IPv4. (Tested on OS X.)
3774
3775 2002-11-15  Dan Winship  <danw@ximian.com>
3776
3777         * libsoup/*: Change old Helix Code refs to Ximian (and update
3778         copyright dates).
3779
3780 2002-11-15  Frank Belew  <frb@ximian.com>
3781
3782         * tests/Makefile.am: uncomment lines to make timeserver build 
3783         correctly
3784         
3785 2002-11-14  Joe Shaw  <joe@ximian.com>
3786
3787         * libsoup/soup-address.c (soup_address_new): When we get an
3788         address from the hash, call our address lookup callback or else
3789         the connection will hang.
3790
3791 2002-11-13  Dan Winship  <danw@ximian.com>
3792
3793         * tests/timeserver.c: Oops, commit this.
3794
3795         * tests/Makefile.am (noinst_PROGRAMS): reenable timeserver.
3796
3797 2002-11-13  Joe Shaw  <joe@ximian.com>
3798
3799         * libsoup/Makefile.am: Replace the BINDIR define with LIBEXECDIR.
3800         (install-exec-hook): Install libsoup-ssl-proxy into libexecdir
3801         instead of bindir.
3802
3803         * libsoup/soup-openssl.c (soup_openssl_close): Call SSL_shutdown()
3804         to properly shut down the SSL connection before closing the
3805         socket.
3806
3807         * libsoup/soup-ssl-proxy.c (soup_ssl_proxy_readwrite): Close the
3808         iochannels before quitting the main loop.
3809
3810         * tests/Makefile.am: disable building timeserver, the source file
3811         wasn't added.
3812
3813 2002-11-12  Dan Winship  <danw@ximian.com>
3814
3815         * configure.in: Check for IPv6 support in networking headers.
3816
3817         * libsoup/soup-address.c: Make the internal structure of
3818         SoupAddress entirely private, and make SoupAddress be more like a
3819         hostent and less like a sockaddr. (Ie, make it not have a port
3820         associated with it.) Document undocumented functions. Add
3821         completely-untested support for IPv6.
3822         (soup_address_new_from_sockaddr): New, to parse a sockaddr into a
3823         SoupAddress and a port.
3824         (soup_address_ipv4_any, soup_address_ipv6_any): Return static
3825         addresses corresponding to the IPv6 and IPv6 "any" addresses.
3826         (soup_address_get_canonical_name): Use inet_ntop/inet_ntoa.
3827         (soup_address_make_sockaddr): Now constructs a new sockaddr, which
3828         may be a sockaddr_in or sockaddr_in6.
3829         (soup_address_gethostname, soup_address_gethostaddr): Remove
3830         these. They aren't reliable, especially on multihomed hosts.
3831         (soup_gethostbyname, soup_gethostbyaddr): support IPv6
3832         (soup_address_new): Keep pending lookups in a separate hash table
3833         from completed lookups. Fix a bug when canceling a lookup when
3834         there was more one outstanding request for it.
3835         (soup_address_lookup_in_cache): Removed.
3836
3837         * libsoup/soup-socket.c: Add a port field to SoupSocket (since
3838         it's not in SoupAddress any more).
3839         (soup_socket_connect): Simplify this. Don't use
3840         soup_address_lookup_in_cache, just call soup_address_new, since we
3841         already know the code can deal with the callback being invoked
3842         immediately.
3843         (soup_socket_new_sync, soup_socket_new): Take a port argument.
3844         (soup_socket_server_new): Take a SoupAddress to use as the local
3845         address to bind to. This lets the caller choose between the IPv4
3846         and IPv6 "any" addresses, and also lets you bind to a single
3847         interface of a multi-homed machine.
3848         (soup_socket_server_accept, soup_socket_server_try_accept): Merge
3849         the common code.
3850
3851         * libsoup/soup-server.c (soup_server_new): Pass
3852         soup_address_ipv4_any() to soup_socket_server_new().
3853
3854         * libsoup/soup-socks.c (soup_connect_socks_proxy,
3855         soup_socks_write): Fix up for the API changes, but it won't work
3856         with IPv6 yet.
3857
3858         * tests/timeserver.c: Another really simple test, for the server
3859         socket code.
3860
3861         * tests/Makefile.am: build timeserver
3862
3863 2002-11-11  Dan Winship  <danw@ximian.com>
3864
3865         * libsoup/soup-address.c: Move the SoupAddress code from
3866         soup-socket.c and soup-socket-unix.c to here.
3867
3868         * libsoup/soup-socket.c: Move the remaining code from
3869         soup-socket-unix.c here.
3870
3871         * libsoup/soup-socket-unix.c: Gone
3872
3873         * tests/get.c: really really trivial test program
3874
3875         * configure.in (AC_OUTPUT):
3876         * Makefile.am (SUBDIRS): add tests/
3877
3878 2002-11-05  Dan Winship  <danw@ximian.com>
3879
3880         * Split libsoup out of soup. ChangeLog.old contains the original
3881         soup ChangeLog.
3882
3883         * Makefile.am, etc: Fix things up to work with the new directory
3884         layout. Disable docs until we fix them.
3885
3886         * autogen.sh: Use gnome-autogen.sh
3887
3888         * configure.in: Require autoconf 2.53. Remove stuff that was only
3889         needed for httpd or wsdl code. Remove glib1 support. Bump version
3890         to 2.0.
3891
3892         * libsoup/Makefile.am: Rename library to libsoup-2.0, put includes
3893         in ${includedir}/soup-2.0
3894         
3895         * libsoup/*: Merge soup-0-7 back onto the trunk. Remove
3896         SOAP-specific stuff, Windows support, and other things that
3897         weren't being maintained.
3898
3899         * soup-config.in, soupConf.sh: Kill these. We only support
3900         pkg-config now.