+
+const char *memcached_server_error(memcached_server_instance_st server)
+{
+ if (not server)
+ return memcached_strerror(server->root, MEMCACHED_INVALID_ARGUMENTS);
+
+ if (not server->error_messages)
+ return memcached_strerror(server->root, MEMCACHED_SUCCESS);
+
+ if (not server->error_messages->size)
+ return memcached_strerror(server->root, server->error_messages->rc);
+
+ return server->error_messages->message;
+}
+
+
+memcached_error_t *memcached_error_copy(const memcached_server_st& server)
+{
+ if (not server.error_messages)
+ return NULL;
+
+ memcached_error_t *error= (memcached_error_t *)libmemcached_malloc(server.root, sizeof(memcached_error_t));
+ memcpy(error, server.error_messages, sizeof(memcached_error_t));
+ error->next= NULL;
+
+ return error;
+}
+
+memcached_return_t memcached_server_error_return(memcached_server_instance_st ptr)
+{
+ if (ptr and ptr->error_messages)
+ {
+ return ptr->error_messages->rc;
+ }
+
+ return MEMCACHED_FAILURE;
+}