- /* Try to get the proxy server address from Windows internet settings using registry. */
- HKEY h_key;
- /* Open the key */
- if( RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\Microsoft" \
- "\\Windows\\CurrentVersion\\Internet Settings",
- 0, KEY_READ, &h_key ) == ERROR_SUCCESS )
- {
- DWORD i_dataReadSize = 4; /* sizeof( DWORD ); */
- DWORD proxyEnable = 0;
- /* Get the proxy enable value */
- if( RegQueryValueEx( h_key, "ProxyEnable", NULL, NULL,
- (char *)&proxyEnable, &i_dataReadSize )
- == ERROR_SUCCESS )
- {
- if( proxyEnable )
- {
- /* Proxy is enable */
- char psz_key[256];
- i_dataReadSize = 256;
- if( RegQueryValueEx( h_key, "ProxyServer",
- NULL, NULL, psz_key,
- &i_dataReadSize )
- == ERROR_SUCCESS )
- {
- /* Get the proxy URL :
- Proxy server value in the registry can be something like "address:port"
- or "ftp=adress1:port1;http=adress2:port2 ..." depending of the
- confirguration. */
- char *psz_proxy;
- psz_proxy = strstr( psz_key, "http=" );
- if( psz_proxy != NULL )
- {
- psz_proxy += strlen( "http=" );
- char *psz_endUrl = strchr( psz_proxy, ';' );
- if( psz_endUrl != NULL )
- *psz_endUrl = '\0';
- }
- else
- psz_proxy = psz_key;
- /* Set proxy enable for this connection. */
- p_sys->b_proxy = true;
- vlc_UrlParse( &p_sys->proxy, psz_proxy, 0 );
- }
- msg_Warn( p_access, "Couldn't read in registry " \
- "the proxy server address." );
- }
- }
- else
- msg_Warn( p_access, "Couldn't read in registry if the " \
- "proxy is enable or not." );
- }
- else
- msg_Warn( p_access, "Couldn't open internet settings key " \
- "in registry." );