From d21eab60c2cf346b74e5ddf3d07337ded37c22b6 Mon Sep 17 00:00:00 2001 From: pouryare Date: Thu, 27 Jun 2019 06:05:01 +0430 Subject: [PATCH] Update mtprotoproxy.py adding expiration date for users --- mtprotoproxy.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mtprotoproxy.py b/mtprotoproxy.py index ac4e5c6..f2a9437 100755 --- a/mtprotoproxy.py +++ b/mtprotoproxy.py @@ -48,6 +48,9 @@ SECURE_ONLY = config.get("SECURE_ONLY", False) # one client can create many tcp connections, up to 8 USER_MAX_TCP_CONNS = config.get("USER_MAX_TCP_CONNS", {}) +# expiration +USER_EXPIRARION = config.get("USER_EXPIRARION", {}) + # length of used handshake randoms for active fingerprinting protection REPLAY_CHECK_LEN = config.get("REPLAY_CHECK_LEN", 32768) @@ -1061,7 +1064,7 @@ async def handle_client(reader_clt, writer_clt): task_clt_to_tg = asyncio.ensure_future(clt_to_tg) update_stats(user, curr_connects=1) - if user not in USER_MAX_TCP_CONNS or stats[user]["curr_connects"] <= USER_MAX_TCP_CONNS[user]: + if ((user not in USER_MAX_TCP_CONNS or stats[user]["curr_connects"] <= USER_MAX_TCP_CONNS[user]) and (user not in USER_EXPIRARION or datetime.datetime.now() <= datetime.datetime.strptime(USER_EXPIRARION[user],"%d/%m/%Y"))): await asyncio.wait([task_tg_to_clt, task_clt_to_tg], return_when=asyncio.FIRST_COMPLETED) update_stats(user, curr_connects=-1)