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.
