public SshPushConnection(TransportGitSsh instance)
: base(instance)
{
try
{
_channel = instance.Exec(instance.OptionReceivePack);
if (_channel.isConnected())
{
init(_channel.getInputStream(), _channel.getOutputStream());
}
else
{
throw new TransportException(uri, instance._errStream.ToString());
}
}
catch (TransportException)
{
Close();
throw;
}
catch (SocketException err)
{
Close();
throw new TransportException(uri, "remote hung up unexpectedly", err);
}
try
{
readAdvertisedRefs();
}
catch (NoRemoteRepositoryException notFound)
{
Close();
instance.checkExecFailure(_exitStatus, instance.OptionReceivePack);
throw instance.cleanNotFound(notFound);
}
}