I use a FreeBSD firewall at home. I was always bothered that I couldn't get DCC resume to work, so I took some tcpdumps and looked for the problem only to find out the natd code in FreeBSD was at fault. It tried to be too intelligent and masquerade all host connections. At the IRC layer this involved the IPs and such. This doesn't always work. I submitted a small patch to fix the problem.
You can find the complete description and followups on the FreeBSD bug database for Problem Report bin/50310
This is the code for the patch
--- libalias_dcc_resume.diff begins here ---
--- alias_irc.c.backup Tue Mar 25 01:28:12 2003
+++ alias_irc.c Tue Mar 25 02:39:39 2003
@@ -140,6 +140,20 @@
}
}
+
+ if( sptr[i+0] == 'R' &&
+ sptr[i+1] == 'E' &&
+ sptr[i+2] == 'S' &&
+ sptr[i+3] == 'U' &&
+ sptr[i+4] == 'M' &&
+ sptr[i+5] == 'E' &&
+ sptr[i+6] == ' '){
+ /* It's a resume packet, let it through, lBAD_CTCP
+ * will copy the rest of the packet */
+ DBprintf(("RESUME command...\n"));
+ goto lBAD_CTCP;
+ }
+
DBprintf(("Transferring command...\n"));
while(sptr[i] != ' ') {
newpacket[iCopy++] = sptr[i];
--- libalias_dcc_resume.diff ends here ---
The data on this page was last updated June 30, 2003 - before being moved to the wiki