X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_connect.c;h=0d61f847bab0996e2de08a41ba333b47851b720c;hb=7b548d21a8eafec0b830ad1bd6429cecd4eaeba8;hp=fb79c80ad5d7296d900878a6e81406c80aa77a35;hpb=d76b611a9173f8ea494b6287d768fdce39159958;p=awesomized%2Flibmemcached diff --git a/libmemcached/memcached_connect.c b/libmemcached/memcached_connect.c index fb79c80a..0d61f847 100644 --- a/libmemcached/memcached_connect.c +++ b/libmemcached/memcached_connect.c @@ -218,7 +218,7 @@ static memcached_return network_connect(memcached_server_st *ptr) (void)set_socket_options(ptr); - int flags; + int flags= 0; if (ptr->root->connect_timeout) { flags= fcntl(ptr->fd, F_GETFL, 0); @@ -234,7 +234,9 @@ static memcached_return network_connect(memcached_server_st *ptr) if (errno == EINPROGRESS || /* nonblocking mode - first return, */ errno == EALREADY) /* nonblocking mode - subsequent returns */ { - struct pollfd fds[1] = { [0].fd = ptr->fd, [0].events = POLLOUT }; + struct pollfd fds[1]; + fds[0].fd = ptr->fd; + fds[0].events = POLLOUT; int error= poll(fds, 1, ptr->root->connect_timeout); if (error != 1 || fds[0].revents & POLLERR) @@ -242,7 +244,7 @@ static memcached_return network_connect(memcached_server_st *ptr) if (fds[0].revents & POLLERR) { int err; - int len = sizeof (err); + socklen_t len = sizeof (err); (void)getsockopt(ptr->fd, SOL_SOCKET, SO_ERROR, &err, &len); ptr->cached_errno= (err == 0) ? errno : err; } @@ -304,6 +306,7 @@ memcached_return memcached_connect(memcached_server_st *ptr) LIBMEMCACHED_MEMCACHED_CONNECT_START(); /* both retry_timeout and server_failure_limit must be set in order to delay retrying a server on error. */ + WATCHPOINT_ASSERT(ptr->root); if (ptr->root->retry_timeout && ptr->root->server_failure_limit) { struct timeval next_time;