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
I want to mention that adding SASL_CB_LOG callback and reinstalling cyrus library seemed to get pass the problem.
FYI
On Tue, Mar 14, 2017 at 4:09 PM, Ted Yu <yuzhihong@xxxxxxxxx> wrote: