IRC logs of Libera.Chat #BZFlag for Wednesday, 2023-03-08

TimRikernc -N -i 1 -u localhost 5154 < README.md  does not seem to do anything against your server.01:38
TimRikertcp ports both work.01:39
blast007I was just using 'nc 127.0.0.1 5154' or 'nc ::1 5154' and typing lines of text followed by the enter key01:49
blast007oh, also you're using UDP in that example, and I don't have UDP hooked up yet01:50
TimRikerinteresting, but old, read: http://www.kegel.com/c10k.html02:03
TimRikerI use the -i to keep the connection open and spread out writes.02:04
TimRikerDo you think libevent is an option? Seems like that's been around for a while. I think it supports windows, but I've never used it there.02:09
TimRikerhttps://libevent.org/libevent-book/01_intro.html has some sample code.02:10
blast007I briefly looked at that but it seemed like overkill02:10
blast007specifically, this stuff "Libevent additionally provides a sophisticated framework for buffered network IO, with support for sockets, filters, rate-limiting, SSL, zero-copy file transmission, and IOCP. Libevent includes support for several useful protocols, including DNS, HTTP, and a minimal RPC framework. "02:10
TimRikerstill reading up on it. if it includes dns, we could use that instead of c-ares. we have talked about adding SSL/TLS, so that might be good too. Still reading up on it. No decision yet.02:12
blast007their SSL support requires either OpenSSL or mbedTLS02:16
blast007OpenSSL is a no-go on Windows because I don't want to have to install Perl, but mbedTLS might be an option02:17
blast007heh.. nope.. mbedTLS also needs Perl to build it.. plus Python02:18
TimRikerugh. and no pre-built versions around we trust?02:20
blast007we build our dependencies02:20
blast007it makes sure we're building against the same version of Visual C++02:21
TimRiker++02:21
blast007I don't know if we really need full encryption of the network traffic anyway02:22
blast007is the concern about spoofed UDP traffic?02:23
blast007if it's about chat, we could use something to encrypt just the text in transit02:28
TimRikerrot13 was an interesting option. This works against the test app:02:30
TimRikernc -N -i 1 localhost 40713  < README.md | nc -N localhost 4071302:31
TimRikerIt's not a critical feature in my mind. The extra overhead might detrimentally affect gameplay. If we had a tls/ssl session though that would validate udp traffic. it would be a tradeoff for sure.02:33
blast007a previous suggestion was a 2 byte security prefix on UDP packets, but I don't know if that actually helps in practice02:34
TimRikereasy enough to just send 64k spoofed packets I suppose. and if someone can intercept one packet, they have the reusable key.02:35
TimRikerright now you need to match the client ip and port. presumably if there is someone spoofing, they got that info from a packet?02:35
TimRikerI guess if they don't have the port, and we add another 16 bits, that's 2^32 spoofed packets needed.02:36
blast007they'd have to find their IP from some other means, like getting the victim to join a server they have admin right on or visit a web link02:36
blast007(both of which happened before)02:36
TimRikeragreed02:37
blast007back then though they just did straight up DoS attacks on the victums02:37
blast007victims*02:37
TimRikerso they got the ip, and how did they find the port? brute force?02:37
TimRikerah. ddos on the client ip. Was there reported spoofing of packets?02:38
blast007IIRC they weren't spoofing victim IPs to mess with game servers, but instead for use in UDP amplification attacks02:39
TimRikerI used hexdump in my example just to validate that it takes binary input. rot13 would still give binary output, which I suppose one could pipe to hd or the like. :)02:39
blast007so they get an IP to attack, and use that as the source IP in a spoofed request to some server02:39
blast007some server being something like DNS or chargen02:39
TimRikerare there sequences there that would actually amplify? From what I recall, our udp packets are not very large.02:40
blast007they weren't using our servers to amplify02:40
TimRikerk02:41
blast007they were hitting our stuff with amplifcation attacks from DNS servers, chargen servers, etc02:41
TimRikerI moved bzflag.* off buddydns as it kept getting hit with amplification attacks and buddy would stop serving. he.net has been great with it in that respect.02:42
*** Zehra <Zehra!~Yukari@user/yukari> has joined #bzflag02:50
blast007Zehra: re: MsgTimeUpdate, what kind of control of match time are you looking for?  Seems like you could already set the time remaining from the API, and bzfs sends a time update every 30 seconds02:54
blast007it also sends out an update immediately if clOptions->addedTime is set to a non-zero value, which could be modified from a new bzfsAPI function02:57
Zehrablast007: I'm looking to modify timing during a match period. Match is active at 5 mins 39 seconds, while 40 seconds is added when game play objective is accomplished.02:59
blast007Zehra: does bz_setTimeLimit(bz_getTimeLimit+40.0f) not work for that?03:01
blast007sorry, bz_setTimeLimit(bz_getTimeLimit()+40.0f)03:01
blast007(again, might take up to 30 seconds for the change to reflect on clients)03:02
ZehraI haven't tested it yet. I'm assuming it only works before/after a match is started.(At least from all examples I've seen.)03:02
Zehra(Viewing bzfsAPI.cxx and bzfs.cxx)03:04
blast007there's no logic in the function to detect if a match is running, and the code in bzfs.cxx always references clOptions->timeLimit when calculating what time remaining value to send03:04
ZehraAh, now I see: in bzfs.cxx float timeLeft = clOptions->timeLimit - newTimeElapsed; and clOptions->timeLimit = timeLimit; in bzfsAPI.cxx03:06
blast007you could also add a bz_modTimeLimit function that adds on to clOptions->addedTime03:06
ZehraI think it's more of something I missed while working on some API bypasses.03:08
ZehraCome to think of it, would a small change to bzfs.cxx's logic be alright, if it works with timing?03:10
blast007what change are you thinking of?03:10
ZehraSlight change to: if ((timeLeft == 0.0f || newTimeElapsed - clOptions->timeElapsed >= 30.0f || clOptions->addedTime != 0.0f)03:11
blast007what of that would you change?03:13
ZehraI'd add an additional conditional, either a boolean with something like instantTimeUpdate being true.03:17
Zehra(Probably the least neat option, but it certain to work.)03:17
ZehraOr if the time differences are off by more than 1 second.03:17
blast007perhaps bz_setTimeLimit() *should* return false if a match is active and instead bz_modTimeLimit should be created/used and that would alter clOptions->addedTime03:21
blast007altering the addedTime value immediately sends a time update03:22
ZehraAh, okay!03:23
ZehraThat works way better, actually makes a lot more sense.03:24
ZehraAlso maybe perhaps with added option of notify on timelimit change as function?03:24
blast007wonder if any plugins are using bz_setTimeLimit() during an active match03:25
blast007do any of our other functions notify players?03:26
ZehraI just see them modify clOptions->(option), no control over notifications it seems in a quick search.03:28
blast007even BZDB functions in the API might not trigger an automatic notification03:29
ZehraI mainly don't want it to spam a notification for timelimit updates/changes.03:32
ZehraIt might be distracting for players/admins if it's occurring a few times.03:33
blast007I would think in general the API functions *shouldn't* trigger any kind of notification03:33
blast007it should be up to the plugin itself to send a notification03:34
TimRikerthe clients display a countdown, right? that should update. not a visible notification, but a change to the timer time?03:36
ZehraI did some tests, but I can't say from the server side of things, since it was with bypassing the API.03:37
blast007TimRiker: yeah, I *think* we were both referring to a chat message notification03:38
TimRikerblast007, I'm often on WSL2 these days. no working ipv6 routing there. that's in my way... If I convert the Hyper-V network to bridged, then I can get IPv6, but I loose my VPN access. ugh.03:38
TimRikerblast007++03:38
ZehraI noticed you can let the "clock" reach zero and it remains there the entire time. (Not the server messages.)03:42
Zehra(only works with bypass though.)03:43
blast007TimRiker: I also found libuv, but it looks like they intend to drop support for older Windows platforms I'd still rather support03:58
blast007(their website also seems to not resolve on OpenDNS, so I couldn't even get to it)04:01
TimRikerwhich website? libuv? or libevent?04:07
blast007libuv04:07
*** FastLizard4 is back05:03
*** FastLizard4 is now away: IN-GAME - Stardew Valley05:03
*** Zehra <Zehra!~Yukari@user/yukari> has quit IRC (Quit: Quit.)05:07
*** yuitimothy is back05:13
*** _I_Died_Once <_I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has quit IRC (Ping timeout: 255 seconds)05:27
*** I_Died_Once <I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has joined #bzflag05:40
*** yuitimothy is now away: I've done some soul-searching and I still can't find it.05:41
*** _I_Died_Once <_I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has joined #bzflag05:44
*** I_Died_Once <I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has quit IRC (Ping timeout: 255 seconds)05:46
*** _I_Died_Once <_I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has quit IRC (Ping timeout: 255 seconds)05:51
*** FastLizard4 is back06:15
*** FastLizard4 is now away: AWAY from keyboard06:17
*** TimRiker <TimRiker!~TimRiker@2001:470:43cb::13> has quit IRC (Read error: Connection reset by peer)07:15
*** TimRiker <TimRiker!~TimRiker@2001:470:43cb::13> has joined #bzflag07:15
*** SpringTank <SpringTank!~quassel@75.28.20.205> has quit IRC (Ping timeout: 255 seconds)07:16
*** Sgeo <Sgeo!~Sgeo@user/sgeo> has quit IRC (Read error: Connection reset by peer)08:39
*** blast007[m] <blast007[m]!~blast007m@2001:470:69fc:105::7ec> has quit IRC (Quit: You have been kicked for being idle)09:00
*** SpringTank <SpringTank!~quassel@75.28.20.205> has joined #bzflag09:24
*** I_Died_Once <I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has joined #bzflag12:31
*** FastLizard4 is back13:44
*** FastLizard4 is now away: AWAY from keyboard14:18
*** FastLizard4 is now away: GONE - Screen Detached and Disconnected from IRC (I'm probably asleep, at work, or doing something in real life)14:31
*** Sgeo <Sgeo!~Sgeo@user/sgeo> has joined #bzflag15:27
*** _I_Died_Once <_I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has joined #bzflag17:00
*** I_Died_Once <I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has quit IRC (Ping timeout: 248 seconds)17:04
*** TimRiker <TimRiker!~TimRiker@2001:470:43cb::13> has quit IRC (Remote host closed the connection)22:01
*** FastLizard4 is back22:53
*** FastLizard4 is now away: AWAY from keyboard23:02

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!