+
+ csn_str = csn_ptr + STRLENOF("csn=");
+ cval = strchr( csn_str, ',' );
+ if ( cval && cval < &cookie->octet_str.bv_val[ cookie->octet_str.bv_len ] )
+ csn_str_len = cval - csn_str;
+ else
+ csn_str_len = 0;
+
+ /* FIXME use csnValidate when it gets implemented */
+ csn_ptr = strchr( csn_str, '#' );
+ if ( !csn_ptr || csn_str >= &cookie->octet_str.bv_val[ cookie->octet_str.bv_len ] ) break;
+
+ stamp.bv_val = csn_str;
+ stamp.bv_len = csn_ptr - csn_str;
+ validate = ad->ad_type->sat_syntax->ssyn_validate;
+ if ( validate( ad->ad_type->sat_syntax, &stamp ) != LDAP_SUCCESS )
+ break;
+ valid = 1;
+ break;
+ }
+ if ( valid ) {
+ ber_str2bv_x( csn_str, csn_str_len, 1, &cookie->ctxcsn, memctx );