Imported from Launchpad using lp2gh.
SASL authentication doesn't work.
When connecting to a server using SASL, we have the following callstack :
- memcached_connect
- memcached_sasl_authenticate_connection
- memcached_response
- _read_one_response
in function _read_one_response, during SASL authentication, the rc value is set to MEMCACHED_AUTH_CONTINUE.
This value is not considered as a success by memcached_fatal which result in closing the connection to memcached, preventing the authentication to complete properly.
the memcached_fatal function should look like this :
static inline bool memcached_fatal(memcached_return_t rc)
{
return (
rc != MEMCACHED_BUFFERED &&
rc != MEMCACHED_CLIENT_ERROR &&
rc != MEMCACHED_DATA_EXISTS &&
rc != MEMCACHED_DELETED &&
rc != MEMCACHED_E2BIG &&
rc != MEMCACHED_END &&
rc != MEMCACHED_ITEM &&
rc != MEMCACHED_ERROR &&
rc != MEMCACHED_NOTFOUND &&
rc != MEMCACHED_NOTSTORED &&
rc != MEMCACHED_SERVER_MEMORY_ALLOCATION_FAILURE &&
rc != MEMCACHED_STAT &&
rc != MEMCACHED_STORED &&
rc != MEMCACHED_SUCCESS &&
rc != MEMCACHED_VALUE &&
rc != MEMCACHED_AUTH_CONTINUE);
}
Imported from Launchpad using lp2gh.
SASL authentication doesn't work.
When connecting to a server using SASL, we have the following callstack :
in function _read_one_response, during SASL authentication, the rc value is set to MEMCACHED_AUTH_CONTINUE.
This value is not considered as a success by memcached_fatal which result in closing the connection to memcached, preventing the authentication to complete properly.
the memcached_fatal function should look like this :
static inline bool memcached_fatal(memcached_return_t rc)
{
return (
rc != MEMCACHED_BUFFERED &&
rc != MEMCACHED_CLIENT_ERROR &&
rc != MEMCACHED_DATA_EXISTS &&
rc != MEMCACHED_DELETED &&
rc != MEMCACHED_E2BIG &&
rc != MEMCACHED_END &&
rc != MEMCACHED_ITEM &&
rc != MEMCACHED_ERROR &&
rc != MEMCACHED_NOTFOUND &&
rc != MEMCACHED_NOTSTORED &&
rc != MEMCACHED_SERVER_MEMORY_ALLOCATION_FAILURE &&
rc != MEMCACHED_STAT &&
rc != MEMCACHED_STORED &&
rc != MEMCACHED_SUCCESS &&
rc != MEMCACHED_VALUE &&
rc != MEMCACHED_AUTH_CONTINUE);
}