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

Method AcceptConnect

Src/SSH/ChannelSSHTunnelForward.cpp:241–274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

239}
240
241int CChannelSSHTunnelForward::AcceptConnect()
242{
243 //qDebug(log) << "CChannelSSHTunnelForward::AcceptConnect()";
244 if(SSH_INVALID_SOCKET == m_Listen) return 0;
245#if defined(HAVE_UNIX_DOMAIN_SOCKET)
246 struct sockaddr_un connect_addr;
247#else
248 struct sockaddr_in connect_addr;
249#endif
250 memset(&connect_addr, 0, sizeof(connect_addr));
251 socklen_t size = sizeof(connect_addr);
252 m_Connector = accept(m_Listen, (struct sockaddr *)&connect_addr, &size);
253 if(SSH_INVALID_SOCKET == m_Connector)
254 {
255 /*
256 qCritical(log) << "accept fail" << errno << "[" << strerror(errno) << "]"
257 << "m_Server" << m_Server;//*/
258 if(EAGAIN == errno || EWOULDBLOCK == errno)
259 return 0;
260 else {
261 QString szErr = "The server accept is fail:";
262 szErr += QString::number(errno) + " [" + strerror(errno) + "]";
263 qCritical(log) << szErr;
264 setErrorString(szErr);
265 return errno;
266 }
267 }
268 qDebug(log) << "accept connector fd:" << m_Connector;
269 Channel::CEvent::SetSocketNonBlocking(m_Connector);
270 //Channel::CEvent::EnableNagles(m_Connector, false);
271 CloseSocket(m_Listen);
272 m_Listen = SSH_INVALID_SOCKET;
273 return 0;
274}
275
276int CChannelSSHTunnelForward::ReadConnect()
277{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected