Пример #1
0
int CompareContents( FILE *fp1, FILE *fp2 )
/*****************************************/
{
    int             retcode;        /* -1: error  0: same  1: different */
    int             oldretcode;
    bool            dup_discarded;
    int             error;
    WResDir         dir1;
    WResDir         dir2;

    retcode = CompareHeaders( fp1, fp2 );
    if( (retcode == -1) || (retcode == 1 && !CmdLineParms.CheckAll) ) {
        return( retcode );
    }

    oldretcode = retcode;

    dir1 = WResInitDir();
    if( dir1 == NULL ) {
        return( -1 );
    }
    dir2 = WResInitDir();
    if( dir2 == NULL ) {
        WResFreeDir( dir1 );
        return( -1 );
    }

    error = WResReadDir( fp1, dir1, &dup_discarded );
    if( error || dup_discarded ) {
        WResFreeDir( dir1 );
        WResFreeDir( dir2 );
        return( -1 );
    }
    error = WResReadDir( fp2, dir2, &dup_discarded );
    if( error || dup_discarded ) {
        WResFreeDir( dir1 );
        WResFreeDir( dir2 );
        return( -1 );
    }

    retcode = CompareResources( fp1, dir1, fp2, dir2 );

    WResFreeDir( dir1 );
    WResFreeDir( dir2 );

    if( retcode == -1 ) {
        return( -1 );
    } else if( retcode == 1 || oldretcode == 1 ) {
        return( 1 );
    } else {
        return( 0 );
    }
}
// ----------------------------------------------------------------------------
// CSipHeaderStrategyBase::EliminateClientsL
// ----------------------------------------------------------------------------
//
void CSipHeaderStrategyBase::EliminateClientsL(
    CSIPRequest& aRequest,
    RArray<TUid>& aUids )
    {
	for ( TInt i=0; i < aUids.Count();i++ )
		{
		MSipClient* client = iSipClients.GetByUID( aUids[i] );
		if ( client && !CompareHeaders( aRequest,*client) )
			{
			aUids.Remove( i );
			i--;
			}	
		}
    }