44        Q_ASSERT(m_pTerminal);
 
   45        return OnInitReturnValue::Fail;
 
   50        qCritical(log) << 
"new CChannelSSH fail";
 
   51        return OnInitReturnValue::Fail;
 
   56                        if(!m_pPara->GetCommands().isEmpty()) {
 
   57                            foreach (auto c, m_pPara->GetCommands()) {
 
   58                                emit m_pTerminal->sendData(c.toStdString().c_str(), c.length());
 
   59                                emit m_pTerminal->sendData(
"\r", 1);
 
   65    check = connect(m_pChannelSSH, &CChannelSSHTerminal::readyRead,
 
   71            nLen = m_pChannelSSH->bytesAvailable();
 
   73                qDebug(log) << 
"No data";
 
   77            nRet = m_pChannelSSH->read(buf, nLen);
 
   79        if(m_pTerminal && nRet > 0) {
 
   80            QByteArray data(buf, nRet);
 
   82                emit m_pOperate->sigReceiveData(data);
 
   83                if(m_pOperate->GetStats())
 
   84                    m_pOperate->GetStats()->AddReceives(nRet);
 
   87            qCritical(log) << 
"The m_pTerminal is nullptr or nRet <= 0";
 
   93    check = connect(m_pTerminal, &QTermWidget::sendData,
 
   94                    this, [&](
const char* data, 
int len){
 
   95        QEventTerminal* d = 
new QEventTerminal((
char*)data, len);
 
   96        QCoreApplication::postEvent(
this, d);
 
   97        if(m_pOperate && m_pOperate->GetStats())
 
   98            m_pOperate->GetStats()->AddSends(len);
 
   99        m_pChannelSSH->WakeUp();
 
  100    }, Qt::DirectConnection);
 
  103    m_pChannelSSH->SetSize(m_pTerminal->screenLinesCount(),
 
  104                           m_pTerminal->screenColumnsCount());
 
  106    if(!m_pChannelSSH->open(QIODevice::ReadWrite)) {
 
  107        qCritical(log) << 
"Open ssh channel fail";
 
  108        return OnInitReturnValue::Fail;
 
  111    m_pTerminal->startTerminalTeletype();
 
  113    return OnInitReturnValue::UseOnProcess;