Fix the GUI disconnect from the server

Fix https://github.com/GNS3/gns3-gui/issues/2084
pull/1055/head
Julien Duponchelle 7 years ago
parent 89394ba7e0
commit 7044c8c9ff
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8

@ -156,7 +156,6 @@ class ProjectHandler:
response.content_type = "application/json"
response.set_status(200)
response.enable_chunked_encoding()
# Very important: do not send a content length otherwise QT closes the connection (curl can consume the feed)
response.start(request)
queue = project.get_listen_queue()
@ -238,7 +237,6 @@ class ProjectHandler:
response.content_type = "application/octet-stream"
response.set_status(200)
response.enable_chunked_encoding()
# Very important: do not send a content length otherwise QT closes the connection (curl can consume the feed)
try:
with open(path, "rb") as f:
@ -280,7 +278,6 @@ class ProjectHandler:
response.content_type = "application/octet-stream"
response.set_status(200)
response.enable_chunked_encoding()
# Very important: do not send a content length otherwise QT closes the connection (curl can consume the feed)
try:
with open(path, "rb") as f:
@ -354,7 +351,6 @@ class ProjectHandler:
response.content_type = 'application/gns3project'
response.headers['CONTENT-DISPOSITION'] = 'attachment; filename="{}.gns3project"'.format(project.name)
response.enable_chunked_encoding()
# Very important: do not send a content length otherwise QT closes the connection (curl can consume the feed)
yield from response.prepare(request)
include_images = bool(int(request.json.get("include_images", "0")))

@ -178,7 +178,6 @@ class LinkHandler:
response.content_type = "application/vnd.tcpdump.pcap"
response.set_status(200)
response.enable_chunked_encoding()
# Very important: do not send a content length otherwise QT closes the connection (curl can consume the feed)
yield from response.prepare(request)
while True:

@ -210,7 +210,6 @@ class ProjectHandler:
response.content_type = "application/json"
response.set_status(200)
response.enable_chunked_encoding()
# Very important: do not send a content length otherwise QT closes the connection (curl can consume the feed)
yield from response.prepare(request)
with controller.notification.queue(project) as queue:
@ -292,7 +291,6 @@ class ProjectHandler:
response.content_type = 'application/gns3project'
response.headers['CONTENT-DISPOSITION'] = 'attachment; filename="{}.gns3project"'.format(project.name)
response.enable_chunked_encoding()
# Very important: do not send a content length otherwise QT closes the connection (curl can consume the feed)
yield from response.prepare(request)
for data in datas:
@ -404,7 +402,6 @@ class ProjectHandler:
response.content_type = "application/octet-stream"
response.set_status(200)
response.enable_chunked_encoding()
# Very important: do not send a content length otherwise QT closes the connection (curl can consume the feed)
try:
with open(path, "rb") as f:

@ -44,6 +44,11 @@ class Response(aiohttp.web.Response):
headers['Server'] = "Python/{0[0]}.{0[1]} GNS3/{1}".format(sys.version_info, __version__)
super().__init__(headers=headers, **kwargs)
def enable_chunked_encoding():
# Very important: do not send a content length otherwise QT closes the connection (curl can consume the feed)
response.content_length = None
super().enable_chunked_encoding()
@asyncio.coroutine
def prepare(self, request):
if log.getEffectiveLevel() == logging.DEBUG:

Loading…
Cancel
Save