Skip to content
This repository was archived by the owner on Apr 17, 2020. It is now read-only.
This repository was archived by the owner on Apr 17, 2020. It is now read-only.

DCC Sends from XChat fail #156

@irssibot

Description

@irssibot

Trying to DCC receive from XChat 2.4.1, it fails. Investigation shows that Irssi is treating the port as the IP address, and a port of 0.

The problem (from ethereal) is that XChat sends:
DCC SEND filename 3372422606 50469 407336960
(Note, the is double-space between 50469 and 407336960, incase this is HTML-encoded.)

The code in ctcp_msg_dcc_send uses params= g_strsplit(...," ",..), which means that the params arrry is
[0]="filename"
[1]="3372422606"
[2]="50469"
[3]=""
[4]="407336960"
which is given to get_file_params_count w/paramcount=5

It then processes backwards, trying firstly get_params_count(params, 2)
which checks the following:
is_numeric params[2] || is_ipv6_address params[2]
is_numeric params[3] && atol params[3] < 65535
is_numeric params[4]

This set is successful, and so the values used are
IP 50469, port 0, filesize 407336960, which is what I see in the interface.

This is probably actually a bug in XChat, but Irssi ought to be robust enough to handle it.

I'm going to try and reimplement this to work with XChat while still working with ""-marked and non-""-marked space-containing filenames and potential extra parameters, unless someone says this is not going to be fixed in Irssi but it ought to be pushed onto XChat as a bug.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions