From: Jeffrey Altman Date: Tue, 26 Nov 2013 01:27:10 +0000 (-0500) Subject: Windows: AFSRDFSProvider NPOpenEnum vs no redirector X-Git-Tag: upstream/1.8.0_pre1^2~880 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=1e24762a2cf6590798aa9ce483a1374466c7847b;p=packages%2Fo%2Fopenafs.git Windows: AFSRDFSProvider NPOpenEnum vs no redirector If there is no redirector device present, return WN_NO_NETWORK to indicate that this network provider is not ready for browsing. Change-Id: I3e33769bb2d52a59b0ff993aa07e89d959d60800 Reviewed-on: http://gerrit.openafs.org/10523 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/npdll/AFS_Npdll.c b/src/WINNT/afsrdr/npdll/AFS_Npdll.c index eae4cd460..d0b23c33e 100644 --- a/src/WINNT/afsrdr/npdll/AFS_Npdll.c +++ b/src/WINNT/afsrdr/npdll/AFS_Npdll.c @@ -2246,6 +2246,7 @@ NPOpenEnum( DWORD dwScope, DWORD dwStatus = WN_SUCCESS; AFSEnumerationCB *pEnumCB = NULL; + HANDLE hControlDevice = NULL; #ifdef AFS_DEBUG_TRACE if ( lpNetResource == NULL) @@ -2282,6 +2283,21 @@ NPOpenEnum( DWORD dwScope, } #endif + hControlDevice = OpenRedirector(); + + if( hControlDevice == NULL) + { + +#ifdef AFS_DEBUG_TRACE + AFSDbgPrint( L"NPOpenEnum OpenRedirector failure, returning WN_NET_ERROR\n"); +#endif + + return WN_NO_NETWORK; + } + + CloseHandle( hControlDevice); + + *lphEnum = HeapAlloc( GetProcessHeap( ), HEAP_ZERO_MEMORY, sizeof( AFSEnumerationCB)); if( *lphEnum == NULL)