









ban ip duration reason, when, by who, and how expired bans will be removed, if bans contain only duration, but not any kind of timestamp


































































































































































































- but yes for regular ddnet you'd want c++ knowledge



















https://badoption.eu/blog/2023/01/31/code_c2.html






























str_utf8_to_skeleton that we can use for it if we want to make it a little harder to get through with creative spelling (edited)




















BindAddr.type after parsing the bindaddr config variable using net_host_lookup here?
same thing with ec_bindaddr for econ here.
as far as i understand it net_host_lookup is supposed to parse the value and set BindAddr.type either to NETTYPE_IPV4 or NETTYPE_IPV6 and this determines how the 16 bytes in BindAddr.ip are to be interpreted.
but if BindAddr.type is afterwards set to NETTYPE_ALL like in the econ code, this causes subsequent code to interpret it as both ipv4 and ipv6. when ec_bindaddr is localhost (the default) then net_host_lookup returns ::1 and when the first 4 bytes are interpreted as ipv4 this results in 0.0.0.0. so by default econ is exposed publicly...
at first i thought this was just a bug in the econ code, but the standard server startup code does the same pattern of first calling net_host_lookup and then overwriting BindAddr.type. am i missing something?

BindAddr.type after parsing the bindaddr config variable using net_host_lookup here?
same thing with ec_bindaddr for econ here.
as far as i understand it net_host_lookup is supposed to parse the value and set BindAddr.type either to NETTYPE_IPV4 or NETTYPE_IPV6 and this determines how the 16 bytes in BindAddr.ip are to be interpreted.
but if BindAddr.type is afterwards set to NETTYPE_ALL like in the econ code, this causes subsequent code to interpret it as both ipv4 and ipv6. when ec_bindaddr is localhost (the default) then net_host_lookup returns ::1 and when the first 4 bytes are interpreted as ipv4 this results in 0.0.0.0. so by default econ is exposed publicly...
at first i thought this was just a bug in the econ code, but the standard server startup code does the same pattern of first calling net_host_lookup and then overwriting BindAddr.type. am i missing something? NETTYPE_ALL tho


NETTYPE_ALL




ec_bindaddr was set to localhost. Also implements the original intention of 85f5e9c that is to disable econ if ec_binaddr is invalid.
I've tested the following values and they behave as expected now:
ec_bindaddr "localhost" # listens on ::1 on my system
ec_bindaddr "127.0.0.1"
ec_bindaddr "0.0.0.0"
ec_bindaddr "[::1]"
ec_bindaddr "[::]"
ec_bindaddr "nonsense" # prints error and disables econ
Explanation: The old code...




ec_binaddr and parses the addressec_binaddr is an ipv4 or an ipv6 address
IPV6_V6ONLY to allow ipv4 connections





ec_bindaddr "localhost".


ec_bindaddr "localhost". 
localhost to bind to both

localhost to bind to both 












hot_reload xd





hot_reload xd 










hot_reload while in super? This should already be fixed in nightly.






hot_reload while in super? This should already be fixed in nightly. 





Whenever I debug the game with the sound backend on, it disconnects the debugger for an unknown reason 50% of the time.