-
Notifications
You must be signed in to change notification settings - Fork 13
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
Part five: Doorman rewrite #54
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Get compiling and working with no actual changes to layout or behaviour.
Honestly, it would have been more sane to have just rewritten everything.
snellers
reviewed
Jul 28, 2020
snellers
reviewed
Aug 2, 2020
snellers
reviewed
Aug 2, 2020
snellers
reviewed
Aug 2, 2020
snellers
approved these changes
Aug 2, 2020
mattgodbolt
added a commit
that referenced
this pull request
Aug 2, 2020
mattgodbolt
added a commit
that referenced
this pull request
Aug 2, 2020
mattgodbolt
added a commit
that referenced
this pull request
Aug 2, 2020
Builds on #81 A general purpose ID allocator. The allocator gives out small integer identifiers, along with a reference-counted reservation that holds them as "in use". IDs are eagerly recycled once the reference count hits zero. Useful for Xania and doorman to both have a "vote" for which channels are in-use. Previously we had bugs where there was a race in doorman if someone disconnected while xania was about to send a ton of info while another connection came in. The new connection would be given the channel ID of the recently-closed connection and would thus be delivered all the messages for the old connection.
mattgodbolt
added a commit
that referenced
this pull request
Aug 2, 2020
…l construction)
Now uses PACKET_MAX_PAYLOAD_SIZE to prevent ever sending more than we can handle over the xania<->doorman protocol. Fixes SendPacket to actually check the right things and return the right value. Per discussion with @snellers I think this handles the xania->doorman side of things. The doorman->xania and buffer handling on the xania side I think should be fixed as part of #46.
snellers
approved these changes
Aug 2, 2020
Thanks all: will merge and be damned after I get back from being out. I'll then babysit an upgrade and make sure all works out ok! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Now ready, based off #83 now to hopefully show the actual differences.
Previous TODOs:
newConnection
can go. CC @philjessies for the comment he made about the crimes committed innewConnection
fmt::print(stderr...)
)char buffer[4096]
and similar with some max-sized payload constant, shared between MUD and doorman. See @snellers comment aboutMaxIncoming
TODO
, e.g. thewritev
stuff.