mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
ITS#2505 - make sr_strings per-op instead of static
This commit is contained in:
parent
7a720d4b40
commit
b6ef8c1876
@ -33,7 +33,6 @@ typedef struct sasl_regexp {
|
|||||||
char *sr_match; /* regexp match pattern */
|
char *sr_match; /* regexp match pattern */
|
||||||
char *sr_replace; /* regexp replace pattern */
|
char *sr_replace; /* regexp replace pattern */
|
||||||
regex_t sr_workspace; /* workspace for regexp engine */
|
regex_t sr_workspace; /* workspace for regexp engine */
|
||||||
regmatch_t sr_strings[SASLREGEX_REPLACE]; /* strings matching $1,$2 ... */
|
|
||||||
int sr_offset[SASLREGEX_REPLACE+2]; /* offsets of $1,$2... in *replace */
|
int sr_offset[SASLREGEX_REPLACE+2]; /* offsets of $1,$2... in *replace */
|
||||||
} SaslRegexp_t;
|
} SaslRegexp_t;
|
||||||
|
|
||||||
@ -282,6 +281,7 @@ static int slap_sasl_regexp( struct berval *in, struct berval *out, void *ctx )
|
|||||||
{
|
{
|
||||||
char *saslname = in->bv_val;
|
char *saslname = in->bv_val;
|
||||||
SaslRegexp_t *reg;
|
SaslRegexp_t *reg;
|
||||||
|
regmatch_t sr_strings[SASLREGEX_REPLACE]; /* strings matching $1,$2 ... */
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
memset( out, 0, sizeof( *out ) );
|
memset( out, 0, sizeof( *out ) );
|
||||||
@ -301,7 +301,7 @@ static int slap_sasl_regexp( struct berval *in, struct berval *out, void *ctx )
|
|||||||
/* Match the normalized SASL name to the saslregexp patterns */
|
/* Match the normalized SASL name to the saslregexp patterns */
|
||||||
for( reg = SaslRegexp,i=0; i<nSaslRegexp; i++,reg++ ) {
|
for( reg = SaslRegexp,i=0; i<nSaslRegexp; i++,reg++ ) {
|
||||||
if ( regexec( ®->sr_workspace, saslname, SASLREGEX_REPLACE,
|
if ( regexec( ®->sr_workspace, saslname, SASLREGEX_REPLACE,
|
||||||
reg->sr_strings, 0) == 0 )
|
sr_strings, 0) == 0 )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -313,7 +313,7 @@ static int slap_sasl_regexp( struct berval *in, struct berval *out, void *ctx )
|
|||||||
* to replace the $1,$2 with the strings that matched (b.*) and (d.*)
|
* to replace the $1,$2 with the strings that matched (b.*) and (d.*)
|
||||||
*/
|
*/
|
||||||
slap_sasl_rx_exp( reg->sr_replace, reg->sr_offset,
|
slap_sasl_rx_exp( reg->sr_replace, reg->sr_offset,
|
||||||
reg->sr_strings, saslname, out, ctx );
|
sr_strings, saslname, out, ctx );
|
||||||
|
|
||||||
#ifdef NEW_LOGGING
|
#ifdef NEW_LOGGING
|
||||||
LDAP_LOG( TRANSPORT, ENTRY,
|
LDAP_LOG( TRANSPORT, ENTRY,
|
||||||
|
Loading…
Reference in New Issue
Block a user