+#ifdef HAVE_SASL_VERSION
+#define SASL_BUILD_VERSION ((SASL_VERSION_MAJOR << 24) |\
+ (SASL_VERSION_MINOR << 16) | SASL_VERSION_STEP)
+
+ sasl_version( NULL, &rc );
+ if ( ((rc >> 16) != ((SASL_VERSION_MAJOR << 8)|SASL_VERSION_MINOR)) ||
+ (rc & 0xffff) < SASL_VERSION_STEP) {
+
+#ifdef NEW_LOGGING
+ LDAP_LOG( TRANSPORT, INFO,
+ "slap_sasl_init: SASL version mismatch, got %x, wanted %x.\n",
+ rc, SASL_BUILD_VERSION, 0 );
+#else
+ Debug( LDAP_DEBUG_ANY,
+ "slap_sasl_init: SASL version mismatch, got %x, wanted %x.\n",
+ rc, SASL_BUILD_VERSION, 0 );
+#endif
+ return -1;
+ }
+#endif
+
+ /* SASL 2 does its own memory management internally */
+#if SASL_VERSION_MAJOR < 2