Skip to content
Snippets Groups Projects
Commit cd588cfd authored by Pierre LALET's avatar Pierre LALET
Browse files

Try to read the manufacturer DB from various places

parent 3e99428d
No related branches found
No related tags found
No related merge requests found
...@@ -161,9 +161,9 @@ class ManufDA(DADict): ...@@ -161,9 +161,9 @@ class ManufDA(DADict):
def load_manuf(filename): def load_manuf(filename):
try: manufdb=ManufDA(_name=filename)
manufdb=ManufDA(_name=filename) with open(filename, "rb") as fdesc:
for l in open(filename, "rb"): for l in fdesc:
try: try:
l = l.strip() l = l.strip()
if not l or l.startswith(b"#"): if not l or l.startswith(b"#"):
...@@ -175,27 +175,37 @@ def load_manuf(filename): ...@@ -175,27 +175,37 @@ def load_manuf(filename):
else: else:
lng = l[i+2:] lng = l[i+2:]
manufdb[oui] = shrt, lng manufdb[oui] = shrt, lng
except Exception as e: except Exception:
log_loading.warning("Couldn't parse one line from [%s] [%r] (%s)" % (filename, l, e)) log_loading.warning("Couldn't parse one line from [%s] [%r]",
except IOError: filename, l, exc_info=True)
log_loading.warning("Couldn't open [%s] file" % filename)
return ""
return manufdb return manufdb
if WINDOWS: if WINDOWS:
ETHER_TYPES=load_ethertypes("ethertypes") ETHER_TYPES=load_ethertypes("ethertypes")
IP_PROTOS=load_protocols(os.environ["SystemRoot"]+"\system32\drivers\etc\protocol") IP_PROTOS=load_protocols(os.environ["SystemRoot"]+"\system32\drivers\etc\protocol")
TCP_SERVICES,UDP_SERVICES=load_services(os.environ["SystemRoot"] + "\system32\drivers\etc\services") TCP_SERVICES,UDP_SERVICES=load_services(os.environ["SystemRoot"] + "\system32\drivers\etc\services")
# Default value, will be updated by arch.windows # Default value, will be updated by arch.windows
MANUFDB = load_manuf(os.environ["ProgramFiles"] + "\\wireshark\\manuf") try:
MANUFDB = load_manuf(os.environ["ProgramFiles"] + "\\wireshark\\manuf")
except IOError:
log_loading.warning("Cannot read [%s]", filename)
MANUFDB = None
else: else:
IP_PROTOS=load_protocols("/etc/protocols") IP_PROTOS=load_protocols("/etc/protocols")
ETHER_TYPES=load_ethertypes("/etc/ethertypes") ETHER_TYPES=load_ethertypes("/etc/ethertypes")
TCP_SERVICES,UDP_SERVICES=load_services("/etc/services") TCP_SERVICES,UDP_SERVICES=load_services("/etc/services")
MANUFDB = load_manuf("/usr/share/wireshark/manuf") MANUFDB = None
for prefix in ['/usr', '/usr/local', '/opt', '/opt/wireshark']:
try:
MANUFDB = load_manuf(os.path.join(prefix, "share", "wireshark",
"manuf"))
if MANUFDB:
break
except IOError:
pass
if not MANUFDB:
log_loading.warning("Cannot read wireshark manuf database")
##################### #####################
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment