Commit Graph

59 Commits

Author SHA1 Message Date
sfan5
d945b26f9f Add minimal lint workflow 2024-03-02 18:55:10 +01:00
Buckaroo Banzai
6fba704bb0 use max_age instead of cache_timeout (for flask > 2.0) 2023-05-05 10:36:08 +02:00
sfan5
218f8d9bc5 Fix cache control for geoip response
Storing this in public caches is not actually safe.
2022-09-20 22:49:13 +02:00
sfan5
b0fed2e9f7 Switch GeoIP backend to be able to use an up-to-date database 2022-09-20 22:23:11 +02:00
sofar
d2f09370f7 Add interface for client to lookup it's own continent (#34)
This adds `/geoip` which returns a json object with one key-value pair,
`continent` = `unknown` or one of `NA`, `SA` etc. plus a 200 exit code,
or a 500 code if things went south badly.
2022-09-20 21:53:04 +02:00
sfan5
84a40e406b Remove "guest" user penalty
Much overdue as the mobile apps that justified this are long gone
closes #50, closes #17
2021-09-05 21:06:57 +02:00
sfan5
5d5f31d295 Only apply uptime penalty on repeated restarts 2021-03-15 12:35:02 +01:00
sfan5
a9ecf55b38 Avoid unnecesary disk writes 2021-03-15 11:38:49 +01:00
sfan5
9f144f3e3c Adjust server ranking
specificially, penalize servers that support both v4 and v5
Reasoning: We, as a project, have no interest in promoting servers
that intentionally restrict themselves to the feature set of an old,
potentially buggy version.
2021-03-15 11:27:38 +01:00
sfan5
04810a094c Improve lookup failure logging 2019-07-17 12:53:11 +02:00
sfan5
85c3048cd4 Fix handling of GeoIP lookup failure 2019-07-17 12:46:57 +02:00
Auke Kok
772fc29cb8 Detect geo of server.
Using geolite2, we attempt to detect the continent of the server
and store the 'continent code' in the serverlist. This is reasonably
broad enough to help players in the client find truly "nearby" server.

The client will have to be changed to select a continent to change
ordering or filtering.
2019-07-17 12:33:48 +02:00
sfan5
ac66259801 Less confusing status codes 2019-07-17 12:23:35 +02:00
sfan5
794807c9ff Raise JSON length limit
it's not hard to hit 5000 if you just throw in a lot of mods
2019-05-07 17:30:15 +02:00
sfan5
6f51e2f00f Tune server ranking (again) 2018-11-11 23:16:43 +01:00
sfan5
e7c4d2c20a Tune server ranking 2018-10-27 22:46:12 +02:00
sfan5
57fb13cbb8 Use most compact JSON representation 2018-06-25 13:19:49 +02:00
sfan5
0a3d05baf5 Use portable os.replace instead of relying on POSIX behaviour 2018-06-25 12:48:23 +02:00
nOOb3167
a2b47ff52b Document serverUp protocol
serverUp uses hex spaghetti to send and receive a short sequence of packets, to see whether a server is online.
The packet format is now annotated for easier cross-reference with minetest source.
2018-06-04 16:27:08 +02:00
nOOb3167
e49da8f1b9 Compatibility fix (string field conversion) 2018-05-18 10:09:36 +02:00
nOOb3167
48020105af Schedule purging using plain python, obviating the need for APScheduler 2018-05-18 10:05:57 +02:00
nOOb3167
f43f201af5 Fix potential use-before-defined of serverList variable 2018-05-18 10:05:57 +02:00
nOOb3167
23d45c0a15 Improve use of os.path.join 2018-03-18 14:07:59 +01:00
nOOb3167
f5bddaaef5 Fix locking
Calls to save() in purgeOld() and update() were in race condition.
Race condition was eliminated by extending the lock scope within purgeOld().
Calls to load() were in race condition with themselves.
While current use of load() (called only during construction of class ServerList()) does not manifest the bug, any future change introducing concurrent use of load() would.
Race condition potential was eliminated by extending the lock scope within load().
2018-03-18 14:07:59 +01:00
nOOb3167
78abbee771 Fix server purging 2018-03-18 14:07:59 +01:00
sfan5
2f87286475 Make hostname blacklist case insensitive 2017-12-24 20:42:47 +01:00
sfan5
0d93321f6d Restrict protocol of "server_url" values to HTTP(S) 2017-11-06 19:45:28 +01:00
sfan5
da9f297346 Refine "guest" name regex
Avoid detecting names such as "Bob123" (<4 chars) or "Angel060" (leading zero)
2017-08-08 23:30:35 +02:00
sfan5
828a1fda7e Allow banning by server hostname 2017-05-14 15:29:46 +02:00
sfan5
705ea6e1a0 Re-add banlist features
This effectively reverts commit b366290118.
2017-05-14 15:03:05 +02:00
sfan5
5e12cb5022 Update detection of guest clients 2017-02-18 11:31:24 +01:00
ShadowNinja
58f03d0395 Try to fix list corruption issue
Sometimes the list was send in a corrupted form.  This
appeared to be the result of overwriting the file as it
was being read by the server.  This commit tries to fix
this by saving to a temporary file and then moving it over
the served file.
2016-02-04 16:49:25 -05:00
ShadowNinja
ea3dbeb889 Misc cleanup 2016-01-24 00:26:11 -05:00
ShadowNinja
ccd85da424 Remove list filename option
There's just not really a compelling reason for this to be configurable.
2016-01-24 00:25:58 -05:00
ShadowNinja
b366290118 Remove ban list
This should be handled at a higher level, such as in NetFilter or the proxy server.
I only added this feature because the old server list had it.
2016-01-23 23:53:01 -05:00
ShadowNinja
a431911b9d Load defaults from example config
This makes some options non-optional -- allowing for a smaller config file.
This also removes the X-Sendfile example, bucause the proxy server should
handle static files directly and the option is not at all specific to this
particular application (and general Flask options aren't documented).
2016-01-23 23:47:15 -05:00
Ner'zhul
2fdd0daa11 Use ternary operator when possible 2015-07-18 16:31:12 +02:00
sfan5
c26c42baaa Fix de-announcing 2015-06-08 23:05:30 +02:00
ShadowNinja
3976573369 Fix highly loaded server penalty 2015-04-15 16:20:21 -04:00
ShadowNinja
bbd62e8474 Tweak sorting algorithm 2015-04-10 12:13:50 -04:00
ShadowNinja
d4c55a332c Add IPv6 support 2015-03-17 18:41:04 -04:00
est31
fb3b24dc77 Add protocol version server parameters 2015-02-17 16:20:41 +01:00
sfan5
ee2a6dee73 Refine sorting algorithm 2015-01-11 17:10:50 +01:00
ShadowNinja
2a5242eb68 Add scheduler timezone 2015-01-09 17:13:55 -05:00
ShadowNinja
3e59b9c8ca Fix clients_max field name 2015-01-09 17:13:11 -05:00
ShadowNinja
f7a448123f Attempt to improve server sorting 2015-01-09 16:48:03 -05:00
sfan5
c9c97b0ce5 Update to v3 of APScheduler 2014-12-23 19:42:45 +01:00
ShadowNinja
a3424b8035 Don't count things like DNS resolution in the ping 2014-11-20 17:26:49 -05:00
ShadowNinja
a835362de0 Fix locking of removeServer 2014-11-04 16:25:44 -05:00
sfan5
9df50135b6 Revert 757e186 "Disable source IP check because it causes problems"
minetest/minetest@8852333 fixed this
2014-09-19 19:40:23 +02:00