/// <exception cref="NSch.JSchException"></exception> public override void Connect() { try { Session _session = GetSession(); if (!_session.IsConnected()) { throw new JSchException("session is down"); } if (io.@in != null) { thread = new Sharpen.Thread(this); thread.SetName("DirectTCPIP thread " + _session.GetHost()); if (_session.daemon_thread) { thread.SetDaemon(_session.daemon_thread); } thread.Start(); } } catch (Exception e) { io.Close(); io = null; Channel.Del(this); if (e is JSchException) { throw (JSchException)e; } } }
/// <exception cref="System.Exception"/> protected override void ServiceStart() { client.Start(); ThreadFactory tf = new ThreadFactoryBuilder().SetNameFormat(this.GetType().FullName + " #%d").SetDaemon(true).Build(); // Start with a default core-pool size and change it dynamically. int initSize = Math.Min(InitialThreadPoolSize, maxThreadPoolSize); threadPool = new ThreadPoolExecutor(initSize, int.MaxValue, 1, TimeUnit.Hours, new LinkedBlockingQueue <Runnable>(), tf); eventDispatcherThread = new _Thread_125(this); // We can increase the pool size only if haven't reached the maximum // limit yet. // nodes where containers will run at *this* point of time. This is // *not* the cluster size and doesn't need to be. // Bump up the pool size to idealThreadPoolSize + // INITIAL_POOL_SIZE, the later is just a buffer so we are not // always increasing the pool-size // the events from the queue are handled in parallel with a thread // pool // TODO: Group launching of multiple containers to a single // NodeManager into a single connection eventDispatcherThread.SetName("Container Event Dispatcher"); eventDispatcherThread.SetDaemon(false); eventDispatcherThread.Start(); base.ServiceStart(); }
public Sharpen.Thread NewThread(Runnable r) { Sharpen.Thread t = Executors.DefaultThreadFactory().NewThread(r); t.SetDaemon(true); t.SetName("Thread for syncLogs"); return(t); }
/// <exception cref="NSch.JSchException"></exception> public override void Start() { Session _session = GetSession(); try { SendRequests(); Request request = new RequestShell(); request.DoRequest(_session, this); } catch (Exception e) { if (e is JSchException) { throw (JSchException)e; } if (e is Exception) { throw new JSchException("ChannelShell", (Exception)e); } throw new JSchException("ChannelShell"); } if (io.@in != null) { thread = new Sharpen.Thread(this); thread.SetName("Shell for " + _session.host); if (_session.daemon_thread) { thread.SetDaemon(_session.daemon_thread); } thread.Start(); } }
/// <exception cref="NSch.JSchException"></exception> public override void Start() { Session _session = GetSession(); try { SendRequests(); Request request = new RequestExec(command); request.DoRequest(_session, this); } catch (Exception e) { if (e is JSchException) { throw (JSchException)e; } if (e is Exception) { throw new JSchException("ChannelExec", (Exception)e); } throw new JSchException("ChannelExec"); } if (io.@in != null) { thread = new Sharpen.Thread(this); thread.SetName("Exec thread " + _session.GetHost()); if (_session.daemon_thread) { thread.SetDaemon(_session.daemon_thread); } thread.Start(); } }
public Sharpen.Thread NewThread(Runnable taskBody) { Sharpen.Thread thr = this.baseFactory.NewThread(taskBody); thr.SetName("JGit-AlarmQueue"); thr.SetDaemon(true); return(thr); }
/// <exception cref="System.Exception"/> protected override void ServiceStart() { System.Diagnostics.Debug.Assert(!stopped, "starting when already stopped"); checkerThread = new Sharpen.Thread(new SchedulingMonitor.PreemptionChecker(this)); checkerThread.SetName(GetName()); checkerThread.Start(); base.ServiceStart(); }
/// <exception cref="System.Exception"/> protected override void ServiceStart() { lostTaskCheckerThread = new Sharpen.Thread(new TaskHeartbeatHandler.PingChecker(this )); lostTaskCheckerThread.SetName("TaskHeartbeatHandler PingChecker"); lostTaskCheckerThread.Start(); base.ServiceStart(); }
/// <exception cref="System.Exception"/> protected override void ServiceStart() { //start all the components base.ServiceStart(); eventHandlingThread = new Sharpen.Thread(CreateThread()); eventHandlingThread.SetName("AsyncDispatcher event handler"); eventHandlingThread.Start(); }
/// <exception cref="NSch.JSchException"></exception> internal static Socket CreateSocket(string host, int port, int timeout) { Socket socket = null; if (timeout == 0) { try { socket = Sharpen.Extensions.CreateSocket(host, port); return(socket); } catch (Exception e) { string message = e.Message; if (e is Exception) { throw new JSchException(message, (Exception)e); } throw new JSchException(message); } } string _host = host; int _port = port; Socket[] sockp = new Socket[1]; Exception[] ee = new Exception[1]; string message_1 = string.Empty; Sharpen.Thread tmp = new Sharpen.Thread(new _Runnable_350(sockp, _host, _port, ee )); tmp.SetName("Opening Socket " + host); tmp.Start(); try { tmp.Join(timeout); message_1 = "timeout: "; } catch (Exception) { } if (sockp[0] != null && sockp[0].Connected) { socket = sockp[0]; } else { message_1 += "socket is not established"; if (ee[0] != null) { message_1 = ee[0].ToString(); } tmp.Interrupt(); tmp = null; throw new JSchException(message_1); } return(socket); }
/// <exception cref="System.Exception"/> protected override void ServiceStart() { System.Diagnostics.Debug.Assert(!stopped, "starting when already stopped"); ResetTimer(); checkerThread = new Sharpen.Thread(new AbstractLivelinessMonitor.PingChecker(this )); checkerThread.SetName("Ping Checker"); checkerThread.Start(); base.ServiceStart(); }
/// <exception cref="System.Exception"/> protected override void ServiceInit(Configuration conf) { this.allocFile = GetAllocationFile(conf); if (allocFile != null) { reloadThread = new _Thread_104(this); reloadThread.SetName("AllocationFileReloader"); reloadThread.SetDaemon(true); } base.ServiceInit(conf); }
public Sharpen.Thread NewThread(Runnable r) { int thisIndex; lock (this) { thisIndex = this.counter++; } Sharpen.Thread t = new Sharpen.Thread(this._enclosing.threadGroup, r); t.SetName("Async disk worker #" + thisIndex + " for volume " + volume); return(t); }
/// <exception cref="NSch.JSchException"></exception> public override void Start() { Session _session = GetSession(); try { Request request; if (xforwading) { request = new RequestX11(); request.DoRequest(_session, this); } if (pty) { request = new RequestPtyReq(); request.DoRequest(_session, this); } request = new RequestSubsystem(); ((RequestSubsystem)request).Request(_session, this, subsystem, want_reply); } catch (Exception e) { if (e is JSchException) { throw (JSchException)e; } if (e is Exception) { throw new JSchException("ChannelSubsystem", (Exception)e); } throw new JSchException("ChannelSubsystem"); } if (io.@in != null) { thread = new Sharpen.Thread(this); thread.SetName("Subsystem for " + _session.host); if (_session.daemon_thread) { thread.SetDaemon(_session.daemon_thread); } thread.Start(); } }
protected internal virtual void Dispatch(Org.Apache.Hadoop.Yarn.Event.Event @event ) { //all events go thru this loop if (Log.IsDebugEnabled()) { Log.Debug("Dispatching the event " + @event.GetType().FullName + "." + @event.ToString ()); } Type type = @event.GetType().GetDeclaringClass(); try { EventHandler handler = eventDispatchers[type]; if (handler != null) { handler.Handle(@event); } else { throw new Exception("No handler for registered for " + type); } } catch (Exception t) { //TODO Maybe log the state of the queue Log.Fatal("Error in dispatcher thread", t); // If serviceStop is called, we should exit this thread gracefully. if (exitOnDispatchException && (ShutdownHookManager.Get().IsShutdownInProgress()) == false && stopped == false) { Sharpen.Thread shutDownThread = new Sharpen.Thread(CreateShutDownThread()); shutDownThread.SetName("AsyncDispatcher ShutDown handler"); shutDownThread.Start(); } } }
/// <exception cref="System.Exception"/> protected override void ServiceStart() { ThreadFactory tf = new ThreadFactoryBuilder().SetNameFormat("ContainerLauncher #%d" ).SetDaemon(true).Build(); // Start with a default core-pool size of 10 and change it dynamically. launcherPool = new ThreadPoolExecutor(initialPoolSize, int.MaxValue, 1, TimeUnit. Hours, new LinkedBlockingQueue <Runnable>(), tf); eventHandlingThread = new _Thread_269(this); // See if we need up the pool size only if haven't reached the // maximum limit yet. // nodes where containers will run at *this* point of time. This is // *not* the cluster size and doesn't need to be. // Bump up the pool size to idealPoolSize+initialPoolSize, the // later is just a buffer so we are not always increasing the // pool-size // the events from the queue are handled in parallel // using a thread pool // TODO: Group launching of multiple containers to a single // NodeManager into a single connection eventHandlingThread.SetName("ContainerLauncher Event Handler"); eventHandlingThread.Start(); base.ServiceStart(); }
/// <exception cref="System.Exception"/> protected override void ServiceStart() { ThreadFactoryBuilder tfBuilder = new ThreadFactoryBuilder().SetNameFormat("CommitterEvent Processor #%d" ); if (jobClassLoader != null) { // if the job classloader is enabled, we need to use the job classloader // as the thread context classloader (TCCL) of these threads in case the // committer needs to load another class via TCCL ThreadFactory backingTf = new _ThreadFactory_125(this); tfBuilder.SetThreadFactory(backingTf); } ThreadFactory tf = tfBuilder.Build(); launcherPool = new ThreadPoolExecutor(5, 5, 1, TimeUnit.Hours, new LinkedBlockingQueue <Runnable>(), tf); eventHandlingThread = new Sharpen.Thread(new _Runnable_138(this)); // the events from the queue are handled in parallel // using a thread pool eventHandlingThread.SetName("CommitterEvent Handler"); eventHandlingThread.Start(); base.ServiceStart(); }
/// <exception cref="NSch.JSchException"></exception> public virtual void Connect(int connectTimeout) { if (isConnected) { throw new JSchException("session is already connected"); } io = new IO(); if (random == null) { try { Type c = Sharpen.Runtime.GetType(GetConfig("random")); random = (Random)(System.Activator.CreateInstance(c)); } catch (Exception e) { throw new JSchException(e.ToString(), e); } } Packet.SetRandom(random); if (JSch.GetLogger().IsEnabled(Logger.INFO)) { JSch.GetLogger().Log(Logger.INFO, "Connecting to " + host + " port " + port); } try { int i; int j; if (proxy == null) { InputStream @in; OutputStream @out; if (socket_factory == null) { socket = Util.CreateSocket(host, port, connectTimeout); @in = socket.GetInputStream(); @out = socket.GetOutputStream(); } else { socket = socket_factory.CreateSocket(host, port); @in = socket_factory.GetInputStream(socket); @out = socket_factory.GetOutputStream(socket); } //if(timeout>0){ socket.setSoTimeout(timeout); } socket.NoDelay = true; io.SetInputStream(@in); io.SetOutputStream(@out); } else { lock (proxy) { proxy.Connect(socket_factory, host, port, connectTimeout); io.SetInputStream(proxy.GetInputStream()); io.SetOutputStream(proxy.GetOutputStream()); socket = proxy.GetSocket(); } } if (connectTimeout > 0 && socket != null) { socket.ReceiveTimeout = connectTimeout; } isConnected = true; if (JSch.GetLogger().IsEnabled(Logger.INFO)) { JSch.GetLogger().Log(Logger.INFO, "Connection established"); } jsch.AddSession(this); { // Some Cisco devices will miss to read '\n' if it is sent separately. byte[] foo = new byte[V_C.Length + 1]; System.Array.Copy(V_C, 0, foo, 0, V_C.Length); foo[foo.Length - 1] = unchecked((byte)(byte)('\n')); io.Put(foo, 0, foo.Length); } while (true) { i = 0; j = 0; while (i < buf.buffer.Length) { j = io.GetByte(); if (j < 0) { break; } buf.buffer[i] = unchecked((byte)j); i++; if (j == 10) { break; } } if (j < 0) { throw new JSchException("connection is closed by foreign host"); } if (buf.buffer[i - 1] == 10) { // 0x0a i--; if (i > 0 && buf.buffer[i - 1] == 13) { // 0x0d i--; } } if (i <= 3 || ((i != buf.buffer.Length) && (buf.buffer[0] != 'S' || buf.buffer[1] != 'S' || buf.buffer[2] != 'H' || buf.buffer[3] != '-'))) { // It must not start with 'SSH-' //System.err.println(new String(buf.buffer, 0, i); continue; } if (i == buf.buffer.Length || i < 7 || (buf.buffer[4] == '1' && buf.buffer[6] != '9')) { // SSH-1.99 or SSH-2.0 // SSH-1.5 throw new JSchException("invalid server's version string"); } break; } V_S = new byte[i]; System.Array.Copy(buf.buffer, 0, V_S, 0, i); //System.err.println("V_S: ("+i+") ["+new String(V_S)+"]"); if (JSch.GetLogger().IsEnabled(Logger.INFO)) { JSch.GetLogger().Log(Logger.INFO, "Remote version string: " + Util.Byte2str(V_S)); JSch.GetLogger().Log(Logger.INFO, "Local version string: " + Util.Byte2str(V_C)); } Send_kexinit(); buf = Read(buf); if (buf.GetCommand() != SSH_MSG_KEXINIT) { in_kex = false; throw new JSchException("invalid protocol: " + buf.GetCommand()); } if (JSch.GetLogger().IsEnabled(Logger.INFO)) { JSch.GetLogger().Log(Logger.INFO, "SSH_MSG_KEXINIT received"); } KeyExchange kex = Receive_kexinit(buf); while (true) { buf = Read(buf); if (kex.GetState() == buf.GetCommand()) { kex_start_time = Runtime.CurrentTimeMillis(); bool result = kex.Next(buf); if (!result) { //System.err.println("verify: "+result); in_kex = false; throw new JSchException("verify: " + result); } } else { in_kex = false; throw new JSchException("invalid protocol(kex): " + buf.GetCommand()); } if (kex.GetState() == KeyExchange.STATE_END) { break; } } try { CheckHost(host, port, kex); } catch (JSchException ee) { in_kex = false; throw; } Send_newkeys(); // receive SSH_MSG_NEWKEYS(21) buf = Read(buf); //System.err.println("read: 21 ? "+buf.getCommand()); if (buf.GetCommand() == SSH_MSG_NEWKEYS) { if (JSch.GetLogger().IsEnabled(Logger.INFO)) { JSch.GetLogger().Log(Logger.INFO, "SSH_MSG_NEWKEYS received"); } Receive_newkeys(buf, kex); } else { in_kex = false; throw new JSchException("invalid protocol(newkyes): " + buf.GetCommand()); } bool auth = false; bool auth_cancel = false; UserAuth ua = null; try { Type c = Sharpen.Runtime.GetType(GetConfig("userauth.none")); ua = (UserAuth)(System.Activator.CreateInstance(c)); } catch (Exception e) { throw new JSchException(e.ToString(), e); } auth = ua.Start(this); string cmethods = GetConfig("PreferredAuthentications"); string[] cmethoda = Util.Split(cmethods, ","); string smethods = null; if (!auth) { smethods = ((UserAuthNone)ua).GetMethods(); if (smethods != null) { smethods = smethods.ToLower(); } else { // methods: publickey,password,keyboard-interactive //smethods="publickey,password,keyboard-interactive"; smethods = cmethods; } } string[] smethoda = Util.Split(smethods, ","); int methodi = 0; while (true) { //System.err.println("methods: "+methods); while (!auth && cmethoda != null && methodi < cmethoda.Length) { string method = cmethoda[methodi++]; bool acceptable = false; for (int k = 0; k < smethoda.Length; k++) { if (smethoda[k].Equals(method)) { acceptable = true; break; } } if (!acceptable) { continue; } //System.err.println(" method: "+method); if (JSch.GetLogger().IsEnabled(Logger.INFO)) { string str = "Authentications that can continue: "; for (int k_1 = methodi - 1; k_1 < cmethoda.Length; k_1++) { str += cmethoda[k_1]; if (k_1 + 1 < cmethoda.Length) { str += ","; } } JSch.GetLogger().Log(Logger.INFO, str); JSch.GetLogger().Log(Logger.INFO, "Next authentication method: " + method); } ua = null; try { Type c = null; if (GetConfig("userauth." + method) != null) { c = Sharpen.Runtime.GetType(GetConfig("userauth." + method)); ua = (UserAuth)(System.Activator.CreateInstance(c)); } } catch (Exception) { if (JSch.GetLogger().IsEnabled(Logger.WARN)) { JSch.GetLogger().Log(Logger.WARN, "failed to load " + method + " method"); } } if (ua != null) { auth_cancel = false; try { auth = ua.Start(this); if (auth && JSch.GetLogger().IsEnabled(Logger.INFO)) { JSch.GetLogger().Log(Logger.INFO, "Authentication succeeded (" + method + ")."); } } catch (JSchAuthCancelException) { auth_cancel = true; } catch (JSchPartialAuthException ee) { string tmp = smethods; smethods = ee.GetMethods(); smethoda = Util.Split(smethods, ","); if (!tmp.Equals(smethods)) { methodi = 0; } //System.err.println("PartialAuth: "+methods); auth_cancel = false; goto loop_continue; } catch (RuntimeException ee) { throw; } catch (Exception) { //System.err.println("ee: "+ee); // SSH_MSG_DISCONNECT: 2 Too many authentication failures goto loop_break; } } } break; loop_continue: ; } loop_break: ; if (!auth) { if (auth_cancel) { throw new JSchException("Auth cancel"); } throw new JSchException("Auth fail"); } if (connectTimeout > 0 || timeout > 0) { socket.ReceiveTimeout = timeout; } isAuthed = true; lock (Lock) { if (isConnected) { connectThread = new Sharpen.Thread(this); connectThread.SetName("Connect thread " + host + " session"); if (daemon_thread) { connectThread.SetDaemon(daemon_thread); } connectThread.Start(); } } } catch (Exception e) { // The session has been already down and // we don't have to start new thread. in_kex = false; if (isConnected) { try { packet.Reset(); buf.PutByte(unchecked((byte)SSH_MSG_DISCONNECT)); buf.PutInt(3); buf.PutString(Util.Str2byte(e.ToString())); buf.PutString(Util.Str2byte("en")); Write(packet); Disconnect(); } catch (Exception) { } } isConnected = false; //e.printStackTrace(); if (e is RuntimeException) { throw (RuntimeException)e; } if (e is JSchException) { throw (JSchException)e; } throw new JSchException("Session.connect: " + e); } finally { Util.Bzero(this.password); this.password = null; } }
/// <exception cref="NSch.JSchException"></exception> public virtual int SetPortForwardingL(string boundaddress, int lport, string host , int rport, ServerSocketFactory ssf) { PortWatcher pw = PortWatcher.AddPort(this, boundaddress, lport, host, rport, ssf); Sharpen.Thread tmp = new Sharpen.Thread(pw); tmp.SetName("PortWatcher Thread for " + host); if (daemon_thread) { tmp.SetDaemon(daemon_thread); } tmp.Start(); return pw.lport; }
public virtual void Run() { thread = this; byte[] foo; Buffer buf = new Buffer(); Packet packet = new Packet(buf); int i = 0; Channel channel; int[] start = new int[1]; int[] length = new int[1]; KeyExchange kex = null; int stimeout = 0; try { while (isConnected && thread != null) { try { buf = Read(buf); stimeout = 0; } catch (ThreadInterruptedException ee) { if (!in_kex && stimeout < serverAliveCountMax) { SendKeepAliveMsg(); stimeout++; continue; } throw; } int msgType = buf.GetCommand() & unchecked((int)(0xff)); if (kex != null && kex.GetState() == msgType) { kex_start_time = Runtime.CurrentTimeMillis(); bool result = kex.Next(buf); if (!result) { throw new JSchException("verify: " + result); } continue; } switch (msgType) { case SSH_MSG_KEXINIT: { //System.err.println("KEXINIT"); kex = Receive_kexinit(buf); break; } case SSH_MSG_NEWKEYS: { //System.err.println("NEWKEYS"); Send_newkeys(); Receive_newkeys(buf, kex); kex = null; break; } case SSH_MSG_CHANNEL_DATA: { buf.GetInt(); buf.GetByte(); buf.GetByte(); i = buf.GetInt(); channel = Channel.GetChannel(i, this); foo = buf.GetString(start, length); if (channel == null) { break; } if (length[0] == 0) { break; } try { channel.Write(foo, start[0], length[0]); } catch (Exception) { //System.err.println(e); try { channel.Disconnect(); } catch (Exception) { } break; } int len = length[0]; channel.SetLocalWindowSize(channel.lwsize - len); if (channel.lwsize < channel.lwsize_max / 2) { packet.Reset(); buf.PutByte(unchecked((byte)SSH_MSG_CHANNEL_WINDOW_ADJUST)); buf.PutInt(channel.GetRecipient()); buf.PutInt(channel.lwsize_max - channel.lwsize); Write(packet); channel.SetLocalWindowSize(channel.lwsize_max); } break; } case SSH_MSG_CHANNEL_EXTENDED_DATA: { buf.GetInt(); buf.GetShort(); i = buf.GetInt(); channel = Channel.GetChannel(i, this); buf.GetInt(); // data_type_code == 1 foo = buf.GetString(start, length); //System.err.println("stderr: "+new String(foo,start[0],length[0])); if (channel == null) { break; } if (length[0] == 0) { break; } channel.Write_ext(foo, start[0], length[0]); int len = length[0]; channel.SetLocalWindowSize(channel.lwsize - len); if (channel.lwsize < channel.lwsize_max / 2) { packet.Reset(); buf.PutByte(unchecked((byte)SSH_MSG_CHANNEL_WINDOW_ADJUST)); buf.PutInt(channel.GetRecipient()); buf.PutInt(channel.lwsize_max - channel.lwsize); Write(packet); channel.SetLocalWindowSize(channel.lwsize_max); } break; } case SSH_MSG_CHANNEL_WINDOW_ADJUST: { buf.GetInt(); buf.GetShort(); i = buf.GetInt(); channel = Channel.GetChannel(i, this); if (channel == null) { break; } channel.AddRemoteWindowSize(buf.GetInt()); break; } case SSH_MSG_CHANNEL_EOF: { buf.GetInt(); buf.GetShort(); i = buf.GetInt(); channel = Channel.GetChannel(i, this); if (channel != null) { //channel.eof_remote=true; //channel.eof(); channel.Eof_remote(); } break; } case SSH_MSG_CHANNEL_CLOSE: { buf.GetInt(); buf.GetShort(); i = buf.GetInt(); channel = Channel.GetChannel(i, this); if (channel != null) { // channel.close(); channel.Disconnect(); } break; } case SSH_MSG_CHANNEL_OPEN_CONFIRMATION: { buf.GetInt(); buf.GetShort(); i = buf.GetInt(); channel = Channel.GetChannel(i, this); if (channel == null) { } //break; int r = buf.GetInt(); long rws = buf.GetUInt(); int rps = buf.GetInt(); channel.SetRemoteWindowSize(rws); channel.SetRemotePacketSize(rps); channel.SetRecipient(r); break; } case SSH_MSG_CHANNEL_OPEN_FAILURE: { buf.GetInt(); buf.GetShort(); i = buf.GetInt(); channel = Channel.GetChannel(i, this); if (channel == null) { } //break; int reason_code = buf.GetInt(); //foo=buf.getString(); // additional textual information //foo=buf.getString(); // language tag channel.exitstatus = reason_code; channel.close = true; channel.eof_remote = true; channel.SetRecipient(0); break; } case SSH_MSG_CHANNEL_REQUEST: { buf.GetInt(); buf.GetShort(); i = buf.GetInt(); foo = buf.GetString(); bool reply = (buf.GetByte() != 0); channel = Channel.GetChannel(i, this); if (channel != null) { byte reply_type = unchecked((byte)SSH_MSG_CHANNEL_FAILURE); if ((Util.Byte2str(foo)).Equals("exit-status")) { i = buf.GetInt(); // exit-status channel.SetExitStatus(i); reply_type = unchecked((byte)SSH_MSG_CHANNEL_SUCCESS); } if (reply) { packet.Reset(); buf.PutByte(reply_type); buf.PutInt(channel.GetRecipient()); Write(packet); } } break; } case SSH_MSG_CHANNEL_OPEN: { buf.GetInt(); buf.GetShort(); foo = buf.GetString(); string ctyp = Util.Byte2str(foo); if (!"forwarded-tcpip".Equals(ctyp) && !("x11".Equals(ctyp) && x11_forwarding) && !("*****@*****.**".Equals(ctyp) && agent_forwarding)) { //System.err.println("Session.run: CHANNEL OPEN "+ctyp); //throw new IOException("Session.run: CHANNEL OPEN "+ctyp); packet.Reset(); buf.PutByte(unchecked((byte)SSH_MSG_CHANNEL_OPEN_FAILURE)); buf.PutInt(buf.GetInt()); buf.PutInt(Channel.SSH_OPEN_ADMINISTRATIVELY_PROHIBITED); buf.PutString(Util.empty); buf.PutString(Util.empty); Write(packet); } else { channel = Channel.GetChannel(ctyp); AddChannel(channel); channel.GetData(buf); channel.Init(); Sharpen.Thread tmp = new Sharpen.Thread(channel); tmp.SetName("Channel " + ctyp + " " + host); if (daemon_thread) { tmp.SetDaemon(daemon_thread); } tmp.Start(); break; } goto case SSH_MSG_CHANNEL_SUCCESS; } case SSH_MSG_CHANNEL_SUCCESS: { buf.GetInt(); buf.GetShort(); i = buf.GetInt(); channel = Channel.GetChannel(i, this); if (channel == null) { break; } channel.reply = 1; break; } case SSH_MSG_CHANNEL_FAILURE: { buf.GetInt(); buf.GetShort(); i = buf.GetInt(); channel = Channel.GetChannel(i, this); if (channel == null) { break; } channel.reply = 0; break; } case SSH_MSG_GLOBAL_REQUEST: { buf.GetInt(); buf.GetShort(); foo = buf.GetString(); // request name bool reply = (buf.GetByte() != 0); if (reply) { packet.Reset(); buf.PutByte(unchecked((byte)SSH_MSG_REQUEST_FAILURE)); Write(packet); } break; } case SSH_MSG_REQUEST_FAILURE: case SSH_MSG_REQUEST_SUCCESS: { Sharpen.Thread t = grr.GetThread(); if (t != null) { grr.SetReply(msgType == SSH_MSG_REQUEST_SUCCESS ? 1 : 0); t.Interrupt(); } break; } default: { //System.err.println("Session.run: unsupported type "+msgType); throw new IOException("Unknown SSH message type " + msgType); } } } } catch (Exception e) { in_kex = false; if (JSch.GetLogger().IsEnabled(Logger.INFO)) { JSch.GetLogger().Log(Logger.INFO, "Caught an exception, leaving main loop due to " + e.Message); } } //System.err.println("# Session.run"); //e.printStackTrace(); try { Disconnect(); } catch (ArgumentNullException) { } catch (Exception) { } //System.err.println("@1"); //e.printStackTrace(); //System.err.println("@2"); //e.printStackTrace(); isConnected = false; }
public Sharpen.Thread NewThread(Runnable r) { Sharpen.Thread t = new Sharpen.Thread(this._enclosing.threadGroup, r); t.SetName("Async RamDisk lazy persist worker for volume " + volume); return(t); }
/// <exception cref="NSch.JSchException"></exception> internal static Socket CreateSocket(string host, int port, int timeout) { Socket socket = null; if (timeout == 0) { try { socket = Sharpen.Extensions.CreateSocket(host, port); return socket; } catch (Exception e) { string message = e.ToString(); if (e is Exception) { throw new JSchException(message, (Exception)e); } throw new JSchException(message); } } string _host = host; int _port = port; Socket[] sockp = new Socket[1]; Exception[] ee = new Exception[1]; string message_1 = string.Empty; Sharpen.Thread tmp = new Sharpen.Thread(new _Runnable_350(sockp, _host, _port, ee )); tmp.SetName("Opening Socket " + host); tmp.Start(); try { tmp.Join(timeout); message_1 = "timeout: "; } catch (Exception) { } if (sockp[0] != null && sockp[0].Connected) { socket = sockp[0]; } else { message_1 += "socket is not established"; if (ee[0] != null) { message_1 = ee[0].ToString(); } tmp.Interrupt(); tmp = null; throw new JSchException(message_1); } return socket; }
/// <exception cref="NSch.JSchException"></exception> public override void Connect() { try { Session _session = GetSession(); if (!_session.IsConnected()) { throw new JSchException("session is down"); } Buffer buf = new Buffer(150); Packet packet = new Packet(buf); // send // byte SSH_MSG_CHANNEL_OPEN(90) // string channel type // // uint32 sender channel // 0 // uint32 initial window size // 0x100000(65536) // uint32 maxmum packet size // 0x4000(16384) packet.Reset(); buf.PutByte(unchecked((byte)90)); buf.PutString(Util.Str2byte("direct-tcpip")); buf.PutInt(id); buf.PutInt(lwsize); buf.PutInt(lmpsize); buf.PutString(Util.Str2byte(host)); buf.PutInt(port); buf.PutString(Util.Str2byte(originator_IP_address)); buf.PutInt(originator_port); _session.Write(packet); int retry = 1000; try { while (this.GetRecipient() == -1 && _session.IsConnected() && retry > 0 && !eof_remote ) { //Thread.sleep(500); Sharpen.Thread.Sleep(50); retry--; } } catch (Exception) { } if (!_session.IsConnected()) { throw new JSchException("session is down"); } if (retry == 0 || this.eof_remote) { throw new JSchException("channel is not opened."); } connected = true; if (io.@in != null) { thread = new Sharpen.Thread(this); thread.SetName("DirectTCPIP thread " + _session.GetHost()); if (_session.daemon_thread) { thread.SetDaemon(_session.daemon_thread); } thread.Start(); } } catch (Exception e) { io.Close(); io = null; Channel.Del(this); if (e is JSchException) { throw (JSchException)e; } } }
protected internal virtual void StartAllocatorThread() { allocatorThread = new Sharpen.Thread(new RMCommunicator.AllocatorRunnable(this)); allocatorThread.SetName("RMCommunicator Allocator"); allocatorThread.Start(); }
/// <exception cref="NSch.JSchException"></exception> public override void Connect() { try { Session _session = GetSession(); if (!_session.IsConnected()) { throw new JSchException("session is down"); } Buffer buf = new Buffer(150); Packet packet = new Packet(buf); // send // byte SSH_MSG_CHANNEL_OPEN(90) // string channel type // // uint32 sender channel // 0 // uint32 initial window size // 0x100000(65536) // uint32 maxmum packet size // 0x4000(16384) packet.Reset(); buf.PutByte(unchecked ((byte)90)); buf.PutString(Util.Str2byte("direct-tcpip")); buf.PutInt(id); buf.PutInt(lwsize); buf.PutInt(lmpsize); buf.PutString(Util.Str2byte(host)); buf.PutInt(port); buf.PutString(Util.Str2byte(originator_IP_address)); buf.PutInt(originator_port); _session.Write(packet); int retry = 1000; try { while (this.GetRecipient() == -1 && _session.IsConnected() && retry > 0 && !eof_remote ) { //Thread.sleep(500); Sharpen.Thread.Sleep(50); retry--; } } catch (Exception) { } if (!_session.IsConnected()) { throw new JSchException("session is down"); } if (retry == 0 || this.eof_remote) { throw new JSchException("channel is not opened."); } connected = true; if (io.@in != null) { thread = new Sharpen.Thread(this); thread.SetName("DirectTCPIP thread " + _session.GetHost()); if (_session.daemon_thread) { thread.SetDaemon(_session.daemon_thread); } thread.Start(); } } catch (Exception e) { io.Close(); io = null; Channel.Del(this); if (e is JSchException) { throw (JSchException)e; } } }