DWORD ioctlDebug = IoctlDebug();
DWORD gle;
DWORD dwSize = sizeof(szUser);
+ int saveerrno;
memset(HostName, '\0', sizeof(HostName));
gethostname(HostName, sizeof(HostName));
gle = GetLastError();
if (gle && ioctlDebug ) {
char buf[4096];
-
+
+ saveerrno = errno;
if ( FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
gle,
fprintf(stderr,"pioctl CreateFile(%s) failed: 0x%X\r\n\t[%s]\r\n",
tbuffer,gle,buf);
}
+ errno = saveerrno;
}
lana_GetNetbiosName(szClient, LANA_NETBIOS_NAME_FULL);
}
if ( szUser[0] ) {
- if ( ioctlDebug )
+ if ( ioctlDebug ) {
+ saveerrno = errno;
fprintf(stderr, "pioctl Explorer logon user: [%s]\r\n",szUser);
-
+ errno = saveerrno;
+ }
sprintf(szPath, "\\\\%s", szClient);
memset (&nr, 0x00, sizeof(NETRESOURCE));
nr.dwType=RESOURCETYPE_DISK;
res = WNetAddConnection2(&nr,NULL,szUser,0);
if (res) {
if ( ioctlDebug ) {
+ saveerrno = errno;
fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n",
szPath,szUser,res);
+ errno = saveerrno;
}
gonext = 1;
}
res = WNetAddConnection2(&nr,NULL,szUser,0);
if (res) {
if ( ioctlDebug ) {
+ saveerrno = errno;
fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n",
szPath,szUser,res);
+ errno = saveerrno;
}
gonext = 1;
}
if (gle && ioctlDebug ) {
char buf[4096];
+ saveerrno = errno;
if ( FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
gle,
fprintf(stderr,"pioctl CreateFile(%s) failed: 0x%X\r\n\t[%s]\r\n",
tbuffer,gle,buf);
}
+ errno = saveerrno;
}
}
}
dwSize = sizeof(szUser);
if (GetLSAPrincipalName(szUser, &dwSize)) {
- if ( ioctlDebug )
+ if ( ioctlDebug ) {
+ saveerrno = errno;
fprintf(stderr, "pioctl LSA Principal logon user: [%s]\r\n",szUser);
-
+ errno = saveerrno;
+ }
sprintf(szPath, "\\\\%s", szClient);
memset (&nr, 0x00, sizeof(NETRESOURCE));
nr.dwType=RESOURCETYPE_DISK;
res = WNetAddConnection2(&nr,NULL,szUser,0);
if (res) {
if ( ioctlDebug ) {
+ saveerrno = errno;
fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n",
szPath,szUser,res);
+ errno = saveerrno;
}
gonext = 1;
}
res = WNetAddConnection2(&nr,NULL,szUser,0);
if (res) {
if ( ioctlDebug ) {
+ saveerrno = errno;
fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n",
szPath,szUser,res);
+ errno = saveerrno;
}
gonext = 1;
}
if (gle && ioctlDebug ) {
char buf[4096];
+ saveerrno = errno;
if ( FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
gle,
fprintf(stderr,"pioctl CreateFile(%s) failed: 0x%X\r\n\t[%s]\r\n",
tbuffer,gle,buf);
}
+ errno = saveerrno;
+
}
}
}
if ( fh == INVALID_HANDLE_VALUE ) {
dwSize = sizeof(szUser);
if (GetUserNameEx(NameSamCompatible, szUser, &dwSize)) {
- if ( ioctlDebug )
+ if ( ioctlDebug ) {
+ saveerrno = errno;
fprintf(stderr, "pioctl SamCompatible logon user: [%s]\r\n",szUser);
-
+ errno = saveerrno;
+ }
sprintf(szPath, "\\\\%s", szClient);
memset (&nr, 0x00, sizeof(NETRESOURCE));
nr.dwType=RESOURCETYPE_DISK;
res = WNetAddConnection2(&nr,NULL,szUser,0);
if (res) {
if ( ioctlDebug ) {
+ saveerrno = errno;
fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n",
szPath,szUser,res);
+ errno = saveerrno;
}
}
res = WNetAddConnection2(&nr,NULL,szUser,0);
if (res) {
if ( ioctlDebug ) {
+ saveerrno = errno;
fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n",
szPath,szUser,res);
+ errno = saveerrno;
}
return -1;
}
if (gle && ioctlDebug ) {
char buf[4096];
+ saveerrno = errno;
if ( FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
gle,
fprintf(stderr,"pioctl CreateFile(%s) failed: 0x%X\r\n\t[%s]\r\n",
tbuffer,gle,buf);
}
+ errno = saveerrno;
}
return -1;
}