Opened 6 years ago

Closed 3 years ago

#3547 closed Defect (Fixed)

DCC CHAT stopped working in 2.4.1

Reported by: anonymous Owned by:
Component: Chat Core (General) Version: 2.4 (Mac)
Severity: Normal Keywords: dcc chat
Cc:

Description

I had 2.4 installed and DCC CHAT worked.
Installed 2.4.1 and it does not work anymore.
Reverting back to 2.4 and it works again.

When connected to my bot thorugh another client and watched what it said about the incoming request here's the info:

11:53 <granbarr> [11:53:50] CTCP DCC: CHAT chat -717115658 3000 from spacebug- (~spacebug@…)
11:53 <granbarr> [11:53:50] DCC connection failed: CHAT (spacebug!~spacebug@…)
11:53 <granbarr> [11:53:50] (Invalid argument)

When using 2.4 (where everything works) i get this:

12:12 <granbarr> [12:12:16] DCC connection: CHAT (spacebug!~spacebug@…)
12:12 <granbarr> [12:12:16] CTCP DCC: CHAT chat 3577851638 3000 from spacebug- (~spacebug@…)

Change History (7)

comment:1 Changed 4 years ago by zach

  • Component changed from Colloquy (Mac) to Chat Core (General)

comment:2 Changed 3 years ago by anonymous

I promise I will donate once dcc transfers will work as before. But since the time I complain for it, I am sure it will NEVER work for the posterity.

comment:3 Changed 3 years ago by anonymous

Indeed, DCC CHAT is broken.
Colloquy sends an invalid value of 0.0.0.0 for host IP address. This should instead be the current external IP address of the host (i.e. derived from the hostmask).

Appendix A of the CTCP specification has all the details.
http://www.irchelp.org/irchelp/rfc/ctcpspec.html

comment:4 Changed 3 years ago by anonymous

Indeed, DCC CHAT is broken.
Colloquy sends an invalid value of 0.0.0.0 for host IP address. This should instead be the current external IP address of the host (i.e. derived from the hostmask).

Appendix A of the CTCP specification has all the details.
http://www.irchelp.org/irchelp/rfc/ctcpspec.html

comment:5 Changed 3 years ago by anonymous

From the CTCP Spec (Appendix A):
"The address, port, and size should be sent as ASCII representations of
the decimal integer formed by converting the values to host byte order
and treating them as an unsigned long, unsigned short, and unsigned
long respectively."

Colloquy does not use "unsigned" but signed values (see the '-' in original report) for the IP. Therefore even if the IP is provided as additional argument, the other side does not recognize it. This should be easily fixed. As the original report indicates, using unsigned integers was indeed the old behavior.

P.S. sorry for earlier double post. There is a "500 internal server error" on commit.

comment:6 Changed 3 years ago by anonymous

String formatting from address to uint32 should be fixed here:
http://colloquy.info/project/browser/trunk/Chat%20Core/MVDirectClientConnection.m#L26

The %d (signed) must be %u (unsigned).

Offending commit is r5538 (printf formatter warnings). Please also check the other places where %lu has been replaced by %d.

comment:7 Changed 3 years ago by zach

  • Resolution set to Fixed
  • Status changed from new to closed

Done in r6477, see #4589 for a little more discussion.

Note: See TracTickets for help on using tickets.