00:00 < bridge> [ddnet] @deen can u send the markdown of that comment in a pm pls? 00:00 < bridge> [ddnet] :monkalaugh: 00:03 < bridge> [ddnet] Which one, in Discord or github? 00:04 < bridge> [ddnet] github 00:28 < bridge> [ddnet] @heinrich5991 why is the http serverinfo protocol not via tcp? 00:28 < bridge> [ddnet] That would verify IP addresses before connecting 00:28 < bridge> [ddnet] a pre auth via tcp 00:29 < bridge> [ddnet] Or will that come? 00:29 < bridge> [ddnet] I don't follow. HTTPS works over TCP, the client fetches the server info from the masterserver via HTTPS 00:29 < bridge> [ddnet] clients will not contact indivdual servers anymore, because that leaks their IP address to all currently registered servers 00:29 < bridge> [ddnet] I mean, to verify at a specific server directly 00:30 < bridge> [ddnet] When wanting to connect 00:30 < bridge> [ddnet] the client should make a pre auth via tcp, to validate the ip is valid :D 00:30 < bridge> [ddnet] and not spoofed 00:30 < bridge> [ddnet] thats what this makes 00:30 < bridge> [ddnet] ah, because server hosters have support for DoS protection of TCP? 00:31 < bridge> [ddnet] Anderson told me, he would just block udp until tcp is verified 00:31 < bridge> [ddnet] So a tcp pre auth is what we need, according to him 00:32 < bridge> [ddnet] I cant register my server for publicity in 0.6 anymore, since my server is getting hard ddos constantly 00:32 < bridge> [ddnet] Thats why the website even exists 00:34 < bridge> [ddnet] I would really like you and Anderson to talk about all this, while 15.5 is not released and while you are working on the whole system 00:35 < bridge> [ddnet] this isn't really related to HTTPS masters as far as I can tell 00:37 < bridge> [ddnet] HTTPS masters allow the client to fetch the server list from a simple HTTPS URL https://master1.ddnet.tw/ddnet/15/servers.json 00:37 < bridge> [ddnet] that's really all there is. connection establishment isn't modified by this 00:37 < bridge> [ddnet] i see 03:02 < bridge> [ddnet] Oh 15.5 03:04 < bridge> [ddnet] I haven't got time but I wanted to fix the interpolation on predicted pickups. It is really jittery in mods like monsters with predicted weapon on. 04:04 < bridge> [ddnet] @fokkonaut he talks about that because we already talked a lot with @heinrich5991 and some other people about some other way to secure the connection instead of what it is actually (tcp as connection was an example, then udp for ingame data) 06:35 < bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/847332035910828042/unknown.png 06:40 < bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/847333408384090152/unknown.png 06:40 < bridge> [ddnet] do server needs to be updated for pings? 06:42 < bridge> [ddnet] it does take about 2-3 seconds to fetch the serverlist here which is a bit upsetting. 07:04 < bridge> [ddnet] https://streamable.com/3ufgrj 07:05 < bridge> [ddnet] ok it's not that slow i guess 07:44 < bridge> [ddnet] https://streamable.com/732dsd 09:15 < bridge> [ddnet] @TsFreddie the file is downloaded over cloudflare, i guess it doesn't work that great from china? 09:15 < bridge> [ddnet] ye 09:15 < bridge> [ddnet] cloudflare isn't very fast nor stable here 09:16 < bridge> [ddnet] Uploading the file every 5 seconds to a chinese server might help, but then we have lots of continuous bandwidth 09:16 < bridge> [ddnet] similar to the map downloader 09:18 < bridge> [ddnet] is the master just heinrich's rust browser 09:19 < bridge> [ddnet] the master json file* 09:21 < bridge> [ddnet] it's in libtw2 i think, yes 09:21 < bridge> [ddnet] then we already have it setup 09:21 < bridge> [ddnet] so you want to run another scanner? 09:21 < bridge> [ddnet] ok, adding master2.ddnet.tw might be an alternative 09:21 < bridge> [ddnet] @heinrich5991 would that work well? ^ 09:22 < bridge> [ddnet] i pretty much "stole" it day1 for the html browser thing:justatest: 09:36 < bridge> [ddnet] @TsFreddie btw, how fast was the normal/old server info? 09:36 < bridge> [ddnet] for me 2 seconds would still be much faster than the old one 09:37 < bridge> [ddnet] thanks!! make it a gameinfoex flag 09:37 < bridge> [ddnet] for ddnet tab is pretty much instant tho. 09:37 < bridge> [ddnet] same 09:37 < bridge> [ddnet] maybe you just have fast internet 09:38 < bridge> [ddnet] maybe 09:38 < bridge> [ddnet] also for the old serverlist, chn servers is usually ponged first, so it is pretty fast visually even though the entire list isn't finished yet. 09:39 < bridge> [ddnet] got this everytime I tried to run my self compiled 15.5 09:39 < bridge> [ddnet] i run it a few time and that was gone for some reason. 09:39 < bridge> [ddnet] weird 09:40 < bridge> [ddnet] it led me to serverinfo.cpp 09:42 < bridge> [ddnet] https://github.com/ddnet/ddnet/blob/6fc640d6d3e3c1fd2880b86b6609e460e3444f33/src/engine/client/serverbrowser_ping_cache.cpp#L200 09:42 < bridge> [ddnet] this was the line where it said it crashed 10:03 < bridge> [ddnet] @TsFreddie what about weapon predicting? Or should I do so? 10:04 < bridge> [ddnet] like weapon behavior or pickup weapons 10:04 < bridge> [ddnet] weapon predicting, the shots 10:04 < bridge> [ddnet] give me a second 10:04 < bridge> [ddnet] I would want that before 15.5 too 10:05 < bridge> [ddnet] the infinite laser thing? 10:05 < bridge> [ddnet] For example 10:07 < bridge> [ddnet] I think best would be with individual PREDICT_RIFLE gameinfoex flags 10:07 < bridge> [ddnet] or, ddnetcharacter flags 10:07 < bridge> [ddnet] one of these, but i think it fits more to the gameinfo 12:21 < bridge> [ddnet] @TsFreddie @heinrich5991 I'm wondering if we should use a new server for CHN master2 or an existing gameserver one 12:24 < bridge> [ddnet] @deen when finishing its still minute:second format in chat 12:24 < bridge> [ddnet] Yes, and we can't change that since client uses that for race demo recording 12:27 < bridge> [ddnet] Our existing libtw2 scanner is running in a hk server btw. 12:27 < bridge> [ddnet] hongkong* 13:15 < bridge> [ddnet] #gentoo took the nuclear option, kicked everyone out of their channel so freenode can't just take it over and pretend it's still the official channel 13:20 < bridge> [ddnet] nice 14:25 < bridge> [ddnet] what happened to freenode 14:26 < bridge> [ddnet] https://en.wikipedia.org/wiki/Libera_Chat 15:34 < bridge> [ddnet] @deen yes, adding a master2.ddnet.tw for china seems like a good idea 15:34 < bridge> [ddnet] if you choose an existing game server, it'll go down when it's DoSed 15:34 < bridge> [ddnet] but it should fallback to the cloudflare one if you click 'refresh' 15:34 < bridge> [ddnet] so it might be acceptable 15:35 < bridge> [ddnet] as for running another scanner, I'd prefer to upload the server list from master1.ddnet.tw to china 15:35 < bridge> [ddnet] that's less continuous traffic for all game servers in tw 0.6 & 0.7 15:36 < bridge> [ddnet] @deen @TsFreddie I can try setting it up on a chn server, which one should I use? 15:37 < bridge> [ddnet] we have a hongkong server for api and stuff 15:38 < bridge> [ddnet] which is also behind a chinese cdn 15:39 < bridge> [ddnet] how often would you upload the list tho. if it is like 30 seconds, we can just setup a cache on our cdn 15:39 < bridge> [ddnet] every second 15:40 < bridge> [ddnet] let me check which server has more left over bandwidth (the data one, not the concurrent one) 15:52 < bridge> [ddnet] ye, maybe just chn1. the smaller ones has about 200gb per month data cap leftover. 70kb compressed every second is cutting it pretty close. 15:53 < bridge> [ddnet] or the hongkong one which we are running it for teeworlds.cn/browser anyway. 15:54 < bridge> [ddnet] πŸ˜… or just not, that's an option too, if it gets complicated. 15:58 < bridge> [ddnet] @TsFreddie it's just a couple of kilobytes per second, since the data is very redundant after the first send 15:58 < bridge> [ddnet] definitely <10KB 15:58 < bridge> [ddnet] @TsFreddie but inbound data traffic usually isn't counted, is it? 15:59 < bridge> [ddnet] or are you talking about delivering it to players? 15:59 < bridge> [ddnet] i think the cheaper server does count inbound. let me double check 16:01 < bridge> [ddnet] ok it is weird. but you are mostly right, the 200gb is for outbound, for inbound there is a separate cap that is not visible in the control panel hmm 16:01 < bridge> [ddnet] but i think it means usually fine then. 16:02 < bridge> [ddnet] we can hook up a cdn for delivery, but the bandwidth between the instance and cdn is still counted, so basically the same without one. 16:03 < bridge> [ddnet] I don't know how the cdn works 16:03 < bridge> [ddnet] does the cdn contact you? or do you need to provide updates to the cdn? 16:03 < bridge> [ddnet] cloudflare contacts the origin server, e.g. 16:03 < bridge> [ddnet] cloudflare is instructed to cache for up to a second 16:04 < bridge> [ddnet] the cdn contact the server. 16:05 < bridge> [ddnet] let's forget about the cdn actually πŸ˜… . it might not even work, since they the server and cdn are from two competing providers. 16:09 < bridge> [ddnet] let just say where you want it, hongkong or mainland. 16:09 < bridge> [ddnet] tell me what's best 16:09 < bridge> [ddnet] you reported a problem accessing the current master 16:10 < bridge> [ddnet] which of these options would best resolve that issue? 16:12 < bridge> [ddnet] then mainland probably. 16:12 < bridge> [ddnet] but i am curious how fast japan and korea can fetch the current master 16:14 < bridge> [ddnet] jap2.ddnet.tw can fetch the serverlist in 1.5s 16:14 < bridge> [ddnet] quite slow 16:15 < bridge> [ddnet] so maybe hongkong would be better off for the entire asia region 16:15 < bridge> [ddnet] does hongkong work for mainland china as well? 16:15 < bridge> [ddnet] ye, i bought it from tencent. it won't be blocked unless we are running proxy or something 16:16 < bridge> [ddnet] it might not be instant, but i can fetch our current scanner in 0.5s 16:16 < bridge> [ddnet] which is this one https://api.teeworlds.cn/servers.json 16:21 < bridge> [ddnet] I'm seeing ~600ms responses for jap2.ddnet.tw 16:21 < bridge> [ddnet] if I point the dns record master2.ddnet.tw at this IP address, can you host the servers.json in /ddnet/15/servers.json? 16:22 < bridge> [ddnet] i can 16:22 < bridge> [ddnet] is that api.teeworlds.cn a game server? or some other non-ddnet-hosted server? 16:22 < bridge> [ddnet] if it's the latter, I'd wait for deen's confirmation 16:23 < bridge> [ddnet] it's an api server for teeworlds.cn stuff and our kaiheila bot 16:23 < bridge> [ddnet] so not a game server 16:25 < bridge> [ddnet] @deen is it fine if I point master2.ddnet.tw to that api.teeworlds.cn server? 16:39 < bridge> [ddnet] btw api.teeworlds.cn is behind a cdn already. 16:51 < bridge> [ddnet] i think i'm gonna have to take a rest today. DM me if you need anything from my part. 16:52 < bridge> [ddnet] @heinrich5991 sure 17:32 < bridge> [ddnet] @heinrich5991 added it myself now. @TsFreddie https://master2.ddnet.tw/ddnet/15/servers.json is showing a security warning 17:34 < bridge> [ddnet] @heinrich5991 does 124ms sound about right? 17:37 < bridge> [ddnet] "Warning: Potential Security Risk Ahead" 17:37 < bridge> [ddnet] nasa hackermans 17:37 < bridge> [ddnet] :monkalaugh: 17:38 < bridge> [ddnet] @TsFreddie should probably create a CSR for master2 we can get signed with let's encrypt on ddnet.tw 18:03 < bridge> [ddnet] @Learath2 @TsFreddie you should be able to install certbot on your server and obtian a certificate yourselves 18:04 < bridge> [ddnet] @Learath2 124ms sounds about right, cloudflare had some non-optimal performance 18:04 < bridge> [ddnet] hm, I guess the acme challange does work like that 18:08 < bridge> [ddnet] @heinrich5991 if cloudflare is not so great, we could also add a master3 without cloudflare. I don't know if cloudflare adds much security for non-browser usage anyway 18:12 < bridge> [ddnet] I think the performance is good enough to not justify the extra complexity for a master3 for now 18:13 < bridge> [ddnet] ok 18:15 < bridge> [ddnet] done ir 18:15 < bridge> [ddnet] it* 18:16 < bridge> [ddnet] https://master2.ddnet.tw/ddnet/15/servers.json 18:16 < bridge> [ddnet] cool 18:16 < bridge> [ddnet] I need a csv file for location tho don't i 18:16 < bridge> [ddnet] So in china it should now automatically choose your server? I get: 18:16 < bridge> [ddnet] ``` 18:16 < bridge> [ddnet] [2021-05-27 18:16:23][serverbrowse_http]: determined best master, url='https://master1.ddnet.tw/ddnet/15/servers.json' time=41ms 18:16 < bridge> [ddnet] ``` 18:17 < bridge> [ddnet] Your server is a bit slower πŸ˜„ 18:17 < bridge> [ddnet] ``` 18:17 < bridge> [ddnet] [2021-05-27 18:16:23][serverbrowse_http]: found master, url='https://master2.ddnet.tw/ddnet/15/servers.json' time=1593ms 18:17 < bridge> [ddnet] ``` 18:17 < bridge> [ddnet] I'll try tomorrow. I'm in bed with my Mac currently. 18:17 < bridge> [ddnet] Oh, and I hope you don't pay much for bandwidth, everyone will now download this file all the time 18:18 < bridge> [ddnet] If it doesn't use over 700gb per month then it is fine 18:18 < bridge> [ddnet] should be fine 18:19 < bridge> [ddnet] ye 18:19 < bridge> [ddnet] if you have compression enabled on your web server 18:19 < bridge> [ddnet] oh right I should. 18:20 < bridge> [ddnet] ddnet.tw is using ~2 TB / month but I don't know how much of that is the master info 18:24 < bridge> [ddnet] caddy seems to only have zstd and gzip compression. I've enabled both of them. 18:26 < bridge> [ddnet] Works: Transferred: 58.30 KB (398.88 KB size) 18:26 < bridge> [ddnet] nice 18:27 < bridge> [ddnet] @heinrich5991 where can I get a csv geoip data for stats_browser 18:34 < bridge> [ddnet] @TsFreddie I put it here temporarily: https://master1.ddnet.tw/locations.csv 18:34 < bridge> [ddnet] grabbed 18:37 < bridge> [ddnet] @TsFreddie if it eats too much data, you can simply remove the file and stop the stats_browser (but don't leave a stale file there, that confuses clients) 18:38 < bridge> [ddnet] ok 18:46 < bridge> [ddnet] @heinrich5991 `engine/shared/serverinfo.cpp:L143` couldn't you use an `std::tie` here to make this prettier? 18:50 < bridge> [ddnet] looks like it, I didn't know `std::tie` 18:51 < bridge> [ddnet] c++ std lib is endless 18:51 < bridge> [ddnet] @heinrich5991 you used std::min in 2 places, doesnt compile on windows, you should use `minimum` 18:51 < bridge> [ddnet] This all works surprisingly well btw, but I can already see people crying about not having the ping 18:51 < bridge> [ddnet] see #general 18:51 < bridge> [ddnet] I messed up with rebasing though 18:51 < bridge> [ddnet] I forgot to push after doing some fixes 18:51 < bridge> [ddnet] oh its c++ way of unpacking 18:51 < bridge> [ddnet] now I need to find the differences between the merged version and my newest one 18:51 < bridge> [ddnet] very beutiful 18:52 < bridge> [ddnet] @fokkonaut I see no reason to use minimum over std::min. it seems to compile on windows in the CI. can you share the compile error? am I missing an #include? 18:52 < bridge> [ddnet] Probably missing an include for MSV€ 18:52 < bridge> [ddnet] Probably missing an include for MSVS 18:52 < bridge> [ddnet] probably stdio 18:53 < bridge> [ddnet] We should probably use std min everywhere 18:53 < bridge> [ddnet] Codestyle in ddnet 18:53 < bridge> [ddnet] and I see no reason for THAT 18:53 < bridge> [ddnet] lol 18:53 < bridge> [ddnet] Because clang is smarter than us? 18:53 < bridge> [ddnet] also see no reason why min and max got renamed to the long versikn 18:53 < bridge> [ddnet] fokkonaut is better than the engineers who made std::min 18:53 < bridge> [ddnet] because they conflicted with the standard library 18:54 < bridge> [ddnet] That one is easy, not the std lib it was conflicting with winapi 18:54 < bridge> [ddnet] @Ryozuki structured bindings are the more modern way to unpack 18:54 < bridge> [ddnet] Winapi has a weird macro definition somewhere from windows 95 days conflicting with min 18:54 < bridge> [ddnet] xd 18:54 < bridge> [ddnet] ima look that up 18:54 < bridge> [ddnet] but why doesn't it conflict with std's min? 18:54 < bridge> [ddnet] namespace 18:54 < bridge> [ddnet] Because only god knows how msvc handles that mess 18:54 < bridge> [ddnet] macros don't have namespaces 18:54 < bridge> [ddnet] Ah true 18:55 < bridge> [ddnet] can u avoid using auto for this? 18:55 < bridge> [ddnet] everything in rust is auto @Ryozuki πŸ˜‰ 18:56 < bridge> [ddnet] u can explicitly give a type 18:56 < bridge> [ddnet] if only we could go up to C++17 πŸ˜„ 18:58 < bridge> [ddnet] i wonder if clangd is as good as rust-analyzer in type inference 18:58 < bridge> [ddnet] I always used it with auto, but yeah, types are annoying to infer 18:58 < bridge> [ddnet] whats stopping us 18:58 < bridge> [ddnet] some debian 6 machine? 18:58 < bridge> [ddnet] or was it centos 18:59 < bridge> [ddnet] probably my official linux builds 18:59 < bridge> [ddnet] I think it was a "fairly new" ubuntu stopping us 18:59 < bridge> [ddnet] i dont think it was that 18:59 < bridge> [ddnet] I kind of hate the idea but maybe we should start doing flatpaks for linux 18:59 < bridge> [ddnet] i think its cuz deen needs to build on old machines for max compat 19:00 < bridge> [ddnet] There should be a github issue about it 19:01 < bridge> [ddnet] we have 334 issues 19:01 < bridge> [ddnet] maybe we can do a cleanup 19:01 < bridge> [ddnet] My email with subject "Test" gets flagged as spam, "β€œRed Soda” burns 3 LBs every 5 days..!" Doesn't ....... 19:01 < bridge> [ddnet] :monkalaugh: 19:09 < bridge> [ddnet] @deen maybe you should write the security whys on #announcements so we can refer ppl to that 19:09 < bridge> [ddnet] instead of repeating ourselves 30 times 19:09 < bridge> [ddnet] :monkaS: 19:14 < bridge> [ddnet] standard support for ubuntu 16 ended a few weeks ago, so lets go xd 21:17 < bridge> [freenode] @Learath2: I would activate the matrix<->discord bridge from the matrix side. are you there to reponse to it on discord? 21:17 < bridge> [freenode] btw I am now also on discord: Zwelf#8146 21:22 < bridge> [ddnet] @Learath2 ^ 21:22 < bridge> [ddnet] o/ 21:31 < bridge> [ddnet] @zwelf:matrix.org on matrix would like to bridge this channel. Someone with permission to manage webhooks please reply with `!matrix approve` or `!matrix deny` in the next 5 minutes. 21:32 < bridge> [ddnet] oh 21:32 < bridge> [ddnet] @Learath2 this is the message to reply πŸ™‚ 21:32 < bridge> [ddnet] !matrix approve 21:32 < bridge> [ddnet] Thanks for your response! The matrix bridge has been approved. 21:33 < bridge> [ddnet] so are we matrix-enabled now? πŸ˜„ 21:35 < bridge> [ddnet] There seems to be a delay to matrix.org (other homeservers are working fast), might be related to the downtime today (status.t2bot.io) 21:35 < bridge> [ddnet] Test message from matrix (does it relay to irc)? 21:36 <@heinrich5991> yes, does 21:37 < bridge> [ddnet] nice πŸ™‚ 21:37 < bridge> [ddnet] (<@749222324980416602_=5bquakenet=5d=20heinrich5991>) 21:37 < bridge> [ddnet] that looks a bit weird 21:37 < bridge> [ddnet] lol mentions are funny 21:37 < bridge> [ddnet] how does this look 21:37 < bridge> [ddnet] okay xD I see 21:38 < bridge> [ddnet] in the other direction the reply is missing \:( 21:38 < bridge> [ddnet] The room is #ddnet\:matrix.org 21:39 < bridge> [ddnet] hm, can there be an indication that the message is from matrix? 21:39 < bridge> [ddnet] like e.g. putting [m] in front of the name? 22:20 < bridge> [ddnet] Doesn't seem to be supported by this bridge, sorry 22:59 < bridge> [ddnet] make sure u cant @everyone again 22:59 < bridge> [ddnet] @​everyone does this ping everyone? 23:00 < bridge> [ddnet] no 23:01 < bridge> [ddnet] what a brave way to test it lol