int main(){ system("reset"); resetServer(); commandInterpreter(); printf("\n"); return 0; }
int _tmain(int argc, _TCHAR* argv[]) { // Create a NatNet server int iConnectionType = ConnectionType_Multicast; //int iConnectionType = ConnectionType_Unicast; int iResult = CreateServer(iConnectionType); if(iResult != ErrorCode_OK) { printf("Error initializing server. See log for details. Exiting"); return 1; } // Create a MarkerSet description BuildDescription(&descriptions); // OK! Ready to stream data. Listen for request from clients (RequestHandler()) printf("\n\nCommands:\nn\tnext frame\ns\tstream frames\nr\treset server\nq\tquit\n\r\tmulticast\nu\tunicast\n\n"); bool bExit = false; while(int c =_getch()) { switch(c) { case 'n': // next frame { sFrameOfMocapData frame; BuildFrame(g_lCurrentFrame++, &descriptions, &frame); SendFrame(&frame); FreeFrame(&frame); } break; case 'q': // quit bExit = true; break; case 's': // play continuously g_lCurrentFrame = 0; if(g_bPlaying) StopPlayingThread(); else StartPlayingThread(); break; case 'r': // reset server resetServer(); break; case 'm': // change to multicast iResult = CreateServer(ConnectionType_Multicast); if(iResult == ErrorCode_OK) printf("Server connection type changed to Multicast.\n\n"); else printf("Error changing server connection type to Multicast.\n\n"); break; case 'u': // change to unicast iResult = CreateServer(ConnectionType_Unicast); if(iResult == ErrorCode_OK) printf("Server connection type changed to Unicast.\n\n"); else printf("Error changing server connection type to Unicast.\n\n"); break; default: break; } if(bExit) { theServer->Uninitialize(); FreeDescription(&descriptions); break; } } return ErrorCode_OK; }
void sessionExit( int status ) { int pid; #ifdef USE_PAM int pretc; #endif if (removeAuth) { switch (source( systemEnviron, td->reset, td_setup )) { case 0: case wcCompose( 0, 0, 127 ): break; default: logError( "Reset script returned non-zero exit code\n" ); break; } sessreg( td, 0, 0, 0 ); switch (Fork( &pid )) { case 0: #if defined(USE_PAM) && defined(HAVE_INITGROUPS) if (restoreGids() && setUid( curuser, curuid )) #else if (setUser( curuser, curuid, curgid )) #endif { removeUserAuthorization( td ); #ifdef K5AUTH krb5Destroy( td->name ); #endif /* K5AUTH */ #if !defined(USE_PAM) && !defined(_AIX) # ifdef KERBEROS if (krbtkfile[0]) { (void)dest_tkt(); # ifdef AFS if (k_hasafs()) (void)k_unlog(); # endif } # endif #endif /* !USE_PAM && !_AIX*/ } exit( 0 ); case -1: logError( "Cannot clean up session: fork() failed: %m" ); break; default: Wait4( &pid ); break; } } #ifdef USE_PAM if (removeCreds) { # ifdef HAVE_INITGROUPS restoreGids(); # endif if (removeSession) { pretc = pam_close_session( pamh, 0 ); reInitErrorLog(); if (pretc != PAM_SUCCESS) logError( "pam_close_session() failed: %s\n", pam_strerror( pamh, pretc ) ); } pretc = pam_setcred( pamh, PAM_DELETE_CRED ); reInitErrorLog(); if (pretc != PAM_SUCCESS) logError( "pam_setcred(DELETE_CRED) failed: %s\n", pam_strerror( pamh, pretc ) ); resetGids(); } if (pamh) { pam_end( pamh, PAM_SUCCESS ); reInitErrorLog(); } #endif finishGreet(); /* make sure the server gets reset after the session is over */ if (td->serverPid >= 2) { if (!td->terminateServer && td->resetSignal) terminateProcess( td->serverPid, td->resetSignal ); } else resetServer( td ); debug( "display %s exiting with status %d\n", td->name, status ); exit( status ); }