mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
Make features global
This commit is contained in:
parent
639c5912f5
commit
9309bc9402
@ -255,7 +255,7 @@ client_bind( void *ctx, void *arg )
|
|||||||
}
|
}
|
||||||
|
|
||||||
op->o_upstream = upstream;
|
op->o_upstream = upstream;
|
||||||
if ( upstream->c_features & SLAP_C_VC ) {
|
if ( lload_features & LLOAD_FEATURE_VC ) {
|
||||||
rc = request_bind_as_vc( op );
|
rc = request_bind_as_vc( op );
|
||||||
} else {
|
} else {
|
||||||
rc = request_bind( op );
|
rc = request_bind( op );
|
||||||
|
@ -69,6 +69,8 @@ char *global_host = NULL;
|
|||||||
static FILE *logfile;
|
static FILE *logfile;
|
||||||
static char *logfileName;
|
static char *logfileName;
|
||||||
|
|
||||||
|
lload_features_t lload_features;
|
||||||
|
|
||||||
ber_len_t sockbuf_max_incoming = SLAP_SB_MAX_INCOMING_DEFAULT;
|
ber_len_t sockbuf_max_incoming = SLAP_SB_MAX_INCOMING_DEFAULT;
|
||||||
ber_len_t sockbuf_max_incoming_auth = SLAP_SB_MAX_INCOMING_AUTH;
|
ber_len_t sockbuf_max_incoming_auth = SLAP_SB_MAX_INCOMING_AUTH;
|
||||||
|
|
||||||
@ -104,6 +106,7 @@ static ConfigDriver config_tcp_buffer;
|
|||||||
static ConfigDriver config_restrict;
|
static ConfigDriver config_restrict;
|
||||||
static ConfigDriver config_loglevel;
|
static ConfigDriver config_loglevel;
|
||||||
static ConfigDriver config_include;
|
static ConfigDriver config_include;
|
||||||
|
static ConfigDriver config_feature;
|
||||||
#ifdef HAVE_TLS
|
#ifdef HAVE_TLS
|
||||||
static ConfigDriver config_tls_option;
|
static ConfigDriver config_tls_option;
|
||||||
static ConfigDriver config_tls_config;
|
static ConfigDriver config_tls_config;
|
||||||
@ -227,6 +230,10 @@ static ConfigTable config_back_cf_table[] = {
|
|||||||
ARG_INT|ARG_MAGIC|CFG_RESCOUNT,
|
ARG_INT|ARG_MAGIC|CFG_RESCOUNT,
|
||||||
&config_generic,
|
&config_generic,
|
||||||
},
|
},
|
||||||
|
{ "feature", "name", 2, 0, 0,
|
||||||
|
ARG_MAGIC,
|
||||||
|
&config_feature,
|
||||||
|
},
|
||||||
{ "TLSCACertificate", NULL, 2, 2, 0,
|
{ "TLSCACertificate", NULL, 2, 2, 0,
|
||||||
#ifdef HAVE_TLS
|
#ifdef HAVE_TLS
|
||||||
CFG_TLS_CACERT|ARG_BINARY|ARG_MAGIC,
|
CFG_TLS_CACERT|ARG_BINARY|ARG_MAGIC,
|
||||||
@ -1014,6 +1021,27 @@ config_include( ConfigArgs *c )
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
config_feature( ConfigArgs *c )
|
||||||
|
{
|
||||||
|
slap_verbmasks features[] = {
|
||||||
|
{ BER_BVC("vc"), LLOAD_FEATURE_VC },
|
||||||
|
{ BER_BVC("proxyauthz"), LLOAD_FEATURE_PROXYAUTHZ },
|
||||||
|
{ BER_BVNULL, 0 }
|
||||||
|
};
|
||||||
|
slap_mask_t mask = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
i = verbs_to_mask( c->argc, c->argv, features, &mask );
|
||||||
|
if ( i ) {
|
||||||
|
Debug( LDAP_DEBUG_ANY, "%s: <%s> unknown feature %s\n", c->log,
|
||||||
|
c->argv[0], c->argv[i] );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
lload_features |= mask;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_TLS
|
#ifdef HAVE_TLS
|
||||||
static int
|
static int
|
||||||
config_tls_cleanup( ConfigArgs *c )
|
config_tls_cleanup( ConfigArgs *c )
|
||||||
|
@ -219,6 +219,8 @@ LDAP_SLAPD_V (ber_len_t) sockbuf_max_incoming;
|
|||||||
LDAP_SLAPD_V (ber_len_t) sockbuf_max_incoming_auth;
|
LDAP_SLAPD_V (ber_len_t) sockbuf_max_incoming_auth;
|
||||||
LDAP_SLAPD_V (int) slap_conn_max_pdus_per_cycle;
|
LDAP_SLAPD_V (int) slap_conn_max_pdus_per_cycle;
|
||||||
|
|
||||||
|
LDAP_SLAPD_V (lload_features_t) lload_features;
|
||||||
|
|
||||||
LDAP_SLAPD_V (slap_mask_t) global_allows;
|
LDAP_SLAPD_V (slap_mask_t) global_allows;
|
||||||
LDAP_SLAPD_V (slap_mask_t) global_disallows;
|
LDAP_SLAPD_V (slap_mask_t) global_disallows;
|
||||||
|
|
||||||
|
@ -227,6 +227,11 @@ typedef struct config_reply_s ConfigReply; /* config.h */
|
|||||||
|
|
||||||
typedef struct Listener Listener;
|
typedef struct Listener Listener;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
LLOAD_FEATURE_VC = 1 << 0,
|
||||||
|
LLOAD_FEATURE_PROXYAUTHZ = 1 << 1,
|
||||||
|
} lload_features_t;
|
||||||
|
|
||||||
enum lload_tls_type {
|
enum lload_tls_type {
|
||||||
LLOAD_CLEARTEXT = 0,
|
LLOAD_CLEARTEXT = 0,
|
||||||
LLOAD_LDAPS,
|
LLOAD_LDAPS,
|
||||||
@ -279,13 +284,12 @@ struct Connection {
|
|||||||
struct event *c_read_event, *c_write_event;
|
struct event *c_read_event, *c_write_event;
|
||||||
|
|
||||||
/* can only be changed by binding thread */
|
/* can only be changed by binding thread */
|
||||||
int c_features;
|
|
||||||
#define SLAP_C_VC 1
|
|
||||||
|
|
||||||
struct berval c_sasl_bind_mech; /* mech in progress */
|
struct berval c_sasl_bind_mech; /* mech in progress */
|
||||||
struct berval c_auth; /* authcDN (possibly in progress) */
|
struct berval c_auth; /* authcDN (possibly in progress) */
|
||||||
|
|
||||||
|
#ifdef LDAP_API_FEATURE_VERIFY_CREDENTIALS
|
||||||
struct berval c_vc_cookie;
|
struct berval c_vc_cookie;
|
||||||
|
#endif /* LDAP_API_FEATURE_VERIFY_CREDENTIALS */
|
||||||
|
|
||||||
/* Can be held while acquiring c_mutex to inject things into c_ops or
|
/* Can be held while acquiring c_mutex to inject things into c_ops or
|
||||||
* destroy the connection */
|
* destroy the connection */
|
||||||
|
Loading…
Reference in New Issue
Block a user