lib/packetgen/header/mdns.rb in packetgen-3.2.0 vs lib/packetgen/header/mdns.rb in packetgen-3.2.1

- old
+ new

@@ -29,50 +29,44 @@ def mdnsize iph = ip_header(self) case iph when IP iph.dst = '224.0.0.251' - llh = ll_header(self) - mac = case llh - when Eth - llh[:dst] - when Dot11 - if llh.to_ds? - llh[:mac3] - else - llh[:mac1] - end - end - mac.from_human('01:00:5E:00:00:FB') + dst_mac.from_human('01:00:5E:00:00:FB') when IPv6 iph.dst = 'ff02::fb' - llh = ll_header(self) - mac = case llh - when Eth - llh[:dst] - when Dot11 - if llh.to_ds? - llh[:mac3] - else - llh[:mac1] - end - end - mac.from_human('33:33:00:00:00:FB') + dst_mac.from_human('33:33:00:00:00:FB') end end # @api private # @note This method is used internally by PacketGen and should not be # directly called # @since 2.7.0 Set UDP sport according to bindings, only if sport is 0. # Needed by new bind API. def added_to_packet(packet) mdns_idx = packet.headers.size - packet.instance_eval "def mdnsize() @headers[#{mdns_idx}].mdnsize; end" + packet.instance_eval "def mdnsize() @headers[#{mdns_idx}].mdnsize; end" # def mdnsize() @headers[4].mdnsize; end return unless packet.is? 'UDP' return unless packet.udp.sport.zero? packet.udp.sport = UDP_PORT + end + + private + + def dst_mac + llh = ll_header(self) + case llh + when Eth + llh[:dst] + when Dot11 + if llh.to_ds? + llh[:mac3] + else + llh[:mac1] + end + end end end self.add_class MDNS UDP.bind MDNS, dport: MDNS::UDP_PORT