Project

General

Profile

Actions

Enhancement #223

open

Provide a way to reset a specific nickname's backlog (private messages)

Added by Jonathan Pryor almost 13 years ago. Updated over 2 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
2011-05-16
Due date:
% Done:

0%

Estimated time:
Patch Available:
No
Found in Versions:
Confirmed:
No
Branch:
Security:
No
Help Needed:

Description

Imagine this scenario: bip running on a server (common), and you talk to lots of people via private messages (less common?), say, oh, 80 people. Life is good.

Restart the client (not the server), or open another client to the bip server; whatever. Result: 80 "channels" for each of the private messages. This is...overwhelming.

I would like a way to close these private messages.

The ~obvious way would be to use /part:

/part nickname

Unfortunately, this results in an error (from Smuxi):

[403 (ErrorNoSuchChannel) nickname] No such channel

This is because Smuxi requires that you only /part from channels. No matter, we'll do things manually!

/raw part nickname
  1. or
    /raw /part nickname

ngrep shows that this actually makes it to the client...and it still fails, as /path/to/logs/nickname.log is still open in /proc/PID/fd (which is currently showing 93 files open for me...).

My guess is that `/raw part nickname` fails because irc.c!irc_part() does:

channel = hash_get(&server->channels, s_chan);
/* we can't get part message for chans we're not on */
if (!channel)
return ERR_PROTOCOL;

and the nickname "channel" isn't really a channel, and thus `channel` is NULL, so ERR_PROTOCOL is returned.

TO REPRODUCE:

/msg nickname message
  1. look at `ls -l /proc/PID/fd/*` and ensure that nickname.log is open
    /raw part nickname # or some other mechanimsm?
  2. look at `ls -l /proc/PID/fd/*` and ensure that nickname.log is NOT open.
Actions #1

Updated by Loïc Gomez over 2 years ago

  • Subject changed from Provide a way to close private messages to Provide a way to reset a specific nickname's backlog (private messages)

That's because /PART is designed for channels only.

What you want here is a way to reset backlog on a specific conversation without talking in it and without resetting the rest of the backlog. I'll adapt the title accordingly.

Actions

Also available in: Atom PDF