struct local_context
{
uint8_t major_version;
- uint8_t micro_version;
uint8_t minor_version;
+ uint8_t micro_version;
bool truth;
};
/* Do Nothing */
struct local_context *check= (struct local_context *)context;
- if (instance->major_version >= check->major_version &&
- instance->micro_version >= check->micro_version &&
- instance->minor_version >= check->minor_version)
+ if (instance->major_version != UINT8_MAX &&
+ instance->major_version >= check->major_version &&
+ instance->minor_version >= check->minor_version &&
+ instance->micro_version >= check->micro_version )
{
return MEMCACHED_SUCCESS;
}
bool libmemcached_util_version_check(memcached_st *memc,
uint8_t major_version,
- uint8_t micro_version,
- uint8_t minor_version)
+ uint8_t minor_version,
+ uint8_t micro_version)
{
memcached_server_fn callbacks[1];
- memcached_version(memc);
+ memcached_return_t rc= memcached_version(memc);
+
+ if (rc != MEMCACHED_SUCCESS)
+ return false;
- struct local_context check= { .major_version= major_version, .micro_version= micro_version, .minor_version= minor_version, .truth= true };
+ struct local_context check= { .major_version= major_version, .minor_version= minor_version, .micro_version= micro_version, .truth= true };
callbacks[0]= check_server_version;
memcached_server_cursor(memc, callbacks, (void *)&check, 1);