public static bool DeleteNullSession(string sServer) { Logger.Log(String.Format("Session::DeleteNullSession({0}) called", sServer), Logger.netAPILogLevel); bool result = false; int nRet = 0; sServer = Canon(sServer); try { // if there is no session, don't try to delete //HACK: this is removed due to issue 5006: bad creds can persist in the muxer after Quartz exist //and therefore may be present in a new instance of Quartz before creds are entered. //if (!alSessions.Contains(sServer)) // return; if (Configurations.currentPlatform == LikewiseTargetPlatform.Windows) { nRet = WindowsSession.WNetCancelConnection2(@"\\" + sServer + @"\IPC$", 1, true); } else { nRet = WNetCancelConnection2(@"\\" + sServer + @"\IPC$", 1, true); } Logger.Log(String.Format( "{0}(sServer={1}): nRet={2}", "Session.DeleteNullSession(): WNetCancelConnection2", sServer, nRet), Logger.netAPILogLevel); if (nRet == 0) { result = true; } else { result = true; } if (alSessions.Contains(sServer)) { alSessions.Remove(sServer); } } catch (Exception ex) { Logger.LogException("Session.DeleteNullSession", ex); } if (nRet != 0) { throw new AuthSessionException(ErrorCodes.WIN32String(nRet), null); } return(result); }
public static void DeleteAllCreatedNullSessions() { Logger.Log("Session::DeleteAllCreatedNullSessions() called", Logger.netAPILogLevel); foreach (string s in alSessions) { string sServer = Canon(s); try { int nRet; if (Configurations.currentPlatform == LikewiseTargetPlatform.Windows) { nRet = WindowsSession.WNetCancelConnection2(@"\\" + sServer + @"\IPC$", 1, true); } else { nRet = WNetCancelConnection2(@"\\" + sServer + @"\IPC$", 1, true); } Logger.Log(String.Format( "{0}(sServer={1}): nRet={2}", "Session.DeleteAllCreatedNullSessions(): WNetCancelConnection2", sServer, nRet), Logger.netAPILogLevel); if (nRet != 0) { throw new AuthSessionException(ErrorCodes.WIN32String(nRet), null); } } catch (Exception ex) { Logger.LogException("Session.DeleteAllCreatedNullSessions", ex); } } alSessions.Clear(); }