Short: CTCP message zapper v1.0 Author: sintonen@iki.fi (Harry "Piru" Sintonen) Uploader: sintonen@iki.fi (Harry "Piru" Sintonen) Type: comm/irc Requires: 68020+, Kickstart 2.04+ Version: 1.0 Introduction: This is a small patch which intercept and modify incoming irc CTCP messages so that the irc-client doesn't recognize them. This allows you to use a script that generates customized replies regardles of the irc-client's internal (and usually hardcoded) defaults. Following CTCP messages are changed: VERSION, SOURCE, CLIENTINFO, USERINFO and TIME. This program is very similar to CTCPman 1.0 by Enrico Altavilla and in fact by default it work almost 100% identical to it. There is no example Custom_CTCP.amirx included, use one supplied in CTCPman archive if you need it. The full source code is included. The source code was compiled with GenAm 3.14, it also compiles with PhxAss. Differences to CTCPman 1.0: - Can be started before TCP/IP protocol-stack. - Can be safely terminated at any time. - Doesn't have Enforcer/CyberGuard hits. - No race-condition problems. - Work fine with per instance changing library function pointers. - AmigaDOS(tm) pattern support for MATCH and EXCLUDE. - Better server message parser. You can get around CTCPman by '/CTCP nick VERSION foo' or '/RAW PRIVMSG nick ·VERSION·' (· = ascii-1 aka CTRL-A) - Multiple CTCPzap's can be run simultanously. - Also patches recvfrom() and recvmsg(), not just recv(). - Uses CLI-program's name for MATCH and EXCLUDE matching. - Smaller and faster, written in assembly. - Includes full source code and is Public Domain. Requirements: CTCPzap requires minimum 68020 and Kickstart 2.04 (V37). It should work with all irc-client, TCP/IP protocol-stack and irc-server flavors. Tested irc-clients: AmIRC 3.5 Tested TCP/IP protocol-stacks: Genesis 1.0.6, MiamiDx 1.0c Tested irc-servers: ircd u2.10.07.0, UnrealIRCd 3.1-Silverheart Usage: Format: CTCPZAP MATCH [EXCLUDE {str}] CHANGE [PATTERN] Template: MATCH/A/K,EXCLUDE/K,CHANGE/A/K,PATTERN/S Purpose: Modify incoming irc CTCP requests. Specification: MATCH is the include pattern/string: All TCP/IP programs that match this pattern are affected. EXCLUDE is the exclude pattern/string: All TCP/IP programs that match this pattern are *not* affected. Both patterns are case-insensitive. CHANGE specify the four (4) letter identification that is used to mark modified CTCP requests. CHANGE 'id' is always converted to uppercase. If PATTERN switch is specified MATCH and EXCLUDE are considered AmigaDOS(tm) standard patterns. If PATTERN is not specified they are substrings that are looked for from the program name. Multiple CTCPzap's can be running simultanously. CTCPzap should be run before the program that it is supposed to patch or else it can't catch it. If several CTCPzap instances match a program, the one that was installed first modify it's requests. Once the patch is running you can terminate it by sending it CTRL-C. If you get 'Failed to remove patches, count = {n}' - errormessage then the patch was unable to quit and was disabled intead. Now terminate the application that are patched and hit CTRL-C again to really remove the patch. If you get 'Failed to safely remove patches' -errormessage it mean that something else has also patched system in a way that prevent CTCPzap from removing its' patches. You should consider using PatchControl (comes with MCP archive) or similar program. Example1: 1> CTCPZAP MATCH irc CHANGE FRED CTCPzap 1.0 by Harry "Piru" Sintonen All programs whose name include "irc" -substring are affected. For example: AmIRC, BlackIRC, ircii. The CTCP requests are modified as follows: VERSION -> FREDION SOURCE -> FREDCE CLIENTINFO -> FREDNTINFO USERINFO -> FREDINFO TIME -> FRED Hit CTRL-C to quit the program. Example2: 1> RUN <>NIL: CTCPZAP MATCH (amirc|blackirc|#?leet#?) EXCLUDE #?dcc CHANGE zzzz PATTERN All programs whose name match "#?dcc" -pattern are not affected. All programs whose name match "(amirc|blackirc|#?leet#?)" -pattern are affected. The CTCPzap program itself is silently run on the background. The CTCP requests are modified as follows: VERSION -> ZZZZION SOURCE -> ZZZZCE CLIENTINFO -> ZZZZNTINFO USERINFO -> ZZZZINFO TIME -> ZZZZ Legal crap: CTCPzap 1.0 was written by Harry "Piru" Sintonen . This program is public domain. NO GUARANTEE IS GIVEN NOR IMPLIED THAT THIS PROGRAM IS FIT FOR ANY USE. THIS PROGRAM AND THE INFORMATION WITHIN THIS TEXT IS PROVIDED ON "AS IS" BASIS. THE ENTIRE RISK AS TO ITS QUALITY AND PERFORMANCE IS WITH THE USER. SHOULD THE PROGRAM PROVE DEFECTIVE, THE USER (AND NOT THE AUTHOR) ASSUMES THE ENTIRE COST OF ALL NECCESSARY DAMAGES. IN NO EVENT WILL THE AUTHOR BE LIABLE FOR DIRECT, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT IN THE PROGRAM. THE AUTHOR RESERVES THE RIGHT TO MAKE CHANGES TO THE SOFTWARE OR DOCUMENTATION WITHOUT NOTICE. History: 1.0 (14th September 2000) - First public version.