diff --git a/tes/__init__.py b/tes/__init__.py index 911593baea5ccf81a7616b04654e92f93a71f844..39355b49a93b02997cb8852ff05cfe36f7952207 100644 --- a/tes/__init__.py +++ b/tes/__init__.py @@ -27,6 +27,8 @@ else: api = Api(app) sshsessions = {} +lastcleanup = datetime.datetime.now() +cleanupinterval = datetime.timedelta(minutes=10) if DEV: from flask_cors import CORS, cross_origin CORS(app, supports_credentials=True, origin="localhost:4200") @@ -44,6 +46,13 @@ def after_cleanup_sessions(response): import logging import hashlib import json + global lastcleanup + global sshsessions + now = datetime.datetime.now() + if (now - lastcleanup) < cleanupinterval: + return response + lastcleanup = datetime.datetime.now() + logger=logging.getLogger() events = logging.getLogger('connection_events') slist = [] @@ -79,6 +88,7 @@ def after_cleanup_sessions(response): logger.error(e) logger.error(traceback.format_exc()) + events.info('currently {} active sessions'.format(len(sshsessions))) return response diff --git a/tes/sshwrapper/__init__.py b/tes/sshwrapper/__init__.py index e0ec9ba73987d6870e7d88dcf64193cb977f8706..a38aa1fb5989715cb791a76eea53d1af60b927ab 100644 --- a/tes/sshwrapper/__init__.py +++ b/tes/sshwrapper/__init__.py @@ -150,6 +150,12 @@ class Ssh: return ctrlsocket else: sess.lock.release() + try: + certs = sess.get_certs() + if b'The agent has no identities.\n' == certs: + raise SshCtrlException(certs.decode()) + except Exception as e: + pass raise SshCtrlException(stderr.decode()) @staticmethod diff --git a/tes/tunnelstat/__init__.py b/tes/tunnelstat/__init__.py index c1ad08e52d7a986567856a5b8d8071b56f32efa7..d8bdf106e26f228a37752882be9e36bec7dc030a 100644 --- a/tes/tunnelstat/__init__.py +++ b/tes/tunnelstat/__init__.py @@ -14,6 +14,7 @@ class SSHSession: """ def __init__(self,sshsessid,**kwargs): self.last = datetime.datetime.now() + self.first = datetime.datetime.now() self.socket = None self.token = None self.port = {} diff --git a/twsproxy/__init__.py b/twsproxy/__init__.py index e80548465ba9890c408f17c931a9a892363599d2..9a6ddc483388a858c3e56af412a5a95492be47c0 100644 --- a/twsproxy/__init__.py +++ b/twsproxy/__init__.py @@ -198,7 +198,7 @@ def mainserver(port=None): to_log = to_log + traceback.format_exc() logging.basicConfig(filename=os.path.expanduser("~/.tws.log"),format="%(asctime)s %(levelname)s:%(process)s: %(message)s") logger = logging.getLogger() - logger.setLevel(logging.DEBUG) + logger.setLevel(logging.ERROR) if to_log is not None: logger.debug(to_log) logger.debug("starting TWS proxy")