[PEAR-BUG] Bug #2309 [Asn->Csd]: Channel list message parsing error
[email protected] Tue, 28 Oct 2014 19:45:40 +0000 (GMT)
| Newsgroups | php.pear.bugs |
|---|---|
| Message-ID | <[email protected]> |
Edit report at https://pear.php.net/bugs/bug.php?id=2309&edit=1 ID: 2309 Updated by: [email protected] Reported By: mfdev at mftronic dot de Summary: Channel list message parsing error -Status: Assigned +Status: Closed Type: Bug Package: Net_SmartIRC Operating System: WinXP PHP Version: 4.3.2 Assigned To: garrettw Roadmap Versions: New Comment: -Status: Assigned +Status: Closed On second thought, I'd better not. That could break more things than it fixes. Just sniff the $data->message content to see if it says "End of /LIST" or something. Previous Comments: ------------------------------------------------------------------------ [2014-10-27 06:25:38] garrettw -Status: Bogus +Status: Assigned -Assigned To: +Assigned To: garrettw This has been partially fixed. You can now get that number without having to parse a raw message -- it's already in its own variable. Look in $ircdata->params[2] when you get a message of the type SMARTIRC_TYPE_LIST. What I need to do now is make that "End of /LIST." message be discarded, since you can't really use it for anything. Raw type SMARTIRC_RPL_LISTEND is currently translated to a message type of SMARTIRC_TYPE_LIST, but I'll change it to be SMARTIRC_TYPE_NONRELEVANT. ------------------------------------------------------------------------ [2004-12-20 10:36:54] meebey as the last comment says, it's not a bug, it's by design ------------------------------------------------------------------------ [2004-09-22 06:03:06] meebey this is a normal behavoir, its currently not possible to use $data->message for channel usercount replies, you need to check $data->rawmessage, 0.5.6 will provide a method allowing ListenFor() to return the whole data object instead just the message part (which does not contain all data, like the usercount) ------------------------------------------------------------------------ [2004-09-10 07:18:13] mfdev at mftronic dot de Description: ------------ Concering Net_SmartIRC-0[1].5.5p1: I want to simply query the number of users in a channel. The relevant reply from the server however is not parsed correctly. As I'm not an IRC specialist, I do not know for sure whether it is not RFC conforming or a bug, but it's actually a big IRC network. See other fields. Reproduce code: --------------- use "example2.php" included with SmartIRC i changed server to "irc.quakenet.org" and channel to #bliesnet (but should be same with any) Expected result: ---------------- Print the number of users in the channel Actual result: -------------- Using debug mode, I get the following 3 *raw* messages as reply to 'getList': :freddyshouse.uk.quakenet.org 321 Net_SmartIRC Channel :Users Name :freddyshouse.uk.quakenet.org 322 Net_SmartIRC #bliesnet 3 : :freddyshouse.uk.quakenet.org 323 Net_SmartIRC :End of /LIST The parser however does not seem to recognize the second one, as expressed by this debug statement: DEBUG_MESSAGEPARSER: ircdata nick: "" ident: "reddyshouse.uk.quakenet.or" host: "reddyshouse.uk.quakenet.org" type: "32768" from: "freddyshouse.uk.quakenet.org" channel: "" message: "" Then it will return the third line as the result for the 'getList' method, which gives the follwing var_dump: array(2) { [0]=> bool(false) [1]=> string(12) "End of /LIST" } And obviously, I cannot extract the number of people in the channel (which is 3) from that. ------------------------------------------------------------------------ -- Edit this bug report at https://pear.php.net/bugs/bug.php?id=2309&edit=1