expose SASL_USERNAME when it makes sense (EXTERN needs work, much like SASL_SSL) (ITS#6257)

This commit is contained in:
Pierangelo Masarati 2009-08-18 18:47:56 +00:00
parent 68ddf384ca
commit 98a8b74d53
2 changed files with 27 additions and 0 deletions

View File

@ -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

View File

@ -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;