GNOME Bugzilla – Bug 497020
Add fully async HTTP source based on libsoup.
Last modified: 2007-11-15 17:26:31 UTC
See bug 338827. libneon does not support async handling, so it's not a structural solution. libsoup does.
Created attachment 99138 [details] [review] Fully async HTTP source based on libsoup-2.2 This adds a fully async HTTP source based on libsoup. start() returns immediately. URL parsing, DNS lookup, connection, HTTP negotiation and reception of data is completely asynchronous (with use of a new GMainLoop) and handled in create(). This is a bare-bones implementation and lacks many of the features on neonhttpsrc. HTTPS should work too, but was not tested.
Created attachment 99148 [details] [review] Fully async HTTP source based on libsoup-2.2 Fix hang, presumably due not being allowed to call soup_session_abort() from the main thread while the source element's thread is blocked in its mainloop.
Patch by: Wouter Cloetens <wouter at mind dot be> * configure.ac: * ext/Makefile.am: * ext/soup/Makefile.am: * ext/soup/gstsouphttpsrc.c: (_do_init), (gst_souphttp_src_base_init), (gst_souphttp_src_class_init), (gst_souphttp_src_init), (gst_souphttp_src_dispose), (gst_souphttp_src_set_property), (gst_souphttp_src_get_property), (gst_souphttp_src_create), (gst_souphttp_src_start), (gst_souphttp_src_stop), (gst_souphttp_src_unlock), (gst_souphttp_src_set_location), (soup_got_chunk), (soup_response), (soup_session_close), (plugin_init): * ext/soup/gstsouphttpsrc.h: Added HTTP source based on libsoup. Fixes #497020.