/// <summary>Close (or recycle) a session to a host.</summary> /// <remarks>Close (or recycle) a session to a host.</remarks> /// <param name="session"> /// a session previously obtained from this factory's /// <see cref="GetSession(string, string, string, int, CredentialsProvider, NGit.Util.FS) /// ">GetSession(string, string, string, int, CredentialsProvider, NGit.Util.FS)</see> /// method. /// </param> public virtual void ReleaseSession(Session session) { if (session.IsConnected()) { session.Disconnect(); } }
/// <summary>Initialize SSH session</summary> /// <exception cref="NGit.Errors.TransportException">in case of error with opening SSH session /// </exception> protected internal virtual void InitSession() { if (sock != null) { return; } int tms = GetTimeout() > 0 ? GetTimeout() * 1000 : 0; string user = uri.GetUser(); string pass = uri.GetPass(); string host = uri.GetHost(); int port = uri.GetPort(); try { sock = sch.GetSession(user, pass, host, port, GetCredentialsProvider(), local.FileSystem ); if (!sock.IsConnected()) { sock.Connect(tms); } } catch (JSchException je) { Exception c = je.InnerException; if (c is UnknownHostException) { throw new TransportException(uri, JGitText.Get().unknownHost); } if (c is ConnectException) { throw new TransportException(uri, c.Message); } throw new TransportException(uri, je.Message, je); } }