summaryrefslogtreecommitdiffstats
path: root/ext/soup/gstsouphttpsrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/soup/gstsouphttpsrc.c')
-rw-r--r--ext/soup/gstsouphttpsrc.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c
index 139d3337..ad7433c1 100644
--- a/ext/soup/gstsouphttpsrc.c
+++ b/ext/soup/gstsouphttpsrc.c
@@ -25,6 +25,8 @@
* <para>
* An HTTP proxy must be specified by its URL.
* If the "http_proxy" environment variable is set, its value is used.
+ * If built with libsoup's GNOME integration features, the GNOME proxy
+ * configuration will be used, or failing that, proxy autodetection.
* The element-souphttpsrc::proxy property can be used to override the
* default.
* </para>
@@ -94,7 +96,11 @@
#endif
#include <gst/gstelement.h>
#include <gst/gst-i18n-plugin.h>
+#ifdef HAVE_LIBSOUP_GNOME
+#include <libsoup/soup-gnome.h>
+#else
#include <libsoup/soup.h>
+#endif
#include "gstsouphttpsrc.h"
#include <gst/tag/tag.h>
@@ -1127,15 +1133,21 @@ gst_soup_http_src_start (GstBaseSrc * bsrc)
return FALSE;
}
- if (src->proxy == NULL)
+ if (src->proxy == NULL) {
src->session =
soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
- src->context, SOUP_SESSION_USER_AGENT, src->user_agent, NULL);
- else
+ src->context, SOUP_SESSION_USER_AGENT, src->user_agent,
+#ifdef HAVE_LIBSOUP_GNOME
+ SOUP_SESSION_ADD_FEATURE, SOUP_TYPE_PROXY_RESOLVER_GNOME,
+#endif
+ NULL);
+ } else {
src->session =
soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
src->context, SOUP_SESSION_PROXY_URI, src->proxy,
SOUP_SESSION_USER_AGENT, src->user_agent, NULL);
+ }
+
if (!src->session) {
GST_ELEMENT_ERROR (src, LIBRARY, INIT,
(NULL), ("Failed to create async session"));