mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-01 19:13:37 +00:00
netapi32: Build with msvcrt.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
1542fe9bca
commit
1904227cc3
|
@ -3,6 +3,8 @@ MODULE = netapi32.dll
|
|||
IMPORTLIB = netapi32
|
||||
IMPORTS = rpcrt4 iphlpapi ws2_32 advapi32 dnsapi
|
||||
|
||||
EXTRADLLFLAGS = -mno-cygwin
|
||||
|
||||
C_SRCS = \
|
||||
nbcmdqueue.c \
|
||||
nbnamecache.c \
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
#include "config.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
#include "nbcmdqueue.h"
|
||||
|
||||
|
|
|
@ -19,9 +19,6 @@
|
|||
* rather more efficient than not having a name cache at all.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "wine/port.h"
|
||||
|
||||
#include "nbnamecache.h"
|
||||
|
||||
typedef struct _NBNameCacheNode
|
||||
|
|
|
@ -65,7 +65,6 @@
|
|||
* See also other FIXMEs in the code.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "winsock2.h"
|
||||
|
@ -84,10 +83,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(netbios);
|
|||
#define PORT_NBDG 138
|
||||
#define PORT_NBSS 139
|
||||
|
||||
#ifndef INADDR_NONE
|
||||
#define INADDR_NONE ~0UL
|
||||
#endif
|
||||
|
||||
#define NBR_ADDWORD(p,word) (*(WORD *)(p)) = htons(word)
|
||||
#define NBR_GETWORD(p) ntohs(*(WORD *)(p))
|
||||
|
||||
|
@ -1412,28 +1407,6 @@ static UCHAR NetBTEnum(void)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static const WCHAR VxD_MSTCPW[] = { 'S','Y','S','T','E','M','\\','C','u','r',
|
||||
'r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\','S','e','r','v',
|
||||
'i','c','e','s','\\','V','x','D','\\','M','S','T','C','P','\0' };
|
||||
static const WCHAR NetBT_ParametersW[] = { 'S','Y','S','T','E','M','\\','C','u',
|
||||
'r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\','S','e','r',
|
||||
'v','i','c','e','s','\\','N','e','t','B','T','\\','P','a','r','a','m','e','t',
|
||||
'e','r','s','\0' };
|
||||
static const WCHAR EnableDNSW[] = { 'E','n','a','b','l','e','D','N','S','\0' };
|
||||
static const WCHAR BcastNameQueryCountW[] = { 'B','c','a','s','t','N','a','m',
|
||||
'e','Q','u','e','r','y','C','o','u','n','t','\0' };
|
||||
static const WCHAR BcastNameQueryTimeoutW[] = { 'B','c','a','s','t','N','a','m',
|
||||
'e','Q','u','e','r','y','T','i','m','e','o','u','t','\0' };
|
||||
static const WCHAR NameSrvQueryCountW[] = { 'N','a','m','e','S','r','v',
|
||||
'Q','u','e','r','y','C','o','u','n','t','\0' };
|
||||
static const WCHAR NameSrvQueryTimeoutW[] = { 'N','a','m','e','S','r','v',
|
||||
'Q','u','e','r','y','T','i','m','e','o','u','t','\0' };
|
||||
static const WCHAR ScopeIDW[] = { 'S','c','o','p','e','I','D','\0' };
|
||||
static const WCHAR CacheTimeoutW[] = { 'C','a','c','h','e','T','i','m','e','o',
|
||||
'u','t','\0' };
|
||||
static const WCHAR Config_NetworkW[] = { 'S','o','f','t','w','a','r','e','\\',
|
||||
'W','i','n','e','\\','N','e','t','w','o','r','k','\0' };
|
||||
|
||||
/* Initializes global variables and registers the NetBT transport */
|
||||
void NetBTInit(void)
|
||||
{
|
||||
|
@ -1457,40 +1430,37 @@ void NetBTInit(void)
|
|||
gCacheTimeout = CACHE_TIMEOUT;
|
||||
|
||||
/* Try to open the Win9x NetBT configuration key */
|
||||
ret = RegOpenKeyExW(HKEY_LOCAL_MACHINE, VxD_MSTCPW, 0, KEY_READ, &hKey);
|
||||
ret = RegOpenKeyExW( HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Services\\VxD\\MSTCP",
|
||||
0, KEY_READ, &hKey );
|
||||
/* If that fails, try the WinNT NetBT configuration key */
|
||||
if (ret != ERROR_SUCCESS)
|
||||
ret = RegOpenKeyExW(HKEY_LOCAL_MACHINE, NetBT_ParametersW, 0, KEY_READ,
|
||||
&hKey);
|
||||
ret = RegOpenKeyExW( HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Services\\NetBT\\Parameters",
|
||||
0, KEY_READ, &hKey );
|
||||
if (ret == ERROR_SUCCESS)
|
||||
{
|
||||
DWORD dword, size;
|
||||
|
||||
size = sizeof(dword);
|
||||
if (RegQueryValueExW(hKey, EnableDNSW, NULL, NULL,
|
||||
(LPBYTE)&dword, &size) == ERROR_SUCCESS)
|
||||
if (!RegQueryValueExW( hKey, L"EnableDNS", NULL, NULL, (BYTE *)&dword, &size ))
|
||||
gEnableDNS = dword;
|
||||
size = sizeof(dword);
|
||||
if (RegQueryValueExW(hKey, BcastNameQueryCountW, NULL, NULL,
|
||||
(LPBYTE)&dword, &size) == ERROR_SUCCESS && dword >= MIN_QUERIES
|
||||
&& dword <= MAX_QUERIES)
|
||||
if (!RegQueryValueExW( hKey, L"BcastNameQueryCount", NULL, NULL, (BYTE *)&dword, &size )
|
||||
&& dword >= MIN_QUERIES && dword <= MAX_QUERIES)
|
||||
gBCastQueries = dword;
|
||||
size = sizeof(dword);
|
||||
if (RegQueryValueExW(hKey, BcastNameQueryTimeoutW, NULL, NULL,
|
||||
(LPBYTE)&dword, &size) == ERROR_SUCCESS && dword >= MIN_QUERY_TIMEOUT)
|
||||
if (!RegQueryValueExW( hKey, L"BcastNameQueryTimeout", NULL, NULL, (BYTE *)&dword, &size )
|
||||
&& dword >= MIN_QUERY_TIMEOUT)
|
||||
gBCastQueryTimeout = dword;
|
||||
size = sizeof(dword);
|
||||
if (RegQueryValueExW(hKey, NameSrvQueryCountW, NULL, NULL,
|
||||
(LPBYTE)&dword, &size) == ERROR_SUCCESS && dword >= MIN_QUERIES
|
||||
&& dword <= MAX_QUERIES)
|
||||
if (!RegQueryValueExW( hKey, L"NameSrvQueryCount", NULL, NULL, (BYTE *)&dword, &size )
|
||||
&& dword >= MIN_QUERIES && dword <= MAX_QUERIES)
|
||||
gWINSQueries = dword;
|
||||
size = sizeof(dword);
|
||||
if (RegQueryValueExW(hKey, NameSrvQueryTimeoutW, NULL, NULL,
|
||||
(LPBYTE)&dword, &size) == ERROR_SUCCESS && dword >= MIN_QUERY_TIMEOUT)
|
||||
if (!RegQueryValueExW( hKey, L"NameSrvQueryTimeout", NULL, NULL, (BYTE *)&dword, &size )
|
||||
&& dword >= MIN_QUERY_TIMEOUT)
|
||||
gWINSQueryTimeout = dword;
|
||||
size = sizeof(gScopeID) - 1;
|
||||
if (RegQueryValueExW(hKey, ScopeIDW, NULL, NULL, (LPBYTE)gScopeID + 1, &size)
|
||||
== ERROR_SUCCESS)
|
||||
if (!RegQueryValueExW( hKey, L"ScopeID", NULL, NULL, (BYTE *)gScopeID + 1, &size ))
|
||||
{
|
||||
/* convert into L2-encoded version, suitable for use by
|
||||
NetBTNameEncode */
|
||||
|
@ -1509,8 +1479,8 @@ void NetBTInit(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
if (RegQueryValueExW(hKey, CacheTimeoutW, NULL, NULL,
|
||||
(LPBYTE)&dword, &size) == ERROR_SUCCESS && dword >= MIN_CACHE_TIMEOUT)
|
||||
if (!RegQueryValueExW( hKey, L"CacheTimeout", NULL, NULL, (BYTE *)&dword, &size )
|
||||
&& dword >= MIN_CACHE_TIMEOUT)
|
||||
gCacheTimeout = dword;
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
|
@ -1519,7 +1489,7 @@ void NetBTInit(void)
|
|||
* same place. Just do a global WINS configuration instead.
|
||||
*/
|
||||
/* @@ Wine registry key: HKCU\Software\Wine\Network */
|
||||
if (RegOpenKeyW(HKEY_CURRENT_USER, Config_NetworkW, &hKey) == ERROR_SUCCESS)
|
||||
if (!RegOpenKeyW( HKEY_CURRENT_USER, L"Software\\Wine\\Network", &hKey ))
|
||||
{
|
||||
static const char *nsValueNames[] = { "WinsServer", "BackupWinsServer" };
|
||||
char nsString[16];
|
||||
|
|
|
@ -21,15 +21,13 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "wine/port.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "ntstatus.h"
|
||||
#define WIN32_NO_STATUS
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winternl.h"
|
||||
#include "winsock2.h"
|
||||
#include "ws2ipdef.h"
|
||||
#include "windns.h"
|
||||
|
@ -49,7 +47,6 @@
|
|||
#include "davclnt.h"
|
||||
#include "wine/debug.h"
|
||||
#include "wine/list.h"
|
||||
#include "wine/unicode.h"
|
||||
#include "initguid.h"
|
||||
|
||||
#include "unixlib.h"
|
||||
|
@ -90,7 +87,7 @@ static BOOL NETAPI_IsLocalComputer( LMCSTR name )
|
|||
|
||||
ret = GetComputerNameW( buf, &size );
|
||||
if (ret && name[0] == '\\' && name[1] == '\\') name += 2;
|
||||
return ret && !strcmpiW( name, buf );
|
||||
return ret && !wcsicmp( name, buf );
|
||||
}
|
||||
|
||||
BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||
|
@ -246,12 +243,6 @@ NET_API_STATUS WINAPI NetStatisticsGet(LMSTR server, LMSTR service,
|
|||
LPBYTE *bufptr)
|
||||
{
|
||||
int res;
|
||||
static const WCHAR SERVICE_WORKSTATION[] = {
|
||||
'L', 'a', 'n', 'm', 'a', 'n',
|
||||
'W', 'o', 'r', 'k', 's', 't', 'a', 't', 'i', 'o', 'n', '\0'};
|
||||
static const WCHAR SERVICE_SERVER[] = {
|
||||
'L', 'a', 'n', 'm', 'a', 'n',
|
||||
'S', 'e', 'r', 'v', 'e', 'r', '\0'};
|
||||
union
|
||||
{
|
||||
STAT_WORKSTATION_0 workst;
|
||||
|
@ -270,13 +261,13 @@ NET_API_STATUS WINAPI NetStatisticsGet(LMSTR server, LMSTR service,
|
|||
switch (level)
|
||||
{
|
||||
case 0:
|
||||
if (!lstrcmpW(service, SERVICE_WORKSTATION))
|
||||
if (!wcscmp( service, L"Lanman Workstation" ))
|
||||
{
|
||||
/* Fill the struct STAT_WORKSTATION_0 properly */
|
||||
memset(&stat->workst, 0, sizeof(stat->workst));
|
||||
res = NERR_Success;
|
||||
}
|
||||
else if (!lstrcmpW(service, SERVICE_SERVER))
|
||||
else if (!wcscmp( service, L"Lanman Server" ))
|
||||
{
|
||||
/* Fill the struct STAT_SERVER_0 properly */
|
||||
memset(&stat->server, 0, sizeof(stat->server));
|
||||
|
@ -985,7 +976,7 @@ NET_API_STATUS WINAPI NetWkstaGetInfo( LMSTR servername, DWORD level,
|
|||
case 101:
|
||||
case 102:
|
||||
{
|
||||
static const WCHAR lanroot[] = {'c',':','\\','l','a','n','m','a','n',0}; /* FIXME */
|
||||
static const WCHAR lanroot[] = L"c:\\lanman"; /* FIXME */
|
||||
DWORD computerNameLen, domainNameLen, size;
|
||||
WCHAR computerName[MAX_COMPUTERNAME_LENGTH + 1];
|
||||
LSA_OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
|
@ -1055,7 +1046,7 @@ NET_API_STATUS NET_API_FUNCTION NetGetJoinInformation(
|
|||
LPWSTR *Name,
|
||||
PNETSETUP_JOIN_STATUS type)
|
||||
{
|
||||
static const WCHAR workgroupW[] = {'W','o','r','k','g','r','o','u','p',0};
|
||||
static const WCHAR workgroupW[] = L"Workgroup";
|
||||
|
||||
FIXME("Semi-stub %s %p %p\n", wine_dbgstr_w(Server), Name, type);
|
||||
|
||||
|
@ -1144,7 +1135,7 @@ static struct sam_user* NETAPI_FindUser(LPCWSTR UserName)
|
|||
|
||||
LIST_FOR_EACH_ENTRY(user, &user_list, struct sam_user, entry)
|
||||
{
|
||||
if(lstrcmpW(user->user_name, UserName) == 0)
|
||||
if(wcscmp(user->user_name, UserName) == 0)
|
||||
return user;
|
||||
}
|
||||
return NULL;
|
||||
|
@ -1168,7 +1159,7 @@ static BOOL NETAPI_IsCurrentUser(LPCWSTR username)
|
|||
ERR("Failed to get current user's user name.\n");
|
||||
goto end;
|
||||
}
|
||||
if (!lstrcmpW(curr_user, username))
|
||||
if (!wcscmp(curr_user, username))
|
||||
{
|
||||
ret = TRUE;
|
||||
}
|
||||
|
@ -1371,7 +1362,6 @@ NetUserGetInfo(LPCWSTR servername, LPCWSTR username, DWORD level,
|
|||
|
||||
case 1:
|
||||
{
|
||||
static const WCHAR homedirW[] = {'H','O','M','E',0};
|
||||
PUSER_INFO_1 ui;
|
||||
PUSER_INFO_0 ui0;
|
||||
/* sizes of the field buffers in WCHARS */
|
||||
|
@ -1389,7 +1379,7 @@ NetUserGetInfo(LPCWSTR servername, LPCWSTR username, DWORD level,
|
|||
return status;
|
||||
}
|
||||
name_sz = lstrlenW(ui0->usri0_name) + 1;
|
||||
home_dir_sz = GetEnvironmentVariableW(homedirW, NULL,0);
|
||||
home_dir_sz = GetEnvironmentVariableW(L"HOME", NULL,0);
|
||||
/* set up buffer */
|
||||
NetApiBufferAllocate(sizeof(USER_INFO_1) +
|
||||
(name_sz + password_sz + home_dir_sz +
|
||||
|
@ -1408,7 +1398,7 @@ NetUserGetInfo(LPCWSTR servername, LPCWSTR username, DWORD level,
|
|||
ui->usri1_password[0] = 0;
|
||||
ui->usri1_password_age = 0;
|
||||
ui->usri1_priv = 0;
|
||||
GetEnvironmentVariableW(homedirW, ui->usri1_home_dir,home_dir_sz);
|
||||
GetEnvironmentVariableW(L"HOME", ui->usri1_home_dir,home_dir_sz);
|
||||
ui->usri1_comment[0] = 0;
|
||||
ui->usri1_flags = 0;
|
||||
ui->usri1_script_path[0] = 0;
|
||||
|
@ -1459,7 +1449,7 @@ NetUserGetLocalGroups(LPCWSTR servername, LPCWSTR username, DWORD level,
|
|||
DWORD flags, LPBYTE* bufptr, DWORD prefmaxlen,
|
||||
LPDWORD entriesread, LPDWORD totalentries)
|
||||
{
|
||||
static const WCHAR admins[] = {'A','d','m','i','n','i','s','t','r','a','t','o','r','s',0};
|
||||
static const WCHAR admins[] = L"Administrators";
|
||||
NET_API_STATUS status;
|
||||
LPWSTR currentuser;
|
||||
LOCALGROUP_USERS_INFO_0* info;
|
||||
|
@ -1545,7 +1535,7 @@ NetUserEnum(LPCWSTR servername, DWORD level, DWORD filter, LPBYTE* bufptr,
|
|||
{
|
||||
USER_INFO_0 *info;
|
||||
|
||||
size = sizeof(*info) + (strlenW(user) + 1) * sizeof(WCHAR);
|
||||
size = sizeof(*info) + (wcslen(user) + 1) * sizeof(WCHAR);
|
||||
|
||||
if (prefmaxlen < size)
|
||||
status = ERROR_MORE_DATA;
|
||||
|
@ -1556,7 +1546,7 @@ NetUserEnum(LPCWSTR servername, DWORD level, DWORD filter, LPBYTE* bufptr,
|
|||
return status;
|
||||
|
||||
info->usri0_name = (WCHAR *)((char *)info + sizeof(*info));
|
||||
strcpyW(info->usri0_name, user);
|
||||
wcscpy(info->usri0_name, user);
|
||||
|
||||
*bufptr = (BYTE *)info;
|
||||
*entriesread = *totalentries = 1;
|
||||
|
@ -1570,7 +1560,7 @@ NetUserEnum(LPCWSTR servername, DWORD level, DWORD filter, LPBYTE* bufptr,
|
|||
DWORD *rid;
|
||||
SID_NAME_USE use;
|
||||
|
||||
size = sizeof(*info) + (strlenW(user) + 1) * sizeof(WCHAR);
|
||||
size = sizeof(*info) + (wcslen(user) + 1) * sizeof(WCHAR);
|
||||
|
||||
if (prefmaxlen < size)
|
||||
status = ERROR_MORE_DATA;
|
||||
|
@ -1596,7 +1586,7 @@ NetUserEnum(LPCWSTR servername, DWORD level, DWORD filter, LPBYTE* bufptr,
|
|||
rid = GetSidSubAuthority(sid, *count - 1);
|
||||
|
||||
info->usri20_name = (WCHAR *)((char *)info + sizeof(*info));
|
||||
strcpyW(info->usri20_name, user);
|
||||
wcscpy(info->usri20_name, user);
|
||||
info->usri20_full_name = NULL;
|
||||
info->usri20_comment = NULL;
|
||||
info->usri20_flags = UF_NORMAL_ACCOUNT;
|
||||
|
@ -1622,8 +1612,7 @@ NetUserEnum(LPCWSTR servername, DWORD level, DWORD filter, LPBYTE* bufptr,
|
|||
*/
|
||||
static void ACCESS_QueryAdminDisplayInformation(PNET_DISPLAY_USER *buf, PDWORD pdwSize)
|
||||
{
|
||||
static const WCHAR sAdminUserName[] = {
|
||||
'A','d','m','i','n','i','s','t','r','a','t','o','r',0};
|
||||
static const WCHAR sAdminUserName[] = L"Administrator";
|
||||
|
||||
/* sizes of the field buffers in WCHARS */
|
||||
int name_sz, comment_sz, full_name_sz;
|
||||
|
@ -1661,8 +1650,7 @@ static void ACCESS_QueryAdminDisplayInformation(PNET_DISPLAY_USER *buf, PDWORD p
|
|||
*/
|
||||
static void ACCESS_QueryGuestDisplayInformation(PNET_DISPLAY_USER *buf, PDWORD pdwSize)
|
||||
{
|
||||
static const WCHAR sGuestUserName[] = {
|
||||
'G','u','e','s','t',0 };
|
||||
static const WCHAR sGuestUserName[] = L"Guest";
|
||||
|
||||
/* sizes of the field buffers in WCHARS */
|
||||
int name_sz, comment_sz, full_name_sz;
|
||||
|
@ -2058,7 +2046,7 @@ NET_API_STATUS WINAPI NetUserChangePassword(LPCWSTR domainname, LPCWSTR username
|
|||
if((user = NETAPI_FindUser(username)) == NULL)
|
||||
return NERR_UserNotFound;
|
||||
|
||||
if(lstrcmpW(user->user_password, oldpassword) != 0)
|
||||
if(wcscmp(user->user_password, oldpassword) != 0)
|
||||
return ERROR_INVALID_PASSWORD;
|
||||
|
||||
if(lstrlenW(newpassword) > PWLEN)
|
||||
|
@ -2105,13 +2093,12 @@ NET_API_STATUS WINAPI I_BrowserQueryEmulatedDomains(
|
|||
|
||||
static DWORD get_dc_info(const WCHAR *domain, WCHAR *dc, WCHAR *ip)
|
||||
{
|
||||
static const WCHAR pfx[] = {'_','l','d','a','p','.','_','t','c','p','.','d','c','.','_','m','s','d','c','s','.',0};
|
||||
WCHAR name[NS_MAXDNAME];
|
||||
DWORD ret, size;
|
||||
DNS_RECORDW *rec;
|
||||
|
||||
lstrcpyW(name, pfx);
|
||||
lstrcatW(name, domain);
|
||||
wcscpy( name, L"_ldap._tcp.dc._msdcs." );
|
||||
wcscat( name, domain );
|
||||
|
||||
ret = DnsQuery_W(name, DNS_TYPE_SRV, DNS_QUERY_STANDARD, NULL, &rec, NULL);
|
||||
TRACE("DnsQuery_W(%s) => %d\n", wine_dbgstr_w(domain), ret);
|
||||
|
@ -2169,7 +2156,7 @@ DWORD WINAPI DsGetDcNameW(LPCWSTR computer, LPCWSTR domain, GUID *domain_guid,
|
|||
LPCWSTR site, ULONG flags, PDOMAIN_CONTROLLER_INFOW *dc_info)
|
||||
{
|
||||
static const WCHAR pfxW[] = {'\\','\\'};
|
||||
static const WCHAR default_site_nameW[] = {'D','e','f','a','u','l','t','-','F','i','r','s','t','-','S','i','t','e','-','N','a','m','e',0};
|
||||
static const WCHAR default_site_nameW[] = L"Default-First-Site-Name";
|
||||
NTSTATUS status;
|
||||
POLICY_DNS_DOMAIN_INFO *dns_domain_info = NULL;
|
||||
DOMAIN_CONTROLLER_INFOW *info;
|
||||
|
@ -2217,12 +2204,12 @@ DWORD WINAPI DsGetDcNameW(LPCWSTR computer, LPCWSTR domain, GUID *domain_guid,
|
|||
info->DomainControllerName = (WCHAR *)(info + 1);
|
||||
memcpy(info->DomainControllerName, pfxW, sizeof(pfxW));
|
||||
lstrcpyW(info->DomainControllerName + 2, dc);
|
||||
info->DomainControllerAddress = (WCHAR *)((char *)info->DomainControllerName + (strlenW(info->DomainControllerName) + 1) * sizeof(WCHAR));
|
||||
info->DomainControllerAddress = (WCHAR *)((char *)info->DomainControllerName + (wcslen(info->DomainControllerName) + 1) * sizeof(WCHAR));
|
||||
memcpy(info->DomainControllerAddress, pfxW, sizeof(pfxW));
|
||||
lstrcpyW(info->DomainControllerAddress + 2, ip);
|
||||
info->DomainControllerAddressType = DS_INET_ADDRESS;
|
||||
info->DomainGuid = dns_domain_info ? dns_domain_info->DomainGuid : GUID_NULL /* FIXME */;
|
||||
info->DomainName = (WCHAR *)((char *)info->DomainControllerAddress + (strlenW(info->DomainControllerAddress) + 1) * sizeof(WCHAR));
|
||||
info->DomainName = (WCHAR *)((char *)info->DomainControllerAddress + (wcslen(info->DomainControllerAddress) + 1) * sizeof(WCHAR));
|
||||
lstrcpyW(info->DomainName, domain);
|
||||
info->DnsForestName = (WCHAR *)((char *)info->DomainName + (lstrlenW(info->DomainName) + 1) * sizeof(WCHAR));
|
||||
lstrcpyW(info->DnsForestName, domain);
|
||||
|
@ -2461,7 +2448,7 @@ NET_API_STATUS WINAPI NetLocalGroupGetInfo(
|
|||
DWORD level,
|
||||
LPBYTE* bufptr)
|
||||
{
|
||||
static const WCHAR commentW[]={'N','o',' ','c','o','m','m','e','n','t',0};
|
||||
static const WCHAR commentW[] = L"No comment";
|
||||
LOCALGROUP_INFO_1* info;
|
||||
DWORD size;
|
||||
|
||||
|
@ -2571,10 +2558,8 @@ NET_API_STATUS WINAPI NetLocalGroupSetMembers(
|
|||
*/
|
||||
DWORD WINAPI DavGetHTTPFromUNCPath(const WCHAR *unc_path, WCHAR *buf, DWORD *buflen)
|
||||
{
|
||||
static const WCHAR httpW[] = {'h','t','t','p',':','/','/',0};
|
||||
static const WCHAR httpsW[] = {'h','t','t','p','s',':','/','/',0};
|
||||
static const WCHAR sslW[] = {'S','S','L',0};
|
||||
static const WCHAR fmtW[] = {':','%','u',0};
|
||||
static const WCHAR httpW[] = L"http://";
|
||||
static const WCHAR httpsW[] = L"https://";
|
||||
const WCHAR *p = unc_path, *q, *server, *path, *scheme = httpW;
|
||||
UINT i, len_server, len_path = 0, len_port = 0, len, port = 0;
|
||||
WCHAR *end, portbuf[12];
|
||||
|
@ -2590,17 +2575,17 @@ DWORD WINAPI DavGetHTTPFromUNCPath(const WCHAR *unc_path, WCHAR *buf, DWORD *buf
|
|||
{
|
||||
p = ++q;
|
||||
while (*p && (*p != '\\' && *p != '/' && *p != '@')) p++;
|
||||
if (p - q == 3 && !strncmpiW( q, sslW, 3 ))
|
||||
if (p - q == 3 && !wcsnicmp( q, L"SSL", 3 ))
|
||||
{
|
||||
scheme = httpsW;
|
||||
q = p;
|
||||
}
|
||||
else if ((port = strtolW( q, &end, 10 ))) q = end;
|
||||
else if ((port = wcstol( q, &end, 10 ))) q = end;
|
||||
else return ERROR_INVALID_PARAMETER;
|
||||
}
|
||||
if (*q == '@')
|
||||
{
|
||||
if (!(port = strtolW( ++q, &end, 10 ))) return ERROR_INVALID_PARAMETER;
|
||||
if (!(port = wcstol( ++q, &end, 10 ))) return ERROR_INVALID_PARAMETER;
|
||||
q = end;
|
||||
}
|
||||
if (*q == '\\' || *q == '/') q++;
|
||||
|
@ -2609,16 +2594,16 @@ DWORD WINAPI DavGetHTTPFromUNCPath(const WCHAR *unc_path, WCHAR *buf, DWORD *buf
|
|||
if (len_path && (path[len_path - 1] == '\\' || path[len_path - 1] == '/'))
|
||||
len_path--; /* remove trailing slash */
|
||||
|
||||
sprintfW( portbuf, fmtW, port );
|
||||
swprintf( portbuf, ARRAY_SIZE(portbuf), L":%u", port );
|
||||
if (scheme == httpsW)
|
||||
{
|
||||
len = strlenW( httpsW );
|
||||
if (port && port != 443) len_port = strlenW( portbuf );
|
||||
len = wcslen( httpsW );
|
||||
if (port && port != 443) len_port = wcslen( portbuf );
|
||||
}
|
||||
else
|
||||
{
|
||||
len = strlenW( httpW );
|
||||
if (port && port != 80) len_port = strlenW( portbuf );
|
||||
len = wcslen( httpW );
|
||||
if (port && port != 80) len_port = wcslen( portbuf );
|
||||
}
|
||||
len += len_server;
|
||||
len += len_port;
|
||||
|
@ -2631,8 +2616,8 @@ DWORD WINAPI DavGetHTTPFromUNCPath(const WCHAR *unc_path, WCHAR *buf, DWORD *buf
|
|||
return ERROR_INSUFFICIENT_BUFFER;
|
||||
}
|
||||
|
||||
memcpy( buf, scheme, strlenW(scheme) * sizeof(WCHAR) );
|
||||
buf += strlenW( scheme );
|
||||
memcpy( buf, scheme, wcslen(scheme) * sizeof(WCHAR) );
|
||||
buf += wcslen( scheme );
|
||||
memcpy( buf, server, len_server * sizeof(WCHAR) );
|
||||
buf += len_server;
|
||||
if (len_port)
|
||||
|
@ -2673,8 +2658,8 @@ DWORD WINAPI DavGetUNCFromHTTPPath(const WCHAR *http_path, WCHAR *buf, DWORD *bu
|
|||
TRACE("(%s %p %p)\n", debugstr_w(http_path), buf, buflen);
|
||||
|
||||
while (*p && *p != ':') { p++; len++; };
|
||||
if (len == ARRAY_SIZE(httpW) && !strncmpiW( http_path, httpW, len )) ssl = FALSE;
|
||||
else if (len == ARRAY_SIZE(httpsW) && !strncmpiW( http_path, httpsW, len )) ssl = TRUE;
|
||||
if (len == ARRAY_SIZE(httpW) && !wcsnicmp( http_path, httpW, len )) ssl = FALSE;
|
||||
else if (len == ARRAY_SIZE(httpsW) && !wcsnicmp( http_path, httpsW, len )) ssl = TRUE;
|
||||
else return ERROR_INVALID_PARAMETER;
|
||||
|
||||
if (p[0] != ':' || p[1] != '/' || p[2] != '/') return ERROR_INVALID_PARAMETER;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
#include "config.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
#include "nbcmdqueue.h"
|
||||
#include "netbios.h"
|
||||
|
|
Loading…
Reference in a new issue