+
+const char *memcached_server_error(memcached_server_instance_st server)
+{
+ if (server == NULL)
+ {
+ return NULL;
+ }
+
+ 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 (server.error_messages == NULL)
+ {
+ return NULL;
+ }
+
+ memcached_error_t *error= libmemcached_xmalloc(server.root, 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 == NULL)
+ {
+ return MEMCACHED_INVALID_ARGUMENTS;
+ }
+
+ if (ptr and ptr->error_messages)
+ {
+ return ptr->error_messages->rc;
+ }
+
+ return MEMCACHED_SUCCESS;
+}