void ConnAliveThread::closeConnection() { //qDebug()<<"closeConnection0"<<*ptr_ConnPtr<<URI; if ( keep_alive ) { keep_alive = false; return; }; //qDebug()<<"closeConnection1"<<*ptr_ConnPtr<<URI; CONN_STATE state; if ( *ptr_ConnPtr!=NULL ) { //qDebug()<<"closeConnection2"<<*ptr_ConnPtr<<URI; unregisterConnEvents(); //qDebug()<<"closeConnection3"<<*ptr_ConnPtr<<URI; int ret = virConnectClose(*ptr_ConnPtr); //qDebug()<<"virConnectRef -1"<<"ConnAliveThread"<<URI<<(ret+1>0); if ( ret<0 ) { state = FAILED; sendConnErrors(); } else { emit connMsg( QString("close exit code: %1").arg(ret) ); state = CLOSED; emit connClosed(onView); }; *ptr_ConnPtr = NULL; } else { emit connMsg( QString("connect is NULL") ); state = FAILED; }; emit changeConnState(state); }
void ConnElement::forwardConnClosedSignal(bool onView) { emit connClosed(onView, name); }
void telnetd_appcall(void) { if(uip_connected()) { telnetState = 0; txData.data[0] = TELNET_IAC; txData.data[1] = TELNET_WILL; txData.data[2] = TELNET_MODE_LINEMODE; txData.length = 3; uip_send( txData.data, txData.length ); } if(uip_closed() || uip_aborted() || uip_timedout()) { telnetState = 0; txData.length = 0; } if(uip_acked()) { txData.length = 0; } if(uip_newdata()) { if( telnetState & 128 ) { UART0PushSend( uip_appdata, uip_datalen() ); } else { u8_t rxDataByte, rxDataLength = uip_datalen(); for( rxDataByte = 0; rxDataByte < rxDataLength && telnetState < rxExpectedCount; ) { if( ((uint8_t*)uip_appdata)[rxDataByte++] != rxExpected[telnetState] ) { if( telnetState < 17 ) telnetState = 10; if( telnetState < 10 ) telnetState = 3; if( telnetState < 3 ) telnetState = 0; uip_close(); connClosed(); return; } } if( telnetState == rxExpectedCount ) { telnetState = 128; return; } switch( telnetState ) { case 0: txData.data[0] = TELNET_IAC; txData.data[1] = TELNET_WILL; txData.data[2] = TELNET_MODE_LINEMODE; txData.length = 3; uip_send( txData.data, txData.length ); break; case 3: txData.data[0] = TELNET_IAC; txData.data[1] = TELNET_SB; txData.data[2] = TELNET_MODE_LINEMODE; txData.data[3] = TELNET_MODE_LINEMODE_EDIT; txData.data[4] = 0; txData.data[5] = TELNET_IAC; txData.data[6] = TELNET_SE; txData.length = 7; uip_send( txData.data, txData.length ); break; case 10: txData.data[0] = TELNET_IAC; txData.data[1] = TELNET_SB; txData.data[2] = TELNET_MODE_LINEMODE; txData.data[3] = TELNET_MODE_LINEMODE_TRAPSIG; txData.data[4] = 0; txData.data[5] = TELNET_IAC; txData.data[6] = TELNET_SE; txData.length = 7; uip_send( txData.data, txData.length ); break; } } } if( uip_rexmit() ) { uip_send( txData.data, txData.length ); } }