X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=clients%2Futilities.cc;h=97c3078377789040772bbe3b4176e9a19dc6d0a5;hb=c88563b65a81ad1743f26ad66376704d84043a33;hp=ca109adcfa66bd1229e0dbaa9ee0640356451d1d;hpb=67456d74f5bd4f354a360d70da503dc58cbe5971;p=awesomized%2Flibmemcached diff --git a/clients/utilities.cc b/clients/utilities.cc index ca109adc..97c30783 100644 --- a/clients/utilities.cc +++ b/clients/utilities.cc @@ -127,98 +127,10 @@ void process_hash_option(memcached_st *memc, char *opt_hash) } } -#ifdef LIBMEMCACHED_WITH_SASL_SUPPORT -static char *username; -static char *passwd; - -static int get_username(void *context, int id, const char **result, unsigned int *len) -{ - (void)context; - if (!result || (id != SASL_CB_USER && id != SASL_CB_AUTHNAME)) - return SASL_BADPARAM; - - *result= username; - if (len) - *len= (username == NULL) ? 0 : (unsigned int)strlen(username); - - return SASL_OK; -} - -static int get_password(sasl_conn_t *conn, void *context, int id, - sasl_secret_t **psecret) -{ - (void)context; - static sasl_secret_t* ptr; - - if (!conn || ! psecret || id != SASL_CB_PASS) - return SASL_BADPARAM; - - if (passwd == NULL) - { - *psecret= NULL; - return SASL_OK; - } - - size_t len= strlen(passwd); - ptr= (sasl_secret_t *)malloc(sizeof(sasl_secret_t) + len +1); - if (not ptr) - return SASL_NOMEM; - - ptr->len= len; - memcpy(ptr->data, passwd, len); - ptr->data[len]= 0; - - *psecret= ptr; - return SASL_OK; -} - -typedef int (*local_sasl_fn)(void); - -/* callbacks we support */ -static sasl_callback_t sasl_callbacks[] = { - { SASL_CB_USER, (local_sasl_fn)get_username, NULL }, - { SASL_CB_AUTHNAME, (local_sasl_fn)get_username, NULL }, - { SASL_CB_PASS, (local_sasl_fn)get_password, NULL }, - { SASL_CB_LIST_END, NULL, NULL } -}; -#endif - -bool initialize_sasl(memcached_st *memc, char *user, char *password) -{ -#ifdef LIBMEMCACHED_WITH_SASL_SUPPORT - if (user != NULL && password != NULL) - { - username= user; - passwd= password; - - if (sasl_client_init(NULL) != SASL_OK) - { - fprintf(stderr, "Failed to initialize sasl library!\n"); - return false; - } - memcached_set_sasl_callbacks(memc, sasl_callbacks); - } -#else - (void)memc; - (void)user; - (void)password; -#endif - - return true; -} - -void shutdown_sasl(void) -{ -#ifdef LIBMEMCACHED_WITH_SASL_SUPPORT - if (username != NULL || passwd != NULL) - sasl_done(); -#endif -} - void initialize_sockets(void) { /* Define the function for all platforms to avoid #ifdefs in each program */ -#ifdef WIN32 +#if defined(WIN32) && WIN32 WSADATA wsaData; if (WSAStartup(MAKEWORD(2,0), &wsaData) != 0) {