MCPcopy Index your code
hub / github.com/secdev/scapy / lazy_init

Method lazy_init

scapy/modules/nmap.py:63–99  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

61 """
62
63 def lazy_init(self):
64 # type: () -> None
65 try:
66 fdesc = open(conf.nmap_base
67 if self.filename is None else
68 self.filename, "rb")
69 except (IOError, TypeError):
70 warning("Cannot open nmap database [%s]", self.filename)
71 self.filename = None
72 return
73
74 self.base = []
75 self.base = cast(List[Tuple[str, Dict[str, Dict[str, str]]]], self.base)
76 name = None
77 sig = {} # type: Dict[str,Dict[str,str]]
78 for line in fdesc:
79 str_line = plain_str(line)
80 str_line = str_line.split('#', 1)[0].strip()
81 if not str_line:
82 continue
83 if str_line.startswith("Fingerprint "):
84 if name is not None:
85 self.base.append((name, sig))
86 name = str_line[12:].strip()
87 sig = {}
88 continue
89 if str_line.startswith("Class "):
90 continue
91 match_line = _NMAP_LINE.search(str_line)
92 if match_line is None:
93 continue
94 test, values = match_line.groups()
95 sig[test] = dict(val.split('=', 1) for val in
96 (values.split('%') if values else []))
97 if name is not None:
98 self.base.append((name, sig))
99 fdesc.close()
100
101 def get_base(self):
102 # type: () -> List[Tuple[str, Dict]]

Callers

nothing calls this directly

Calls 5

warningFunction · 0.90
plain_strFunction · 0.90
appendMethod · 0.45
searchMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected