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

nickserv/enforce: REGAIN: fix race condition #850

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

Conversation

ilbelkyr
Copy link
Member

FNC semantics with most protocols are that services request the nick change, but the actual nick change itself has to originate from the user's own server. This means that we must wait for the Guest nick change to be applied before changing the regaining user's nick, as otherwise that change might be applied first on part of the network, requiring an ircd-side resolution of the nick collision resulting from this as the original person using the nick has not been renamed yet.

This probably still has a number of imperfections; it's essentially a rebase of a handful of commits from almost two years ago even longer ago by now and hasn't seen much real-world testing yet.

as @dwfreed pointed out, this has been sitting on a branch for ages now. potential considerations:

  • do we want a timeout in case of network issues causing the target's server to be unresponsive, so users can still regain nicks even if their target's server is dying/splitting?

FNC semantics with most protocols are that services request the nick
change, but the actual nick change itself has to originate from the
user's own server. This means that we must wait for the Guest nick
change to be applied before changing the regaining user's nick, as
otherwise that change might be applied first on part of the network,
requiring an ircd-side resolution of the nick collision resulting from
this as the original person using the nick has not been renamed yet.

This probably still has a number of imperfections; it's essentially a
rebase of a handful of commits from almost two years ago and hasn't seen
much real-world testing yet.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant