/// <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); }
/// <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); }
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); }
/// <summary> /// Enumerates connected sessions (unsorted) /// </summary> /// <returns>Enumerator</returns> public static IDictionaryEnumerator GetEnumerator() { return(CifsSession.GetEnumerator()); }
public static ICifsSession LookupSession(string sessionname) { return(CifsSession.LookupSession(sessionname)); }