}
}
+ if ( a->sat_ordering ) {
+ MatchingRule *mr;
+
+ mr = mr_find( a->sat_ordering->smr_oid );
+ assert( mr != NULL );
+ if ( mr != a->sat_ordering ) {
+ ch_free( a->sat_ordering );
+ a->sat_ordering = NULL;
+ }
+ }
+
assert( a->sat_syntax != NULL );
if ( a->sat_syntax != NULL ) {
Syntax *syn;
{
int i, rc;
Syntax *rdnTimestampSyntax;
- MatchingRule *rdnTimestampMatch;
+ MatchingRule *rdnTimestampMatch, *rdnTimestampOrdering;
accesslog.on_bi.bi_type = "accesslog";
accesslog.on_bi.bi_db_init = accesslog_db_init;
/* Inject custom normalizer for reqStart/reqEnd */
rdnTimestampMatch = ch_malloc( sizeof( MatchingRule ));
+ rdnTimestampOrdering = ch_malloc( sizeof( MatchingRule ));
rdnTimestampSyntax = ch_malloc( sizeof( Syntax ));
*rdnTimestampMatch = *ad_reqStart->ad_type->sat_equality;
rdnTimestampMatch->smr_normalize = rdnTimestampNormalize;
+ *rdnTimestampOrdering = *ad_reqStart->ad_type->sat_ordering;
+ rdnTimestampOrdering->smr_normalize = rdnTimestampNormalize;
*rdnTimestampSyntax = *ad_reqStart->ad_type->sat_syntax;
rdnTimestampSyntax->ssyn_validate = rdnTimestampValidate;
ad_reqStart->ad_type->sat_equality = rdnTimestampMatch;
+ ad_reqStart->ad_type->sat_ordering = rdnTimestampOrdering;
ad_reqStart->ad_type->sat_syntax = rdnTimestampSyntax;
rdnTimestampMatch = ch_malloc( sizeof( MatchingRule ));
+ rdnTimestampOrdering = ch_malloc( sizeof( MatchingRule ));
rdnTimestampSyntax = ch_malloc( sizeof( Syntax ));
*rdnTimestampMatch = *ad_reqStart->ad_type->sat_equality;
- rdnTimestampMatch->smr_normalize = rdnTimestampNormalize;
+ *rdnTimestampOrdering = *ad_reqStart->ad_type->sat_ordering;
*rdnTimestampSyntax = *ad_reqStart->ad_type->sat_syntax;
- rdnTimestampSyntax->ssyn_validate = rdnTimestampValidate;
ad_reqEnd->ad_type->sat_equality = rdnTimestampMatch;
+ ad_reqEnd->ad_type->sat_ordering = rdnTimestampOrdering;
ad_reqEnd->ad_type->sat_syntax = rdnTimestampSyntax;
for ( i=0; locs[i].ot; i++ ) {