MCPcopy Create free account
hub / github.com/KangLin/RabbitRemoteControl / OnOpen

Method OnOpen

Src/SSH/ChannelSSHTunnel.cpp:90–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

88}
89
90int CChannelSSHTunnel::OnOpen(ssh_session session)
91{
92 int nRet = 0;
93
94 Q_ASSERT(session);
95
96 m_Channel = ssh_channel_new(session);
97 if(NULL == m_Channel) {
98 qCritical(log) << "ssh_channel_new fail." << ssh_get_error(session);
99 return -1;
100 }
101
102 CParameterSSHTunnel* pPara = qobject_cast<CParameterSSHTunnel*>(m_pParameter);
103 Q_ASSERT(pPara);
104 nRet = ssh_channel_open_forward(
105 m_Channel,
106 m_pRemoteNet->GetHost().toStdString().c_str(),
107 m_pRemoteNet->GetPort(),
108 pPara->GetSourceHost().toStdString().c_str(),
109 pPara->GetSourcePort());
110 if(SSH_OK != nRet) {
111 ssh_channel_free(m_Channel);
112 m_Channel = NULL;
113
114 QString szErr;
115 szErr = tr("SSH failed: open forward.") + ssh_get_error(session);
116 szErr += "(" + m_pRemoteNet->GetHost()
117 + ":" + QString::number(m_pRemoteNet->GetPort()) + ")";
118 qCritical(log) << szErr;
119 setErrorString(szErr);
120 return nRet;
121 }
122
123 qInfo(log) << "Connected:"
124 << m_pRemoteNet->GetHost()
125 + ":" + QString::number(m_pRemoteNet->GetPort())
126 << "with ssh turnnel:"
127 << m_pParameter->m_Net.GetHost()
128 + ":" + QString::number(m_pParameter->m_Net.GetPort());
129
130 //ssh_channel_set_blocking(m_Channel, 0);
131
132 return nRet;
133}
134
135/*!
136 * \return

Callers

nothing calls this directly

Calls 4

GetHostMethod · 0.80
GetSourceHostMethod · 0.80
GetSourcePortMethod · 0.80
GetPortMethod · 0.45

Tested by

no test coverage detected