aboutsummaryrefslogtreecommitdiff
path: root/modules/ngrok.py
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2023-04-29 16:56:20 +0300
committerGitHub <noreply@github.com>2023-04-29 16:56:20 +0300
commitf2af6dad71a6f56b04b85566481ffb3cd55ae2a8 (patch)
treea7965e268523411e5e8af08dff60951df2fef4a2 /modules/ngrok.py
parent78b5bed3748c999514ed54ecdf7a68bbe3e34a04 (diff)
parent3158d17ccf6adfe974691f46526773df2f4028f5 (diff)
Merge pull request #9351 from nart4hire/fix-ngrok-recreate-tunnel
Fix Ngrok recreating tunnels every reload
Diffstat (limited to 'modules/ngrok.py')
-rw-r--r--modules/ngrok.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/modules/ngrok.py b/modules/ngrok.py
index 3df2c06b..1ad7989b 100644
--- a/modules/ngrok.py
+++ b/modules/ngrok.py
@@ -13,6 +13,18 @@ def connect(token, port, region):
config = conf.PyngrokConfig(
auth_token=token, region=region
)
+
+ # Guard for existing tunnels
+ existing = ngrok.get_tunnels(pyngrok_config=config)
+ if existing:
+ for established in existing:
+ # Extra configuration in the case that the user is also using ngrok for other tunnels
+ if established.config['addr'][-4:] == str(port):
+ public_url = existing[0].public_url
+ print(f'ngrok has already been connected to localhost:{port}! URL: {public_url}\n'
+ 'You can use this link after the launch is complete.')
+ return
+
try:
if account is None:
public_url = ngrok.connect(port, pyngrok_config=config, bind_tls=True).public_url