X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fbehavior.c;h=6d1688601ce6f552463c139b05329008f1cdb9d7;hb=b41c57c2f84855cfd32a7b14008ca0aceb92f32b;hp=5deaccd8444c02352cdf99f9fde945bbeab76f2d;hpb=6d20441ecd4a841a81a9576076ee80c4dbd47235;p=m6w6%2Flibmemcached diff --git a/libmemcached/behavior.c b/libmemcached/behavior.c index 5deaccd8..6d168860 100644 --- a/libmemcached/behavior.c +++ b/libmemcached/behavior.c @@ -90,7 +90,7 @@ memcached_return_t memcached_behavior_set(memcached_st *ptr, memcached_quit(ptr); break; case MEMCACHED_BEHAVIOR_USE_UDP: - if (ptr->number_of_hosts) + if (memcached_server_count(ptr)) { return MEMCACHED_FAILURE; } @@ -252,13 +252,16 @@ uint64_t memcached_behavior_get(memcached_st *ptr, { int sock_size; socklen_t sock_length= sizeof(int); + memcached_server_instance_st *instance; + + instance= memcached_server_instance_fetch(ptr, 0); /* REFACTOR */ /* We just try the first host, and if it is down we return zero */ - if ((memcached_connect(&ptr->hosts[0])) != MEMCACHED_SUCCESS) + if ((memcached_connect(instance)) != MEMCACHED_SUCCESS) return 0; - if (getsockopt(ptr->hosts[0].fd, SOL_SOCKET, + if (getsockopt(instance->fd, SOL_SOCKET, SO_SNDBUF, &sock_size, &sock_length)) return 0; /* Zero means error */ @@ -268,15 +271,18 @@ uint64_t memcached_behavior_get(memcached_st *ptr, { int sock_size; socklen_t sock_length= sizeof(int); + memcached_server_instance_st *instance; + + instance= memcached_server_instance_fetch(ptr, 0); /** @note REFACTOR */ /* We just try the first host, and if it is down we return zero */ - if ((memcached_connect(&ptr->hosts[0])) != MEMCACHED_SUCCESS) + if ((memcached_connect(instance)) != MEMCACHED_SUCCESS) return 0; - if (getsockopt(ptr->hosts[0].fd, SOL_SOCKET, + if (getsockopt(instance->fd, SOL_SOCKET, SO_RCVBUF, &sock_size, &sock_length)) return 0; /* Zero means error */