lib/dalli/socket.rb in dalli-2.7.4 vs lib/dalli/socket.rb in dalli-2.7.5

- old
+ new

@@ -1,7 +1,16 @@ require 'rbconfig' +module Dalli::Server::TCPSocketOptions + def setsockopts(sock, options) + sock.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, true) + sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, true) if options[:keepalive] + sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_RCVBUF, options[:rcvbuf]) if options[:rcvbuf] + sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, options[:sndbuf]) if options[:sndbuf] + end +end + begin require 'kgio' puts "Using kgio socket IO" if defined?($TESTING) && $TESTING class Dalli::Server::KSocket < Kgio::Socket @@ -42,15 +51,16 @@ value end end class Dalli::Server::KSocket::TCP < Dalli::Server::KSocket + extend Dalli::Server::TCPSocketOptions + def self.open(host, port, server, options = {}) addr = Socket.pack_sockaddr_in(port, host) sock = start(addr) - sock.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, true) - sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, true) if options[:keepalive] + setsockopts(sock, options) sock.options = options sock.server = server sock.kgio_wait_writable sock end @@ -112,16 +122,16 @@ receiver.send(:include, InstanceMethods) end end class Dalli::Server::KSocket::TCP < TCPSocket + extend Dalli::Server::TCPSocketOptions include Dalli::Server::KSocket def self.open(host, port, server, options = {}) Timeout.timeout(options[:socket_timeout]) do sock = new(host, port) - sock.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, true) - sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, true) if options[:keepalive] + setsockopts(sock, options) sock.options = {:host => host, :port => port}.merge(options) sock.server = server sock end end