mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 13:41:48 +00:00
Use libsoup-gnome for proxy configuration if available
If libsoup-gnome is found use this as it will give us the GNOME proxy configuration. Otherwise use normal libsoup. The GNOME proxy configuration will only be used if the proxy properties are not set on souphttpsrc and if the http_proxy environment variable is not set. Fixes bug #552140.
This commit is contained in:
parent
66de4c1bba
commit
5a0e94b8a7
2 changed files with 23 additions and 6 deletions
11
configure.ac
11
configure.ac
|
@ -836,9 +836,14 @@ AG_GST_CHECK_FEATURE(SHOUT2, [Shoutcast/Icecast client library], shout2, [
|
|||
dnl *** soup ***
|
||||
translit(dnm, m, l) AM_CONDITIONAL(USE_SOUP, true)
|
||||
AG_GST_CHECK_FEATURE(SOUP, [soup http client plugin (2.4)], souphttpsrc, [
|
||||
PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.3.2, HAVE_SOUP="yes", [
|
||||
HAVE_SOUP="no"
|
||||
AC_MSG_RESULT(no)
|
||||
PKG_CHECK_MODULES(SOUP, libsoup-gnome-2.4 >= 2.3.2, [
|
||||
HAVE_SOUP="yes"
|
||||
AC_DEFINE(HAVE_LIBSOUP_GNOME, 1, [soup gnome integration])
|
||||
],[
|
||||
PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.3.2, HAVE_SOUP="yes", [
|
||||
HAVE_SOUP="no"
|
||||
AC_MSG_RESULT(no)
|
||||
])
|
||||
])
|
||||
AC_SUBST(SOUP_CFLAGS)
|
||||
AC_SUBST(SOUP_LIBS)
|
||||
|
|
|
@ -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"));
|
||||
|
|
Loading…
Reference in a new issue