mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
expose SASL_USERNAME when it makes sense (EXTERN needs work, much like SASL_SSL) (ITS#6257)
This commit is contained in:
parent
68ddf384ca
commit
98a8b74d53
@ -186,6 +186,7 @@ LDAP_BEGIN_DECL
|
||||
#define LDAP_OPT_X_SASL_MAXBUFSIZE 0x6109
|
||||
#define LDAP_OPT_X_SASL_MECHLIST 0x610a /* read-only */
|
||||
#define LDAP_OPT_X_SASL_NOCANON 0x610b
|
||||
#define LDAP_OPT_X_SASL_USERNAME 0x610c /* read-only */
|
||||
|
||||
/* OpenLDAP GSSAPI options */
|
||||
#define LDAP_OPT_X_GSSAPI_DO_NOT_FREE_CONTEXT 0x6200
|
||||
|
@ -1013,6 +1013,31 @@ ldap_int_sasl_get_option( LDAP *ld, int option, void *arg )
|
||||
*(int *)arg = (int) LDAP_BOOL_GET(&ld->ld_options, LDAP_BOOL_SASL_NOCANON );
|
||||
break;
|
||||
|
||||
case LDAP_OPT_X_SASL_USERNAME: {
|
||||
int sc;
|
||||
char *username;
|
||||
sasl_conn_t *ctx;
|
||||
|
||||
if( ld->ld_defconn == NULL ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
ctx = ld->ld_defconn->lconn_sasl_sockctx;
|
||||
|
||||
if ( ctx == NULL ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
sc = sasl_getprop( ctx, SASL_USERNAME,
|
||||
(SASL_CONST void **)(char **) &username );
|
||||
|
||||
if ( sc != SASL_OK ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
*(char **)arg = username;
|
||||
} break;
|
||||
|
||||
case LDAP_OPT_X_SASL_SECPROPS:
|
||||
/* this option is write only */
|
||||
return -1;
|
||||
@ -1034,6 +1059,7 @@ ldap_int_sasl_set_option( LDAP *ld, int option, void *arg )
|
||||
|
||||
switch ( option ) {
|
||||
case LDAP_OPT_X_SASL_SSF:
|
||||
case LDAP_OPT_X_SASL_USERNAME:
|
||||
/* This option is read-only */
|
||||
return -1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user