Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

104 lines
2.1 KiB

/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
apdetect.cxx
Abstract:
This is the overall generic wrappers and entry code to the
auto-proxy, auto-detection code, that sends DHCP informs,
and mundges through DNS to find an URL for proxy configuration
Author:
Arthur Bierer (arthurbi) 15-Jul-1998
Environment:
User Mode - Win32
Revision History:
Arthur Bierer (arthurbi) 15-Jul-1998
Created
Josh Cohen (joshco) 7-oct-1998
added proxydetecttype
Stephen Sulzer (ssulzer) 24-Feb-2001
WinHttp 5 Autoproxy support
--*/
#include <wininetp.h>
#include "aproxp.h"
#include "apdetect.h"
DWORD
DetectAutoProxyUrl(
IN DWORD dwDetectFlags,
OUT LPSTR * ppszAutoProxyUrl
)
{
DWORD error;
bool bDetected = false;
DEBUG_ENTER((DBG_SOCKETS,
Bool,
"DetectAutoProxyUrl",
"%u, %x",
dwDetectFlags,
ppszAutoProxyUrl
));
INET_ASSERT(GlobalDataInitialized);
error = LoadWinsock();
if (error != ERROR_SUCCESS)
{
goto quit;
}
if (PROXY_AUTO_DETECT_TYPE_DHCP & dwDetectFlags)
{
CIpConfig Interfaces;
if (Interfaces.DoInformsOnEachInterface(ppszAutoProxyUrl))
{
//printf("success on DHCP search: got %s\n", szAutoProxyUrl);
bDetected = true;
}
}
if (!bDetected && (PROXY_AUTO_DETECT_TYPE_DNS_A & dwDetectFlags))
{
if (QueryWellKnownDnsName(ppszAutoProxyUrl) == ERROR_SUCCESS)
{
//printf("success on well qualified name search: got %s\n", szAutoProxyUrl);
bDetected = true;
}
}
if (bDetected)
{
INET_ASSERT(*ppszAutoProxyUrl);
error = ERROR_SUCCESS;
}
else
{
*ppszAutoProxyUrl = NULL;
error = ERROR_WINHTTP_AUTODETECTION_FAILED;
}
quit:
DEBUG_LEAVE(error);
return error;
}