Sha256: af2135cd38135ef21611d7a74f133f57a937b78583d230452fc1afe84f3a7cc5
Contents?: true
Size: 1.06 KB
Versions: 1
Compression:
Stored size: 1.06 KB
Contents
# frozen_string_literal: true module Ftpd module GetsPeerAddress # Obtain the IP that the client connected _from_. # # How this is done depends upon which type of socket (SSL or not) # and what version of Ruby. # # * SSL socket # * #peeraddr. Uses BasicSocket.do_not_reverse_lookup. # * Ruby 1.8.7 # * #peeraddr, which does not take the "reverse lookup" # argument, relying instead using # BasicSocket.do_not_reverse_lookup. # * #getpeername, which does not do a reverse lookup. It is a # little uglier than #peeraddr. # * Ruby >=1.9.3 # * #peeraddr, which takes the "reverse lookup" argument. # * #getpeername - same as 1.8.7 # # @return [String] IP address def peer_ip(socket) if socket.respond_to?(:getpeername) # Non SSL sockaddr = socket.getpeername _port, host = Socket.unpack_sockaddr_in(sockaddr) host else # SSL BasicSocket.do_not_reverse_lookup = true socket.peeraddr.last end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ftpd-2.1.0 | lib/ftpd/gets_peer_address.rb |