Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
        }