| 239 | } |
| 240 | |
| 241 | int 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 | |
| 276 | int CChannelSSHTunnelForward::ReadConnect() |
| 277 | { |
nothing calls this directly
no outgoing calls
no test coverage detected