diff options
Diffstat (limited to 'memcached.c')
-rw-r--r-- | memcached.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/memcached.c b/memcached.c index f129865..3a79fba 100644 --- a/memcached.c +++ b/memcached.c @@ -457,6 +457,7 @@ conn *conn_new(const int sfd, enum conn_states init_state, c->iovused = 0; c->msgcurr = 0; c->msgused = 0; + c->authenticated = false; c->write_and_go = init_state; c->write_and_free = 0; @@ -1637,6 +1638,8 @@ static void init_sasl_conn(conn *c) { if (!settings.sasl) return; + c->authenticated = false; + if (!c->sasl_conn) { int result=sasl_server_new("memcached", NULL, @@ -1771,6 +1774,7 @@ static void process_bin_complete_sasl_auth(conn *c) { switch(result) { case SASL_OK: + c->authenticated = true; write_bin_response(c, "Authenticated", 0, 0, strlen("Authenticated")); pthread_mutex_lock(&c->thread->stats.mutex); c->thread->stats.auth_cmds++; @@ -1807,11 +1811,7 @@ static bool authenticated(conn *c) { rv = true; break; default: - if (c->sasl_conn) { - const void *uname = NULL; - sasl_getprop(c->sasl_conn, SASL_USERNAME, &uname); - rv = uname != NULL; - } + rv = c->authenticated; } if (settings.verbose > 1) { |