summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-03-09 20:56:07 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-03-09 20:56:07 +0000
commit0a2408cf95e2553965bca3db04584ae3d4927326 (patch)
treec146bfa02ead01f540e7c639a6fa6c14226e9361 /win32
parent4e4c362ec2e3f4b5f5c23aa83a26a13b85d0c2c1 (diff)
downloadperl-0a2408cf95e2553965bca3db04584ae3d4927326.tar.gz
[win32] tweak Win32::DomainName() implementation
p4raw-id: //depot/win32/perl@803
Diffstat (limited to 'win32')
-rw-r--r--win32/Makefile4
-rw-r--r--win32/win32.c32
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;
}