mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-12 10:54:48 +08:00
ITS#7182 Expose the connection flags.
The flags are exposed using a multivalued parameter so that other connection flags (like back-meta's) could be exported without needing additional code.
This commit is contained in:
parent
cfc947dd54
commit
fa3a79c1b9
@ -40,6 +40,7 @@ static ObjectClass *oc_olmLDAPConnection;
|
|||||||
static AttributeDescription *ad_olmDbURIList;
|
static AttributeDescription *ad_olmDbURIList;
|
||||||
static AttributeDescription *ad_olmDbOperations;
|
static AttributeDescription *ad_olmDbOperations;
|
||||||
static AttributeDescription *ad_olmDbBoundDN;
|
static AttributeDescription *ad_olmDbBoundDN;
|
||||||
|
static AttributeDescription *ad_olmDbConnFlags;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Stolen from back-monitor/operations.c
|
* Stolen from back-monitor/operations.c
|
||||||
@ -62,6 +63,24 @@ struct ldap_back_monitor_ops_t {
|
|||||||
{ BER_BVNULL }
|
{ BER_BVNULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Corresponds to connection flags in back-ldap.h */
|
||||||
|
static struct {
|
||||||
|
unsigned flag;
|
||||||
|
struct berval name;
|
||||||
|
} s_flag[] = {
|
||||||
|
{ LDAP_BACK_FCONN_ISBOUND, BER_BVC( "bound" ) },
|
||||||
|
{ LDAP_BACK_FCONN_ISANON, BER_BVC( "anonymous" ) },
|
||||||
|
{ LDAP_BACK_FCONN_ISPRIV, BER_BVC( "privileged" ) },
|
||||||
|
{ LDAP_BACK_FCONN_ISTLS, BER_BVC( "TLS" ) },
|
||||||
|
{ LDAP_BACK_FCONN_BINDING, BER_BVC( "binding" ) },
|
||||||
|
{ LDAP_BACK_FCONN_TAINTED, BER_BVC( "tainted" ) },
|
||||||
|
{ LDAP_BACK_FCONN_ABANDON, BER_BVC( "abandon" ) },
|
||||||
|
{ LDAP_BACK_FCONN_ISIDASR, BER_BVC( "idassert" ) },
|
||||||
|
{ LDAP_BACK_FCONN_CACHED, BER_BVC( "cached" ) },
|
||||||
|
|
||||||
|
{ 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NOTE: there's some confusion in monitor OID arc;
|
* NOTE: there's some confusion in monitor OID arc;
|
||||||
@ -109,6 +128,13 @@ static struct {
|
|||||||
"NO-USER-MODIFICATION "
|
"NO-USER-MODIFICATION "
|
||||||
"USAGE dSAOperation )",
|
"USAGE dSAOperation )",
|
||||||
&ad_olmDbBoundDN },
|
&ad_olmDbBoundDN },
|
||||||
|
{ "( olmLDAPAttributes:4 "
|
||||||
|
"NAME ( 'olmDbConnFlags' ) "
|
||||||
|
"DESC 'monitor connection flags' "
|
||||||
|
"SUP monitoredInfo "
|
||||||
|
"NO-USER-MODIFICATION "
|
||||||
|
"USAGE dSAOperation )",
|
||||||
|
&ad_olmDbConnFlags },
|
||||||
|
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
@ -131,6 +157,7 @@ static struct {
|
|||||||
"SUP monitorConnection STRUCTURAL "
|
"SUP monitorConnection STRUCTURAL "
|
||||||
"MAY ( "
|
"MAY ( "
|
||||||
"olmDbBoundDN "
|
"olmDbBoundDN "
|
||||||
|
"$ olmDbConnFlags "
|
||||||
") )",
|
") )",
|
||||||
&oc_olmLDAPConnection },
|
&oc_olmLDAPConnection },
|
||||||
|
|
||||||
@ -345,6 +372,7 @@ ldap_back_monitor_conn_entry(
|
|||||||
monitor_entry_t *mp;
|
monitor_entry_t *mp;
|
||||||
char buf[SLAP_TEXT_BUFLEN];
|
char buf[SLAP_TEXT_BUFLEN];
|
||||||
struct berval bv, dn, ndn;
|
struct berval bv, dn, ndn;
|
||||||
|
int i;
|
||||||
|
|
||||||
e = entry_alloc();
|
e = entry_alloc();
|
||||||
|
|
||||||
@ -367,6 +395,14 @@ ldap_back_monitor_conn_entry(
|
|||||||
|
|
||||||
attr_merge_normalize_one( e, ad_olmDbBoundDN, &lc->lc_bound_ndn, NULL );
|
attr_merge_normalize_one( e, ad_olmDbBoundDN, &lc->lc_bound_ndn, NULL );
|
||||||
|
|
||||||
|
for ( i = 0; s_flag[i].flag; i++ )
|
||||||
|
{
|
||||||
|
if ( lc->lc_flags & s_flag[i].flag )
|
||||||
|
{
|
||||||
|
attr_merge_normalize_one( e, ad_olmDbConnFlags, &s_flag[i].name, NULL );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mp = monitor_entrypriv_create();
|
mp = monitor_entrypriv_create();
|
||||||
e->e_private = mp;
|
e->e_private = mp;
|
||||||
mp->mp_info = arg->ms;
|
mp->mp_info = arg->ms;
|
||||||
|
Loading…
Reference in New Issue
Block a user