[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 28.0.50; buffer-naming collisions involving bouncers in ERC

From: Olivier Certner
Subject: Re: 28.0.50; buffer-naming collisions involving bouncers in ERC
Date: Wed, 09 Jun 2021 16:36:19 +0200


> The current approach
>   "The only way to do it is connection=network" - Irssi's maintainer [6]
> I'd like to believe ERC's authors basically agreed with this, at least
> in spirit. And while their whole ad hoc/dynamic way of assigning
> connection identities is a bit different, I don't think there's any
> reason to abandon it just yet, especially if we strive to place more
> emphasis on understanding and applying the evolving standard going
> forward.

This approach seems to have drawbacks, at least in principle. For example, I 
don't think it allows to connect and join different channels with different 
nicknames at once. Surely, this is not the most straightforward scenario, but 
maybe some people would be interested in doing that. I would be interested, 
for example. Of course, if the principle above is rooted into ERC, many 
changes are going to be needed in practice to allow multiple "sessions", so it 
doesn't matter much if the proposal below is at odds with that (it won't 
worsen the situation compared to now). Multiple sessions can be dealt with 
independently at some later point.
> Here are a couple of assumptions that had better hold if my present
> angle of attack is to get us off the ground:
> 1. There is at most one connection from a client to a network at any
>    given moment [7]
> 2. Buffer->network associations cannot change once determined, i.e.,
>    networks and ERC buffers mate for life, even when disconnected
> (snip)

I think there are two essential points to be made here:

1. Separate the network (or the session), seen as the user's target, from the 
means to connect (directly or through a bouncer, or whatever else). This way, 
there is no confusion between the transport part (just a mean) and the session 
(which is what matters to the user in terms of context, i.e., which network 
I'm in (and channels) and under which identity).

With this, there will be no problem in the scenario where one connects to a 
bouncer to do maintenance tasks while there is already a connection to it to 
access some other network. There will be two sessions: One for the maintenance 
task, designating the bouncer, and one for the other network, each having its 
own connection and separate buffers. I think that having a single connection 
to the bouncer in this particular case is a refinement that could be 
implemented later (or not), unless of course it is absolutely impossible to 
have more than one at a time (is it the case with usual bouncers?).

2. Also, buffers should not be associated on the fly to networks, depending on 
what the network says. They should be associated to sessions, as a priori 
targets specified by the user, with unambiguous (i.e., different buffers for 
channels with same name in different sessions) and unchanging names (may be 
internal "names" of any form instead of the buffer name, if one wants short 
buffer names in common situations). This way there is no "dangling" buffer, 
and it is always very clear which buffer belongs to which session, enabling 
smarter management in case a session is disconnected and then reconnected, or 
log storing. 

I don't know precisely which changes 1 and 2 require given the current code, 
but I intend to dig that at some point. Unfortunately, I don't think I'll be 
able to before weeks, probably even months. At least, I hope we can agree (or 
if not, discuss) on these target points.

Olivier Certner

reply via email to

[Prev in Thread] Current Thread [Next in Thread]