diff --git a/server/www/teleport/webroot/app/base/webapp.py b/server/www/teleport/webroot/app/base/webapp.py
index ad17f0f..30bc983 100644
--- a/server/www/teleport/webroot/app/base/webapp.py
+++ b/server/www/teleport/webroot/app/base/webapp.py
@@ -56,10 +56,13 @@ class WebApp:
rep = urllib.request.urlopen(req, timeout=3)
body = rep.read().decode()
x = json.loads(body)
- log.d('connect core server and get config info succeeded.\n')
- cfg.update_core(x['data'])
+ if 'code' not in x or x['code'] != 0:
+ log.e('connect core-server for get config info failed.\n')
+ else:
+ cfg.update_core(x['data'])
+ log.d('get config info of core-server succeeded.\n')
except:
- log.w('can not connect to core server to get config, maybe it not start yet, ignore.\n')
+ log.w('can not connect to core-server to get config, maybe it not start yet, ignore.\n')
def run(self):
log.i('\n')
@@ -93,6 +96,23 @@ class WebApp:
cfg.app_mode = APP_MODE_NORMAL
_db.load_system_config()
+ try:
+ # 灏嗚繍琛屾椂閰嶇疆鍙戦佺粰鏍稿績鏈嶅姟
+ req = {'method': 'set_config', 'param': {'noop_timeout': tp_cfg().sys.session.noop_timeout}}
+ req_data = json.dumps(req)
+ data = urllib.parse.quote(req_data).encode('utf-8')
+ req = urllib.request.Request(url=cfg.common.core_server_rpc, data=data)
+ rep = urllib.request.urlopen(req, timeout=3)
+ body = rep.read().decode()
+ x = json.loads(body)
+ if 'code' not in x or x['code'] != 0:
+ print(x)
+ log.e('connect core-server for set runtime-config failed.\n')
+ else:
+ log.d('set runtime-config for core-server succeeded.\n')
+ except:
+ log.w('can not connect to core-server to set runtime-config, maybe it not start yet, ignore.\n')
+
if not tp_session().init():
log.e('can not initialize session manager.\n')
return 0
diff --git a/server/www/teleport/webroot/app/controller/rpc.py b/server/www/teleport/webroot/app/controller/rpc.py
index 9d0133d..d98e1d5 100644
--- a/server/www/teleport/webroot/app/controller/rpc.py
+++ b/server/www/teleport/webroot/app/controller/rpc.py
@@ -103,7 +103,7 @@ class RpcHandler(TPBaseJsonHandler):
code = param['code']
except:
return self.write_json(TPE_PARAM)
- if 'rid' not in param or 'code' not in param :
+ if 'rid' not in param or 'code' not in param:
return self.write_json(TPE_PARAM)
if not record.session_update(rid, protocol_sub_type, code):
@@ -140,6 +140,13 @@ class RpcHandler(TPBaseJsonHandler):
log.d('update base server config info.\n')
tp_cfg().update_core(ret_data)
+ # 灏嗚繍琛屾椂閰嶇疆鍙戦佺粰鏍稿績鏈嶅姟
+ req = {'method': 'set_config', 'param': {'noop_timeout': tp_cfg().sys.session.noop_timeout}}
+ _yr = core_service_async_post_http(req)
+ code, ret_data = yield _yr
+ if code != TPE_OK:
+ return self.write_json(code, 'set runtime-config to core-service failed.')
+
return self.write_json(TPE_OK)
def _exit(self):
diff --git a/server/www/teleport/webroot/app/controller/system.py b/server/www/teleport/webroot/app/controller/system.py
index 1ea20c8..acc3d4f 100644
--- a/server/www/teleport/webroot/app/controller/system.py
+++ b/server/www/teleport/webroot/app/controller/system.py
@@ -216,6 +216,7 @@ class DoGetLogsHandler(TPBaseJsonHandler):
class DoSaveCfgHandler(TPBaseJsonHandler):
+ @tornado.gen.coroutine
def post(self):
ret = self.check_privilege(TP_PRIVILEGE_SYS_CONFIG)
if ret != TPE_OK:
@@ -287,11 +288,20 @@ class DoSaveCfgHandler(TPBaseJsonHandler):
_flag_ssh = _cfg['flag_ssh']
err = system_model.save_config(self, '鏇存柊杩炴帴鎺у埗璁剧疆', 'session', _cfg)
if err == TPE_OK:
+ try:
+ req = {'method': 'set_config', 'param': {'noop_timeout': _noop_timeout}}
+ _yr = core_service_async_post_http(req)
+ code, ret_data = yield _yr
+ if code != TPE_OK:
+ log.e('can not set runtime-config to core-server.\n')
+ return self.write_json(code)
+ except:
+ pass
+
tp_cfg().sys.session.noop_timeout = _noop_timeout
tp_cfg().sys.session.flag_record = _flag_record
tp_cfg().sys.session.flag_rdp = _flag_rdp
tp_cfg().sys.session.flag_ssh = _flag_ssh
- tp_session().update_default_expire()
else:
return self.write_json(err)