MCPcopy Create free account
hub / github.com/secdev/scapy / SvcParam

Class SvcParam

scapy/layers/dns.py:990–1023  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

988
989
990class SvcParam(Packet):
991 name = "SvcParam"
992 fields_desc = [ShortEnumField("key", 0, svc_param_keys),
993 FieldLenField("len", None, length_of="value", fmt="H"),
994 MultipleTypeField(
995 [
996 # mandatory
997 (FieldListField("value", [],
998 ShortEnumField("", 0, svc_param_keys),
999 length_from=lambda pkt: pkt.len),
1000 lambda pkt: pkt.key == 0),
1001 # alpn, no-default-alpn
1002 (DNSTextField("value", [],
1003 length_from=lambda pkt: pkt.len),
1004 lambda pkt: pkt.key in (1, 2)),
1005 # port
1006 (ShortField("value", 0),
1007 lambda pkt: pkt.key == 3),
1008 # ipv4hint
1009 (FieldListField("value", [],
1010 IPField("", "0.0.0.0"),
1011 length_from=lambda pkt: pkt.len),
1012 lambda pkt: pkt.key == 4),
1013 # ipv6hint
1014 (FieldListField("value", [],
1015 IP6Field("", "::"),
1016 length_from=lambda pkt: pkt.len),
1017 lambda pkt: pkt.key == 6),
1018 ],
1019 StrLenField("value", "",
1020 length_from=lambda pkt:pkt.len))]
1021
1022 def extract_padding(self, p):
1023 return "", p
1024
1025
1026class DNSRRSVCB(_DNSRRdummy):

Callers

nothing calls this directly

Calls 9

ShortEnumFieldClass · 0.90
FieldLenFieldClass · 0.90
MultipleTypeFieldClass · 0.90
FieldListFieldClass · 0.90
ShortFieldClass · 0.90
IP6FieldClass · 0.90
StrLenFieldClass · 0.90
DNSTextFieldClass · 0.85
IPFieldClass · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…