00:00 <+bridge> [ddnet] wait you just gave me an idea 00:00 <+bridge> [ddnet] maybe it doesnt work thoug 00:00 <+bridge> [ddnet] maybe it doesnt work though 00:01 <+bridge> [ddnet] it involves storage of IPs on master so i think it can't be done under privacy law 00:01 <+bridge> [ddnet] :nouis: 00:02 <+bridge> [ddnet] if we have the ability to classify region based on IP the same could be done for players 00:02 <+bridge> [ddnet] and then we could insert approximate ping for servers that have not been connected to 00:02 <+bridge> [ddnet] but maybe the server determination is more secure than player could be, and it wouldn't work as well 00:03 <+bridge> [ddnet] Actually i know nothing, forget what i said above just open code and see how it works. Good noght i goo sleep😴 00:04 <+bridge> [ddnet] meh we can just do something like "opt into geolocation for approximate ping values for new servers" 00:04 <+bridge> [ddnet] good night 00:06 <+bridge> [ddnet] with the new master that is also no longer possible as I understand it, since it is now cached behind cloudflare 00:08 <+bridge> [ddnet] @Patiga what do you think about the idea of averaging ping for client storage 00:08 <+bridge> [ddnet] bad because it's technically inaccurate? or helpful 00:09 <+bridge> [ddnet] i think it should always store the lowest value 00:09 <+bridge> [ddnet] unless there's a really old ping that is lower, and the new ping is consistently higher 00:10 <+bridge> [ddnet] hm 00:10 <+bridge> [ddnet] I have no idea about the code there, but averaging probably comes with its own problems 00:10 <+bridge> [ddnet] yeah like 999 ping 00:10 <+bridge> [ddnet] average > lowest ping 00:10 <+bridge> [ddnet] maybe it should just store high ping if it's consistent in the current session compared to last session 00:10 <+bridge> [ddnet] some people have jumpy pings so lowest ping would be less accurate 00:11 <+bridge> [ddnet] okay but let's say you have 60 ping to a server and you disconnect in a ddos at 999 ping. then you have 500 ping and your filter makes it so you dont see it anymore 00:11 <+bridge> [ddnet] what do you mean with averaging btw, which data do you use? 00:11 <+bridge> [ddnet] there needs to be a threshold on when to average 00:11 <+bridge> [ddnet] do you take it each time you disconnect? 00:12 <+bridge> [ddnet] 3 things, last disconnect ping, last average / lowest ping (however we decide), and transient ping 00:12 <+bridge> [ddnet] like whatever is recent 00:12 <+bridge> [ddnet] last disconnect ping should be favored if it is low 00:12 <+bridge> [ddnet] but if the new values are consistent, we have to consider that a player may have moved or changed internet service 00:12 <+bridge> [ddnet] cant you ignore outliers when calculating average 00:12 <+bridge> [ddnet] yes 00:12 <+bridge> [ddnet] but what is a good threshold? 00:13 <+bridge> [ddnet] what is normal deviation for inconsistent ping? 00:13 <+bridge> [ddnet] 05? 00:13 <+bridge> [ddnet] 50? 00:13 <+bridge> [ddnet] idk maybe do mode then 00:14 <+bridge> [ddnet] I mean do we want to see servers that we left with a 999 ping? 00:14 <+bridge> [ddnet] ping has several nearby values for close fluctuations 00:14 <+bridge> [ddnet] i dont think mode can work 00:14 <+bridge> [ddnet] you have to "lump" pings together for average consideration 00:15 <+bridge> [ddnet] i think most people will not want that, but there may be some that want 00:15 <+bridge> [ddnet] imo 999 ping is never really "accurate" 00:15 <+bridge> [ddnet] it may have been accurate when you left 00:15 <+bridge> [ddnet] but is it really accurate before you start playing again? 00:15 <+bridge> [ddnet] most likely not 00:15 <+bridge> [ddnet] i mean technically the ddos ping getting into average is accurate :monkalaugh: 00:15 <+bridge> [ddnet] yes, but what about when you plan to connect again 00:15 <+bridge> [ddnet] and ddos is done 00:16 <+bridge> [ddnet] it's not accurate anyomre 00:16 <+bridge> [ddnet] it's not accurate anymore 00:16 <+bridge> [ddnet] then itll average out later 00:16 <+bridge> [ddnet] but you cant see the server anymore because ping filter 00:16 <+bridge> [ddnet] dont use ping filter 00:16 <+bridge> [ddnet] this is not ideal xd 00:16 <+bridge> [ddnet] it should be resilient to wild fluctuations 00:16 <+bridge> [ddnet] I think smth like take the ping on disconnect and the ones in the last 5 secs and average them could be fine 00:16 <+bridge> [ddnet] yeah i have something like that in github 00:16 <+bridge> [ddnet] recent values, a bit of average 00:16 <+bridge> [ddnet] in the issue comment 00:17 <+bridge> [ddnet] last 16 pings, recorded every 30 seconds 00:17 <+bridge> [ddnet] then try to come to an average within an outlier threshold 00:17 <+bridge> [ddnet] average that with last disconnect ping 00:17 <+bridge> [ddnet] repeat 00:17 <+bridge> [ddnet] if u record every 30 seconds then i dont think u need disconnect pings 00:17 <+bridge> [ddnet] if you disconnect mid-collection just use all those values for the basis of your average 00:17 <+bridge> [ddnet] disconnect ping is important for historic context 00:18 <+bridge> [ddnet] an average of 16 pings in 8 minutes is still inaccurate if the ddos lasts that long 00:18 <+bridge> [ddnet] honestly we might want to up it to 15 seconds 00:18 <+bridge> [ddnet] so 16 pings in 4 minutes 00:18 <+bridge> [ddnet] seems more realistic 00:19 <+bridge> [ddnet] imo this approach is too complicated. that doesn't sound intuitive for the user to me 00:19 <+bridge> [ddnet] i want to avoid using arbitrary things like thresholds 00:19 <+bridge> [ddnet] maybe if your ping was stable in a certain range it changes to the average 00:19 <+bridge> [ddnet] and that's the only criteria 00:20 <+bridge> [ddnet] but ddos ofc still affects this 00:20 <+bridge> [ddnet] imo if a server gets ddosed the client should see it as 999 00:20 <+bridge> [ddnet] only maybe the master server could detect ddos and send that info to the client 00:20 <+bridge> [ddnet] just sucks for people using ping filter 00:21 <+bridge> [ddnet] or never try to connect to a server again if it was ddossed and they just connect to top pings 00:21 <+bridge> [ddnet] here the master server could tell the client that this specific server isn't ddosed anymore, so reset your ping 00:22 <+bridge> [ddnet] hmm so like two values on the client 00:22 <+bridge> [ddnet] no, one 00:22 <+bridge> [ddnet] historic_ping and incidental_ping 00:22 <+bridge> [ddnet] well, we want to avoid ping queries without having to disconnect right? 00:22 <+bridge> [ddnet] so the client would have to remember the old ping 00:23 <+bridge> [ddnet] instead of it being fed from the master server 00:23 <+bridge> [ddnet] that would work too, but I think the current way, displaying it as the region, would work as well 00:23 <+bridge> [ddnet] ah i see 00:23 <+bridge> [ddnet] yeah that can work fine 00:23 <+bridge> [ddnet] both is good 00:24 <+bridge> [ddnet] i think having historic_ping and then if they are in game while ddos starts, the client is notified and it stores something in incidental 00:24 <+bridge> [ddnet] and master server can reply with "server is ok now" and it will remove incidental and use historic 00:25 <+bridge> [ddnet] having this at server level is way better btw 00:25 <+bridge> [ddnet] because we've completely solved the issue of confusing client connection for ddos 00:27 <+bridge> [ddnet] 👍, historic ping could work really well, although I think it might also be really annoying/hard to get right 00:27 <+bridge> [ddnet] since its a value that you would need to adjust a lot with changing circumstances, you can't just write down one simple number and be happy 00:29 <+bridge> [ddnet] i mean you always put ping there unless the server tells you it's being ddosed 00:29 <+bridge> [ddnet] and then when you connect, the server tells you if it's being ddosed a single time 00:29 <+bridge> [ddnet] and it either throws away incidental or keeps using it 00:30 <+bridge> [ddnet] and then when you query master, the master server tells you if it's being ddosed a single time 00:30 <+bridge> [ddnet] sorry edited 00:31 <+bridge> [ddnet] but the 'current' ping is updated constantly, you contact the master server much less frequently 00:31 <+bridge> [ddnet] ^ while you are connected to the server 00:31 <+bridge> [ddnet] -> since out of the server you can't update the ping 00:32 <+bridge> [ddnet] well doesn't the server communicate with master 00:32 <+bridge> [ddnet] and if it's able to tell if it's being ddosed it forwards that to the client 00:32 <+bridge> [ddnet] you mean the server can tell you it is being ddosed? 00:33 <+bridge> [ddnet] can't we do this 00:33 <+bridge> [ddnet] i guess the client would just ask the master server for this info periodically 00:35 <+bridge> [ddnet] yeah, although by the time you get that info from the master server, you will already be experiencing ddos ping 00:35 <+bridge> [ddnet] I'm not trying to say its impossible, only that this approach will have some complications to get it right 00:49 <+bridge> [ddnet] hmm yeah 00:50 <+bridge> [ddnet] i think it's better if the game server handles the request for all connected clients, and it does it frequently enough to record your incident ping before historic 00:50 <+bridge> [ddnet] and the server just broadcasts the ddos flag asap to all clients 00:53 <+bridge> [ddnet] im even wondering now if it would be better to keep a running average, and compress similar historic values as a single average value that's multiplied by some amount 00:54 <+bridge> [ddnet] brain working 00:58 <+bridge> [ddnet] ping = (ping * max(days since first connect, 30) + new ping) / (max(days since first connect, 30) + 1) 00:58 <+bridge> [ddnet] maybe 30 days max is too hight 00:58 <+bridge> [ddnet] maybe 30 days max is too high 01:02 <+bridge> [ddnet] hmm i think i just thought of a great solution 02:23 <+bridge> [ddnet] When I heard the first time that C is a high level language I was kinda confused \:DBut this video shows what dirty hacks are required to do some bit magic with floatshttps://youtu.be/p8u_k2LIZyo 06:33 <+bridge> [ddnet] The evil floating point bit hack is wrong because it casts through a pointer 06:34 <+bridge> [ddnet] A C compiler is allowed to think that a long pointer can never point to the same location as a float pointer 06:35 <+bridge> [ddnet] The code could be fixed by using memcpy 06:37 <+bridge> [ddnet] Or it could use a union because casting through a union is implementation-defined behavior in C 08:36 <+bridge> [ddnet] can someone who knows a lot about the games code tell me if it's possible to compile a server version where the predictions margin is higher? 08:36 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/873092065502851102/unknown.png 08:36 <+bridge> [ddnet] can someone who knows a lot about the games code tell me if it's possible to compile a server version where the prediction margin is higher? 08:36 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/873092065502851102/unknown.png 08:58 <+bridge> [ddnet] man github doesnt load any images and github pages domains 08:58 <+bridge> [ddnet] some dns problem? 08:58 <+bridge> [ddnet] this sucks 08:58 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/873097738672283659/unknown.png 09:01 <+bridge> [ddnet] searching problems about github is always a lost battle, you end up seeing some random issues from random repos 10:27 <+bridge> [ddnet] its again my isp 10:27 <+bridge> [ddnet] idk what they do 10:27 <+bridge> [ddnet] always messing with github 10:31 <+bridge> [ddnet] try flushing the dns cache maybe 15:05 <+bridge> [ddnet] am i allowed to see this? 15:09 <+bridge> [ddnet] btw 15:09 <+bridge> [ddnet] is this game made in c++? 15:11 <+bridge> [ddnet] :monkalaugh: 15:11 <+bridge> [ddnet] https://github.com/ddnet/ddnet 15:13 <+bridge> [ddnet] where is the vpn detector file 15:15 <+bridge> [ddnet] oh 15:15 <+bridge> [ddnet] oh 15:15 <+bridge> [ddnet] ok 15:15 <+bridge> [ddnet] Its ok 15:16 <+bridge> [ddnet] well no wonder ur vpn detection is so bad 15:16 <+bridge> [ddnet] This game is bad 15:16 <+bridge> [ddnet] nah 15:16 <+bridge> [ddnet] this game is awsome 15:16 <+bridge> [ddnet] :troll: 15:16 <+bridge> [ddnet] this is not vpn detection 15:16 <+bridge> [ddnet] this is litearally passwrod stealer detection 15:17 <+bridge> [ddnet] :ww: 15:17 <+bridge> [ddnet] i i use a paid vpb 15:17 <+bridge> [ddnet] it will not detect it 15:17 <+bridge> [ddnet] https://tenor.com/view/ok-and-ok-and-whole-sqaud-gif-22248092 15:18 <+bridge> [ddnet] if i use a free vpn that is a scam and will steal ur passwords 15:18 <+bridge> [ddnet] it will detect it 15:18 <+bridge> [ddnet] like bruh 15:18 <+bridge> [ddnet] https://tenor.com/view/getreal-gif-18750509 15:18 <+bridge> [ddnet] since when free vpns steal passwords 15:18 <+bridge> [ddnet] no every vpn 15:19 <+bridge> [ddnet] i specified 15:19 <+bridge> [ddnet] stop trolling please 15:19 <+bridge> [ddnet] the free vpns that are a scam 15:19 <+bridge> [ddnet] bruv 15:19 <+bridge> [ddnet] im a dev myself 15:19 <+bridge> [ddnet] i learened literally 15:19 <+bridge> [ddnet] every programming languagge 15:19 <+bridge> [ddnet] :monkalaugh: 15:19 <+bridge> [ddnet] html javacsript 15:19 <+bridge> [ddnet] css 15:19 <+bridge> [ddnet] c++ 15:19 <+bridge> [ddnet] c 15:19 <+bridge> [ddnet] mysqull 15:19 <+bridge> [ddnet] vue 15:20 <+bridge> [ddnet] :monkalaugh: :monkalaugh: :monkalaugh: :monkalaugh: :monkalaugh: 15:20 <+bridge> [ddnet] literally every single one 15:20 <+bridge> [ddnet] and i looked in the src 15:20 <+bridge> [ddnet] thats enough 15:20 <+bridge> [ddnet] what is void* in c? 15:20 <+bridge> [ddnet] good 15:20 <+bridge> [ddnet] if u know every language 15:20 <+bridge> [ddnet] now hack the mainframe 15:21 <+bridge> [ddnet] it indicatets that the fuinction does not return a value back 15:21 <+bridge> [ddnet] kekw 15:21 <+bridge> [ddnet] void*, not. void 15:21 <+bridge> [ddnet] lol 15:21 <+bridge> [ddnet] wrong 15:21 <+bridge> [ddnet] lmao 15:21 <+bridge> [ddnet] :think_bot: 15:21 <+bridge> [ddnet] https://tenor.com/view/dr-house-gregory-house-oops-gif-6118887 15:21 <+bridge> [ddnet] void* can return any object type 15:21 <+bridge> [ddnet] idk 15:21 <+bridge> [ddnet] i think 15:21 <+bridge> [ddnet] aa 15:21 <+bridge> [ddnet] oh 15:22 <+bridge> [ddnet] technically void* is a pointer to raw memory 15:22 <+bridge> [ddnet] a pointer withc is anot asscociated with any data 15:22 <+bridge> [ddnet] i think 15:22 <+bridge> [ddnet] i dont remeber well 15:22 <+bridge> [ddnet] what ryo said is correct, pointer not associated with a type 15:22 <+bridge> [ddnet] anyway try ur paid vpns on fng? 15:22 <+bridge> [ddnet] no 15:23 <+bridge> [ddnet] i dont have any money 15:23 <+bridge> [ddnet] neither any friends 15:23 <+bridge> [ddnet] :monkalaugh: 15:23 <+bridge> [ddnet] :cammo: 15:23 <+bridge> [ddnet] is this some new level of trolling? 15:23 <+bridge> [ddnet] https://tenor.com/view/homer-simpson-hiding-oops-im-out-im-leaving-gif-15737413 15:23 <+bridge> [ddnet] idk dude 15:24 <+bridge> [ddnet] anyways 15:24 <+bridge> [ddnet] this game is amaizinf 15:24 <+bridge> [ddnet] this game is amaizing 15:24 <+bridge> [ddnet] www.windscribe.com 15:24 <+bridge> [ddnet] this vpn doesnt get detected 15:24 <+bridge> [ddnet] and its free 15:24 <+bridge> [ddnet] it does, just not every server 15:24 <+bridge> [ddnet] oh 15:25 <+bridge> [ddnet] well maybe im wrong 15:25 <+bridge> [ddnet] which servers arent detected on fng? 15:25 <+bridge> [ddnet] i use that vpn too 15:25 <+bridge> [ddnet] no like 15:25 <+bridge> [ddnet] on blocker servers 15:25 <+bridge> [ddnet] liek copy love of box 15:25 <+bridge> [ddnet] idk, fng detects like evry on them 15:25 <+bridge> [ddnet] good 15:25 <+bridge> [ddnet] or other russian svs 15:25 <+bridge> [ddnet] kog and ddnet dont detect some 15:25 <+bridge> [ddnet] ik fng is amaizingf 15:26 <+bridge> [ddnet] no wonder its runned by noby 15:26 <+bridge> [ddnet] idk why 15:26 <+bridge> [ddnet] but 15:26 <+bridge> [ddnet] on fng svs 15:26 <+bridge> [ddnet] idk, fng detects like every of them 15:26 <+bridge> [ddnet] the animations are smoother' 15:26 <+bridge> [ddnet] the animations are smoother 15:26 <+bridge> [ddnet] like emotes movement 15:26 <+bridge> [ddnet] r=trajectories 15:26 <+bridge> [ddnet] literally 15:26 <+bridge> [ddnet] everything is smoother 15:26 <+bridge> [ddnet] the in other svs 15:26 <+bridge> [ddnet] idk 15:27 <+bridge> [ddnet] i think that is because sv_high_bandwidth 1 15:28 <+bridge> [ddnet] may be 15:31 <+bridge> [ddnet] anyways one thing is cleatr 15:31 <+bridge> [ddnet] anyways one thing is cleae 15:31 <+bridge> [ddnet] anyways one thing is clear 15:31 <+bridge> [ddnet] fng better] 15:31 <+bridge> [ddnet] fng better 15:32 <+bridge> [ddnet] :FeelsAmazingMan: 15:33 <+bridge> [ddnet] fng = ddrace:greenthing: 15:34 <+bridge> [ddnet] ye 16:16 <+bridge> [ddnet] kekw 16:18 <+bridge> [ddnet] i falsely got pointer to my printer driver 16:58 <+bridge> [ddnet] where cmake trying to find openssl, i put openssl forlder into ddnet-libs and it cant find it 16:59 <+bridge> [ddnet] where cmake trying to find openssl, i put openssl folder into ddnet-libs and it cant find it 17:34 <+bridge> [ddnet] lmao @Ryozuki github send me a warning email because it thinks you leaked a secret key \:D 17:34 <+bridge> [ddnet] https://github.com/TeeworldsDB/irclogs/commit/6a6043890dad679e49a7ce9179b5f30b8cb4070f#diff-2fc634214bc9ec72a7c78445a40a735b445e884519899f2f40a14ee1e3272703R172 17:34 <+bridge> [ddnet] image.png 17:34 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/873227550439129229/image.png 17:35 <+bridge> [ddnet] seems like m$ started to scan data for passwords poor bounty hunters who made a living out of leaked passwords from github 20:25 <+bridge> [ddnet] i was making a site 20:26 <+bridge> [ddnet] for my uncle 20:26 <+bridge> [ddnet] for him to launch 20:26 <+bridge> [ddnet] and it had like 400 lines of code\ 20:26 <+bridge> [ddnet] and it had like 400 lines of code 20:26 <+bridge> [ddnet] and oh boy 20:26 <+bridge> [ddnet] i had a long time finding it 20:27 <+bridge> [ddnet] :monkalaugh: 20:27 <+bridge> [ddnet] i was talking to @lynn lmao 20:28 <+bridge> [ddnet] btw @lynn can you code in vue? 20:28 <+bridge> [ddnet] i sent emoji to chiller's messages 20:28 <+bridge> [ddnet] chillerdragon is a nice guy 20:34 <+bridge> [ddnet] i dont really know vue but vue is ez 20:34 <+bridge> [ddnet] oops wrong message 21:18 <+bridge> [ddnet] lmfao 21:56 <+bridge> [ddnet] have we done issue cleanup in the past? 21:57 <+bridge> [ddnet] or maybe we should go through and assess priorities so it's easier for devs to sort through 21:57 <+bridge> [ddnet] i dont think i have permission to add labels @heinrich5991 21:58 <+bridge> [ddnet] I'm abit confused about your issue @heinrich5991 21:59 <+bridge> [ddnet] when you uncheck "Show chat" in the demo player it still plays chat notification sounds 22:00 <+bridge> [ddnet] isn't this the same as #3983 ? 22:00 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/3983 22:00 <+bridge> [ddnet] huh i remember seeing this too 22:00 <+bridge> [ddnet] ok i think we need to do issue cleanup 22:00 <+bridge> [ddnet] case in point xd 23:40 <+bridge> [ddnet] #1337 23:40 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/1337 23:40 <+bridge> [ddnet] uh thats cool 23:40 <+bridge> [ddnet] #420 23:40 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/420