Hi, I use the following code for calling sasl_client_init(): callback->id = SASL_CB_GETPATH;
callback->proc = (sasl_callback_ft) &GetPluginPath; callback->context = (void *)(sasl_plugin_dir_path.c_str()); ++callback; /* user */ callback->id = SASL_CB_USER; callback->proc = (sasl_callback_ft) &Simple; callback->context = const_cast<char *>(user_name_.c_str()); ++callback; /* termination */ callback->id = SASL_CB_LIST_END; callback->proc = NULL; callback->context = NULL; ++callback; rc = sasl_client_init(callbacks); sasl_client_init() returned 0. But the following: const char *mechusing, *mechlist = "GSSAPI"; do { currentReturnCode = sasl_client_start(sconn_, /* the same context from above */ mechlist, /* the list of mechanisms from the server */ NULL, /* filled in if an interaction is needed */ &out, /* filled in on success */ &outlen, /* filled in on success */ &mechusing); gave me -4. I saw this auth log: Mar 14 09:01:33 5f4a350528ca client-test: No worthy mechs found Under CYRUS_SASL_PLUGINS_DIR : # ls /usr/lib/sasl2 libanonymous.la libcrammd5.la libdigestmd5.la libgs2.la libgssapiv2.la libotp.la libplain.la libscram.la libanonymous.so libcrammd5.so libdigestmd5.so libgs2.so libgssapiv2.so libotp.so libplain.so libscram.so libanonymous.so.3 libcrammd5.so.3 libdigestmd5.so.3 libgs2.so.3 libgssapiv2.so.3 libotp.so.3 libplain.so.3 libscram.so.3 libanonymous.so.3.0.0 libcrammd5.so.3.0.0 libdigestmd5.so.3.0.0 libgs2.so.3.0.0 libgssapiv2.so.3.0.0 libotp.so.3.0.0 libplain.so.3.0.0 libscram.so.3.0.0 Is there any lib which was missing ? Thanks