/* ================== Channel::GetShellRequestMsg ================== */ Message Channel::GetShellRequestMsg() { Message msg; msg.Add(SSH_MSG_CHANNEL_REQUEST); msg.AddUI(recChan); msg.AddUI(5); msg.Add("shell"); msg.Add(true); return msg; }
/* ================== Channel::GetOpenRequestMsg ================== */ Message Channel::GetOpenRequestMsg() { Message msg; msg.Add(SSH_MSG_CHANNEL_OPEN); msg.AddUI(reqType.length()); msg.Add(reqType); msg.AddUI(senChan); msg.AddUI(winSizeIn); // Window IN msg.AddUI(35000); // Max packet return msg; }
/* ================== Channel::SendInput ================== */ void Channel::SendInput(string input) { Message msg; if (!input.length()) { return; } msg.Add(SSH_MSG_CHANNEL_DATA); msg.AddUI(recChan); msg.AddUI(input.length()); msg.Add(input); SendMessage(msg); }
/* ================== Channel::AdjustWindow ================== */ bool Channel::AdjustWindow(uint32 increment) { Message msg; msg.Add(SSH_MSG_CHANNEL_WINDOW_ADJUST); msg.AddUI(recChan); msg.AddUI(increment); if (!SendMessage(msg)) { return false; } winSizeIn += increment; return true; }
/* ================== Channel::GetTTYRequestMsg ================== */ Message Channel::GetTTYRequestMsg() { Message msg; uint32 chW, chH, pW, pH; GetTermDim(chW, chH, pW, pH); msg.Add(SSH_MSG_CHANNEL_REQUEST); msg.AddUI(recChan); msg.AddUI(7); msg.Add("pty-req"); msg.Add(true); // Want reply msg.AddUI(5); msg.Add("vt100"); msg.AddUI(chW); msg.AddUI(chH); msg.AddUI(pW); msg.AddUI(pH); msg.AddUI(0); return msg; }