Method: RawSocket#send

Defined in:
lib/net/dns/resolver/socks.rb

#send(payload = '') ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/net/dns/resolver/socks.rb', line 44

def send(payload = '')
  packet = make_ip_header([[ @version+'0101', 'B8' ],            # version, hlen
                            [ 0, 'C' ],                          # tos
                            [ @tot_lenght + payload.size, 'n' ], # total len
                            [ @id, 'n' ],                        # id
                            [ 0, 'n' ],                          # flags, offset
                            [ 64, 'C' ],                         # ttl
                            [ @protocol, 'C' ],                  # protocol
                            [ 0, 'n' ],                          # checksum
                            [ @src_addr.to_i, 'N' ],             # source
                            [ @dest_addr.to_i, 'N' ],            # destination
                          ])
  packet << make_transport_header(payload.size)
  packet << [payload].pack("a*")
  @socket.send(packet,0,@to)
end