From: Jeffrey Altman Date: Mon, 13 Dec 2004 23:43:17 +0000 (+0000) Subject: windows-afs-all-20041213 X-Git-Tag: BP-disconnected~81 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=0d4b452e25bd8b1672fc46aa13afbe640b3ce58b;p=packages%2Fo%2Fopenafs.git windows-afs-all-20041213 In addition to establishing a connection with \\AFS; use \\AFS\all to ensure that we can access ioctl calls even if other methods fail. --- diff --git a/src/sys/pioctl_nt.c b/src/sys/pioctl_nt.c index aa93298df..0e409b8b6 100644 --- a/src/sys/pioctl_nt.c +++ b/src/sys/pioctl_nt.c @@ -199,6 +199,8 @@ GetIoctlHandle(char *fileNamep, HANDLE * handlep) FILE_FLAG_WRITE_THROUGH, NULL); fflush(stdout); if (fh == INVALID_HANDLE_VALUE) { + int gonext = 0; + gle = GetLastError(); if (gle && ioctlDebug ) { char buf[4096]; @@ -246,18 +248,22 @@ GetIoctlHandle(char *fileNamep, HANDLE * handlep) fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n", szPath,szUser,res); } + gonext = 1; + } - sprintf(szPath, "\\\\%s\\all", szClient); - res = WNetAddConnection2(&nr,NULL,szUser,0); - if (res) { - if ( ioctlDebug ) { - fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n", - szPath,szUser,res); - } - goto next_attempt; + sprintf(szPath, "\\\\%s\\all", szClient); + res = WNetAddConnection2(&nr,NULL,szUser,0); + if (res) { + if ( ioctlDebug ) { + fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n", + szPath,szUser,res); } + gonext = 1; } + if (gonext) + goto next_attempt; + fh = CreateFile(tbuffer, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, NULL); @@ -301,16 +307,16 @@ GetIoctlHandle(char *fileNamep, HANDLE * handlep) fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n", szPath,szUser,res); } + } - sprintf(szPath, "\\\\%s\\all", szClient); - res = WNetAddConnection2(&nr,NULL,szUser,0); - if (res) { - if ( ioctlDebug ) { - fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n", - szPath,szUser,res); - } - return -1; + sprintf(szPath, "\\\\%s\\all", szClient); + res = WNetAddConnection2(&nr,NULL,szUser,0); + if (res) { + if ( ioctlDebug ) { + fprintf(stderr, "pioctl WNetAddConnection2(%s,%s) failed: 0x%X\r\n", + szPath,szUser,res); } + return -1; } fh = CreateFile(tbuffer, GENERIC_READ | GENERIC_WRITE,