#include <sasl/sasl.h>
#endif
+#define CAST_SASL_CB(cb) reinterpret_cast<int(*)()>(reinterpret_cast<intptr_t>(cb))
+
#include <pthread.h>
void memcached_set_sasl_callbacks(memcached_st *shell,
* @param raddr remote address (out)
* @return true on success false otherwise (errno contains more info)
*/
-static memcached_return_t resolve_names(org::libmemcached::Instance& server, char *laddr, size_t laddr_length, char *raddr, size_t raddr_length)
+static memcached_return_t resolve_names(memcached_instance_st& server, char *laddr, size_t laddr_length, char *raddr, size_t raddr_length)
{
char host[MEMCACHED_NI_MAXHOST];
char port[MEMCACHED_NI_MAXSERV];
} // extern "C"
-memcached_return_t memcached_sasl_authenticate_connection(org::libmemcached::Instance* server)
+memcached_return_t memcached_sasl_authenticate_connection(memcached_instance_st* server)
{
if (LIBMEMCACHED_WITH_SASL_SUPPORT == 0)
{
secret->data[password_length]= 0;
callbacks[0].id= SASL_CB_USER;
- callbacks[0].proc= (int (*)())get_username;
+ callbacks[0].proc= CAST_SASL_CB(get_username);
callbacks[0].context= strncpy(name, username, username_length +1);
callbacks[1].id= SASL_CB_AUTHNAME;
- callbacks[1].proc= (int (*)())get_username;
+ callbacks[1].proc= CAST_SASL_CB(get_username);
callbacks[1].context= name;
callbacks[2].id= SASL_CB_PASS;
- callbacks[2].proc= (int (*)())get_password;
+ callbacks[2].proc= CAST_SASL_CB(get_password);
callbacks[2].context= secret;
callbacks[3].id= SASL_CB_LIST_END;
/* Hopefully we are using our own callback mechanisms.. */
if (source->sasl.callbacks[0].id == SASL_CB_USER &&
- source->sasl.callbacks[0].proc == (int (*)())get_username &&
+ source->sasl.callbacks[0].proc == CAST_SASL_CB(get_username) &&
source->sasl.callbacks[1].id == SASL_CB_AUTHNAME &&
- source->sasl.callbacks[1].proc == (int (*)())get_username &&
+ source->sasl.callbacks[1].proc == CAST_SASL_CB(get_username) &&
source->sasl.callbacks[2].id == SASL_CB_PASS &&
- source->sasl.callbacks[2].proc == (int (*)())get_password &&
+ source->sasl.callbacks[2].proc == CAST_SASL_CB(get_password) &&
source->sasl.callbacks[3].id == SASL_CB_LIST_END)
{
sasl_secret_t *secret= (sasl_secret_t *)source->sasl.callbacks[2].context;