@@ -86,7 +86,7 @@ def update_status(self):
86
86
self .to_be_deleted = True
87
87
raise RuntimeError ("Tracker unresponsive for too long, removed" )
88
88
89
- self .update_from_bep_34 ()
89
+ self .update_scheme_from_bep_34 ()
90
90
self .update_ips ()
91
91
except RuntimeError as reason :
92
92
self .clear_tracker (reason = str (reason ))
@@ -124,7 +124,7 @@ def update_status(self):
124
124
self .interval = 10800
125
125
self .update_uptime ()
126
126
127
- def update_from_bep_34 (self ):
127
+ def update_scheme_from_bep_34 (self ):
128
128
valid_bep_34 , bep_34_info = scraper .get_bep_34 (self .host )
129
129
if valid_bep_34 : # Hostname has a valid TXT record as per BEP34
130
130
if not bep_34_info :
@@ -139,11 +139,14 @@ def update_from_bep_34(self):
139
139
)
140
140
parsed_url = parse .urlparse (self .url )
141
141
# Update tracker with the first protocol and URL set by TXT record
142
- first_bep_34_result = bep_34_info [0 ]
143
- new_scheme = "https" if first_bep_34_result [0 ] == "tcp" else "udp"
142
+ first_bep_34_protocol , first_bep_34_port = bep_34_info [0 ]
143
+ existing_scheme = parsed_url .scheme
144
+ new_scheme = (
145
+ "udp" if first_bep_34_protocol == "udp" else existing_scheme
146
+ )
144
147
self .url = parsed_url ._replace (
145
148
scheme = new_scheme ,
146
- netloc = f"{ parsed_url .hostname } :{ first_bep_34_result [ 1 ] } " ,
149
+ netloc = f"{ parsed_url .hostname } :{ first_bep_34_port } " ,
147
150
).geturl ()
148
151
return
149
152
else : # No valid BEP34, attempting existing URL
0 commit comments