Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BIG_INFO_STRING is too short #1215

Open
cu-kai opened this issue Jul 6, 2024 · 8 comments
Open

BIG_INFO_STRING is too short #1215

cu-kai opened this issue Jul 6, 2024 · 8 comments
Labels

Comments

@cu-kai
Copy link
Contributor

cu-kai commented Jul 6, 2024

We are sending a lot of information in the info strings now, and 8192 is just not big enough for this as I found out, simply setting some g_disabledEquipment and g_disabledBuildables caused an overflow on Bunker, and players are either spammed by: "Warn: Unknown client game command ..." or kicked from the server with the "bcs exceeded BIG_INFO_STRING" message.

Can we increase this? (double it?) What are the implications of such a change?

@sweet235
Copy link
Contributor

sweet235 commented Jul 6, 2024

How sad

@slipher
Copy link
Member

slipher commented Jul 6, 2024

I looked at the current serverinfo on Bunker and it's about 800 bytes. This is close to the "normal" MAX_INFO_STRING size of 1024, but nowhere near BIG_INFO_STRING. So probably the bcs commands are just broken and can't handle stuff more than 1024 correctly.

@cu-kai
Copy link
Contributor Author

cu-kai commented Jul 6, 2024

I looked at the current serverinfo on Bunker and it's about 800 bytes. This is close to the "normal" MAX_INFO_STRING size of 1024, but nowhere near BIG_INFO_STRING. So probably the bcs commands are just broken and can't handle stuff more than 1024 correctly.

Thanks for the clarification. So the real bug is not the one I am reporting? Feel free to re-title this as appropriate.

@slipher
Copy link
Member

slipher commented Jul 6, 2024

I was able to reproduce locally. The server sends a bcs0 and a bcs2 command, but somehow only the bcs2 command arrives to the client.

@slipher
Copy link
Member

slipher commented Jul 7, 2024

#1218 fixes the bcs exceeded BIG_INFO_STRING bug, BUT it does not mean that you can safely have a serverinfo string up to 8192 characters. In other parts of the system the serverinfo string is limited to 1024 chars. It has more restrictions than a general config string.

With #1218 you can now safely have a serverinfo string which is close to 1024 characters but not exceeding it (this was probably your use case.)

Increasing the max serverinfo length would require a compatibility-breaking change. Anyway the idea of the serverinfo is to display only the things that would be most relevant to someone deciding which server to join.

@DolceTriade
Copy link
Contributor

What is the long term fix? Are you saying we should create another mechanism for syncing arbitrary data between the server and client?

@cu-kai
Copy link
Contributor Author

cu-kai commented Jul 7, 2024

Increasing the max serverinfo length would require a compatibility-breaking change. Anyway the idea of the serverinfo is to display only the things that would be most relevant to someone deciding which server to join.

It seems to also be used to let the client decide which buildables, classes and equipment to show as locked in the menu.

What is the long term fix? Are you saying we should create another mechanism for syncing arbitrary data between the server and client?

This would probably be the best thing to do?

@slipher
Copy link
Member

slipher commented Jul 7, 2024

Other cvars that need to be sent to clients could be put in another info string besides the serverinfo one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants