diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-03-09 20:56:07 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-03-09 20:56:07 +0000 |
commit | 0a2408cf95e2553965bca3db04584ae3d4927326 (patch) | |
tree | c146bfa02ead01f540e7c639a6fa6c14226e9361 /win32 | |
parent | 4e4c362ec2e3f4b5f5c23aa83a26a13b85d0c2c1 (diff) | |
download | perl-0a2408cf95e2553965bca3db04584ae3d4927326.tar.gz |
[win32] tweak Win32::DomainName() implementation
p4raw-id: //depot/win32/perl@803
Diffstat (limited to 'win32')
-rw-r--r-- | win32/Makefile | 4 | ||||
-rw-r--r-- | win32/win32.c | 32 |
2 files changed, 12 insertions, 24 deletions
diff --git a/win32/Makefile b/win32/Makefile index 26539208b6..54ce1920c1 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -186,7 +186,6 @@ X2P=..\x2p\a2p.exe PL2BAT=bin\pl2bat.pl GLOBBAT = bin\perlglob.bat -MAKE=nmake -nologo CFGSH_TMPL = config.vc CFGH_TMPL = config_H.vc PERL95EXE=..\perl95.exe @@ -421,8 +420,7 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl $(XCOPY) ..\*.h $(COREDIR)\*.* $(XCOPY) *.h $(COREDIR)\*.* $(RCOPY) include $(COREDIR)\*.* - $(MINIPERL) -I..\lib config_h.PL || $(MAKE) CCTYPE=$(CCTYPE) \ - RUNTIME=$(RUNTIME) CFG=$(CFG) $(CONFIGPM) + $(MINIPERL) -I..\lib config_h.PL || $(MAKE) $(MAKEFLAGS) $(CONFIGPM) $(MINIPERL) : ..\miniperlmain$(o) $(CORE_OBJ) $(WIN32_OBJ) $(LINK32) -subsystem:console -out:$@ @<< diff --git a/win32/win32.c b/win32/win32.c index aaf5139fe2..e1192f8fae 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -1910,31 +1910,21 @@ static XS(w32_DomainName) { dXSARGS; -#if 0 - /* doesn't do the right thing if current user is a local account */ - char name[256]; - DWORD size = sizeof(name); - if (GetUserName(name,&size)) { - char sid[1024]; - DWORD sidlen = sizeof(sid); - char dname[256]; - DWORD dnamelen = sizeof(dname); - SID_NAME_USE snu; - if (LookupAccountName(NULL, name, &sid, &sidlen, - dname, &dnamelen, &snu)) { - XSRETURN_PV(dname); /* all that for this */ - } - } -#else char dname[256]; DWORD dnamelen = sizeof(dname); - WKSTA_INFO_100 wi; - if (NERR_Success == NetWkstaGetInfo(NULL, 100, (LPBYTE*)&wi)) { - WideCharToMultiByte(CP_ACP, NULL, wi.wki100_langroup, -1, - (LPSTR)dname, dnamelen, NULL, NULL); + PWKSTA_INFO_100 pwi; + if (NERR_Success == NetWkstaGetInfo(NULL, 100, (LPBYTE*)&pwi)) { + if (pwi->wki100_langroup && *(pwi->wki100_langroup)) { + WideCharToMultiByte(CP_ACP, NULL, pwi->wki100_langroup, + -1, (LPSTR)dname, dnamelen, NULL, NULL); + } + else { + WideCharToMultiByte(CP_ACP, NULL, pwi->wki100_computername, + -1, (LPSTR)dname, dnamelen, NULL, NULL); + } + NetApiBufferFree(pwi); XSRETURN_PV(dname); } -#endif XSRETURN_UNDEF; } |