X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fsasl.c;h=4e1146eec27adab4f2587b0f6b0e87aedf2f2a24;hb=fd8c9a94d07af61a33053c02f0dd9d7f27cd9e68;hp=9f68e983113754b8109e49d6246ddfb523056972;hpb=9df3bd087a2dc53bcd4c887c648dd5e01a9808e3;p=openldap diff --git a/servers/slapd/sasl.c b/servers/slapd/sasl.c index 9f68e98311..4e1146eec2 100644 --- a/servers/slapd/sasl.c +++ b/servers/slapd/sasl.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2013 The OpenLDAP Foundation. + * Copyright 1998-2015 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -46,6 +46,12 @@ #define SASL_VERSION_FULL ((SASL_VERSION_MAJOR << 16) |\ (SASL_VERSION_MINOR << 8) | SASL_VERSION_STEP) +#if SASL_VERSION_MINOR >= 0x020119 /* 2.1.25 */ +typedef sasl_callback_ft slap_sasl_cb_ft; +#else +typedef int (*slap_sasl_cb_ft)(); +#endif + static sasl_security_properties_t sasl_secprops; #elif defined( SLAP_BUILTIN_SASL ) /* @@ -315,6 +321,10 @@ slap_auxprop_lookup( } } + /* we don't know anything about this, ignore it */ + if ( !conn ) + return SASL_OK; + /* Now see what else needs to be fetched */ for( i = 0; sl.list[i].name; i++ ) { const char *name = sl.list[i].name; @@ -1108,8 +1118,8 @@ int slap_sasl_init( void ) #ifdef HAVE_CYRUS_SASL int rc; static sasl_callback_t server_callbacks[] = { - { SASL_CB_LOG, &slap_sasl_log, NULL }, - { SASL_CB_GETOPT, &slap_sasl_getopt, NULL }, + { SASL_CB_LOG, (slap_sasl_cb_ft)&slap_sasl_log, NULL }, + { SASL_CB_GETOPT, (slap_sasl_cb_ft)&slap_sasl_getopt, NULL }, { SASL_CB_LIST_END, NULL, NULL } }; #endif @@ -1253,15 +1263,15 @@ int slap_sasl_open( Connection *conn, int reopen ) conn->c_sasl_extra = session_callbacks; session_callbacks[cb=0].id = SASL_CB_LOG; - session_callbacks[cb].proc = &slap_sasl_log; + session_callbacks[cb].proc = (slap_sasl_cb_ft)&slap_sasl_log; session_callbacks[cb++].context = conn; session_callbacks[cb].id = SASL_CB_PROXY_POLICY; - session_callbacks[cb].proc = &slap_sasl_authorize; + session_callbacks[cb].proc = (slap_sasl_cb_ft)&slap_sasl_authorize; session_callbacks[cb++].context = conn; session_callbacks[cb].id = SASL_CB_CANON_USER; - session_callbacks[cb].proc = &slap_sasl_canonicalize; + session_callbacks[cb].proc = (slap_sasl_cb_ft)&slap_sasl_canonicalize; session_callbacks[cb++].context = conn; session_callbacks[cb].id = SASL_CB_LIST_END;