Exemplo n.º 1
0
        /// <summary>
        ///   List sessions
        /// </summary>
        /// <param name = "sortby">sorted by (SESSION_SORT_NAME or SESSION_SORT_TYPE)</param>
        /// <returns>CifsSession array</returns>
        public static ICifsSession[] GetSessions(int sortby)
        {
            var sessions = (CifsSession[])CifsSession.GetSessions();

            Util.Util.Sort(sessions, new SessionComparator(sortby));
            return(sessions);
        }
Exemplo n.º 2
0
        /// <summary>
        ///   Connect to Remote Admin Protocol
        /// </summary>
        /// <param name = "sessionname">local alias name for this connection</param>
        /// <param name = "host">host name</param>
        /// <param name = "login">authentication data</param>
        public static ICifsRemoteAdmin ConnectRemoteAdmin(string sessionname, string host, CifsLogin login)
        {
            // check if the admname connection is already open
            ICifsSession session = LookupSession(sessionname);

            if (session != null)
            {
                throw new CifsIoException("SS1", sessionname);
            }

            if (login == null)
            {
                login = fDefaultLogin;
            }

            var share = new Share(login);

            share.SetInfo(Share.IPC, host, "IPC$");

            var        nbt = new NbtSession();
            SmbMessage smb = CifsSession.AllocateSmbMessage();

            int             protocol;
            CifsRemoteAdmin admin = null;

            try
            {
                protocol = CifsSession.Negotiate(nbt, share.HostName, smb);
                admin    = new CifsRemoteAdmin(sessionname, protocol, share, nbt, smb);
                admin.Connect();
            }
            catch (IOException e)
            {
                //nbt.doHangup();
                if (admin != null)
                {
                    admin.Dispose();
                }
                else
                {
                    nbt.DoHangup();
                }


                throw;
            }

            return(admin);
        }
Exemplo n.º 3
0
        public static ArrayList EnumberateRemoteAdminSessions()
        {
            //IDictionaryEnumerator enu = SessionImpl.enumerateSessions();
            var admins = new ArrayList();

            foreach (IDictionaryEnumerator en in CifsSession.GetSessionTable())
            {
                var session = (ICifsSession)en.Value;

                if (session is ICifsRemoteAdmin)
                {
                    admins.Add(session);
                }
            }

            return(admins);
        }
Exemplo n.º 4
0
 /// <summary>
 ///   Enumerates connected sessions (unsorted)
 /// </summary>
 /// <returns>Enumerator</returns>
 public static IDictionaryEnumerator GetEnumerator()
 {
     return(CifsSession.GetEnumerator());
 }
Exemplo n.º 5
0
 public static ICifsSession LookupSession(string sessionname)
 {
     return(CifsSession.LookupSession(sessionname));
 }