Autoaccepted DCC transfers fail; manually-accepted ones work.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
XChat-GNOME |
Fix Released
|
High
|
|||
xchat-gnome (Ubuntu) |
Fix Released
|
Low
|
Unassigned |
Bug Description
Binary package hint: xchat-gnome
Open xchat-gnome. Go to Edit->Preferenc
Attempt to start a file transfer. It *should* start, but go to IRC->File transfers and note that it's stuck on zero percent. The sending server will time out; it appears not to have received the accept message.
Note that if "Auto-accept DCC file transfers" is *not* checked, the transfer works properly. The problem has something to do with the autoaccept option. As a consequence, the user can't queue files and walk away; it's impossible to download files without time-sensitive user interaction, which significantly reduces the usefulness of the DCC client.
(The version I'm running is patched against bug 315243, which only changes the GUI layout. I've seen the bug on the unpatched version as well.)
I'll see about getting some network traces on this, as well as seeing if upstream still has the issue; I have my own XDCC bot running, which means I can see both sides of the equation.
ProblemType: Bug
Architecture: i386
DistroRelease: Ubuntu 8.10
Package: xchat-gnome 1:0.24.
ProcEnviron:
SHELL=/bin/bash
PATH=/
LANG=en_US.UTF-8
SourcePackage: xchat-gnome
Uname: Linux 2.6.27-7-generic i686
UnreportableReason: This is not a genuine Ubuntu package
Changed in xchat-gnome (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
tags: | added: patch-accepted-upstream |
Changed in xchat-gnome: | |
importance: | Unknown → High |
status: | Unknown → Fix Released |
Additionally, I can receive files from the same DCC bot using irssi, both manually and with dcc_autoget = on. (I set up a copy of iroffer on my local machine for testing purposes.) I used this to tentatively conclude that the problem is on xchat-gnome's end of things.
After toggling the autoreceive settings, it started to work, and I couldn't get it to fail again. I went back and deleted ~/.xchat2/ xchat.conf, and the problem showed itself again. Attached find a diff between xchat.conf~ (the working version) and xchat.conf (the broken version).
The difference appears to be that xchat-gnome sets dcc_auto_send to 2 by default; when the setting is set manually, it's set to 1. ("dcc_auto_send" is a misnomer; it should be called "dcc_auto_ receive" .) However, when autoreceive is disabled, it's set to 0, not 2. To sum up:
dcc_auto_send = 0 -> Receive isn't autostarted; confirmation dialog pops up.
dcc_auto_send = 1 -> Receive is autostarted.
dcc_auto_send = 2 -> Receive isn't autostarted; confirmation dialog doesn't pop up.
I'm looking into the source now to see why this might be, and what the right fix is. I'm bearing in mind that we need to maintain compatibility with xchat--the options in xchat are "never autostart", "always autostart" and "browse for save folder for each file", so we'll likely have to seamlessly map the last one to "always autostart" in xchat-gnome.