Class: ICMP4EM::Proxy::Request
- Inherits:
-
Object
- Object
- ICMP4EM::Proxy::Request
- Includes:
- EM::Deferrable
- Defined in:
- lib/icmp4em/proxy/request.rb
Instance Attribute Summary collapse
-
#dest_ip ⇒ Object
Returns the value of attribute dest_ip.
-
#packet ⇒ Object
Returns the value of attribute packet.
-
#source_ip ⇒ Object
Returns the value of attribute source_ip.
-
#source_port ⇒ Object
Returns the value of attribute source_port.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(args = {}) ⇒ Request
constructor
A new instance of Request.
- #key ⇒ Object
- #key_string ⇒ Object
- #send(args = {}) ⇒ Object
- #to_bytes ⇒ Object
Constructor Details
#initialize(args = {}) ⇒ Request
Returns a new instance of Request.
25 26 |
# File 'lib/icmp4em/proxy/request.rb', line 25 def initialize args = {} end |
Instance Attribute Details
#dest_ip ⇒ Object
Returns the value of attribute dest_ip.
8 9 10 |
# File 'lib/icmp4em/proxy/request.rb', line 8 def dest_ip @dest_ip end |
#packet ⇒ Object
Returns the value of attribute packet.
9 10 11 |
# File 'lib/icmp4em/proxy/request.rb', line 9 def packet @packet end |
#source_ip ⇒ Object
Returns the value of attribute source_ip.
6 7 8 |
# File 'lib/icmp4em/proxy/request.rb', line 6 def source_ip @source_ip end |
#source_port ⇒ Object
Returns the value of attribute source_port.
7 8 9 |
# File 'lib/icmp4em/proxy/request.rb', line 7 def source_port @source_port end |
Class Method Details
.from_bytes(args = {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/icmp4em/proxy/request.rb', line 11 def self.from_bytes args = {} request = Request.new data = args[:data] address_length = data.unpack("n").first request.source_ip = args[:source_ip] request.source_port = args[:source_port] request.dest_ip = data[2,address_length] request.packet = Packet.from_bytes data[address_length + 2, data.length] request end |
Instance Method Details
#key ⇒ Object
32 33 34 |
# File 'lib/icmp4em/proxy/request.rb', line 32 def key @packet.key end |
#key_string ⇒ Object
36 37 38 |
# File 'lib/icmp4em/proxy/request.rb', line 36 def key_string key.unpack("H*").first end |
#send(args = {}) ⇒ Object
40 41 42 43 |
# File 'lib/icmp4em/proxy/request.rb', line 40 def send args = {} sock_addr = Socket.pack_sockaddr_in(0, @dest_ip) args[:socket].send @packet.to_bytes, 0, sock_addr end |
#to_bytes ⇒ Object
28 29 30 |
# File 'lib/icmp4em/proxy/request.rb', line 28 def to_bytes [@dest_ip.length].pack("n") + @dest_ip + @packet.to_bytes end |