all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#6795: rcirc: ERR_NICKNAMEINUSE causes infinite loop under certain circumstances
@ 2010-08-04 17:55 Deniz Dogan
  2020-12-08 17:23 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 2+ messages in thread
From: Deniz Dogan @ 2010-08-04 17:55 UTC (permalink / raw)
  To: 6795

Currently rcirc-handler-433 (ERR_NICKNAMEINUSE) tries to "uniquify"
the nickname the user tried to use by appeding a ` to the requested
nickname. However, if the length of the requested nickname is as long
as or longer than the maximum allowed length on the server, the
"uniquification" will not work resulting in an attempt to switch to
the same nickname that caused the error in the first place:

Example:
/nick superlongnickname
*** 433 superlongn Nickname is already in use.

Here the IRC server truncates the requested nickname to "superlongn"
which is already taken and then it tries to change to
"superlongnickname`" which of course will also be truncated to
"superlongn". Hence, something like this will be printed in the server
buffer:

*** 433 superlongn Nickname is already in use.
*** 433 superlongn Nickname is already in use.
*** 433 superlongn Nickname is already in use.
*** 433 superlongn Nickname is already in use.

...and so on.

The maximum nickname length of the server is received in a 005 message
from the server when connecting. Example (NICKLEN=16):

*** 005 SAFELIST ELIST=U CASEMAPPING=rfc1459 CHARSET=ascii NICKLEN=16
    CHANNELLEN=50 TOPICLEN=390 ETRACE CPRIVMSG CNOTICE DEAF=D
    MONITOR=100 are supported by this server

This information should ideally be stored as a buffer-local variable
or maybe in some other fashion and then we should use this information
to make better "uniquifications" of nicknames.

-- 
Deniz Dogan





^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#6795: rcirc: ERR_NICKNAMEINUSE causes infinite loop under certain circumstances
  2010-08-04 17:55 bug#6795: rcirc: ERR_NICKNAMEINUSE causes infinite loop under certain circumstances Deniz Dogan
@ 2020-12-08 17:23 ` Lars Ingebrigtsen
  0 siblings, 0 replies; 2+ messages in thread
From: Lars Ingebrigtsen @ 2020-12-08 17:23 UTC (permalink / raw)
  To: Deniz Dogan; +Cc: 6795

Deniz Dogan <deniz.a.m.dogan@gmail.com> writes:

> Currently rcirc-handler-433 (ERR_NICKNAMEINUSE) tries to "uniquify"
> the nickname the user tried to use by appeding a ` to the requested
> nickname. However, if the length of the requested nickname is as long
> as or longer than the maximum allowed length on the server, the
> "uniquification" will not work resulting in an attempt to switch to
> the same nickname that caused the error in the first place:
>
> Example:
> /nick superlongnickname
> *** 433 superlongn Nickname is already in use.
>
> Here the IRC server truncates the requested nickname to "superlongn"
> which is already taken and then it tries to change to
> "superlongnickname`" which of course will also be truncated to
> "superlongn". Hence, something like this will be printed in the server
> buffer:
>
> *** 433 superlongn Nickname is already in use.
> *** 433 superlongn Nickname is already in use.
> *** 433 superlongn Nickname is already in use.
> *** 433 superlongn Nickname is already in use.

This should now be fixed in Emacs 28.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-12-08 17:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-04 17:55 bug#6795: rcirc: ERR_NICKNAMEINUSE causes infinite loop under certain circumstances Deniz Dogan
2020-12-08 17:23 ` Lars Ingebrigtsen

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.