Partyline is completely broken [$10] #503

Closed
opened 2026-10-05 04:25:34 +02:00 by adam · 11 comments
Owner

I've tested this on 2 different servers, with 1.6.0 and earlier versions. I've been poking around the source but I can't figure out what's wrong.

Partyline channels are only working for people connected to freenode. We've tested snoonet, dalnet, etc. Basically, it comes down to this:

Person A is on freenode. Person A joins the ~#partyline. Person A can send and receive.

Person B is on dalnet. Person B joins the ~#partyline. Person B can send, but not receive.

Person C is on snoonet. Person B joins the ~#partyline. Person B can send, but not receive.

Looking at the raw data, sending to the ~#partyline works fine. But nobody is receiving anything at all from the server.

If I use send_raw to send ":test!test@test PRIVMSG ~#partyline :whatever" that comes through OK.

Tested on Linux and Widows with mIRC, XChat, HexChat, HydraIRC, and Quassel. The issue is independent of the client.

Did you help close this issue? Go claim the $10 bounty on Bountysource.

I've tested this on 2 different servers, with 1.6.0 and earlier versions. I've been poking around the source but I can't figure out what's wrong. Partyline channels are only working for people connected to freenode. We've tested snoonet, dalnet, etc. Basically, it comes down to this: Person A is on freenode. Person A joins the ~#partyline. Person A can send and receive. Person B is on dalnet. Person B joins the ~#partyline. Person B can send, but not receive. Person C is on snoonet. Person B joins the ~#partyline. Person B can send, but not receive. Looking at the raw data, sending to the ~#partyline works fine. But nobody is receiving anything at all from the server. If I use send_raw to send ":test!test@test PRIVMSG ~#partyline :whatever" that comes through OK. Tested on Linux and Widows with mIRC, XChat, HexChat, HydraIRC, and Quassel. The issue is independent of the client. ## <bountysource-plugin> Did you help close this issue? Go claim the **[$10 bounty](https://www.bountysource.com/issues/9870101-partyline-is-completely-broken?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github)** on [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github). </bountysource-plugin> <!-- github-sync-id:63532567 -->
adam closed this issue 2026-10-05 04:25:34 +02:00
Author
Owner

I've tested myself and I tested with two users. A is connected to multiple nets at once with IRC cliets on both. B is connected to no network, just a 'test' network not connected to anything.

B sends a message. Only the latest-connected client of A (regardless of network) sees the message in the channel. B sees all messages from A.

I think this needs 'further testing' to determine the actual problem, as what is being seen by @snapdata here may not be accurate of the true issue.

I've tested myself and I tested with two users. A is connected to multiple nets at once with IRC cliets on both. B is connected to no network, just a 'test' network not connected to anything. B sends a message. Only the latest-connected client of A (regardless of network) sees the message in the channel. B sees all messages from A. I think this needs 'further testing' to determine the actual problem, as what is being seen by @snapdata here may not be accurate of the true issue. <!-- github-comment-id:84608949 -->
Author
Owner

@teward, I'm testing this with 2 IRC clients, and 3 other people. We've tried every combination of multiple/single networks and number of clients imaginable, it all boils down to something that's specific to freenode from what we've found.

@teward, I'm testing this with 2 IRC clients, and 3 other people. We've tried every combination of multiple/single networks and number of clients imaginable, it all boils down to something that's specific to freenode from what we've found. <!-- github-comment-id:84610317 -->
Author
Owner

Well, my one client wasn't on freenode (a private net and DalNet), and the test one wasn't anywhere - have you checked if it's ircd related though? Some nets might have ~ as a permitted channel name/type which might cause this to not work...

Well, my one client wasn't on freenode (a private net and DalNet), and the test one wasn't anywhere - have you checked if it's ircd related though? Some nets might have `~` as a permitted channel name/type which might cause this to not work... <!-- github-comment-id:84610610 -->
Author
Owner

@teward, yes, I've checked that as best as I can. I've tried recompiling with &/$/+/-/= as the prefix. It's a strange issue.

So let's say I have the following networks (I have tried deleting/readding in reverse order):

Network: freenode
Servers: irc.freenode.net

Network: dalnet
Servers: irc.dalnet.org

Jumpnetwork freenode, do not connect, /j ~#whatever- send & receive fine
Jumpnetwork dalnet, do not connect, /j ~#whatever - cannot receive

@teward, yes, I've checked that as best as I can. I've tried recompiling with &/$/+/-/= as the prefix. It's a strange issue. So let's say I have the following networks (I have tried deleting/readding in reverse order): Network: freenode Servers: irc.freenode.net Network: dalnet Servers: irc.dalnet.org Jumpnetwork freenode, do not connect, /j ~#whatever- send & receive fine Jumpnetwork dalnet, do not connect, /j ~#whatever - cannot receive <!-- github-comment-id:84610854 -->
Author
Owner

Did someone check with znc --debug what partyline actually sends to everyone? Sadly raw cannot intercept this...
Perhaps clients get confused about channel prefixes? Does the code in partyline to inject its "~" prefix still work fine?

Did someone check with `znc --debug` what partyline actually sends to everyone? Sadly raw cannot intercept this... Perhaps clients get confused about channel prefixes? Does the code in partyline to inject its "~" prefix still work fine? <!-- github-comment-id:84611309 -->
Author
Owner

@psychon I just checked that.

both freenode:

[2015-03-22 14:13:26.745365] (DMT/freenode) CLI -> ZNC (PRIVMSG ~#test :hi)
[2015-03-22 14:13:26.74531] (snapdata/freenode) ZNC -> CLI [:?DMT!DMT@znc.in PRIVMSG ~#test :hi]

different networks:

[2015-03-22 14:11:19.673032] (DMT/freenode) CLI -> ZNC (PRIVMSG ~#test :hi)
...several seconds later
[2015-03-22 14:11:20.489160] (snapdata/testnetwork) CLI -> ZNC [who ~#test]

The partyline module isn't actually sending anything if I'm not on freenode.

@psychon I just checked that. both freenode: [2015-03-22 14:13:26.745365] (DMT/freenode) CLI -> ZNC (PRIVMSG ~#test :hi) [2015-03-22 14:13:26.74531] (snapdata/freenode) ZNC -> CLI [:?DMT!DMT@znc.in PRIVMSG ~#test :hi] different networks: [2015-03-22 14:11:19.673032] (DMT/freenode) CLI -> ZNC (PRIVMSG ~#test :hi) ...several seconds later [2015-03-22 14:11:20.489160] (snapdata/testnetwork) CLI -> ZNC [who ~#test] The partyline module isn't actually sending anything if I'm not on freenode. <!-- github-comment-id:84615041 -->
Author
Owner

Kinda slightly old znc/git in cygwin hell
ZNC - 1.7.0-git-6-a8b9542 - http://znc.in
IPv6: yes, SSL: yes, DNS: threads, charset: no

First time poking at it..
https://dl.dropboxusercontent.com/u/16148324/znc/znc-partyline-debug.txt
https://dl.dropboxusercontent.com/u/16148324/znc/znc-partyline-debug.PNG
https://dl.dropboxusercontent.com/u/16148324/znc/znc-listavailmods-partyline.txt

Try this again, this time, connected to all my networks
https://dl.dropboxusercontent.com/u/16148324/znc/znc-partyline-debug-2.PNG
https://dl.dropboxusercontent.com/u/16148324/znc/znc-partyline-debug-2.txt

So, if I'm looking at this correctly, partyline is using the first network in /msg *status listnetworks. Since 'Abjects' is the first network for my 'KindOne' connection, everything gets dumped into that networks partyline channel. Since I was not connected to 'Abjects' in the first attempt, the 'KindOne' connection was not seeing everything like the 'bot' connection.

Note: In the 'bot' connection, I added 'foobar' after 'freenode', so that is why stuff is showing up in the 'freenode' instead of of 'foobar', If i was to restart the znc, stuff would mostly likely show up under 'foobar' since znc will sort the networks into A-B-C order.

Kinda slightly old znc/git in cygwin hell `ZNC - 1.7.0-git-6-a8b9542 - http://znc.in` `IPv6: yes, SSL: yes, DNS: threads, charset: no` First time poking at it.. https://dl.dropboxusercontent.com/u/16148324/znc/znc-partyline-debug.txt https://dl.dropboxusercontent.com/u/16148324/znc/znc-partyline-debug.PNG https://dl.dropboxusercontent.com/u/16148324/znc/znc-listavailmods-partyline.txt Try this again, this time, connected to all my networks https://dl.dropboxusercontent.com/u/16148324/znc/znc-partyline-debug-2.PNG https://dl.dropboxusercontent.com/u/16148324/znc/znc-partyline-debug-2.txt So, if I'm looking at this correctly, partyline is using the first network in `/msg *status listnetworks`. Since 'Abjects' is the first network for my 'KindOne' connection, everything gets dumped into that networks partyline channel. Since I was not connected to 'Abjects' in the first attempt, the 'KindOne' connection was not seeing everything like the 'bot' connection. Note: In the 'bot' connection, I added 'foobar' after 'freenode', so that is why stuff is showing up in the 'freenode' instead of of 'foobar', If i was to restart the znc, stuff would mostly likely show up under 'foobar' since znc will sort the networks into A-B-C order. <!-- github-comment-id:84626285 -->
Author
Owner

I have somewhat of a similar issue, my ZNC user has 3 different networks, and annoyingly each network has joined the same partyline channels, even though I'm connecting from the same client.

On Espernet (the first network):

On Freenode (where I wrote a test message):

It seems that partyline messages only go to the receivers on the first network, although the channel is joined on other networks (sending /part on freenode causes it to part on espernet) and I can send messages just fine from other networks. I also get the user list on each network.

I suggest this behaviour:

  • Partyline channels are joined per-network not per-user.
  • Partyline messages are broadcast to each network, if it is joined.
I have somewhat of a similar issue, my ZNC user has 3 different networks, and annoyingly each network has joined the same partyline channels, even though I'm connecting from the same client. On Espernet (the first network): ![](http://i.imgur.com/3zPUygG.png) On Freenode (where I wrote a test message): ![](http://i.imgur.com/8imkB5D.png) It seems that partyline messages only go to the receivers on the first network, although the channel is joined on other networks (sending /part on freenode causes it to part on espernet) and I can send messages just fine from other networks. I also get the user list on each network. I suggest this behaviour: - Partyline channels are joined per-network not per-user. - Partyline messages are broadcast to each network, if it is joined. <!-- github-comment-id:86945027 -->
Author
Owner

Would love this fixed so much I would pay $5... ohwait!

Would love this fixed so much I would pay $5... ohwait! <!-- github-comment-id:86963992 -->
Author
Owner

Me and a friend have looked into this. I've worked out that the problem lays when coming to users with multiple networks attached to their account. We've just tested on 2 accounts with 1 IRC connection and the messages are being sent and received just fine.

Me and a friend have looked into this. I've worked out that the problem lays when coming to users with multiple networks attached to their account. We've just tested on 2 accounts with 1 IRC connection and the messages are being sent and received just fine. <!-- github-comment-id:129255587 -->
Author
Owner
https://github.com/znc/znc/pull/1064 -> https://github.com/znc/znc/commit/078eef5ba9c5250c000afa3e28bb32a877bfb273 <!-- github-comment-id:141721881 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/znc#503