From b6cb81c3bca68bf6efc415be9d9a38801ef254d7 Mon Sep 17 00:00:00 2001 From: catborise Date: Tue, 14 Jul 2020 15:10:03 +0300 Subject: [PATCH] tunnel.py fix socket creation problem --- console/novncd | 14 +++----------- console/tunnel.py | 7 +++---- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/console/novncd b/console/novncd index d3aa445..08bc947 100755 --- a/console/novncd +++ b/console/novncd @@ -22,7 +22,7 @@ django.setup() import re import socket from six.moves import http_cookies as Cookie -from webvirtcloud.settings import WS_PORT, WS_HOST, WS_CERT +from webvirtcloud.settings import WS_PUBLIC_PORT, WS_HOST, WS_CERT from vrtManager.connection import CONN_SSH, CONN_SOCKET from console.tunnel import Tunnel from optparse import OptionParser @@ -55,7 +55,7 @@ parser.add_option("-p", dest="port", action="store", help="Listen port", - default=WS_PORT or 6080) + default=WS_PUBLIC_PORT or 6080) parser.add_option("-c", "--cert", @@ -145,13 +145,6 @@ class CompatibilityMixIn(object): if 'token' in cookie: token = cookie['token'].value - # cookie = Cookie.SimpleCookie() - # cookie.load(self.headers.getheader('cookie')) - # if 'token' not in cookie: - # self.msg('No token cookie found !') - # return False - # token = cookie['token'].value - (connhost, connport, connuser, conntype, console_host, console_port, console_socket) = get_connection_infos(token) @@ -213,8 +206,7 @@ class CompatibilityMixIn(object): if tsock: tsock.shutdown(socket.SHUT_RDWR) tsock.close() - if tunnel: - tunnel.close() + tunnel.close() raise diff --git a/console/tunnel.py b/console/tunnel.py index 539a269..4c686ea 100644 --- a/console/tunnel.py +++ b/console/tunnel.py @@ -28,7 +28,6 @@ import signal import logging from functools import reduce - class Tunnel(object): def __init__(self): self.outfd = None @@ -92,9 +91,9 @@ class Tunnel(object): os.close(0) os.close(1) os.close(2) - os.dup(fds[1].fileno()) - os.dup(fds[1].fileno()) - os.dup(errorfds[1].fileno()) + os.dup2(fds[1].fileno(), 0) + os.dup2(fds[1].fileno(), 1) + os.dup2(errorfds[1].fileno(), 2) os.execlp(*argv) os._exit(1) else: