Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
teeworlds_srvbrowse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
minus
teeworlds_srvbrowse
Commits
c948d20d
Commit
c948d20d
authored
Sep 28, 2014
by
minus
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed serverlist retrieval, added find_by_ip executable
parent
219ea049
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
4 deletions
+28
-4
find_by_ip.py
find_by_ip.py
+21
-0
teeworlds/master.py
teeworlds/master.py
+7
-4
No files found.
find_by_ip.py
0 → 100644
View file @
c948d20d
#!/usr/bin/env python3
import
re
import
sys
from
teeworlds
import
query_masters_serverlist
,
create_masters
,
EventSocket
e
=
EventSocket
()
m
=
create_masters
(
e
)
query_masters_serverlist
(
m
)
e
.
run
()
servers
=
[]
ip_filter
=
re
.
compile
(
"^"
+
sys
.
argv
[
1
].
replace
(
"."
,
"
\\
."
))
for
master
in
m
:
servers
.
extend
(
filter
(
lambda
s
:
ip_filter
.
search
(
str
(
s
.
address
)),
master
.
serverlist
))
servers
.
sort
(
key
=
lambda
s
:
s
.
address
)
for
server
in
servers
:
print
(
"{address: <15} on {master}"
.
format
(
address
=
str
(
server
.
address
),
master
=
server
.
_master
.
name
))
teeworlds/master.py
View file @
c948d20d
...
...
@@ -37,6 +37,7 @@ class MasterServer(object):
packet_list_request
=
10
*
b'
\xff
'
+
b'req2'
packet_list_response
=
10
*
b'
\xff
'
+
b'lis2'
serveraddr_size
=
18
max_servers_per_packet
=
75
def
__init__
(
self
,
address
,
data_cb
):
self
.
address
=
address
...
...
@@ -51,12 +52,14 @@ class MasterServer(object):
self
.
time_sent
=
time
()
def
response_received
(
self
,
data
):
if
len
(
data
)
<=
len
(
self
.
packet_list_response
)
or
not
data
.
startswith
(
self
.
packet_list_response
):
return
True
# that's not
i
t, wait for more
if
not
data
.
startswith
(
self
.
packet_list_response
):
return
True
# that's not
our packe
t, wait for more
self
.
latency
=
time
()
-
self
.
time_sent
L
.
debug
(
"received list response from {} in {} seconds"
.
format
(
self
.
address
,
self
.
latency
))
self
.
data_cb
(
data
[
len
(
self
.
packet_list_response
):])
return
False
list_data
=
data
[
len
(
self
.
packet_list_response
):]
self
.
data_cb
(
list_data
)
if
len
(
list_data
)
/
self
.
serveraddr_size
>=
self
.
max_servers_per_packet
:
return
True
# this is not the last packet
def
__init__
(
self
,
socket
,
address
,
name
=
None
,
server_factory
=
None
):
if
server_factory
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment