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

Class SourceMACField

scapy/layers/l2.py:227–247  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

225
226
227class SourceMACField(MACField):
228 __slots__ = ["getif"]
229
230 def __init__(self, name, getif=None):
231 # type: (str, Optional[Any]) -> None
232 MACField.__init__(self, name, None)
233 self.getif = (lambda pkt: pkt.route()[0]) if getif is None else getif
234
235 def i2h(self, pkt, x):
236 # type: (Optional[Packet], Optional[str]) -> str
237 if x is None:
238 iff = self.getif(pkt)
239 if iff:
240 x = resolve_iface(iff).mac
241 if x is None:
242 x = "00:00:00:00:00:00"
243 return super(SourceMACField, self).i2h(pkt, x)
244
245 def i2m(self, pkt, x):
246 # type: (Optional[Packet], Optional[Any]) -> bytes
247 return super(SourceMACField, self).i2m(pkt, self.i2h(pkt, x))
248
249
250# Layers

Callers 6

MACsecSCIClass · 0.90
EtherClass · 0.85
Dot3Class · 0.85
ARPClass · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…