lrstanley / girc

:bomb: girc is a flexible IRC library for Go :ok_hand:
https://pkg.go.dev/github.com/lrstanley/girc
MIT License
139 stars 13 forks source link

feature: Netsplit detection heuristic #65

Closed nmeum closed 4 months ago

nmeum commented 8 months ago

✨ Describe the feature you'd like

Presently, girc does not include any heuristics to detect netsplits. Therefore, after a netsplit, the client may remain on the splitted network. I think it would be handy if girc would detect netsplits and attempt a reconnect in the case of a netsplit.

🌧 Is your feature request related to a problem?

No.

🔎 Describe alternatives you've considered

N/A

⚠ If implemented, do you think this feature will be a breaking change to users?

No

⚙ Additional context

For reference, the IRC netsplit detection heuristic is available here: https://github.com/irssi/irssi/blob/master/src/irc/core/netsplit.c

🤝 Requirements

lrstanley commented 6 months ago

I'm torn on this. I feel like this could be beneficial, however, I could also see if all IRC clients had this enabled, there would be a large thundering-herd issue. Looking through the source for irssi (which feels very hard to read), I don't necessarily see anything that would prevent you from reconnecting to the same server, or am I missing that in the code somewhere?

nmeum commented 4 months ago

I will look into this in more detail and come up with a concrete proposal :)