X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Flibmemcached%2Fserver.hpp;h=d6fdd0da6a5c7e0694246ead1d5cd69780cf40d8;hb=ac25aff8b62e8596e20f0fd2a2c3eda96bdb437e;hp=582356d27bffe7cf5a79567845bdb3524e5f03aa;hpb=5e760300d15ef4c5b7eed3fb9f37920ebca2f6ec;p=awesomized%2Flibmemcached diff --git a/src/libmemcached/server.hpp b/src/libmemcached/server.hpp index 582356d2..d6fdd0da 100644 --- a/src/libmemcached/server.hpp +++ b/src/libmemcached/server.hpp @@ -1,104 +1,65 @@ -/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: - * - * Libmemcached library - * - * Copyright (C) 2011 Data Differential, http://datadifferential.com/ - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * - * * The names of its contributors may not be used to endorse or - * promote products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - +/* + +--------------------------------------------------------------------+ + | libmemcached - C/C++ Client Library for memcached | + +--------------------------------------------------------------------+ + | Redistribution and use in source and binary forms, with or without | + | modification, are permitted under the terms of the BSD license. | + | You should have received a copy of the license in a bundled file | + | named LICENSE; in case you did not receive a copy you can review | + | the terms online at: https://opensource.org/licenses/BSD-3-Clause | + +--------------------------------------------------------------------+ + | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ | + | Copyright (c) 2020 Michael Wallner | + +--------------------------------------------------------------------+ +*/ #pragma once -#ifdef HAVE_SYS_TIME_H -#include -#endif +#include "p9y/gettimeofday.hpp" #include -memcached_server_st *__server_create_with(memcached_st *memc, - memcached_server_st* self, - const memcached_string_t& hostname, - const in_port_t port, - uint32_t weight, - const memcached_connection_t type); +memcached_server_st *server_create_with(memcached_st *memc, memcached_server_st *self, + const memcached_string_t &hostname, const in_port_t port, + uint32_t weight, const memcached_connection_t type); -memcached_return_t memcached_server_add_parsed(memcached_st *ptr, - const char *hostname, - size_t hostname_length, - in_port_t port, +memcached_return_t memcached_server_add_parsed(memcached_st *ptr, const char *hostname, + size_t hostname_length, in_port_t port, uint32_t weight); -void __server_free(memcached_server_st *); +void server_free(memcached_server_st *); -static inline bool memcached_is_valid_servername(const memcached_string_t& arg) -{ +static inline bool memcached_is_valid_servername(const memcached_string_t &arg) { return (arg.c_str != NULL or arg.size == 0) and arg.size < MEMCACHED_NI_MAXHOST; } -static inline bool memcached_is_valid_filename(const memcached_string_t& arg) -{ +static inline bool memcached_is_valid_filename(const memcached_string_t &arg) { return arg.c_str != NULL and arg.size > 0 and arg.size < MEMCACHED_NI_MAXHOST; } void memcached_instance_free(memcached_instance_st *); -void set_last_disconnected_host(memcached_instance_st* self); +void set_last_disconnected_host(memcached_instance_st *self); -static inline void memcached_mark_server_for_timeout(memcached_instance_st* server) -{ - if (server->state != MEMCACHED_SERVER_STATE_IN_TIMEOUT) - { - if (server->server_timeout_counter_query_id != server->root->query_id) - { +static inline void memcached_mark_server_for_timeout(memcached_instance_st *server) { + if (server->state != MEMCACHED_SERVER_STATE_IN_TIMEOUT) { + if (server->server_timeout_counter_query_id != server->root->query_id) { server->server_timeout_counter++; - server->server_timeout_counter_query_id= server->root->query_id; + server->server_timeout_counter_query_id = server->root->query_id; } - if (server->server_timeout_counter >= server->root->server_timeout_limit) - { + if (server->server_timeout_counter >= server->root->server_timeout_limit) { struct timeval next_time; - if (gettimeofday(&next_time, NULL) == 0) - { - server->next_retry= next_time.tv_sec +server->root->retry_timeout; - } - else - { - server->next_retry= 1; // Setting the value to 1 causes the timeout to occur immediately + if (gettimeofday(&next_time, NULL) == 0) { + server->next_retry = next_time.tv_sec + server->root->retry_timeout; + } else { + server->next_retry = 1; // Setting the value to 1 causes the timeout to occur immediately } - server->state= MEMCACHED_SERVER_STATE_IN_TIMEOUT; - if (server->server_failure_counter_query_id != server->root->query_id) - { + server->state = MEMCACHED_SERVER_STATE_IN_TIMEOUT; + if (server->server_failure_counter_query_id != server->root->query_id) { server->server_failure_counter++; - server->server_failure_counter_query_id= server->root->query_id; + server->server_failure_counter_query_id = server->root->query_id; } set_last_disconnected_host(server); }