bool RemoteConnect( void ) { PostListens(); #ifdef SERVER if( !Listening ) { _INITSPXECB( Conn, 1, 0, 0 ); _SPXListenForConnection( 0, 0, &ConnECB ); Listening = 1; } else if( ConnECB.inUseFlag == 0 ) { if( ConnECB.completionCode == 0 ) { Connection = ConnECB.SPXConnectionID; return( true ); } } _IPXRelinquishControl(); #else _INITECB( SendECB, SendHead, 1, SPX ); if( _SPXEstablishConnection( 0, 0, &Connection, &SendECB ) == 0 ) { if( WaitTimeout( &SendECB, MAX_CONNECT_WAIT, 0 ) ) { return( true ); } else { _SPXAbortConnection( Connection ); } } #endif return( false ); }
char RemoteConnect( void ) { WORD rc; #ifdef SERVER if( !Listening ) { _INITSPXECB( Conn, 1, 0, 0 ); rc = SpxListenForConnection( SPXSocket, &ConnECB, 0, 0, &Connection ); putrc( "SPXListenForConnection", rc ); Listening = 1; } else if( !InUse( ConnECB ) ) { PostListens(); return( 1 ); } IPXRelinquishControl(); #else putstring( "RemoteConnect\r\n" ); _INITSPXECB( Send, 1, NULL, 0 ); if( ( rc = SpxEstablishConnection( SPXSocket, &SendECB, 0, 0x10, &Connection ) ) == 0 ) { int i; for( i = 1; i < 20; ++i ) { putstring( "RemoteConnect loop\r\n" ); if( !InUse( SendECB ) ) { PostListens(); putstring( "RemoteConnect loop done\r\n" ); return( 1 ); } DosSleep( 100 ); /* 20 * 100 is approx 2 seconds */ } putstring( "RemoteConnect aborting\r\n" ); rc = SpxAbortConnection( Connection ); putrc( "SPXAbortConnection", rc ); } else { putrc( "SPXEstablishConnection", rc ); } #endif return( 0 ); }
bool RemoteConnect( void ) { PostListens(); if( !Listening ) { _DBG_IPX(("Listening for connection\r\n")); _INITSPXECB( Conn, 1, 0, 0 ); CSPXListenForConnection( 0, 0, &Connection, &ConnECB ); Listening = 1; } else if( !InUse( ConnECB ) && Completed( ConnECB ) ) { _DBG_IPX(("Found a connection\r\n")); return( TRUE ); } NothingToDo(); return( FALSE ); }