lib/rex/socket/ip.rb in librex-0.0.68 vs lib/rex/socket/ip.rb in librex-0.0.70

- old
+ new

@@ -6,126 +6,126 @@ # This class provides methods for interacting with a IP socket. # ### module Rex::Socket::Ip - include Rex::Socket + include Rex::Socket - ## - # - # Factory - # - ## + ## + # + # Factory + # + ## - # - # Creates the client using the supplied hash. - # - def self.create(hash = {}) - hash['Proto'] = 'ip' - self.create_param(Rex::Socket::Parameters.from_hash(hash)) - end + # + # Creates the client using the supplied hash. + # + def self.create(hash = {}) + hash['Proto'] = 'ip' + self.create_param(Rex::Socket::Parameters.from_hash(hash)) + end - # - # Wrapper around the base socket class' creation method that automatically - # sets the parameter's protocol to IP. - # - def self.create_param(param) - param.proto = 'ip' - Rex::Socket.create_param(param) - end + # + # Wrapper around the base socket class' creation method that automatically + # sets the parameter's protocol to IP. + # + def self.create_param(param) + param.proto = 'ip' + Rex::Socket.create_param(param) + end - ## - # - # IP connected state methods - # - ## + ## + # + # IP connected state methods + # + ## - # - # Write the supplied datagram to the connected IP socket. - # - def write(gram) - raise RuntimeError, "IP sockets must use sendto(), not write()" - end + # + # Write the supplied datagram to the connected IP socket. + # + def write(gram) + raise RuntimeError, "IP sockets must use sendto(), not write()" + end - alias put write + alias put write - # - # Read a datagram from the IP socket. - # - def read(length = 65535) - raise RuntimeError, "IP sockets must use recvfrom(), not read()" - end + # + # Read a datagram from the IP socket. + # + def read(length = 65535) + raise RuntimeError, "IP sockets must use recvfrom(), not read()" + end - ## - # - # IP non-connected state methods - # - ## + ## + # + # IP non-connected state methods + # + ## - # - # Sends a datagram to the supplied host:port with optional flags. - # - def sendto(gram, peerhost, flags = 0) - dest = ::Socket.pack_sockaddr_in(0, peerhost) + # + # Sends a datagram to the supplied host:port with optional flags. + # + def sendto(gram, peerhost, flags = 0) + dest = ::Socket.pack_sockaddr_in(0, peerhost) - # Some BSDs require byteswap for len and offset - if( - Rex::Compat.is_freebsd or - Rex::Compat.is_netbsd or - Rex::Compat.is_bsdi or - Rex::Compat.is_macosx - ) - gram=gram.dup - gram[2,2]=gram[2,2].unpack("n").pack("s") - gram[6,2]=gram[6,2].unpack("n").pack("s") - end + # Some BSDs require byteswap for len and offset + if( + Rex::Compat.is_freebsd or + Rex::Compat.is_netbsd or + Rex::Compat.is_bsdi or + Rex::Compat.is_macosx + ) + gram=gram.dup + gram[2,2]=gram[2,2].unpack("n").pack("s") + gram[6,2]=gram[6,2].unpack("n").pack("s") + end - begin - send(gram, flags, dest) - rescue ::Errno::EHOSTUNREACH,::Errno::ENETDOWN,::Errno::ENETUNREACH,::Errno::ENETRESET,::Errno::EHOSTDOWN,::Errno::EACCES,::Errno::EINVAL,::Errno::EADDRNOTAVAIL - return nil - end + begin + send(gram, flags, dest) + rescue ::Errno::EHOSTUNREACH,::Errno::ENETDOWN,::Errno::ENETUNREACH,::Errno::ENETRESET,::Errno::EHOSTDOWN,::Errno::EACCES,::Errno::EINVAL,::Errno::EADDRNOTAVAIL + return nil + end - end + end - # - # Receives a datagram and returns the data and host of the requestor - # as [ data, host ]. - # - def recvfrom(length = 65535, timeout=def_read_timeout) - begin - if ((rv = ::IO.select([ fd ], nil, nil, timeout)) and - (rv[0]) and (rv[0][0] == fd) - ) - data, saddr = super(length) - af, host = Rex::Socket.from_sockaddr(saddr) + # + # Receives a datagram and returns the data and host of the requestor + # as [ data, host ]. + # + def recvfrom(length = 65535, timeout=def_read_timeout) + begin + if ((rv = ::IO.select([ fd ], nil, nil, timeout)) and + (rv[0]) and (rv[0][0] == fd) + ) + data, saddr = super(length) + af, host = Rex::Socket.from_sockaddr(saddr) - return [ data, host ] - else - return [ '', nil ] - end - rescue Exception - return [ '', nil ] - end - end + return [ data, host ] + else + return [ '', nil ] + end + rescue Exception + return [ '', nil ] + end + end - # - # Calls recvfrom and only returns the data - # - def get(timeout=nil) - data, saddr = recvfrom(65535, timeout) - return data - end + # + # Calls recvfrom and only returns the data + # + def get(timeout=nil) + data, saddr = recvfrom(65535, timeout) + return data + end - # - # The default number of seconds to wait for a read operation to timeout. - # - def def_read_timeout - 10 - end + # + # The default number of seconds to wait for a read operation to timeout. + # + def def_read_timeout + 10 + end - def type? - return 'ip' - end + def type? + return 'ip' + end end