static bool AccConnect( void ) { connect_req *acc; char *data; connect_ret *ret; trap_elen max; trap_elen len; acc = GetInPtr( 0 ); ret = GetOutPtr( 0 ); data = GetOutPtr( sizeof( *ret ) ); if( acc->ver.major != TrapVersion.major || acc->ver.minor > TrapVersion.minor ) { strcpy( data, TRP_ERR_WRONG_SERVER_VERSION ); PutBuffPacket( RWBuff, sizeof( *acc ) + sizeof( TRP_ERR_WRONG_SERVER_VERSION ) ); } else { len = TrapAccess( 1, &In[0], 1, &Out[0] ); max = MaxPacketSize(); if( max > sizeof( RWBuff ) ) max = sizeof( RWBuff ); if( ret->max_msg_size > max ) ret->max_msg_size = max; CONV_LE_16( ret->max_msg_size ); PutBuffPacket( RWBuff, len ); } if( data[0] != '\0' ) { ServError( data ); return( FALSE ); } return( TRUE ); }
trap_retval ReqConnect( void ) { connect_ret *ret; char *err; ret = GetOutPtr(0); #if defined(DOSX) ret->max_msg_size = MaxPacketSize(); RemoteConnect(); #else ret->max_msg_size = 0xFFFF; #endif /* version ok... already checked by initialization */ err = GetOutPtr(sizeof(*ret)); #if defined(WIN16) strcpy( err, InitDebugging() ); #else *err = '\0'; #endif return( sizeof( *ret ) + strlen( err ) + 1 ); }