Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
TIdIRC Bug
#4
(07-31-2020, 10:41 PM)fearcry Wrote: i running an UnrealIRCd Version 5.06 (latest Version i guess)

I looked through the source code for UnrealIRCd 5.06, and I found where the STATS command is being processed, and that the 210 replies are known as RPL_STATSHELP, which seems to be specific to Unreal, since 210 is RPL_TRACERECONNECT in the official IRC spec. There is another IRC server, aircd, that also apparently redefines 210, in its case 210 is known as RPL_STATS. Seems there are also other IRC reply codes that are specific to Unreal and different from other IRC servers, too. But that doesn't matter in this situation.

(07-31-2020, 10:41 PM)fearcry Wrote: started 2 TIdIRC-Clients, [Client A] send the STATS Command and lose the Connection after "End of Stats"

Again, have you tried debugging this to see why that is crashing? I have no way to test this myself, so you are going to have to do it for me. But even though Unreal redefines 210 for its own purposes, it shouldn't matter, since TIdIRC ignores 210 replies. Since the problem occurs only on 219 replies, which TIdIRC does process, I have to assume that the 219 reply is likely malformed in some way that is crashing TIdIRC. That is the only thing that makes sense to me right now.

Can you please show the RAW data that is actually being transmitted over TCP? Not what Unreal logs is being sent. If you are not using SSL/TLS, you can use a packet sniffer, like Wireshark, for that capture. Or, you can assign one of Indy's TIdLog... components to the TIdIRC.Intercept property. Or, you should be able to use the TIdIRC.OnRaw event (TIdIRC extracts and removes the SenderNick and SenderHost property values from the raw data before triggering the OnRaw event).

(07-31-2020, 10:41 PM)fearcry Wrote: [Client B] receive the QUIT-Message of [Client A]

TIdIRC does not send a QUIT message (and certainly not to another client!) unless you ask it to, by calling Disconnect() on it. So you must be calling Disconnect() in your code somewhere when the 219 reply fails.

(07-31-2020, 10:41 PM)fearcry Wrote: this Quit-Message is predefined in Client A

What do you mean? There is no pre-defined text message for QUIT in TIdIRC. So, since you said that QUIT was being received with a reason text of "Quit", you must be calling Disconnect('Quit') yourself.

(07-31-2020, 10:41 PM)fearcry Wrote: If Client B receiving the Quit-Message of Client A, the Quit must be performed by Client A and it's Quit-Message passing through the IRCd to Client B.

What does your TIdIRC code actually look like?

Reply


Messages In This Thread
TIdIRC Bug - by fearcry - 07-31-2020, 07:17 AM
RE: TIdIRC Bug - by rlebeau - 07-31-2020, 05:25 PM
RE: TIdIRC Bug - by fearcry - 07-31-2020, 10:41 PM
RE: TIdIRC Bug - by rlebeau - 08-01-2020, 01:51 AM
RE: TIdIRC Bug - by fearcry - 08-01-2020, 11:50 AM
RE: TIdIRC Bug - by rlebeau - 08-03-2020, 07:21 PM
RE: TIdIRC Bug - by fearcry - 08-04-2020, 08:38 PM
RE: TIdIRC Bug - by rlebeau - 08-04-2020, 09:02 PM
RE: TIdIRC Bug - by fearcry - 08-18-2020, 03:08 PM
RE: TIdIRC Bug - by rlebeau - 08-18-2020, 08:34 PM
RE: TIdIRC Bug - by fearcry - 08-01-2020, 01:01 PM
RE: TIdIRC Bug - by fearcry - 08-19-2020, 04:10 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)