CVSROOT: /cvs/gnome Module name: libsoup Changes by: danw 06/05/29 15:41:14
Modified files: . : ChangeLog libsoup : soup-message-io.c tests : simple-proxy.c Log message: * libsoup/soup-message-io.c (SoupMessageIOState): add a new state "FINISHING" which means "done I/O, but not yet done processing and cleanup" before "DONE" (which now always means "completely done"). (soup_message_io_stop): disconnect the socket if the read state is "< FINISHING", not "!= DONE". (io_error): on an EOF-that-signals-end-of-data, set state to FINISHING and run io_read(). (io_read, io_write): remove the g_return_if_fails from before. s/DONE/FINISHING/ in most places. In the FINISHING handler, stop listening for the readable/writable signal (eg, so we don't end up reading a following pipelined request), and set the state to DONE. (soup_message_io_unpause): Only reconnect the readable/writable signals if the io state isn't DONE. Guard the calls to io_read/io_write better so that it's safe to call this even after they are both DONE, since it may be easier for us to test that than for the caller to. Fixes 334469, 342640, and another bug caused by the earlier workaround to 334469. Based on patches and analysis from William Jon McCann and Armin Bauer. * tests/simple-proxy.c (main): add g_thread_init (NULL) to make this work again. (Pointed out by Alex Larsson) URL : http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=&dir=libsoup&who=danw&date=explicit&mindate=2006-05-29%2015:40&maxdate=2006-05-29%2015:42 _______________________________________________ cvs-commits-list mailing list cvs-commits-list@gnome.org http://mail.gnome.org/mailman/listinfo/cvs-commits-list