unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Olivier Certner <ocert.dev@free.fr>
To: emacs-erc@gnu.org, "J.P." <jp@neverwas.me>
Cc: bug-gnu-emacs@gnu.org
Subject: Re: 28.0.50; buffer-naming collisions involving bouncers in ERC
Date: Wed, 09 Jun 2021 16:36:19 +0200	[thread overview]
Message-ID: <2355590.Kj97tzTlbN@ravel> (raw)
In-Reply-To: <875yzakzvi.fsf@neverwas.me>

Hi,

> 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





  parent reply	other threads:[~2021-06-09 14:36 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-23  1:22 28.0.50; buffer-naming collisions involving bouncers in ERC J.P.
2021-06-02 11:19 ` bug#48598: " J.P.
2021-06-09 14:36 ` Olivier Certner [this message]
2021-06-10 14:36   ` J.P.
2021-06-19  3:04 ` J.P.
2021-06-25 13:18 ` J.P.
2021-09-04 16:46 ` bug#48598: Strange ERC/ZNC Bug/Problem acdw
2021-09-07 21:38 ` J.P.
2021-09-10 12:43 ` bug#48598: Duplicate messages from bouncers on 27 and earlier J.P.
     [not found] ` <87r1gqaxqf.fsf@neverwas.me>
2021-06-28  7:58   ` bug#48598: 28.0.50; buffer-naming collisions involving bouncers in ERC Olivier Certner
2021-10-16 21:15   ` Daniel Fleischer
2021-10-16 23:21     ` J.P.
     [not found]     ` <87o87ofte1.fsf@neverwas.me>
2021-11-11  5:24       ` Lars Ingebrigtsen
     [not found]       ` <8735o39sdg.fsf@gnus.org>
2021-11-11 10:27         ` J.P.
     [not found]         ` <87pmr77zsa.fsf@neverwas.me>
2021-11-11 12:08           ` Lars Ingebrigtsen
     [not found]           ` <87a6ia7v47.fsf@gnus.org>
2021-11-11 15:13             ` J.P.
2021-11-11 15:15 ` J.P.
2022-03-14 13:08 ` J.P.
2022-04-09 21:14 ` bug#48598: Questions regarding layout and composition of tests (bug#48598) J.P.
2022-04-09 21:22 ` bug#48598: Questions regarding auth-source integration (bug#48598) J.P.
     [not found] ` <87leweez89.fsf@neverwas.me>
2022-04-10 12:49   ` bug#48598: Questions regarding layout and composition of tests (bug#48598) Lars Ingebrigtsen
     [not found]   ` <87fsmlp0gy.fsf@gnus.org>
2022-04-11  7:59     ` bug#48598: 28.0.50; buffer-naming collisions involving bouncers in ERC Michael Albinus
     [not found]     ` <878rsc2gp5.fsf_-_@gmx.de>
2022-04-11 10:21       ` Lars Ingebrigtsen
     [not found]       ` <878rsbdipd.fsf@gnus.org>
2022-04-11 13:29         ` J.P.
2022-04-11 15:34           ` Lars Ingebrigtsen
2022-04-12  7:50           ` Michael Albinus
     [not found]           ` <87sfqi2119.fsf@gmx.de>
2022-04-15 13:02             ` J.P.
     [not found]             ` <87v8vah54l.fsf@neverwas.me>
2022-04-15 15:05               ` Michael Albinus
     [not found]               ` <87h76ucrq4.fsf@gmx.de>
2022-04-16  1:12                 ` J.P.
     [not found]                 ` <87h76tde5k.fsf@neverwas.me>
2022-04-17  8:25                   ` Michael Albinus
     [not found]                   ` <87czhgce1s.fsf@gmx.de>
2022-04-18 14:30                     ` J.P.
     [not found]                     ` <871qxucvls.fsf@neverwas.me>
2022-04-18 16:43                       ` Michael Albinus
     [not found]                       ` <87o80ybauv.fsf@gmx.de>
2022-04-21 13:28                         ` J.P.
     [not found]                         ` <87pmlao9ax.fsf@neverwas.me>
2022-04-22  8:54                           ` Michael Albinus
     [not found] ` <87bkxaeyuw.fsf@neverwas.me>
2022-04-18 13:26   ` bug#48598: Questions regarding auth-source integration (bug#48598) Damien Cassou
2022-04-18 14:24     ` J.P.
     [not found]     ` <87ee1ucvv3.fsf@neverwas.me>
2022-04-18 15:24       ` Damien Cassou
2022-04-18 16:52         ` Michael Albinus
     [not found]         ` <87k0bmbage.fsf@gmx.de>
2022-04-20 14:12           ` J.P.
     [not found]           ` <878rrz268v.fsf@neverwas.me>
2022-04-21  7:08             ` bug#48598: 28.0.50; buffer-naming collisions involving bouncers in ERC Michael Albinus
     [not found]             ` <87czha3oc5.fsf_-_@gmx.de>
2022-04-21 13:21               ` J.P.
     [not found]               ` <87v8v2o9l4.fsf@neverwas.me>
2022-04-22  9:29                 ` Michael Albinus
     [not found]                 ` <87k0bh31pt.fsf@gmx.de>
2022-04-22 14:24                   ` J.P.
     [not found]                   ` <8735i5nql8.fsf@neverwas.me>
2022-04-23  9:47                     ` Michael Albinus
     [not found]                     ` <87bkws2ksn.fsf@gmx.de>
2022-04-25 12:05                       ` J.P.
     [not found]                       ` <87czh5z7ui.fsf@neverwas.me>
2022-04-27 12:28                         ` Michael Albinus
     [not found]                         ` <874k2epv5n.fsf@gmx.de>
2022-04-28  8:08                           ` Michael Albinus
     [not found]                           ` <87levpmxz1.fsf@gmx.de>
2022-04-28  8:13                             ` Michael Albinus
2022-04-29 13:03                           ` J.P.
2022-05-25 19:29 ` J.P.
2022-05-26  5:17   ` J.P.

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2355590.Kj97tzTlbN@ravel \
    --to=ocert.dev@free.fr \
    --cc=bug-gnu-emacs@gnu.org \
    --cc=emacs-erc@gnu.org \
    --cc=jp@neverwas.me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).