+ temp_flag= MEM_TCP_NODELAY;
+ break;
+ case MEMCACHED_BEHAVIOR_HASH:
+ return ptr->hash;
+ case MEMCACHED_BEHAVIOR_KETAMA:
+ temp_flag= MEM_USE_KETAMA;
+ break;
+ case MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE:
+ {
+ int sock_size;
+ socklen_t sock_length= sizeof(int);
+
+ /* We just try the first host, and if it is down we return zero */
+ if ((memcached_connect(ptr, 0)) != MEMCACHED_SUCCESS)
+ return 0;
+
+ if (getsockopt(ptr->hosts[0].fd, SOL_SOCKET,
+ SO_SNDBUF, &sock_size, &sock_length))
+ return 0; /* Zero means error */
+
+ return sock_size;
+ }
+ case MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE:
+ {
+ int sock_size;
+ socklen_t sock_length= sizeof(int);
+
+ /* We just try the first host, and if it is down we return zero */
+ if ((memcached_connect(ptr, 0)) != MEMCACHED_SUCCESS)
+ return 0;
+
+ if (getsockopt(ptr->hosts[0].fd, SOL_SOCKET,
+ SO_RCVBUF, &sock_size, &sock_length))
+ return 0; /* Zero means error */
+
+ return sock_size;
+ }