01:57 < ws-client> Hmm ddnet master seems to pass pipelines but my pending pr and fork fail both in unit tests whats up with that <:tee_thinking:478629518358085653> 01:57 < ws-client> https://github.com/ddnet/ddnet/actions/runs/8273728097/job/22637984086?pr=7947 01:57 < ws-client> https://github.com/ZillyInsta/ddnet-insta/actions/runs/8273683092/job/22637865388 01:58 < ws-client> https://zillyhuhn.com/cs/.1710377866.png 01:58 < ws-client> Did I break that? 02:34 < ws-client> jopsti ur also netcup customer right? They shut down my vps once when i was port scanning for a mc server which seems fair. Now they took down my server again saying I did scan the ip 138.201.27.25 with src port 25+- and destination port 25+- no idea what happend there but sounds like bullshit. 02:34 < bridge> lmfao 02:35 < bridge> why port scanning for mc 02:35 < ws-client> Any tips on how to get the vps back? Did that happen to you as well? 02:35 < bridge> are u troll 02:35 < ws-client> @Ewan liveoverflow 02:35 < bridge> we had 3 ppl come in and grief on my last mc server 02:35 < bridge> rly glad i had coreprotect 02:36 < ws-client> I might have to switch hoster if netcup keeps doing this. They are holding all my data hostage and keeping all my services down until i write them a letter that proofs i fixed the problem. Which is tricky in this case. 03:42 < bridge> ddnet.org was unreachable a couple hours ago, and I assume the bot didn't attempt to reconnect to Discord once the outage resolved itself 04:37 < bridge> chillerDragon: add the infos about integer overflow: 04:37 < bridge> 04:37 < bridge> https://protocol-docs.teeframe.com/fundamentals.html#integer-overflow 04:37 < bridge> https://protocol-docs.teeframe.com/packets/snaps-concept.html#calculating-crc 04:37 < bridge> https://protocol-docs.teeframe.com/packets/snaps-concept.html#string-packing-to-snap-items 04:38 < bridge> I also added a new topic talking about snap IDs https://protocol-docs.teeframe.com/packets/snaps-concept.html#snap-ids 05:06 < bridge> I also added a new topic talking about snap item IDs https://protocol-docs.teeframe.com/packets/snaps-concept#snap-item-id-id 05:11 < bridge> chillerDragon: added the infos about integer overflow: 05:11 < bridge> 05:11 < bridge> https://protocol-docs.teeframe.com/fundamentals.html#integer-overflow 05:11 < bridge> https://protocol-docs.teeframe.com/packets/snaps-concept.html#calculating-crc 05:11 < bridge> https://protocol-docs.teeframe.com/packets/snaps-concept.html#string-packing-to-snap-items 07:02 < ws-client> <:poggers2:1008007455936094328> @miguilim 07:13 < ws-client> @robyt3 the client not being able to quit is getting really annoying is someone on that? If not can we revert the change that waits for all systems to shutdown? I sometimes reboot multiple clients in a 5sec interval and now i have to wait up to 20seconds with it also trapping my mouse on shutdown that is not okay 07:14 < bridge> same 07:14 < ws-client> I would patch it my self but the maintenance effort of that patch is huuuge 09:50 < bridge> hi 09:50 < bridge> uhh I'm trying to host my own FNG2 server using AWS (EC2) 09:51 < bridge> Everything's been OK but when I try to open the start.sh 09:52 < bridge> it says "Permission denied" 09:52 < bridge> I already did "$ uwf allow 8303" too 09:53 < bridge> any kinf of help would be appreciated 🥺 09:53 < bridge> any kind of help would be appreciated 🥺 09:55 < bridge> Make it executable, `chmod +x start.sh` 10:06 < bridge> alright, I'm gonna check if th at works 10:06 < bridge> thanks in advance 10:08 < bridge> It seems like it doesn't work anyway 10:08 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1217761248272322601/image.png?ex=6605338a&is=65f2be8a&hm=8a6f6537710f5c3018d8baf6c245e39f68c48647c8e3651b8bc0becd80d4fe51& 10:08 < bridge> It seems like that doesn't work neither 10:08 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1217761248272322601/image.png?ex=6605338a&is=65f2be8a&hm=8a6f6537710f5c3018d8baf6c245e39f68c48647c8e3651b8bc0becd80d4fe51& 10:12 < bridge> chmod +x fng2_srv 10:12 < bridge> ChillerDragon: The client not quitting should already be mostly fixed in nightly. All there is left is adding some more specific timeout values for some of the HTTP requests, which have the default timeouts that probably cause them to wait very long if you have bad internet. I'm also working on overhauling the skin loading in general. 10:14 < bridge> OK WOW THANKS 10:14 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1217762682577358848/image.png?ex=660534e0&is=65f2bfe0&hm=b42607a084adc6be1e5b7226d36626f63683e72c37e9ae12ed69fd8e83b44dd9& 10:14 < bridge> yw 10:14 < bridge> Why does the "configure your firewall/nat thing keeps happening though 10:14 < bridge> if I already put `uwf allow 8303` 10:15 < bridge> ufw* 10:15 < bridge> OH 10:15 < bridge> ChillerDragon: The ASAN run on #8098 also failed with a random segfault around the same time. Does it happen on master? Maybe CI is broken again. 10:15 < bridge> https://github.com/ddnet/ddnet/pull/8098 10:15 < bridge> then that may be whay I did wrong I guess 10:16 < bridge> maybe 10:17 < bridge> nope it still doesn't work 10:19 < bridge> iptables -I INPUT -p udp --dport 8303 -j ACCEPT 10:21 < bridge> wasn't sure if that was an -L or -I so I tested with both and none of them worked 10:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1217764605758275584/image.png?ex=660536aa&is=65f2c1aa&hm=e24a68c92382de14a23ece3925c6498ec6915c16b06e45aac77714fd878ba8d6& 10:25 < bridge> wasn't sure if that was an `-l` or `-i` so I tested with both and none of them worked 10:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1217764605758275584/image.png?ex=660536aa&is=65f2c1aa&hm=e24a68c92382de14a23ece3925c6498ec6915c16b06e45aac77714fd878ba8d6& 10:26 < bridge> ``` 10:26 < bridge> ufw enable 10:26 < bridge> ufw allow 8303/udp 10:26 < bridge> ufw status 10:26 < bridge> ``` 10:28 < bridge> alright 10:28 < bridge> I did that 10:28 < bridge> time to check again if it works 10:29 < bridge> wtf 10:29 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1217766561109114920/image.png?ex=6605387d&is=65f2c37d&hm=9cc4d2c100f0b520c425c1daa4eb6f32d40289aed4588d6e81e7101d85424c44& 10:29 < bridge> important to know that literally everything's on allow 10:29 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1217766657632768020/image.png?ex=66053894&is=65f2c394&hm=fef6a7093b2fc783c6b045c58cf22519018fe2925121b9ae2bc811e3953ce96a& 10:30 < bridge> important to know that literally everything's on `ALLOW` 10:30 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1217766657632768020/image.png?ex=66053894&is=65f2c394&hm=fef6a7093b2fc783c6b045c58cf22519018fe2925121b9ae2bc811e3953ce96a& 10:31 < bridge> then I don't know sorry 😦 10:32 < bridge> nah don't worry man you tried to help and that's all I care abt 😅 10:32 < bridge> thanks and have a nice day :3 10:32 < bridge> tnx you too ❤️ 10:35 < bridge> anyway I think it's funny how every time I tried to host a teeworlds server I always finish having networking issues 10:37 < bridge> I think you need to open the port through the web console on AWS. Try googling it. 10:37 < bridge> well that makes sense 10:37 < bridge> I'd try that 10:37 < bridge> thanks! 10:46 < bridge> uhm 10:46 < bridge> I added a Custom UDP inbound via the Security Group thing 10:46 < bridge> now I can't connect to the instance 10:46 < bridge> 💀 10:48 < bridge> Over ssh? 10:49 < bridge> nope, I'm trying to connect via the "EC2 Instance Connect" thing, not an ssh client 10:49 < bridge> I also tried to connect via the instance connection endpoint and it still does not let me connect 10:53 < bridge> Not sure, I think because you have enabled `ufw` now. It might be blocking that connection because you're not allowing ssh any more. 11:50 < bridge> that makes lots of sense 12:06 < ws-client> @robyt3 about the startup times nice to hear I will merge again didn't do that in a few weeks. 12:07 < ws-client> @robyt3 about the CI i have had multiple segfaults and ubsans today in two prs and in one fork. But also created a test branch on master with a readme change that passed so idk what is happening there 12:09 < ws-client> > anyway I think it's funny how every time I tried to host a teeworlds server I always finish having networking issues 12:09 < ws-client> @blazulite yes networking is the hardest part about it. Because setting up the game server it self is so smooth c: 12:09 < ws-client> one other trap is configs and maps but thats about it 12:14 < bridge> ChillerDragon: ikr 😭 12:15 < bridge> I tried to also remove the inbound rules from the security group and I still can't connect via the EC2 Instance Connect 12:15 < bridge> My brain is exploding :D 12:46 < ws-client> @robyt3 i just merged my client and on first launch I had a 20 sec freeze plus gnome popup saying your program froze. Is this my custom http call having wrong timeouts? But the logs showed that one as done already its usually fast and clean. 12:46 < ws-client> I can not reproduce it anymore i still have a 2 seconds delay but its much better than 20 12:49 < bridge> 20 sec freeze might be just the way we load 12:49 < bridge> unrelated to http and everything 12:49 < bridge> we don't process window messages during loading IIRC 12:49 < ws-client> i mean quitting not booting 12:49 < bridge> ah 12:49 < ws-client> load is smooth 13:21 < bridge> how would I write a small custom HTTP server to test our HTTP client impl? 13:36 < bridge> `python3 -m http.server`? 13:47 < bridge> yo where was that one library for tw maps in rust? 13:57 < ws-client> @heinrich5991 yea wat lerato said. Or do you need it to be slow? Then I would go with express/sinatra/flask or any other web framework where you can define routes in 5 lines of code and put a sleep in there 13:59 < ws-client> @teero777 on the blaze it git cloud 14:00 < ws-client> high dutch people gitlab.com/patiga/twmap 14:00 < bridge> send link! 14:00 < bridge> cant find it 14:00 < ws-client> https://gitlab.com/Patiga/twmap 14:00 < bridge> <3 14:00 < ws-client> https://zillyhuhn.com/cs/.1710421241.png 14:00 < ws-client> blaze 14:15 < bridge> ```rust 14:15 < bridge> if if if a == b { 14:15 < bridge> b == c 14:15 < bridge> } else { 14:15 < bridge> a == c 14:15 < bridge> } { 14:15 < bridge> a == d 14:15 < bridge> } else { 14:15 < bridge> c == d 14:15 < bridge> } { 14:16 < bridge> println!("True!"); 14:16 < bridge> } else { 14:16 < bridge> println!("False!"); 14:16 < bridge> } 14:16 < bridge> ``` 14:16 < bridge> https://without.boats/blog/iterators-and-traversables/ 14:28 < bridge> thats lit 14:28 < bridge> @heinrich5991 @learath2 @jupeyy_keks @chairn 14:28 < bridge> 14:28 < bridge> # Happy PI day! 14:28 < bridge> :owo: 14:32 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1217827707115540550/450px-Happy_Pi_Day_sign_for_sales_on_pies_at_Delicious_Orchards.png?ex=6605716f&is=65f2fc6f&hm=2fbf266df1017890d2256839bc5fe3a750c1bfc8ec00955cb6f23ed77f80e66c& 15:15 < bridge> tf are u doign with those 14 cents saved 16:25 < bridge> need custom headers, custom status, custom sending delays, etc. 16:28 < bridge> hyper was pleasent enough to use in rust, maybe that works for you? 16:28 < bridge> Not very ergonomic though 16:37 < bridge> Btw I don't like what we ended up with in #8019. `Gpu`, `Ui`, `Id` all look meh. At the very least acronyms should have been all capital 16:37 < bridge> https://github.com/ddnet/ddnet/pull/8019 16:37 < bridge> And all the renames absolutely ruined blames for years to come 16:38 < bridge> Lose lose 16:44 < bridge> `Rename all variables for strict camel-casing of abbreviations` will be the new `copied refactor to trunk` for the next decade 16:46 < bridge> I suggest using ignoreRevs or tig, both very powerful in dealing with that 16:48 < bridge> Atleast renames don't add lines like mass styling. Hopefully this will be the last time we do massive 300 file commits just to change styles 16:49 < bridge> I still want one for proper prefixing of variable names 16:50 < bridge> :PainChamp: 17:01 < bridge> https://tenor.com/view/imnota-cat-fubuki-gif-18573529 17:59 < bridge> @patiga are there any example on how do place some block with libtw? 17:59 < bridge> @patiga are there any example on how do place some blocks with libtw? 17:59 < bridge> @patiga are there any examples on how do place some blocks with libtw? 18:01 < bridge> @patiga are there any examples on how do place some blocks with twmap? 18:30 < bridge> https://teewebs.net 18:30 < bridge> Does this thing still work? Or no? 18:30 < bridge> And if it does, can I connect to a lan server with it in the same way? 18:32 < bridge> @murpi /upload still seems to be down 18:36 < bridge> The project itself should still work, but seems like the website is broken. The server you will be connecting to needs to support websockets with `-DWEBSOCKETS=ON`. 18:40 < bridge> The project itself should still work, but seems like the website is broken. The server you will be connecting to needs be compiled with `-DWEBSOCKETS=ON`. 18:55 < bridge> I seem to have trauma from years of propaganda. I know exactly what data structure I should be using but there is this voice in my head telling me it's wrong. Normalize using linked lists, especially ones backed by contiguous storage 19:04 < bridge> @learath2 SkinDB Bot seems to be offline or not connecting, maybe you wanna check? 19:05 < bridge> I gave it a restart and it just came back up, it doesn't log at all so nothing to diagnose really 19:06 < bridge> And YADDB dying yesterday was indeed a connection issue, no idea why it never recovered 19:14 < bridge> i have a silly question about `CVoteOptionServer`, why does it have `char m_aCommand[1]`? 19:15 < bridge> like, why exactly `[1]` 19:19 < bridge> It's an old hack to compensate for C++s lack of flexible array members 19:20 < bridge> It's technically UB, but we allocate more than needed for just `CVoteOptionServer` and access the extra allocated space through `m_aCommand` 19:20 < bridge> huh 19:21 < bridge> so its pointer to last structure byte and first for string that lays in heap's padding memory? 19:22 < bridge> It's treated that way yes, but as far as C++ is concerned it is an array of a single char that we are reading beyond the bounds of 19:22 < bridge> I do this sometimes because you can pass it to functions without having to write & 19:23 < bridge> Like 19:23 < bridge> ``` 19:23 < bridge> void example(int*); 19:23 < bridge> 19:23 < bridge> int x[1]; 19:23 < bridge> example(x); 19:23 < bridge> ``` 19:23 < bridge> looks useful for string only though 19:23 < bridge> strings* 19:23 < bridge> like how would you find the actual length without passing it 19:24 < bridge> If you don't store a string, you use a size member 19:24 < bridge> ah, fair 19:25 < bridge> It's a nasty nasty hack that no compiler can break because it's the goto workaround for flexible array members 19:25 < bridge> does it need to be refactored in future anyway? 19:25 < bridge> in ddnet i mean 19:25 < bridge> the way vote options are stored, the struct itself and vote handling in general 19:25 < bridge> I wouldn't really mess around with it without good reason 19:26 < bridge> /shrug making `CGameContext` less god class 19:26 < bridge> nice xd 19:26 < bridge> Most people would rework that to `std::string m_Command` and I don't like to introduce random heap allocations because C++ is a deficient language 19:29 < bridge> WG14 suggests people use `char m_aCommand[SOME_MAX_SIZE]` but allocate less if needed. Which makes the access not UB at the cost of making `sizeof CVoteOptionServer` insane 19:32 < bridge> hm what about just using `const char*` and allocate string outside the structure (it will be placed after the structure anyway i think) in the heap 19:32 < bridge> `CHeap::StoreString(...)` seems sane 19:33 < bridge> idk, maybe it's just my view, `m_aCommand[1]` looks weird for me xd 19:33 < bridge> I don't like it, I want nothing to do with it, but I'm sure you can get heinrich or deen to merge it 19:33 < bridge> Adding a pointless layer of indirection 19:34 < bridge> anyway thanks for help, wouldn't understand it myself 21:21 < bridge> yo 21:21 < bridge> whats the point of multiplying by the ramp value and then dividing by it again? 21:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1217930507707355147/image.png?ex=6605d12d&is=65f35c2d&hm=218b399857e810efe7751b8f7c70a2a53cbe8a9537fab3acbddf907ae5844cd2& 21:21 < bridge> is it affected by MoveBox 21:21 < bridge> is it affected by MoveBox? 22:00 < bridge> are you collecting data about player behaviour? 22:01 < bridge> if yes can you share statistics? 23:12 < bridge> <0xdeen> There are some stats and raw data in https://ddnet.org/stats/