]> git.sur5r.net Git - openldap/commitdiff
Add SASL_MECHLIST option to retrieve list of known SASL mechs
authorHoward Chu <hyc@openldap.org>
Thu, 9 Oct 2008 09:28:39 +0000 (09:28 +0000)
committerHoward Chu <hyc@openldap.org>
Thu, 9 Oct 2008 09:28:39 +0000 (09:28 +0000)
include/ldap.h
libraries/libldap/cyrus.c

index 7f87330daef95f2a21d0f1b3fcd937e7dfc13e84..fb66dbb569d35c0258636848ce084bdd165e0f32 100644 (file)
@@ -164,7 +164,8 @@ LDAP_BEGIN_DECL
 #define LDAP_OPT_X_SASL_SECPROPS               0x6106 /* write-only */
 #define LDAP_OPT_X_SASL_SSF_MIN                        0x6107
 #define LDAP_OPT_X_SASL_SSF_MAX                        0x6108
-#define        LDAP_OPT_X_SASL_MAXBUFSIZE              0x6109
+#define LDAP_OPT_X_SASL_MAXBUFSIZE             0x6109
+#define LDAP_OPT_X_SASL_MECHLIST               0x610a /* read-only */
 
 /* Private API Extensions -- reserved for application use */
 #define LDAP_OPT_PRIVATE_EXTENSION_BASE 0x7000  /* Private API inclusive */
index c1fb06c5c518dbe7995e9ecf22064a5bb372b81a..d5779fd71fc3048a460f696d46a1776f25412576 100644 (file)
@@ -1123,6 +1123,13 @@ ldap_int_sasl_config( struct ldapoptions *lo, int option, const char *arg )
 int
 ldap_int_sasl_get_option( LDAP *ld, int option, void *arg )
 {
+       if ( option == LDAP_OPT_X_SASL_MECHLIST ) {
+               if ( ldap_int_sasl_init() )
+                       return -1;
+               *(char ***)arg = sasl_global_listmech();
+               return 0;
+       }
+
        if ( ld == NULL )
                return -1;