# File lib/celluloid/io/socket.rb, line 47
      def self.try_convert(socket, convert_io = true)
        case socket
        when Celluloid::IO::Socket, Celluloid::IO::SSLServer
          socket
        when ::TCPServer
          TCPServer.new(socket)
        when ::TCPSocket
          TCPSocket.new(socket)
        when ::UDPSocket
          UDPSocket.new(socket)
        when ::UNIXServer
          UNIXServer.new(socket)
        when ::UNIXSocket
          UNIXSocket.new(socket)
        when OpenSSL::SSL::SSLServer
          SSLServer.new(socket.to_io, socket.instance_variable_get(:@ctx))
        when OpenSSL::SSL::SSLSocket
          SSLSocket.new(socket)
        else
          if convert_io
            return try_convert(IO.try_convert(socket), false)
          end
          nil
        end
      end