+
+const char *memcached_server_error(const memcached_server_instance_st server)
+{
+ if (server == NULL)
+ {
+ return NULL;
+ }
+
+ if (server->error_messages == NULL)
+ {
+ return memcached_strerror(server->root, MEMCACHED_SUCCESS);
+ }
+
+ if (server->error_messages->size == 0)
+ {
+ return memcached_strerror(server->root, server->error_messages->rc);
+ }
+
+ return server->error_messages->message;
+}
+
+
+memcached_error_t *memcached_error_copy(const org::libmemcached::Instance& 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;
+}
+
+memcached_return_t memcached_instance_error_return(org::libmemcached::Instance* instance)
+{
+ if (instance == NULL)
+ {
+ return MEMCACHED_INVALID_ARGUMENTS;
+ }
+
+ if (instance and instance->error_messages)
+ {
+ return instance->error_messages->rc;
+ }
+
+ return MEMCACHED_SUCCESS;
+}