Example #1
0
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 );
}
Example #2
0
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 );
}