Welcome to the cpitchfor patch home page

About
Iroffer is a popular irc file transfer bot but, as a side project, I have written a series of patches for this bot.
Here you can find the latest news on the patch and where to get it
Whats more you can find out the latest new of the new bot project. A new bot to extend the functionality of iroffer. Please let me know your suggestions for a name!
News
1st Dec 2002
It appears iroffer has a bug (ok it has millions) causing it to crash randomly. Since the debug output displayed when it crashes is actually quite useful, I've updated iroffer to 12.4 with crash dumping. It will produce a file when a crash occurs. This file must be sent to me with the config file, then I can debug and clear this thing up!
Older News
I have updated the final todo list. This is hopefully a complete list of all the extra features you want added to iroffer. If there is something missing from this list (that the bot cannot already do) please let me know soon!

Todo List
IRC/Channel controls
IRC Server lists
The server list is currently set in the configuration file. Now servers can be added and removed on the fly
Request Invite
When a bot needs to join a channel, a command can be added to the config file. For example the bot could be instructed to send a message to another bot requesting an invite.
invite #inviteonly say invitebot please let me in!
Join on invite
So long as the channel is defined in the config file, the bot will join the channel on an invite. The bot may already do this, but there have been problems reported.
Channel manipulation commands
Now you have greater control of the channels with the following new commands: topic, notice, op (including deop), voice, invite, ban, kick (including ban unban and bankick)
Chat mode
Now you can set a chat session. Trying to talk in a channel is hard work with say.. plus the bot doesn't monitor channels. You can establish chats now:
chat #mychan
*** Now talking in #mychan *** /say to talk /emote to message
*** /bot to execute a bot command and /part to exit chat mode

Hello all
yourbot: Hello all
fred: Hello yourbot How are you?
/emote is feeling fine
  yourbot is feeling fine
here you fred, have pack #44
yourbot: here you are fred, have pack #44
/bot send fred 44
*** Sending fred pack 44
*** ADMIN SEND requested (stdin)

fred: Thanks yourbot!
Laters Fred!
yourbot: Laters Fred!
/part
*** Finished chat with #mychan
Update usernicks in queue on nick change
Iroffer doesn't not update the user nicks in the queue list on a nick change event. Apparently this is a bug and a contributed patch will be merged in and investigated
Ban System
More ban categories
At the moment, messages can be sent when a user requests a list and/or an invalid pack. The new pack will include new categories such as repeated requests when maxtransfers reached (timer detection) and ban on search.
Standard Ban criteria
Limits can be set for each ban category. When a user commits a preset number of offences in a preset time. This is how the badpack ban currently works but will now apply to all bans.
Ban message lists
The patch supports one message per ban action, one for listing, one for invalid pack request. Now you will be able to specify a list of messages for each ban category. The bot will choose one to send one randomly.
Ban message destination
Currently ban messages are sent publically to the channel the bot occupies. Now, you can instruct the bot to send the ban messages to the user directly
Pack Systems
Pack activation
Now you will be able to activate and deactive packs with the facility to change the packs state using a timer. A deactive pack is unavailable to users making xdcc send requests and will not appear in a xdcc list of the bot. The pack, however, will still be available for sending by the bot admin using the console send command
Pack queue/transfer limits
Now you can specify limits how many slots a pack can use. Be that a maximum, minimum or guaranteed limit.
Nested Pack lists
Currently all packs are stored in a flat list. With the new patch you can arrange the packs in named, nested lists. Each list has a name and can contain packs and other lists.
SFV and MD5
Now, when a pack is added to the system, its SFV and MD5 sum information is calculated. This information can then be requested as a virtual pack. The SFV and MD5s can be requested for individual packs or for lists
HTTP/FTP pack support
A pack can be added directly from a URL. The pack will be added to the system immediately deactivated. When the download finishes sucessfully the pack can automatically be activated.
Change filename
When a pack is sent, it is sent with the filename of the file. It will possible to change the name of the file the user receives so it nolonger matches the source file.
Description on add
The description of the pack can be set when the pack is added.
Advert extensions
Colours in messages and adverts
Now adverts and ban messages can contain colours in clean text (rather than using direct colour codes)
Time remaining
Now you can feature in the advert time till a free slot and free queue entry will be available in hours, minutes or seconds 1h, 25m, 45s but not composite
Adverts for each channel with default advert
Each channel can now have its own custom advert. If no advert is specifically defined for a channel, a default advert will be used
Abort dcc's on ignore/ban
Transfers will be cancelled should a user be banned from the bot either manually or automatically
Repair/rewrite of limitdata code
Currently the code to implement a cap on the total data sent per time is broken. I cannot get it to function correctly so I will be repairing it for the new patch.
Search control
Currently the xdcc search function is not controllable. Now it will be disabled.
TCP Port selection
Currently iroffer requires 100 concurrent ports in the event it is being used through a firewall. Although I will not lower this requirement, I will give the ability to increase it.
More speed warning controls
Apparently the speed warnings do not all get disabled when speedwarnings are disabled. I will investigate and fix!
Disable console mode in win32 environment
Since I do not use Windows, let alone develope for windows. I cannot fix the outstanding issue of the bug in the console interface under windows. Currently, the instant a key is pressed in the console, iroffer will freeze (all transfers will pause, all IRC traffic will pause) until the line is terminated with a cariage return (enter key is pressed). This is unacceptable. It makes QoS complicated, it means the bot could be timedout by the IRC server, all the DCC clients could think the bot has timedout. It is wholely poor. So, rather than fix this, Ive disabled the console under Windows. If you need to administrate the bot, you will need to dcc chat into the bot
Scoreboard file
When a transfer begins or a pack is queued, it will be stored in a file that can be referenced by external files. This will include which packs are being downloaded, and who is downloading them.
Saving queues and sends
Using the scoreboard file, the bot will have the ability to restore queues when the bot restarts
Definable Trigger support including support for !list and /ctcp <bot> !list (shudder)
Now the bot can be programmed to carry out an action when a public trigger is called. In addition to executing inbuilt commands, external commands can be executed (though extremely dangerous in my opinion)
Command line access
Now you can execute commands on a running iroffer bot from the command line. This will improve the ability to communicate with the bot using shell scripts or batch files or which ever

Latest Version: cpitchfor12.4
This version was released on Fri Jan 24 01:10:52 2003
Read the readme and the ChangeLog

Downloads
The latest version is available here
It is available as a iroffer1.2b13+cpitchfor12.4.tar.gz
As a diff in iroffer1.2b13+cpitchfor12.4.diff.gz
Win32 binaries are available iroffer1.2b13+cpitchfor12.4-win32.zip
Older Versions
You can download older versions from here
Contact
If you have any suggestions regarding the patch, if you need help using it and especially if you have some suggestions please email me : iroffer at-sign itmakesmemad.com
Alternatively I can be reached as cpitchfor or cpitchout on EFNet. Let me know how you're getting on with the patch!