Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2024-01-12 00:00:00Z and 2024-01-13 00:00:00Z
Avatar
Avatar
chillerdragon
I personally like using nload to look at the amount of traffic but you seem to have those numbers already. Then I can recommend capturing one attack with tcpdump -w attack.pcap let that running for a short time during the attack then ctrl+c it. This is something you can then analyse after the fact. Then as fokko pointed out check your cpu usage. If your game server it self has cpu spikes and there is lags in game but your ssh is still smooth, then iptables will help. Or maybe even changing your game server code. You can try attaching a profiler and identify where the most cpu time is spent during an attack. There might be some way to change the code to make it more efficient.
Hello thanks for the reply, so being quite new to Linux I'm still learning a lot on how to do stuff. My vps provider gave me some info, something about a UDP Flood, most of the ports were closed from the provider firewall so they are targetting the game port I believe. Game is UDP based, the TCP port is just for RCON. I'm not sure how to analyse the attack, I suppose I just run tcpdump -w attack.pcap? The few IPs they sent me traced back to another game host you might be familiar with NFO, however NFO believe the IPs were probably spoofed so no real luck there. Lately we can barely play the game on the few publicly visible servers we have, as they get attacked immediately, for a small game like ours that essentially kills the game. I'm looking to setup a server specifically designed to analyse the attack, and then hopefully we can see if we can actually mitigate it by buying more powerful machines and so on. Although I'm unsure right now how to go about doing all this, but I'm making progress I guess as some helpful people point me in the right direction.
Avatar
FFR
Avatar
Avatar
bauxite
Hello thanks for the reply, so being quite new to Linux I'm still learning a lot on how to do stuff. My vps provider gave me some info, something about a UDP Flood, most of the ports were closed from the provider firewall so they are targetting the game port I believe. Game is UDP based, the TCP port is just for RCON. I'm not sure how to analyse the attack, I suppose I just run tcpdump -w attack.pcap? The few IPs they sent me traced back to another game host you might be familiar with NFO, however NFO believe the IPs were probably spoofed so no real luck there. Lately we can barely play the game on the few publicly visible servers we have, as they get attacked immediately, for a small game like ours that essentially kills the game. I'm looking to setup a server specifically designed to analyse the attack, and then hopefully we can see if we can actually mitigate it by buying more powerful machines and so on. Although I'm unsure right now how to go about doing all this, but I'm making progress I guess as some helpful people point me in the right direction.
well to be fair. ddnet tried a lot of things and it is still massively ddosed. our GER10 have a custom ddos filter that works with whitelisting beforehand using http, and still if it's ddosed enough it's unplayable. Guess the best you can do if you have a small community is have 1 server that acts as proxy, public visible for new users -> this server will get ddosed. then one server that acts as proxy, but is not in the server list, where players can connect that you trust. <- and either this server is also the real gameplay server, or you make a third server that is the actual game play server. or simply don't open it to the public. also since it's a source engine game, maybe steam offers some protection?
Avatar
Hi Guys. I took a look in the files on github, and i'm a little curious. I wanted to see if i could somehow add a "foe" list like the friend list we have. So i search into the file and find the "friend.cpp". But since i didn't learn C AND i'm not really experienced .. I don't think i will able to add what i want. But for curiosity, in wich file the game load the score tab ? I was searching for, telling me i would found something where you can tell "if foe then color red".
Avatar
scoreboard.cpp i guess
Avatar
Okay. I feel stupid.. Should just have tried to search it from the search box. Thanks
Avatar
chillerdragon BOT 2024-01-12 09:23:27Z
Ok I might google it if you say it’s easy
Replying to @heinrich5991 I'm using thunderbird
Avatar
good friday
Avatar
nah its bad
Avatar
Avatar
bauxite
Hello thanks for the reply, so being quite new to Linux I'm still learning a lot on how to do stuff. My vps provider gave me some info, something about a UDP Flood, most of the ports were closed from the provider firewall so they are targetting the game port I believe. Game is UDP based, the TCP port is just for RCON. I'm not sure how to analyse the attack, I suppose I just run tcpdump -w attack.pcap? The few IPs they sent me traced back to another game host you might be familiar with NFO, however NFO believe the IPs were probably spoofed so no real luck there. Lately we can barely play the game on the few publicly visible servers we have, as they get attacked immediately, for a small game like ours that essentially kills the game. I'm looking to setup a server specifically designed to analyse the attack, and then hopefully we can see if we can actually mitigate it by buying more powerful machines and so on. Although I'm unsure right now how to go about doing all this, but I'm making progress I guess as some helpful people point me in the right direction.
tcpdump -w attack.pcap udp and dst port <yourport>
10:14
so you filter only on ur gameport
10:14
during the attack
👍 1
Avatar
I just slept half an hour at workj
12:07
wait
12:07
40-45 min actually i think :o
Avatar
I'm also extremely tired today xd
12:21
im not tired
12:22
drink more water
12:22
and maybe go to gym and then code in rust
Avatar
dude
12:25
these spoilers made me really angry
12:25
especially the second one
12:25
!!! xD
Avatar
Avatar
Jupstar ✪
I'm also extremely tired today xd
woke up with numb arms
12:25
because of he way i was laying
12:25
anyways, time for a cigarette
Avatar
my ddnet crashed but no dump happened and when i try to open it again nothing happens
12:32
Nvm they just do this wut
Avatar
Avatar
Ryozuki
xD
"laying" aka sitting
12:34
I woke up perfectly so that my workmate did not notice anything haha
12:34
he was having lunch break which I don't do today cuz I leave early
Avatar
ok uhm roblox seems to make ddnet stop working if its in fullscreen
Avatar
Avatar
cyberFighter
ok uhm roblox seems to make ddnet stop working if its in fullscreen
Cool
13:04
I'm really happy that other apps influence ddnet so much
13:05
If ddnet.isopen do shit
Avatar
ive noticed
Avatar
I am about to go crazy. Why won't TSA say through which path it thinks I'm holding the lock and calling this function
Avatar
Avatar
Learath2
I am about to go crazy. Why won't TSA say through which path it thinks I'm holding the lock and calling this function
Truly the stupidest piece of compiler aid ever offered, you need to annotate everything, it doesn't try proving anything
Avatar
Avatar
Jupstar ✪
well to be fair. ddnet tried a lot of things and it is still massively ddosed. our GER10 have a custom ddos filter that works with whitelisting beforehand using http, and still if it's ddosed enough it's unplayable. Guess the best you can do if you have a small community is have 1 server that acts as proxy, public visible for new users -> this server will get ddosed. then one server that acts as proxy, but is not in the server list, where players can connect that you trust. <- and either this server is also the real gameplay server, or you make a third server that is the actual game play server. or simply don't open it to the public. also since it's a source engine game, maybe steam offers some protection?
Valve has their SDR network that was probably created as a result of these DDOS attacks on their games and pro tournaments, unsure if we can utilize it somehow, I think I saw something in Deen's post about Valve offering to help.
Avatar
hi i want to play last ddnet version on my phone
14:08
if somebody can help me to compile it
14:08
idk how to do
14:08
(ik its hard asf to play on phone)
Avatar
@Learath2 was about to say the keyword but i dont want u to hate me
14:10
owo
Avatar
Avatar
Ryozuki
@Learath2 was about to say the keyword but i dont want u to hate me
😬
14:10
today is friday
14:10
go ahead
14:11
# rust
Avatar
Avatar
Ryozuki
@Learath2 was about to say the keyword but i dont want u to hate me
Does Rust's fearless concurrency even include any static thread safety analysis? Or does the type system guarantee it in a way I'm not thinking of right now?
Avatar
Avatar
Learath2
Does Rust's fearless concurrency even include any static thread safety analysis? Or does the type system guarantee it in a way I'm not thinking of right now?
safe rust prevents data races but not race conditions
Avatar
(hope i got it right and not the other way around)
Avatar
you skipped me
Avatar
Avatar
Nathan_
hi i want to play last ddnet version on my phone
yeah without experience no chance, sry
14:11
without compiling experience
Avatar
who i can ask ?
Avatar
Avatar
Learath2
Does Rust's fearless concurrency even include any static thread safety analysis? Or does the type system guarantee it in a way I'm not thinking of right now?
but the unique mutability of rust references holds big part in that
Avatar
chatgpt, google
14:12
i dunno
Avatar
Avatar
Ryozuki
safe rust prevents data races but not race conditions
TSA does something different, it makes sure you are holding a capability before accessing anything guarded by that capabilty
Avatar
Avatar
Jupstar ✪
chatgpt, google
oooh i forgot chatgpt exist ty
Avatar
what is a capability here?
Avatar
Avatar
Nathan_
hi i want to play last ddnet version on my phone
@fokkonaut maybe u can help me brownbear (edited)
Avatar
Avatar
Nathan_
oooh i forgot chatgpt exist ty
https://github.com/ddnet/ddnet/tree/master/scripts/android these are the build scripts, but without knowledge and local modifications it wont work
DDraceNetwork, a free cooperative platformer game. Contribute to ddnet/ddnet development by creating an account on GitHub.
14:13
because they are not up to date
Avatar
Hello. I wanted to ask a question. I dont have much money and Ive seen people run doom on pregnancy tests, so where can i download a ddnet version for pregnancy test.
Avatar
Avatar
Learath2
TSA does something different, it makes sure you are holding a capability before accessing anything guarded by that capabilty
isn't that simply any lock?
14:17
or does it do anything useful further than this xd
Avatar
Avatar
MilkeeyCat
Hello. I wanted to ask a question. I dont have much money and Ive seen people run doom on pregnancy tests, so where can i download a ddnet version for pregnancy test.
? how drunk are u?
Avatar
xDDDD i thought my english is bad but its not my english its really what i expected xDDD
Avatar
Avatar
Jupstar ✪
isn't that simply any lock?
TSA makes sure of it statically
Avatar
Avatar
Learath2
TSA makes sure of it statically
yeah but how does rust not do that xd
14:21
without mutability u cant do lot in rust
14:21
and for mutability in threaded context u need a lock
14:21
or atomic
Avatar
Avatar
Jupstar ✪
yeah but how does rust not do that xd
I guess it kinda does by having mutexes contain what they guard
Avatar
ah yeah
Avatar
But it's not simply a function of any lock in any programming language. Locks are runtime
Avatar
i already forgot that isnt the case in cpp xD
Avatar
Avatar
Jupstar ✪
? how drunk are u?
Avatar
ok then go
Avatar
go where?
Avatar
let's go
14:31
compile ddnet
14:31
on toaster
Avatar
nono, im asking U how to do it
Avatar
@Jupstar ✪ when use io_uring
14:34
and require latest kernel
Avatar
Avatar
Ryozuki
@Jupstar ✪ when use io_uring
is it stable and no security problem anymore? xd
Avatar
i think yes xd
14:35
Welcome to Lord of the io_uring (edited)
Avatar
@heinrich5991 the logging stuff seems to have some data race according to tsan. You might want to investigate, the two I found in my own code were real races
14:45
14:45
xd
Avatar
BlaiZephyr | meloƞ 2024-01-12 14:45:37Z
Avatar
Jakarta Server Pages (JSP; formerly JavaServer Pages) is a collection of technologies that helps software developers create dynamically generated web pages based on HTML, XML, SOAP, or other document types. Released in 1999 by Sun Microsystems, JSP is similar to PHP and ASP, but uses the Java programming language. To deploy and run Jakarta Serve...
14:46
@Learath2 someone at work mentioned they used to work with this lol
Avatar
Ah it's localtime used in str_timestamp_ex can't do that, it's not threadsafe
Avatar
is there some localtime_s?
14:49
xd
Avatar
There is but it's not guaranteed to exist Cool
Avatar
(since C11)
Avatar
It's optional since C11 because it's part of Annex K
Avatar
Are we C++20 yet? If so we can use the new timezone stuff
Avatar
no
Avatar
Avatar
Learath2
Are we C++20 yet? If so we can use the new timezone stuff
no cuz macos
14:59
i think
14:59
we should drop macos <14 support
Avatar
not because of macos, but we should still drop it
15:01
😏
Avatar
No one really implemented Annex K functions anyway
15:07
I guess POSIX has localtime_r much earlier than C23
Avatar
@Learath2 so u simply cant get localtime in a mt context?
Avatar
Not from multiple threads
Avatar
We have uses of localtime in the code which is not thread-safe, localtime_r has been available in POSIX for a long time, localtime_s is available in msvcrt and localtime_r is available in mingw. Or we could bump up to C++20 and use std::chrono::zoned_time. In more general ThreadSanitizer seems to find some actual real issues, at least I haven't encountered any false positives. It is expensive resourcewise though, so should we maybe enable it on CI if the resource cost isn't prohi...
Avatar
@Learath2 where are we ever reading the localtime in a thread? on server?
Avatar
@Ryozuki My company decided to switch to rust now 😄
Avatar
Avatar
Jupstar ✪
@Learath2 where are we ever reading the localtime in a thread? on server?
Any logging from a thread different from main
Avatar
Avatar
Avolicious
@Ryozuki My company decided to switch to rust now 😄
EPYC
Avatar
Avatar
Learath2
Any logging from a thread different from main
ah so logging i c
Avatar
Just wanted to tell you as rustaholic
Avatar
@Avolicious rust slowly wins over the market
15:33
owo
Avatar
Avatar
Ryozuki
@Avolicious rust slowly wins over the market
Yeah, we are using it now for a DACH / EU project
Avatar
whats dach
Avatar
Germany, Austria, Switzerland
15:43
these names are funny
15:43
they call use PIGS
15:43
PIGS is a derogatory acronym that has been used to designate the economies of the Southern European countries of Portugal, Italy, Greece, and Spain. During the European debt crisis of 2009–14 the variant PIIGS, or GIPSI, was coined to include Ireland.
15:51
@Learath2 @heinrich5991 good link about ipc stuff
15:52
SIGABRT Process abort signal. SIGALRM Alarm clock. SIGFPE Erroneous arithmetic operation. SIGHUP Hangup. SIGILL Illegal instruction. SIGINT Terminal interrupt signal. SIGKILL Kill (cannot be caught or ignored). SIGPIPE Write on a pipe with no one to read it. SIGQUIT Terminal quit signal. SIGSEGV Invalid memory reference. SIGTERM Termination signal. SIGUSR1 User-defined signal 1. SIGUSR2 User-defined signal 2. SIGCHLD Child process terminated or stopped. SIGCONT Continue executing, if stopped. SIGSTOP Stop executing (cannot be caught or ignored). SIGTSTP Terminal stop signal. SIGTTIN Background process attempting read. SIGTTOU Background process attempting write. SIGBUS Bus error. SIGPOLL Pollable event. SIGPROF Profiling timer expired. SIGSYS Bad system call. SIGTRAP Trace/breakpoint trap. SIGURG High bandwidth data is available at a socket. SIGVTALRM Virtual timer expired. SIGXCPU CPU time limit exceeded. SIGXFSZ File size limit exceeded.
15:52
epic list
16:03
High-Throughput, Formal-Methods-Assisted Fuzzing for LLVM
Avatar
Flathub introduced a new guideline for the metadata, and the DDNet one was not 100% aligned with it. I updated it with the following PR: https://github.com/flathub/tw.ddnet.ddnet/pull/58. I took the opportunity to update the screenshots with new ones—one from the main menu and the others from the Steam page. The old ones (5 years old) were introduced on this repository just for the metadata file and can now be removed. Discussed here: https://github.com/ddnet/ddnet/pull/2021#discussion_...
Avatar
where can I commit some improved community icons? can't find them in the repo, I guess because the client downloads them
Avatar
i think @Robyt3 knows
Avatar
Avatar
Ravie
where can I commit some improved community icons? can't find them in the repo, I guess because the client downloads them
You can open an issue on github or an Admin-Mail-ticket on Discord for that (edited)
Avatar
I guess I'll put the files in an issue and someone will update them wherever they are in the universe
Avatar
I've adjusted the logos to look better at small scale. !ddnet !kog
Avatar
Initially record demos to .%pid%.tmp files and rename them to the real filename when the recording is stopped. This ensures that .demo files are valid, assuming no io_write errors occur. If the client crashes or otherwise fails to stop the demo recording, then the invalid demos will stay .tmp files. To simplify the usage, the handling of temporary files is added directly to the demo recorder. A parameter bool RemoveFile is added to the IDemoRecorder::Stop function to control wh...
21:15
This fixes #7755 and #5781 Same code is used here, for the same reasons: https://github.com/ddnet/ddnet/blob/495290e0b2c38029a7913db0945e7ea9e944551d/src/game/server/player.cpp#L722-L737

Checklist

  • [x] Tested the change ingame
  • [x] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and ou...
Avatar
is there any rate limiting on https://master1.ddnet.org/ddnet/15/servers.json or a suggested frequency for fetching data?
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
rust needs this
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
new macro? xd
23:08
7f89f1b Remove old screenshots - miguilimzero 343e237 Merge pull request #280 from miguilimzero/master - def-
Avatar
64a70ac Fix AFK being shown only for a split second when timing out - swarfey 495290e fix style - swarfey 79bc3b2 use SetInitialAfk instead of SetAfk - swarfey 80f77c5 Merge pull request #7791 from swarfeya/master - def-
Exported 175 message(s)