@@ -755,10 +755,10 @@ def post_build(self, p, pay):
755755 elif conf .ipv6_enabled and isinstance (self .underlayer , scapy .layers .inet6 .IPv6 ) or isinstance (self .underlayer , scapy .layers .inet6 ._IPv6ExtHdr ): # noqa: E501
756756 ck = scapy .layers .inet6 .in6_chksum (socket .IPPROTO_TCP , self .underlayer , p ) # noqa: E501
757757 p = p [:16 ] + struct .pack ("!H" , ck ) + p [18 :]
758- elif self .underlayer .name == "AH" and isinstance (self .underlayer .underlayer , IP ):
758+ elif self .underlayer and self . underlayer .name == "AH" and isinstance (self .underlayer .underlayer , IP ):
759759 ck = in4_chksum (socket .IPPROTO_TCP , self .underlayer .underlayer , p )
760760 p = p [:16 ] + struct .pack ("!H" , ck ) + p [18 :]
761- elif self .underlayer . name == "AH" and (conf .ipv6_enabled and isinstance (self .underlayer .underlayer , scapy .layers .inet6 .IPv6 ) or isinstance (self .underlayer .underlayer , scapy .layers .inet6 ._IPv6ExtHdr )): # noqa: E501
761+ elif self .underlayer and self . underlayer . name == "AH" and (( conf .ipv6_enabled and isinstance (self .underlayer .underlayer , scapy .layers .inet6 .IPv6 ) ) or isinstance (self .underlayer .underlayer , scapy .layers .inet6 ._IPv6ExtHdr )): # noqa: E501
762762 ck = scapy .layers .inet6 .in6_chksum (socket .IPPROTO_TCP , self .underlayer .underlayer , p ) # noqa: E501
763763 p = p [:16 ] + struct .pack ("!H" , ck ) + p [18 :]
764764 else :
@@ -839,13 +839,13 @@ def post_build(self, p, pay):
839839 if ck == 0 :
840840 ck = 0xFFFF
841841 p = p [:6 ] + struct .pack ("!H" , ck ) + p [8 :]
842- elif self .underlayer .name == "AH" and isinstance (self .underlayer .underlayer , IP ):
842+ elif self .underlayer and self . underlayer .name == "AH" and isinstance (self .underlayer .underlayer , IP ):
843843 ck = in4_chksum (socket .IPPROTO_UDP , self .underlayer .underlayer , p )
844844 # According to RFC768 if the result checksum is 0, it should be set to 0xFFFF # noqa: E501
845845 if ck == 0 :
846846 ck = 0xFFFF
847847 p = p [:6 ] + struct .pack ("!H" , ck ) + p [8 :]
848- elif self .underlayer .name == "AH" and (isinstance (self .underlayer .underlayer , scapy .layers .inet6 .IPv6 ) or isinstance (self .underlayer .underlayer , scapy .layers .inet6 ._IPv6ExtHdr )): # noqa: E501
848+ elif self .underlayer and self . underlayer .name == "AH" and (isinstance (self .underlayer .underlayer , scapy .layers .inet6 .IPv6 ) or isinstance (self .underlayer .underlayer , scapy .layers .inet6 ._IPv6ExtHdr )): # noqa: E501
849849 ck = scapy .layers .inet6 .in6_chksum (socket .IPPROTO_UDP , self .underlayer .underlayer , p ) # noqa: E501
850850 # According to RFC2460 if the result checksum is 0, it should be set to 0xFFFF # noqa: E501
851851 if ck == 0 :
0 commit comments