koraktor / steam-condenser

A multi-language library for querying the Steam Community, Source, GoldSrc servers and Steam master servers
https://koraktor.de/steam-condenser
Other
359 stars 65 forks source link

Large RCON requests return "Unknown packet with header 0x72 received" #327

Open lampshady opened 4 years ago

lampshady commented 4 years ago

I've built a little Sinatra webapp using steam-condenser-ruby for Svencoop (modified goldsrc engine) which seems to be working well except for large RCON queries. I can successfully login, list players/pings, and run commands like rcon status which return as expected, but on messages with a large response size ie. rcon maps * I'm getting an error "Unknown packet with header 0x72 received" followed by a timeout.

koraktor commented 4 years ago

What version are you using? Can you please provide affected code?

lampshady commented 4 years ago

I tried using the latest tagged release 1.3.11 and when I saw the issue occur with that version I rebased our code against master HEAD using the new namespaced style and had the same problem.

We have a testing fork on our gitlab which is behaving well with our app, but it's just a hack to get it working and probably not the correct solution https://gitlab.com/oijfa/projects/steam-condenser-ruby/commit/953c1a357f58d9f92042a113db64d022fe561ad5

The file in our app which calls the steam-condenser code is here: https://gitlab.com/oijfa/projects/hlds-web-monitor/blob/master/sven.rb

koraktor commented 4 years ago

After coming back to this a few times without really finding an appropriate solution I went back to the GoldSrc RCON specification to look if there‘s some basic problem here. It seems there might be a problem with split packets in general.

Do you have a server were I can get a RCON password to tests this? Otherwise I‘ll try to setup my own one, but this might (again) take some time.

koraktor commented 4 years ago

I tried to reproduce this with HLDS and CS, but found no problem.

What‘s the output of maps * when run on the server (or via other tools)?