summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: 61a8ffa1b3b8292bcf78716ffaba24b8c0b11882 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
2003-12-10  Tambet Ingo  <tambet@ximian.com>

	* configure.in: Use autoconfig to check for socklen_t ...

	* libsoup/soup-address.c: ... and remove it from here ...

	* libsoup/soup-socket.c: ... and here.

2003-11-06  Joe Shaw  <joe@ximian.com>

	* acinclude.m4: Added.  Contains the m4 magic from gpg-error.m4 so
	you don't need gpg-error to tell it you don't want gpg-error.

2003-11-05  Joe Shaw  <joe@ximian.com>

	* configure.in: 1.99.31.  Add --enable-libgpg-error because
	libgcrypt is broken and doesn't add it to its -config script
	itself.

2003-11-03  Joe Shaw  <joe@ximian.com>

	* configure.in: 1.99.30

2003-11-03  Tambet Ingo  <tambet@ximian.com>

	* libsoup/soup-context.c (soup_context_uri_equal): Check if ports are
	also equal.

2003-10-28  Joe Shaw  <joe@ximian.com>

	* configure.in: 1.99.29

	* libsoup/soup-uri.c (escape_username_password,
	unescape_username_password): Escape usernames and passwords which
	contain ':', '@', '/' and '%'.
	(soup_uri_new): Unescape username and password.
	(soup_uri_to_string): Escape username and password.

2003-09-26  Dan Winship  <danw@ximian.com>

	* configure.in: 1.99.28

	* libsoup/soup-auth.c (basic_pspace_func): strip the trailing
	slash from the path so that it matches what it will be compared
	against later. #48880

2003-09-18  Joe Shaw  <joe@ximian.com>

	* configure.in: 1.99.27

	* libsoup/soup-server.c (close_connection): Closes the server
	connection.
	(destroy_message): Call close_connection() instead of doing it by
	hand.
	(error_cb): Call close_connection() before destroy_message() so
	that the connection is always closed on an error.  Fixes a CPU
	wedging case.

2003-09-12  Dan Winship  <danw@ximian.com>

	* configure.in: 1.99.26

2003-09-03  Dan Winship  <danw@ximian.com>

	* libsoup/soup-server.c (read_done_cb, write_done_cb): Unref the
	reader/writer rather than leaking them.

	* libsoup/md5-utils.h: Add some #defines here to avoid namespace
	pollution

2003-08-07  Dan Winship  <danw@ximian.com>

	* libsoup/soup-auth.c (soup_auth_lookup, soup_auth_set_context,
	soup_auth_invalidate): These are all really SoupContext functions,
	so move them to soup-context.c (and rename them appropriately).
	(soup_auth_get_protection_space): New method to get the
	"protection space" of an auth (paths where it is valid).
	(soup_auth_invalidate): New method to try to un-authenticate an
	auth (so we can keep the domain info cached even if the auth info
	is wrong).
	(basic_pspace_func): Basic protection space is all directories
	below the current one.
	(basic_invalidate_func): Clear the encoded username/password
	(digest_pspace_func): Digest protection space is either the whole
	server, or "what the domain parameter says" (though we don't deal
	with cross-host domains).
	(digest_invalidate_func): Return FALSE; bad digest auth info isn't
	cacheable.
	(digest_parse_func, digest_free): Set/free domain parameter
	(ntlm_pspace): NTLM protection space is always the whole server.
	(ntlm_invalidate): Clear the auth state.
	(soup_auth_new_ntlm): Make this non-static
	(SoupAuth): Replace the quad-state "status" field with an
	"authenticated" boolean.
	
	* libsoup/soup-private.h (SoupHost): Replace the "valid_auths"
	hash with separate "auth_realms" (path->realm) and "auths"
	(realm->auth) hashes. Also add a "use_ntlm" flag.

	* libsoup/soup-context.c (soup_context_unref): Update SoupHost
	freeing code.
	(connection_free): Don't the connection's auth, just free it.
	(soup_context_lookup_auth): Formerly soup_auth_lookup, but now
	does two-stage lookup (path->realm then realm->auth) and also
	deals with NTLM hacks.
	(soup_context_update_auth): Mostly formerly soup_auth_set_context,
	but also large parts of authorize_handler. Updates the auth hashes
	based on information from a 401 or 407 response. Does a better job
	than authorize_handler did of not throwing away good information.
	(soup_context_preauthenticate): New; fakes up auth info so that
	requests will end up using authentication without the server
	needing to return an error first.
	(soup_context_authenticate_auth): Moved out of authorize_handler
	so it can be used at request-sending time too, if we know that we
	need it. (That way we can avoid requeuing the request if it isn't
	going to be able to be authenticated.)
	(soup_context_invalidate_auth): Sort of like the old
	soup_auth_invalidate, but only destroys the auth data, while still
	remembering the path->realm mapping.

	* libsoup/soup-message.c (authorize_handler): Mostly moved into
	soup_context_update_auth.
	(maybe_validate_auth): Remove this; it was only useful because of
	bugs elsewhere in the auth handling.
	
	* libsoup/soup-queue.c (soup_encode_http_auth): Update for
	soup_context_lookup_auth. If the returned auth isn't
	authenticated, call soup_context_authenticate_auth() on it.

	* tests/auth-test.c: New (from soup-refactoring branch). Tests
	that the Basic/Digest auth code does the right thing. (TODO: find
	a good way to add NTLM tests too.)

	* tests/Makefile.am (check_PROGRAMS): add auth-test

2003-07-29  Dan Winship  <danw@ximian.com>

	* configure.in: 1.99.25 ("Potato and Leek Soup")

	* libsoup/soup-message.c (requeue_read_finished,
	release_connection): Free the passed-in body data. Otherwise the
	response body ends up getting leaked on most 3xx and 4xx
	responses.
	(soup_message_cleanup): Remove a piece of code that didn't
	actually do anything and its associated confused comment.

	* libsoup/soup-auth.c (ntlm_free): plug an occasional NTLM auth leak

	* libsoup/soup-context.c (connection_free): plug a non-occasional
	NTLM auth leak.

2003-06-26  Joe Shaw  <joe@ximian.com>

	* configure.in: Version 1.99.24

2003-06-24  Dan Winship  <danw@ximian.com>

	* configure.in: Check pkgconfig for openssl, since 0.9.7 (a) uses
	it, and (b) depends on lots of new things sometimes (like on RH9).

	* libsoup/soup-openssl.c: 
	* libsoup/soup-ssl-proxy.c: Change #ifdef HAVE_OPENSSL_SSL_H to
	just #ifdef HAVE_OPENSSL since the header check doesn't get run in
	the pkgconfig case

2003-06-19  Dan Winship  <danw@ximian.com>

	* libsoup/soup-queue.c (soup_queue_read_done_cb): unref the
	old read_tag before changing/clearing it.
	(soup_queue_write_done_cb): Likewise with the write_tag.

	* libsoup/soup-transfer.c (issue_final_callback): ref the reader
	around the stop+callback.
	(soup_transfer_write_cb): Likewise.

2003-06-12  Dan Winship  <danw@ximian.com>

	* libsoup/soup-transfer.c (SoupReader, SoupWriter): add a
	ref_count field.
	(soup_transfer_read, create_writer): Set initial ref_count to 2
	(one for soup-transfer, one for the caller).
	(soup_transfer_read_ref, soup_transfer_read_unref): ref/unref a
	reader
	(soup_transfer_read_stop): Clears the GIOChannel callbacks and
	drops soup-transfer's ref.
	(soup_transfer_read_cancel): Now just a stop+unref
	(soup_transfer_write_ref, soup_transfer_write_unref,
	soup_transfer_write_stop, soup_transfer_write_cancel): Similarly.

	* libsoup/soup-message.c (soup_message_cleanup): when setting up
	the "finish reading" callbacks, unref the reader so it will be
	destroyed once it's done reading.
	(soup_message_requeue): Likewise.

	* libsoup/soup-queue.c (soup_queue_read_headers_cb): Update for
	prototype change (no longer returns a SoupTransferDone).
	(soup_queue_read_chunk_cb): Likewise.

	* libsoup/soup-server.c (read_headers_cb): Likewise

2003-06-11  Dan Winship  <danw@ximian.com>

	* libsoup/soup-transfer.c: Change all functions to take a
	SoupReader * or SoupWriter * instead of a guint.

	* libsoup/soup-private.h (SoupMessagePrivate): make read_tag and
	write_tag pointers instead of guints.

2003-06-02  Chris Toshok  <toshok@ximian.com>

	* libsoup/soup-ssl.c: remove #include for soup-nss.h

2003-06-02  Chris Toshok  <toshok@ximian.com>

	* libsoup/Makefile.am (INCLUDES): remove NSS_CFLAGS.
	(libsoup_2_0_la_LIBADD): remove NSS_LIBS.
	(libsoup_2_0_la_SOURCES): remove soup-nss.[ch]

2003-06-02  Chris Toshok  <toshok@ximian.com>

	* configure.in: Bump version to 1.99.23.

2003-05-30  Chris Toshok  <toshok@ximian.com>

	* libsoup/soup-queue.c (soup_queue_error_cb): always force a
	reconnect when there's an error with ssl connection.  This fixes
	#43387, but it runs the risk of sending requests multiple times to
	the exchange server, and it results in lots of shorter lived
	connections and more forking (in the ssl proxy case), depending on
	the length of the operation.

2003-05-21  Dan Winship  <danw@ximian.com>

	* configure.in: 1.99.22 (codename: French Onion Soup)

2003-05-20  Dan Winship  <danw@ximian.com>

	* libsoup/soup-message.c (soup_message_requeue): Clear the
	write_tag as well so we don't double-cancel it. #43395.

	* libsoup/soup-queue.c (soup_queue_error_cb): The connection might
	be destroyed by the end of the func, so we have to call
	soup_connection_set_used at the beginning.

	* libsoup/soup-openssl.c (soup_openssl_read, soup_openssl_write):
	Call g_set_error() so that we don't SEGV immediately after
	returning G_IO_STATUS_ERROR.

2003-05-08  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump version to 1.99.21

	* libsoup/soup-queue.c (proxy_connect): If the proxy HTTPS
	tunnelling fails, the other message which shares our same
	connection will free it first, so set ours to NULL.

2003-05-08  Dan Winship  <danw@ximian.com>

	* libsoup/soup-auth.c (ntlm_auth): If the auth status is PENDING,
	return an NTLM request string. Otherwise return the "response"
	field (which should include the NTLM authenticate message)
	(ntlm_init): Don't bother setting "response" to the NTLM request
	string. Just leave it NULL in that case.

	* libsoup/soup-message.c (authorize_handler): Never try to reuse
	an NTLM auth returned from soup_auth_lookup. Only set the auth on
	the connection when it's SOUP_AUTH_STATUS_SUCCESSFUL. Otherwise,
	call soup_auth_set_context() on it just like for non-NTLM auth.
	The net effect of all of this is that now we record when a context
	needs NTLM auth just like with non-NTLM auth, so that that info
	gets preserved across connections.
	(soup_message_requeue): No longer need the hackery here to
	preserve the connection auth state.

2003-05-07  Dan Winship  <danw@ximian.com>

	* libsoup/soup-context.c (soup_connection_set_in_use): New, to
	toggle the connection's in_use flag, and set up the death watch
	when it's not in use.
	(connection_death): This is only hooked up when the connection is
	not in use now, so don't need to check that. Should fix the
	infinite connection_death loop.
	(soup_connection_is_new): Keep a distinct "new" flag rather than
	defining "new" as "has been released at least once".
	(soup_connection_set_used): Mark a connection no-longer new.
	(soup_context_connect_cb): Mark the connection as new. Don't set
	up the death watch since it's in_use.
	(try_existing_connections): Use soup_connection_set_in_use.
	(soup_connection_release): Likewise

	* libsoup/soup-message.c (requeue_read_finished): Call
	soup_connection_set_used so that the connection isn't still
	considered new when we send the message the second time.

	* libsoup/soup-queue.c (soup_queue_error_cb): Call
	soup_connection_set_used (assuming we don't close the connection)
	(soup_queue_read_done_cb): Likewise.

	* libsoup/soup-transfer.c (soup_transfer_read_cb): If we read
	nothing, call soup_transfer_read_error_cb rather than just
	cancelling, or else it will get cancelled again later.

2003-05-07  Dan Winship  <danw@ximian.com>

	* soup-2.0.pc.in (Libs): Don't put @OPENSSL_LIBS@ here; the
	library doesn't depend on them, only the proxy does. #42473

2003-05-06  Dan Winship  <danw@ximian.com>

	* src/libsoup/soup-message.c (global_handlers): Change the
	redirect handler to be a RESPONSE_ERROR_CLASS_HANDLER for
	SOUP_ERROR_CLASS_REDIRECT rather than a RESPONSE_HEADER_HANDLER
	for "Location" to get around the non-64-bit-clean union
	initialization pointed out by Jeremy Katz <katzj@redhat.com>.
	(redirect_handler): Update for that.

2003-04-28  Dan Winship  <danw@ximian.com>

	* configure.in: 1.99.20

	* libsoup/soup-transfer.c (soup_transfer_read_error_cb): Make sure
	we always call UNIGNORE_CANCEL. Might fix #41971

2003-04-25  Dan Winship  <danw@ximian.com>

	* libsoup/soup-queue.c (soup_queue_error_cb): if an old connection
	suddenly gets an io error while reading or writing, assume it's a
	timeout or something, close the connection, and requeue the
	message.

2003-04-23  Dan Winship  <danw@ximian.com>

	* libsoup/soup-message.c (soup_message_cleanup): Don't set up the
	soup-transfer callbacks to keep reading off the connection unless
	we're actually going to keep the connection around afterward.
	Otherwise we can just close it.

	* libsoup/soup-transfer.c: Re-kludge the awful IGNORE_CANCEL
	thingy so that it's possible to cancel a read from inside a
	callback so that the above change actually works instead of just
	crashing.

2003-04-20  Rodney Dawes  <dobey@ximian.com>

	* configure.in: Up version to 1.99.18
	* libsoup/Makefile.am: Line separator after GNUTLS_CFLAGS
	
2003-04-11  Dan Winship  <danw@ximian.com>

	* libsoup/soup-context.c (soup_connection_purge_idle): New
	function to close all idle connections. (Needed for #41117 or else
	there's no way to force-discard NTLM authentication.)

	* libsoup/soup-queue.c (soup_queue_shutdown): Use it

2003-04-10  Joe Shaw  <joe@ximian.com>

	* libsoup/soup-queue.c (proxy_https_connect):
	proxy_https_connect_cb() might not get called if connecting to the
	proxy fails, and it causes us to double-free the connection.
	Always set the message's connection to NULL before freeing it.

2003-04-09  Dan Winship  <danw@ximian.com>

	* configure.in: 1.99.17

2003-04-07  Dan Winship  <danw@ximian.com>

	* libsoup/soup-context.c (connection_death): Revert Joe's changes.
	We can't release the connection there because there may be
	SoupMessages still pointing to it. (Needs to be revisited.)

2003-04-03  JP Rosevear  <jpr@ximian.com>

	* libsoup/soup-ssl.c (soup_ssl_hup_waitpid): guard against EINTR
	error during waitpid

	* libsoup/soup-address.c: ditto

2003-04-02  Joe Shaw  <joe@ximian.com>

	* libsoup/soup-context.c (connection_death): Only drop the
	connection if we get an error condition on the channel.  Fixes a
	double-free.

2003-04-02  Joe Shaw  <joe@ximian.com>

	* libsoup/soup-context.c (connection_death): Just call
	soup_connection_release() from here and return whether the
	connection is in use.

2003-03-31  Ian Peters  <itp@ximian.com>

	* libsoup/soup-gnutls.c (soup_gnutls_close): loop on gnutls_bye in
	case of EAGAIN or EINTR, since shutting down an SSL connection
	requires more than just closing a socket.

2003-03-28  Dan Winship  <danw@ximian.com>

	* libsoup/soup-message.c (soup_message_set_context): If the new
	context points to a different server from the old context, call
	soup_message_cleanup. Otherwise it tries to reuse the old
	connection...

2003-03-25  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.16

2003-03-24  Joe Shaw  <joe@ximian.com>

	* soup-error.[ch]: Add SOUP_ERROR_SSL_FAILED which gives a
	slightly better error message on various SSL failures than the
	previous message.

	* soup-queue.c (soup_queue_error_cb): Throw the
	SOUP_ERROR_SSL_FAILED error when we fail an SSL handshake.

2003-03-21  Joe Shaw  <joe@ximian.com>

	* soup-server.c: Use non-deprecated g_main_loop_* calls
	throughout.
	(soup_server_unref): Don't unref the main loop if it's NULL.
	Fixes a glib warning.

2003-03-18  Dan Winship  <danw@ximian.com>

	* configure.in: comment out NSS checks. The NSS code doesn't work
	and there are no current plans to fix it.

	* README (Features): Mention GnuTLS, remove NSS and the rest of
	the "Planned Features" section.

	* MAINTAINERS: remove Alex

	* libsoup/soup-openssl.c (soup_openssl_get_iochannel): Bump the
	timeout to 10 seconds (and get rid of the 3 tries) so we don't
	fail to connect just because the server is slow/far away.

2003-03-17  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.15.

2003-03-12  Ian Peters  <itp@ximian.com>

	* libsoup/soup-gnutls.c: because creating client credentials is
	expensive, keep the same one around as long as possible, only
	recreating it if the ssl_ca_file changes.  Wrap
	gnutls_certificate_credentials in a refcounted struct to avoid
	freeing it while another established connection may potentially
	need it (say, to rehandshake).

2003-03-11  Frank Belew  <frb@ximian.com>

	* soup-2.0.pc.in: add ssl libs to defaults, since ssl doesn't 
	use pkgconfig

2003-03-10  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.14.

	* configure.in, libsoup/Makefile.am, libsoup/soup.gnutls.[ch],
	libsoup/soup-ssl.c: Add support for GnuTLS.  Patch from Ian
	Peters.

2003-03-07  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.13.

	* libsoup/soup-context.c (soup_context_connect_cb): Add G_IO_IN to
	the list of conditions to watch.  If the remote end hangs up the
	connection, we'll get a successful read of 0 bytes, not a HUP.
	The connection will have to be released by the point we check for
	it in connection_death().

	* libsoup/soup-queue.c (soup_queue_error_cb): Get rid of some
	(apparently) errant resetting of the read and write tags.  I think
	this might have been causing some reentrancy and crashes.

	* libsoup/soup-socket.c (soup_socket_get_iochannel): Set the IO
	channel to NULL encoding and not buffered.

	* libsoup/soup-transfer.c (soup_transfer_read_cb): Remove some
	incorrect comments.

2003-02-28  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.12.

	* libsoup/soup-transfer.c (soup_transfer_read_cb): We can get a
	header_len of 0 and a total_read of 0 in the case of a SIGPIPE; in
	this case we probably don't want to call the error callback, we
	just want to act like our transfer was cancelled.

2003-02-27  Joe Shaw  <joe@ximian.com>

	Try to apply some order to the iochannel refcounting...

	* configure.in: Bump up to 1.99.11.

	* libsoup/soup-context.c (soup_connection_get_iochannel): The
	connections needs to own a reference to the iochannel!  If we're
	using HTTPS, release the ref we get from soup_socket_get_iochannel
	and replace it with the ref we get from soup_ssl_get_iochannel().
	Then, always ref the channel that we return (ugh, but that's the
	soup way).
	(connection_free): Release the connection's ref to the iochannel.

	* libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Ref the
	iochannel. The reference we pass back will be owned by the
	connection.
	(soup_ssl_hup_waitpid): Release our ref.

2003-02-27  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.10.

	* libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Ref the
	iochannel, return to the status quo.  Sigh.

2003-02-26  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.9.

	* libsoup/soup-ssl.c (soup_ssl_hup_waitpid): Comment out the unref,
	it's causing problems with HTTPS and proxies; the iochannel
	refcounting is waaaaaay horked.

2003-02-26  Frank Belew  <frb@ximian.com>

	* libsoup/Makefile.am: added workaround to link ssl-proxy statically

2003-02-11  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.8 for snaps.

	* libsoup/soup-address.c (soup_gethostbyname): Fix this for Solaris.
	It returns the address to the resulting hostent or NULL on failure,
	unlike Linux which returns an error code.

2003-02-11  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.7 for snaps.

	* libsoup/soup-openssl.c (soup_openssl_get_iochannel): Print out
	the error string from OpenSSL if we can't establish a connection.

2003-02-04  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.6 for snaps.

	* libsoup/soup-server.c (destroy_message): We already assigned
	chan, so don't reassign it, and unref it in all cases.
	(issue_bad_request): Always unref after a call to
	soup_socket_get_iochannel(), because it refs it.
	(conn_accept): Fix some funky GIOChannel reffing here.

	* libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Don't call
	g_io_channel_ref() on the socket.  This is the exact opposite of
	what we want to do.  Create a temporary structure containing the
	parent pid and the old socket and unref the socket when our
	callback is called.  This should fix GIOChannels being leaked on
	SSL connections.

	* libsoup/soup-ssl-proxy.c: Always close the GIOChannels after the
	main loop quits.

2003-01-22  Joe Shaw  <joe@ximian.com>

	* configure.in: Bump up to 1.99.5 for the snaps.

	* libsoup/soup-address.c (soup_address_new): If we found the
	address in our hash, we need to return NULL or else Soup will
	think we're doing an async lookup and do some cancellation on
	us.  Besides, we were returning the wrong type anyway and it
	was crashing things.

2003-01-17  Joe Shaw  <joe@ximian.com>

	* libsoup/soup-ssl-proxy.c (soup_ssl_proxy_readwrite): It's not
	uncommon for us to get a G_IO_ERROR_AGAIN when trying to write
	out, so keep trying until we succeed.

2003-01-10  Joe Shaw  <joe@ximian.com>

	* libsoup/soup-openssl.c (verify_cb): Load some X509 and SSL error
	strings and print out the error when the cert can't verify.

2003-01-09  Dan Winship  <danw@ximian.com>

	* libsoup/soup-address.c (soup_gethostbyname): Fix a memcpy
	overrun noticed by valgrind

2002-12-20  Joe Shaw  <joe@ximian.com>

	* libsoup/soup-server.c (soup_server_new_with_host): Added.
	Starts a server only on the interface specified, instead of all
	network interfaces.

2002-12-16  Jeremy Katz  <katzj@redhat.com>

	* configure.in: use $libdir instead of /usr/lib when looking for
	libraries

2002-12-11  Joe Shaw  <joe@ximian.com>

	* libsoup/soup-queue.c (proxy_https_connect_cb): I am an idiot.
	Don't set a variable to NULL and then immediately try to
	dereference it.

2002-12-09  Joe Shaw  <joe@ximian.com>

	* libsoup/soup-openssl.c (soup_openssl_get_iochannel): Put a
	timeout on the select()s when we get SSL_ERROR_WANT_READ/WRITE so
	we don't hang forever if we don't get more data.

	* libsoup/soup-ssl-proxy.c (main): Don't set our fds to blocking
	or else we'll hang forever in SSL_connect() if the other side
	hangs up.

	* libsoup/soup-queue.c (proxy_https_connect_cb): We never want to
	release the connection on message free, even if the connection was
	unsuccessful.

2002-12-03  Joe Shaw  <joe@ximian.com>

	* libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Call
	g_io_channel_set_close_on_unref() on the second half of the socket
	pair so we don't leak file descriptors.

2002-12-03  Frank Belew	 <frb@ximian.com>

	* libsoup/soup-address.c: add signal.h to the list of headers to 
	pick up SIGKILL
	
2002-11-25  Joe Shaw  <joe@ximian.com>

	* Makefile.am: Build the tests directory again

2002-11-21  Rodney Dawes  <dobey@ximian.com>

	* configure.in: Don't require autoconf 2.5x, needs to work with 2.13
	
2002-11-20  Michael Meeks  <michael@ximian.com>

	* configure.in: require autoconf 2.52 not 2.53.

2002-11-18  Dan Winship  <danw@ximian.com>

	* libsoup/soup-address.c (soup_address_hash): Don't use s6_addr32
	since it's apparently non-portable. Use s6_addr instead.
	(soup_gethostbyaddr): fix a sometimes-uninitialized variable.

	* libsoup/soup-error.c: Fix spelling of
	SOUP_ERROR_MOVED_PERMANENTLY and its description.

	* libsoup/soup-message.c (soup_message_get_request_header, etc):
	Remove long-deprecated API.

	* libsoup/soup-socket.c (soup_socket_connect): remove unused
	variable.

	* libsoup/soup-openssl.c (soup_openssl_read): Use gsize.
	* libsoup/soup-server.c (cgi_read): Likewise
	* libsoup/soup-socks.c (soup_socks_write, soup_socks_read):
	Likewise.
	* libsoup/soup-ssl-proxy.c (soup_ssl_proxy_readwrite): Likewise.
	* libsoup/soup-transfer.c (soup_transfer_read_cb,
	soup_transfer_write_cb): Likewise.

	* tests/timeserver.c: Add "-6" to listen on the IPv6 local address
	instead of IPv4. (Tested on OS X.)

2002-11-15  Dan Winship  <danw@ximian.com>

	* libsoup/*: Change old Helix Code refs to Ximian (and update
	copyright dates).

2002-11-15  Frank Belew  <frb@ximian.com>

	* tests/Makefile.am: uncomment lines to make timeserver build 
	correctly
	
2002-11-14  Joe Shaw  <joe@ximian.com>

	* libsoup/soup-address.c (soup_address_new): When we get an
	address from the hash, call our address lookup callback or else
	the connection will hang.

2002-11-13  Dan Winship  <danw@ximian.com>

	* tests/timeserver.c: Oops, commit this.

	* tests/Makefile.am (noinst_PROGRAMS): reenable timeserver.

2002-11-13  Joe Shaw  <joe@ximian.com>

	* libsoup/Makefile.am: Replace the BINDIR define with LIBEXECDIR.
	(install-exec-hook): Install libsoup-ssl-proxy into libexecdir
	instead of bindir.

	* libsoup/soup-openssl.c (soup_openssl_close): Call SSL_shutdown()
	to properly shut down the SSL connection before closing the
	socket.

	* libsoup/soup-ssl-proxy.c (soup_ssl_proxy_readwrite): Close the
	iochannels before quitting the main loop.

	* tests/Makefile.am: disable building timeserver, the source file
	wasn't added.

2002-11-12  Dan Winship  <danw@ximian.com>

	* configure.in: Check for IPv6 support in networking headers.

	* libsoup/soup-address.c: Make the internal structure of
	SoupAddress entirely private, and make SoupAddress be more like a
	hostent and less like a sockaddr. (Ie, make it not have a port
	associated with it.) Document undocumented functions. Add
	completely-untested support for IPv6.
	(soup_address_new_from_sockaddr): New, to parse a sockaddr into a
	SoupAddress and a port.
	(soup_address_ipv4_any, soup_address_ipv6_any): Return static
	addresses corresponding to the IPv6 and IPv6 "any" addresses.
	(soup_address_get_canonical_name): Use inet_ntop/inet_ntoa.
	(soup_address_make_sockaddr): Now constructs a new sockaddr, which
	may be a sockaddr_in or sockaddr_in6.
	(soup_address_gethostname, soup_address_gethostaddr): Remove
	these. They aren't reliable, especially on multihomed hosts.
	(soup_gethostbyname, soup_gethostbyaddr): support IPv6
	(soup_address_new): Keep pending lookups in a separate hash table
	from completed lookups. Fix a bug when canceling a lookup when
	there was more one outstanding request for it.
	(soup_address_lookup_in_cache): Removed.

	* libsoup/soup-socket.c: Add a port field to SoupSocket (since
	it's not in SoupAddress any more).
	(soup_socket_connect): Simplify this. Don't use
	soup_address_lookup_in_cache, just call soup_address_new, since we
	already know the code can deal with the callback being invoked
	immediately.
	(soup_socket_new_sync, soup_socket_new): Take a port argument.
	(soup_socket_server_new): Take a SoupAddress to use as the local
	address to bind to. This lets the caller choose between the IPv4
	and IPv6 "any" addresses, and also lets you bind to a single
	interface of a multi-homed machine.
	(soup_socket_server_accept, soup_socket_server_try_accept): Merge
	the common code.

	* libsoup/soup-server.c (soup_server_new): Pass
	soup_address_ipv4_any() to soup_socket_server_new().

	* libsoup/soup-socks.c (soup_connect_socks_proxy,
	soup_socks_write): Fix up for the API changes, but it won't work
	with IPv6 yet.

	* tests/timeserver.c: Another really simple test, for the server
	socket code.

	* tests/Makefile.am: build timeserver

2002-11-11  Dan Winship  <danw@ximian.com>

	* libsoup/soup-address.c: Move the SoupAddress code from
	soup-socket.c and soup-socket-unix.c to here.

	* libsoup/soup-socket.c: Move the remaining code from
	soup-socket-unix.c here.

	* libsoup/soup-socket-unix.c: Gone

	* tests/get.c: really really trivial test program

	* configure.in (AC_OUTPUT):
	* Makefile.am (SUBDIRS): add tests/

2002-11-05  Dan Winship  <danw@ximian.com>

	* Split libsoup out of soup. ChangeLog.old contains the original
	soup ChangeLog.

	* Makefile.am, etc: Fix things up to work with the new directory
	layout. Disable docs until we fix them.

	* autogen.sh: Use gnome-autogen.sh

	* configure.in: Require autoconf 2.53. Remove stuff that was only
	needed for httpd or wsdl code. Remove glib1 support. Bump version
	to 2.0.

	* libsoup/Makefile.am: Rename library to libsoup-2.0, put includes
	in ${includedir}/soup-2.0
	
	* libsoup/*: Merge soup-0-7 back onto the trunk. Remove
	SOAP-specific stuff, Windows support, and other things that
	weren't being maintained.

	* soup-config.in, soupConf.sh: Kill these. We only support
	pkg-config now.