1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-24 09:18:08 +00:00

Fix crash when winpcap is not installed

Ref https://github.com/GNS3/gns3-gui/issues/1380
This commit is contained in:
Julien Duponchelle 2016-07-12 13:09:08 +02:00
parent 26d49f19c1
commit febf0f7839
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8

View File

@ -138,6 +138,7 @@ def is_interface_up(interface):
# TODO: Windows & OSX support
return True
def _check_windows_service(service_name):
import pywintypes
@ -154,6 +155,7 @@ def _check_windows_service(service_name):
raise aiohttp.web.HTTPInternalServerError(text="Could not check if the {} service is running: {}".format(service_name, e.strerror))
return True
def interfaces():
"""
Gets the network interfaces on this server.
@ -178,13 +180,19 @@ def interfaces():
"mac_address": mac_address})
else:
try:
service_installed = True
if not _check_windows_service("npf") and not _check_windows_service("npcap"):
raise aiohttp.web.HTTPInternalServerError("The NPF or Npcap is not installed or running")
results = get_windows_interfaces()
service_installed = False
else:
results = get_windows_interfaces()
except ImportError:
message = "pywin32 module is not installed, please install it on the server to get the available interface names"
raise aiohttp.web.HTTPInternalServerError(text=message)
except Exception as e:
log.error("uncaught exception {type}".format(type=type(e)), exc_info=1)
raise aiohttp.web.HTTPInternalServerError(text="uncaught exception: {}".format(e))
if service_installed is False:
raise aiohttp.web.HTTPInternalServerError(text="The Winpcap or Npcap is not installed or running")
return results