X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fsasl.cc;h=ee22586810b6fde66ed18a21d158a2ac518c57a6;hb=a909573e5e57f8a6ee92cf4ffb031b9762642d1b;hp=721ff79130fdf4f82886d5b605ae5d8b9e77c99d;hpb=f11bc11e720cdeb4489f2c3ef77d5eb0577f6dd3;p=m6w6%2Flibmemcached diff --git a/libmemcached/sasl.cc b/libmemcached/sasl.cc index 721ff791..ee225868 100644 --- a/libmemcached/sasl.cc +++ b/libmemcached/sasl.cc @@ -46,16 +46,26 @@ #include -void memcached_set_sasl_callbacks(memcached_st *ptr, +void memcached_set_sasl_callbacks(memcached_st *shell, const sasl_callback_t *callbacks) { - ptr->sasl.callbacks= const_cast(callbacks); - ptr->sasl.is_allocated= false; + Memcached* self= memcached2Memcached(shell); + if (self) + { + self->sasl.callbacks= const_cast(callbacks); + self->sasl.is_allocated= false; + } } -sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *ptr) +sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *shell) { - return ptr->sasl.callbacks; + Memcached* self= memcached2Memcached(shell); + if (self) + { + return self->sasl.callbacks; + } + + return NULL; } /** @@ -65,10 +75,10 @@ sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *ptr) * @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[NI_MAXHOST]; - char port[NI_MAXSERV]; + char host[MEMCACHED_NI_MAXHOST]; + char port[MEMCACHED_NI_MAXSERV]; struct sockaddr_storage saddr; socklen_t salen= sizeof(saddr); @@ -123,7 +133,7 @@ static void sasl_startup_function(void) } // 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) { @@ -180,8 +190,8 @@ memcached_return_t memcached_sasl_authenticate_connection(org::libmemcached::Ins assert_msg(server->fd != INVALID_SOCKET, "Programmer error, invalid socket"); /* set ip addresses */ - char laddr[NI_MAXHOST + NI_MAXSERV]; - char raddr[NI_MAXHOST + NI_MAXSERV]; + char laddr[MEMCACHED_NI_MAXHOST + MEMCACHED_NI_MAXSERV]; + char raddr[MEMCACHED_NI_MAXHOST + MEMCACHED_NI_MAXSERV]; if (memcached_failed(rc= resolve_names(*server, laddr, sizeof(laddr), raddr, sizeof(raddr)))) { @@ -205,7 +215,7 @@ memcached_return_t memcached_sasl_authenticate_connection(org::libmemcached::Ins sasl_conn_t *conn; int ret; - if ((ret= sasl_client_new("memcached", server->hostname, laddr, raddr, server->root->sasl.callbacks, 0, &conn) ) != SASL_OK) + if ((ret= sasl_client_new("memcached", server->_hostname, laddr, raddr, server->root->sasl.callbacks, 0, &conn) ) != SASL_OK) { const char *sasl_error_msg= sasl_errstring(ret, NULL, NULL); @@ -310,10 +320,11 @@ static int get_password(sasl_conn_t *conn, void *context, int id, return SASL_OK; } -memcached_return_t memcached_set_sasl_auth_data(memcached_st *ptr, +memcached_return_t memcached_set_sasl_auth_data(memcached_st *shell, const char *username, const char *password) { + Memcached* ptr= memcached2Memcached(shell); if (LIBMEMCACHED_WITH_SASL_SUPPORT == 0) { return MEMCACHED_NOT_SUPPORTED; @@ -367,13 +378,14 @@ memcached_return_t memcached_set_sasl_auth_data(memcached_st *ptr, return MEMCACHED_SUCCESS; } -memcached_return_t memcached_destroy_sasl_auth_data(memcached_st *ptr) +memcached_return_t memcached_destroy_sasl_auth_data(memcached_st *shell) { if (LIBMEMCACHED_WITH_SASL_SUPPORT == 0) { return MEMCACHED_NOT_SUPPORTED; } + Memcached* ptr= memcached2Memcached(shell); if (ptr == NULL) { return MEMCACHED_INVALID_ARGUMENTS;