Author: Benjamin Lutz
Date: 28-10-01 20:24
(posted by Dan Langille)
I am in the situation of having a FreeBSD box act as gateway for net access.
As I'm only assigned a single IP, I'm using natd for connecting my LAN to
the net (only one machine though, so its basically "redirect_address
10.0.0.2 0.0.0.0", heh). I too encountered the problem of not being able to
initiate DCC's from mIRC.
I enabled -use_sockets and -same_ports, yet this would not help. After
searching around on the net, I found this page:
Let me just quote the interesting part from it:
mIRC, a popular MS Windows-based IRC client, can determine the address
that it should use for itself in DCC-based activities in one of two
ways. It can query the OS for its address, or it can query the IRC
server. In the latter case, if the connection between the box in
question and the IRC server includes a FreeBSD box performing address
translation via ppp -alias (or other libalias-based system), then the
address returned is the address of the FreeBSD box. This means that
DCC requests from the mIRC client are sent out with the FreeBSD box's
address encoded in the request.
libalias includes a facility to examine outgoing packets for IRC DCC
packets and perform the necessary translation. However, it only
performs this if the address encoded in the DCC packet is that of a
system being aliased. In the case where the IRC client gets its
address from the server, then libalias will not perform this
Now, I'm not sure if this issue (limitation?) is natd's or mirc's fault; I
suppose both are doing their job, hehe. Anyway, the workaround is changing
mirc options from "Lookup Method: Server" to "Lookup Method: Normal". This
will change the IP mirc uses to 10.0.0.2 (in my case), opposite to the IP
assigned by the ISP when using server lookup. The best thing would probably
be making mirc use the two different IP's for normal IRC stuff and DCC. I'm
gonna write mirc's author about it.