bool NXConnection::Advance( unsigned int timeout ) { if( ErrorOccurred() ) return false; if( !pProxy && SessionNeedToStartNewProxy( pSession) == NX_Ok ) { NX_LOG_LOGDEBUG( "create proxy connection."); pProxy = CreateProxyConnection( pSession ); if( InitProxyConnection( pProxy ) == NX_Exception ) return false; } int iState = GetStateId(); if( iState >= NX_ReadyForConnection && iState < NX_InitProxy ) { if( EndServerConnection( pConnection ) != NX_Ok ) { return ( AdvanceServerConnection( pConnection, timeout ) != NX_Exception ); } } if( pProxy && EndProxyConnection( pProxy ) != NX_Ok ) { if ( AdvanceProxyConnection( pProxy, timeout ) != NX_Exception ) return ( AdvanceServerConnection( pConnection, timeout ) != NX_Exception ); } return true; }
string NXConnection::GetLogPath() const { string file_path = ""; if( GetStateId() < NX_ProxyReady ) file_path = options->GetNXSshLogPath(); else { char *pLogPath = GetStringParameter( pSession, NX_ProxyLogPath, "" ); file_path = pLogPath; delete pLogPath; } return file_path; }
void NXConnection::Stop() { NX_LOG_LOGDEBUG( "Info: stop connection called."); int iState = GetStateId(); if( iState > NX_ReadyForConnection && iState < NX_InitProxy ) { NX_LOG_LOGDEBUG( "Info: terminating server connection."); TerminateServerConnection( pConnection ); } if( iState > NX_InitProxy ) { NX_LOG_LOGDEBUG( "terminating proxy connection." ); TerminateProxyConnection( pProxy ); } }
/***************************************************************************** * Function - GetStateStringId * DESCRIPTION: *****************************************************************************/ U16 InputFunctionState::GetStateStringId(CHANNEL_SOURCE_TYPE source, U8 index) { int ai_state = -1; int di_state = -1; GetStateId(source, index, &ai_state, &di_state); if (ai_state != -1) { return mpAiFuncState->GetStateStringId(ai_state); } else if (di_state != -1) { return mpDiFuncState->GetStateStringId(di_state); } return SID_NONE; }
/***************************************************************************** * Function - GetStateAsString * DESCRIPTION: *****************************************************************************/ const char* InputFunctionState::GetStateAsString(CHANNEL_SOURCE_TYPE source, U8 index) { int ai_state = -1; int di_state = -1; GetStateId(source, index, &ai_state, &di_state); if (ai_state != -1) { return mpAiFuncState->GetStateAsString(ai_state); } else if (di_state != -1) { return mpDiFuncState->GetStateAsString(di_state); } return ""; }
bool NXConnection::SessionAccepted() const { return (GetStateId() == NX_SessionAccepted ); }
bool NXConnection::Accepted() const { return ( GetStateId() == NX_ProxyConnected ); }