Okay folks, here's what you should do before posting in order to get better help service. Please make sure you do the steps outlined below for each class of common problems and most frequent issues.
- Connect problems - your bot doesn't show up on IRC, doesn't join channel(s), etc.
Log into the bot via DCC or telnet and type .console +rv (please note that this will work only if you have raw-log set to 1 in your config file); +r flag shows server's output to the bot and +v shows bot's output to the server. Observe what happens after you've set these flags, you might get valuable clues. If you are still unable to find solution to the problem, post the console log along your question. - Userfile sharing and botnet problems - bots won't share, won't link, etc.
Log into the bot via DCC or telnet and type .console +th; +t flag shows botnet traffic and +h shows share traffic. In some cases it might be necessary also to set +d (debug flag); give it a try. After setting these flags, observe for a while. If you are still unable to remedy the problem, post your question and don't forget to include the console log. If possible, show logs from both bots. - DCC problems - dcc is not rocket science, here's how to deal with those:
When you try to DCC CHAT your eggdrop, your IRC client sends (via CTCP message) two things to the bot: your IP address and a port number it will be listening on for incoming connection (DCC stands for Direct Client to Client tcp connection). If that DCC request fails, investigate the following possible reasons:
--- your IRC client didn't get your IP right (this might happen if, for example, you use mIRC, your Local Info/Lookup Method is set to Server and you connect to IRC via proxy, in which case you need to change the lookup method to Normal); in any case, make sure that your client has the correct IP
--- you are behind firewall that doesn't allow outside connections on requested port; and since the port is usually chosen randomly, chances are most firewalls with elevated security setup won't allow such connections; in such case what you need to do is: 1) check your OS/firewall manual and set the firewall to accept TCP connections on some designated port range and 2) set your IRC client to use only that port range for DCC (in mIRC, that's done via Connect/Options/Advanced)
--- you are on LAN, behind NAT gateway (that is, you have a local IP like 192.168.*.* or 10.*.*.*), you try to dcc a bot that is on the Internet, and the only Internet IP you have is that of the gateway; in such case you need to use some DCC-aware NAT/firewall software on the gateway - for Linux, there's DCC-aware module of iptables; I personally use tircproxy on my FreeBSD router
BTW these troubleshooting tips are valid for any DCC requests initiated by you, not only to bots
If you are unable to get DCC initiated by you to work, try the reverse - force the bot to try DCC with you by typing /ctcp <botnick> CHAT while on IRC; in that case everything said above still applies - to the bot, not to you - therefore you must make sure that:
--- the bot has its IP address right - you might need to set my-ip in the config file correctly (and in some cases also my-hostname)
--- there isn't firewall issue for outside connections; if there is, you'll need to talk to your shell admin(s) and have them open a port range in the firewall for your bot's needs; then set reserved-portrange in your config to that port range
--- if the bot is behind NAT, you have to set nat-ip with IP of the gateway and have gateway's NAT/firewall software forward outside connections on designated port range to the local IP of your bot
All of these hints apply also for DCC SEND, therefore for sending userfile - eggdrop's mechanism for that is very similar to DCC SEND (with the only difference being that the send request is transmitted via botnet, not via CTCP on IRC); so, to ensure proper userfile sharing functionality, you need to make sure your hub bot is able to DCC SEND successfully, i.e. there are no problems of the above nature