Closed ramakrishnansr closed 3 years ago
@ramakrishnansr Strings#chars only exists since Ruby 2.6.1. So this is a bug in HTTP::Request...
I spoke too early. This is not a #chars issue but a nil issue.
The binding of HTTP::Header on TCP is buggy as it does not handle adding header, but only parsing it.
When I try to add a HTTP request to my packet using
pkt = PacketGen.gen("IP").add("TCP").add("HTTP::Request")
, I get the following error:7: from /var/lib/gems/2.5.0/gems/packetgen-3.1.8/lib/packetgen/packet.rb:137:in `add' 6: from /var/lib/gems/2.5.0/gems/packetgen-3.1.8/lib/packetgen/packet.rb:442:in `add_header' 5: from /var/lib/gems/2.5.0/gems/packetgen-3.1.8/lib/packetgen/packet.rb:462:in `add_to_previous_header' 4: from /var/lib/gems/2.5.0/gems/packetgen-3.1.8/lib/packetgen/header/base.rb:132:in `set' 3: from /var/lib/gems/2.5.0/gems/packetgen-3.1.8/lib/packetgen/header/base.rb:132:in `each' 2: from /var/lib/gems/2.5.0/gems/packetgen-3.1.8/lib/packetgen/header/base.rb:132:in `block in set' 1: from /var/lib/gems/2.5.0/gems/packetgen-3.1.8/lib/packetgen/header/base.rb:41:in `set' /var/lib/gems/2.5.0/gems/packetgen-3.1.8/lib/packetgen/header/http/request.rb:119:in `block in <module:Header>': undefined method `chars' for nil:NilClass (NoMethodError)
I am not sure if this is because of something I missed in the initialization?