Skip to content
Snippets Groups Projects
Commit df91492e authored by Guillaume Valadon's avatar Guillaume Valadon Committed by GitHub
Browse files

Merge pull request #816 from p-l-/fix-manufdb

Try to read the manufacturer DB from various places
parents a14bcca1 cd588cfd
No related branches found
No related tags found
No related merge requests found
...@@ -210,9 +210,9 @@ class ManufDA(DADict): ...@@ -210,9 +210,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"#"):
...@@ -224,27 +224,37 @@ def load_manuf(filename): ...@@ -224,27 +224,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