Example #1
0
URL_t*
check4proxies( const URL_t *url ) {
	URL_t *url_out = NULL;
	if( url==NULL ) return NULL;
	url_out = url_new( url->url );
	if( !strcasecmp(url->protocol, "http_proxy") ) {
		mp_msg(MSGT_NETWORK,MSGL_V,"Using HTTP proxy: http://%s:%d\n", url->hostname, url->port );
		return url_out;
	}
	// Check if the http_proxy environment variable is set.
	if( !strcasecmp(url->protocol, "http") ) {
		char *proxy;
		proxy = getenv("http_proxy");
		if( proxy!=NULL ) {
			// We got a proxy, build the URL to use it
			char *new_url;
			URL_t *tmp_url;
			URL_t *proxy_url = url_new( proxy );

			if( proxy_url==NULL ) {
				mp_msg(MSGT_NETWORK,MSGL_WARN,
					MSGTR_MPDEMUX_NW_InvalidProxySettingTryingWithout);
				return url_out;
			}

#ifdef HAVE_AF_INET6
			if (network_ipv4_only_proxy && (gethostbyname(url->hostname)==NULL)) {
				mp_msg(MSGT_NETWORK,MSGL_WARN,
					MSGTR_MPDEMUX_NW_CantResolvTryingWithoutProxy);
				url_free(proxy_url);
				return url_out;
			}
#endif

			mp_msg(MSGT_NETWORK,MSGL_V,"Using HTTP proxy: %s\n", proxy_url->url );
			new_url = get_http_proxy_url(proxy_url, url->url);
			if( new_url==NULL ) {
				mp_msg(MSGT_NETWORK,MSGL_FATAL,MSGTR_MemAllocFailed);
				url_free(proxy_url);
				return url_out;
			}
			tmp_url = url_new( new_url );
			if( tmp_url==NULL ) {
				free( new_url );
				url_free( proxy_url );
				return url_out;
			}
			url_free( url_out );
			url_out = tmp_url;
			free( new_url );
			url_free( proxy_url );
		}
	}
	return url_out;
}
Example #2
0
URL_t*
check4proxies( const URL_t *url ) {
    URL_t *url_out = NULL;
    if( url==NULL ) return NULL;
    url_out = url_new( url->url );
    if( !strcasecmp(url->protocol, "mp_http_proxy") ) {
        mp_msg(MSGT_NETWORK,MSGL_V,"Using HTTP proxy: http://%s:%d\n", url->hostname, url->port );
        return url_out;
    }
    // Check if the http_proxy environment variable is set.
    if( !strcasecmp(url->protocol, "mp_http") ) {
        char *proxy;
        proxy = getenv("http_proxy");
        if( proxy!=NULL ) {
            // We got a proxy, build the URL to use it
            char *new_url;
            URL_t *tmp_url;
            URL_t *proxy_url = url_new( proxy );

            if( proxy_url==NULL ) {
                mp_tmsg(MSGT_NETWORK,MSGL_WARN,
                        "Invalid proxy setting... Trying without proxy.\n");
                return url_out;
            }

#ifdef HAVE_AF_INET6
            if (network_ipv4_only_proxy && (gethostbyname(url->hostname)==NULL)) {
                mp_tmsg(MSGT_NETWORK,MSGL_WARN,
                        "Could not resolve remote hostname for AF_INET. Trying without proxy.\n");
                url_free(proxy_url);
                return url_out;
            }
#endif

            mp_msg(MSGT_NETWORK,MSGL_V,"Using HTTP proxy: %s\n", proxy_url->url );
            new_url = get_http_proxy_url(proxy_url, url->url);
            if( new_url==NULL ) {
                mp_tmsg(MSGT_NETWORK,MSGL_FATAL,"Memory allocation failed.\n");
                url_free(proxy_url);
                return url_out;
            }
            tmp_url = url_new( new_url );
            if( tmp_url==NULL ) {
                free( new_url );
                url_free( proxy_url );
                return url_out;
            }
            url_free( url_out );
            url_out = tmp_url;
            free( new_url );
            url_free( proxy_url );
        }
    }
    return url_out;
}