| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743 |
- {
- $Project$
- $Workfile$
- $Revision$
- $DateUTC$
- $Id$
- This file is part of the Indy (Internet Direct) project, and is offered
- under the dual-licensing agreement described on the Indy website.
- (http://www.indyproject.org/)
- Copyright:
- (c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved.
- }
- {
- $Log$
- }
- {
- Rev 1.10 2004.02.03 5:43:56 PM czhower
- Name changes
- Rev 1.9 1/21/2004 3:11:20 PM JPMugaas
- InitComponent
- Rev 1.8 10/19/2003 5:23:20 PM DSiders
- Added localization comments.
- Rev 1.7 2003.10.18 9:42:08 PM czhower
- Boatload of bug fixes to command handlers.
- Rev 1.6 8/2/2003 05:03:46 AM JPMugaas
- Hopefully should now support IRCS (IRC over TLS/SSL)
- Rev 1.5 7/18/2003 4:26:30 PM SPerry
- New IRC server using command handlers
- Rev 1.4 2/24/2003 09:07:18 PM JPMugaas
- Rev 1.3 1/17/2003 07:10:36 PM JPMugaas
- Now compiles under new framework.
- Rev 1.2 1-1-2003 20:13:22 BGooijen
- Changed to support the new TIdContext class
- Rev 1.1 12/7/2002 06:43:02 PM JPMugaas
- These should now compile except for Socks server. IPVersion has to be a
- property someplace for that.
- Rev 1.0 11/13/2002 07:55:52 AM JPMugaas
- 2002-10-July: Sergio Perry
- -Switched to using TIdCmdServer
- 2002-17-Aug: Bas Gooijen
- -Changed to DoXXXXX
- 2000-15-May: Renamed events to Id Prefix
- 2000-22-Apr: J Peter Mugass
- -Ported to Indy
- 2000-13-Jan MTL
- -Moved to new Palette Scheme (Winshoes Servers)
- 1999-13-Apr
- -Final Version
- }
- unit IdIrcServer;
- interface
- {$i IdCompilerDefines.inc}
- {
- Original Author: Ozz Nixon
- -RFC 1459 - Internet Relay Chat
- }
- uses
- IdAssignedNumbers, IdCommandHandlers, IdCmdTCPServer, IdContext, IdServerIOHandler;
- type
- { Events }
- TIdIRCGetEvent = procedure(AContext: TIdCommand) of object;
- TIdIRCOtherEvent = procedure(AContext: TIdCommand; Command, AParm: string) of object;
- TIdIRCOneParmEvent = procedure(AContext: TIdCommand; AParm: string) of object;
- TIdIRCTwoParmEvent = procedure(AContext: TIdCommand; AParm1, AParm2: string) of object;
- TIdIRCThreeParmEvent = procedure(AContext: TIdCommand; AParm1, AParm2, AParm3: string) of object;
- TIdIRCFiveParmEvent = procedure(AContext: TIdCommand; AParm1, AParm2, AParm3, AParm4, AParm5: string) of object;
- TIdIRCUserEvent = procedure(AContext: TIdCommand; UserName, HostName, ServerName, RealName: string) of object;
- TIdIRCServerEvent = procedure(AContext: TIdCommand; ServerName, Hopcount, Info: string) of object;
- { TIdIRCServer }
- TIdIRCServer = class(TIdCmdTCPServer)
- protected
- fOnCommandOther: TIdIRCOtherEvent;
- fOnCommandPass: TIdIRCOneParmEvent;
- fOnCommandNick: TIdIRCTwoParmEvent;
- fOnCommandUser: TIdIRCUserEvent;
- fOnCommandServer: TIdIRCServerEvent;
- fOnCommandOper: TIdIRCTwoParmEvent;
- fOnCommandQuit: TIdIRCOneParmEvent;
- fOnCommandSQuit: TIdIRCTwoParmEvent;
- fOnCommandJoin: TIdIRCTwoParmEvent;
- fOnCommandPart: TIdIRCOneParmEvent;
- fOnCommandMode: TIdIRCFiveParmEvent;
- fOnCommandTopic: TIdIRCTwoParmEvent;
- fOnCommandNames: TIdIRCOneParmEvent;
- fOnCommandList: TIdIRCTwoParmEvent;
- fOnCommandInvite: TIdIRCTwoParmEvent;
- fOnCommandKick: TIdIRCThreeParmEvent;
- fOnCommandVersion: TIdIRCOneParmEvent;
- fOnCommandStats: TIdIRCTwoParmEvent;
- fOnCommandLinks: TIdIRCTwoParmEvent;
- fOnCommandTime: TIdIRCOneParmEvent;
- fOnCommandConnect: TIdIRCThreeParmEvent;
- fOnCommandTrace: TIdIRCOneParmEvent;
- fOnCommandAdmin: TIdIRCOneParmEvent;
- fOnCommandInfo: TIdIRCOneParmEvent;
- fOnCommandPrivMsg: TIdIRCTwoParmEvent;
- fOnCommandNotice: TIdIRCTwoParmEvent;
- fOnCommandWho: TIdIRCTwoParmEvent;
- fOnCommandWhoIs: TIdIRCTwoParmEvent;
- fOnCommandWhoWas: TIdIRCThreeParmEvent;
- fOnCommandKill: TIdIRCTwoParmEvent;
- fOnCommandPing: TIdIRCTwoParmEvent;
- fOnCommandPong: TIdIRCTwoParmEvent;
- fOnCommandError: TIdIRCOneParmEvent;
- fOnCommandAway: TIdIRCOneParmEvent;
- fOnCommandRehash: TIdIRCGetEvent;
- fOnCommandRestart: TIdIRCGetEvent;
- fOnCommandSummon: TIdIRCTwoParmEvent;
- fOnCommandUsers: TIdIRCOneParmEvent;
- fOnCommandWallops: TIdIRCOneParmEvent;
- fOnCommandUserHost: TIdIRCOneParmEvent;
- fOnCommandIsOn: TIdIRCOneParmEvent;
- //
- procedure InitializeCommandHandlers; override;
- //
- procedure DoCommandOther(ASender: TIdCommandHandler; ACommand: TIdCommand;
- const AData, AMessage: String);
- procedure DoCommandPass(ASender: TIdCommand);
- procedure DoCommandNick(ASender: TIdCommand);
- procedure DoCommandUser(ASender: TIdCommand);
- procedure DoCommandServer(ASender: TIdCommand);
- procedure DoCommandOper(ASender: TIdCommand);
- procedure DoCommandQuit(ASender: TIdCommand);
- procedure DoCommandSQuit(ASender: TIdCommand);
- procedure DoCommandJoin(ASender: TIdCommand);
- procedure DoCommandPart(ASender: TIdCommand);
- procedure DoCommandMode(ASender: TIdCommand);
- procedure DoCommandTopic(ASender: TIdCommand);
- procedure DoCommandNames(ASender: TIdCommand);
- procedure DoCommandList(ASender: TIdCommand);
- procedure DoCommandInvite(ASender: TIdCommand);
- procedure DoCommandKick(ASender: TIdCommand);
- procedure DoCommandVersion(ASender: TIdCommand);
- procedure DoCommandStats(ASender: TIdCommand);
- procedure DoCommandLinks(ASender: TIdCommand);
- procedure DoCommandTime(ASender: TIdCommand);
- procedure DoCommandConnect(ASender: TIdCommand);
- procedure DoCommandTrace(ASender: TIdCommand);
- procedure DoCommandAdmin(ASender: TIdCommand);
- procedure DoCommandInfo(ASender: TIdCommand);
- procedure DoCommandPrivMsg(ASender: TIdCommand);
- procedure DoCommandNotice(ASender: TIdCommand);
- procedure DoCommandWho(ASender: TIdCommand);
- procedure DoCommandWhoIs(ASender: TIdCommand);
- procedure DoCommandWhoWas(ASender: TIdCommand);
- procedure DoCommandKill(ASender: TIdCommand);
- procedure DoCommandPing(ASender: TIdCommand);
- procedure DoCommandPong(ASender: TIdCommand);
- procedure DoCommandError(ASender: TIdCommand);
- procedure DoCommandAway(ASender: TIdCommand);
- procedure DoCommandRehash(ASender: TIdCommand);
- procedure DoCommandRestart(ASender: TIdCommand);
- procedure DoCommandSummon(ASender: TIdCommand);
- procedure DoCommandUsers(ASender: TIdCommand);
- procedure DoCommandWallops(ASender: TIdCommand);
- procedure DoCommandUserHost(ASender: TIdCommand);
- procedure DoCommandIsOn(ASender: TIdCommand);
- procedure DoCommandNotHandled(ASender: TIdCommandHandler; ACommand: TIdCommand;
- const AData, AMessage: String);
- //overrides for TLS support
- procedure DoConnect(AContext: TIdContext); override;
- procedure SetIOHandler(const AValue: TIdServerIOHandler); override;
- procedure InitComponent; override;
- published
- property DefaultPort default IdPORT_IRC;
- property OnCommandPass: TIdIRCOneParmEvent read fOnCommandPass write fOnCommandPass;
- property OnCommandNick: TIdIRCTwoParmEvent read fOnCommandNick write fOnCommandNick;
- property OnCommandUser: TIdIRCUserEvent read fOnCommandUser write fOnCommandUser;
- property OnCommandServer: TIdIRCServerEvent read fOnCommandServer write fOnCommandServer;
- property OnCommandOper: TIdIRCTwoParmEvent read fOnCommandOper write fOnCommandOper;
- property OnCommandQuit: TIdIRCOneParmEvent read fOnCommandQuit write fOnCommandQuit;
- property OnCommandSQuit: TIdIRCTwoParmEvent read fOnCommandSQuit write fOnCommandSQuit;
- property OnCommandJoin: TIdIRCTwoParmEvent read fOnCommandJoin write fOnCommandJoin;
- property OnCommandPart: TIdIRCOneParmEvent read fOnCommandPart write fOnCommandPart;
- property OnCommandMode: TIdIRCFiveParmEvent read fOnCommandMode write fOnCommandMode;
- property OnCommandTopic: TIdIRCTwoParmEvent read fOnCommandTopic write fOnCommandTopic;
- property OnCommandNames: TIdIRCOneParmEvent read fOnCommandNames write fOnCommandNames;
- property OnCommandList: TIdIRCTwoParmEvent read fOnCommandList write fOnCommandList;
- property OnCommandInvite: TIdIRCTwoParmEvent read fOnCommandInvite write fOnCommandInvite;
- property OnCommandKick: TIdIRCThreeParmEvent read fOnCommandKick write fOnCommandKick;
- property OnCommandVersion: TIdIRCOneParmEvent read fOnCommandVersion write fOnCommandVersion;
- property OnCommandStats: TIdIRCTwoParmEvent read fOnCommandStats write fOnCommandStats;
- property OnCommandLinks: TIdIRCTwoParmEvent read fOnCommandLinks write fOnCommandLinks;
- property OnCommandTime: TIdIRCOneParmEvent read fOnCommandTime write fOnCommandTime;
- property OnCommandConnect: TIdIRCThreeParmEvent read fOnCommandConnect write fOnCommandConnect;
- property OnCommandTrace: TIdIRCOneParmEvent read fOnCommandTrace write fOnCommandTrace;
- property OnCommandAdmin: TIdIRCOneParmEvent read fOnCommandAdmin write fOnCommandAdmin;
- property OnCommandInfo: TIdIRCOneParmEvent read fOnCommandInfo write fOnCommandInfo;
- property OnCommandPrivMsg: TIdIRCTwoParmEvent read fOnCommandPrivMsg write fOnCommandPrivMsg;
- property OnCommandNotice: TIdIRCTwoParmEvent read fOnCommandNotice write fOnCommandNotice;
- property OnCommandWho: TIdIRCTwoParmEvent read fOnCommandWho write fOnCommandWho;
- property OnCommandWhoIs: TIdIRCTwoParmEvent read fOnCommandWhoIs write fOnCommandWhoIs;
- property OnCommandWhoWas: TIdIRCThreeParmEvent read fOnCommandWhoWas write fOnCommandWhoWas;
- property OnCommandKill: TIdIRCTwoParmEvent read fOnCommandKill write fOnCommandKill;
- property OnCommandPing: TIdIRCTwoParmEvent read fOnCommandPing write fOnCommandPing;
- property OnCommandPong: TIdIRCTwoParmEvent read fOnCommandPong write fOnCommandPong;
- property OnCommandError: TIdIRCOneParmEvent read fOnCommandError write fOnCommandError;
- property OnCommandAway: TIdIRCOneParmEvent read fOnCommandAway write fOnCommandAway;
- property OnCommandRehash: TIdIRCGetEvent read fOnCommandRehash write fOnCommandRehash;
- property OnCommandRestart: TIdIRCGetEvent read fOnCommandRestart write fOnCommandRestart;
- property OnCommandSummon: TIdIRCTwoParmEvent read fOnCommandSummon write fOnCommandSummon;
- property OnCommandUsers: TIdIRCOneParmEvent read fOnCommandUsers write fOnCommandUsers;
- property OnCommandWallops: TIdIRCOneParmEvent read fOnCommandWallops write fOnCommandWallops;
- property OnCommandUserHost: TIdIRCOneParmEvent read fOnCommandUserHost write fOnCommandUserHost;
- property OnCommandIsOn: TIdIRCOneParmEvent read fOnCommandIsOn write fOnCommandIsOn;
- property OnCommandOther: TIdIRCOtherEvent read fOnCommandOther write fOnCommandOther;
- end;
- implementation
- uses
- IdGlobal, IdGlobalProtocols, IdResourceStringsProtocols, IdSSL, SysUtils;
- procedure TIdIRCServer.InitComponent;
- begin
- inherited;
- DefaultPort := IdPORT_IRC;
- end;
- procedure TIdIRCServer.InitializeCommandHandlers;
- var
- LCommandHandler: TIdCommandHandler;
- begin
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'ADMIN'; {do not localize}
- LCommandHandler.OnCommand := DoCommandADMIN;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'AWAY'; {do not localize}
- LCommandHandler.OnCommand := DoCommandAWAY;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'CONNECT'; {do not localize}
- LCommandHandler.OnCommand := DoCommandCONNECT;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'ERROR'; {do not localize}
- LCommandHandler.OnCommand := DoCommandERROR;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'INFO'; {do not localize}
- LCommandHandler.OnCommand := DoCommandINFO;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'INVITE'; {do not localize}
- LCommandHandler.OnCommand := DoCommandINVITE;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'ISON'; {do not localize}
- LCommandHandler.OnCommand := DoCommandISON;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'JOIN'; {do not localize}
- LCommandHandler.OnCommand := DoCommandJOIN;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'KICK'; {do not localize}
- LCommandHandler.OnCommand := DoCommandKICK;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'KILL'; {do not localize}
- LCommandHandler.OnCommand := DoCommandKILL;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'LINKS'; {do not localize}
- LCommandHandler.OnCommand := DoCommandLINKS;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'LIST'; {do not localize}
- LCommandHandler.OnCommand := DoCommandLIST;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'MODE'; {do not localize}
- LCommandHandler.OnCommand := DoCommandMODE;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'NAMES'; {do not localize}
- LCommandHandler.OnCommand := DoCommandNAMES;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'NICK'; {do not localize}
- LCommandHandler.OnCommand := DoCommandNICK;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'NOTICE'; {do not localize}
- LCommandHandler.OnCommand := DoCommandNOTICE;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'OPER'; {do not localize}
- LCommandHandler.OnCommand := DoCommandOPER;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'PART'; {do not localize}
- LCommandHandler.OnCommand := DoCommandPART;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'PASS'; {do not localize}
- LCommandHandler.OnCommand := DoCommandPASS;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'PING'; {do not localize}
- LCommandHandler.OnCommand := DoCommandPING;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'PONG'; {do not localize}
- LCommandHandler.OnCommand := DoCommandPONG;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'PRIVMSG'; {do not localize}
- LCommandHandler.OnCommand := DoCommandPRIVMSG;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'QUIT'; {do not localize}
- LCommandHandler.OnCommand := DoCommandQUIT;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'REHASH'; {do not localize}
- LCommandHandler.OnCommand := DoCommandREHASH;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'RESTART'; {do not localize}
- LCommandHandler.OnCommand := DoCommandRESTART;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'SERVER'; {do not localize}
- LCommandHandler.OnCommand := DoCommandSERVER;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'SQUIT'; {do not localize}
- LCommandHandler.OnCommand := DoCommandSQUIT;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'STATS'; {do not localize}
- LCommandHandler.OnCommand := DoCommandSTATS;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'SUMMON'; {do not localize}
- LCommandHandler.OnCommand := DoCommandSUMMON;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'TIME'; {do not localize}
- LCommandHandler.OnCommand := DoCommandTIME;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'TOPIC'; {do not localize}
- LCommandHandler.OnCommand := DoCommandTOPIC;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'TRACE'; {do not localize}
- LCommandHandler.OnCommand := DoCommandTRACE;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'USER'; {do not localize}
- LCommandHandler.OnCommand := DoCommandUSER;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'USERHOST'; {do not localize}
- LCommandHandler.OnCommand := DoCommandUSERHOST;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'USERS'; {do not localize}
- LCommandHandler.OnCommand := DoCommandUSERS;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'VERSION'; {do not localize}
- LCommandHandler.OnCommand := DoCommandVERSION;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'WALLOPS'; {do not localize}
- LCommandHandler.OnCommand := DoCommandWALLOPS;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'WHO'; {do not localize}
- LCommandHandler.OnCommand := DoCommandWHO;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'WHOIS'; {do not localize}
- LCommandHandler.OnCommand := DoCommandWHOIS;
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := 'WHOWAS'; {do not localize}
- LCommandHandler.OnCommand := DoCommandWHOWAS;
- { OTHER }
- LCommandHandler := CommandHandlers.Add;
- LCommandHandler.Command := '*^*'; {do not localize} // does not exist - so use it to handle errors
- end;
- { Command handlers }
- procedure TIdIRCServer.DoCommandNotHandled(ASender: TIdCommandHandler;
- ACommand: TIdCommand; const AData, AMessage: String);
- begin
- ACommand.Context.Connection.IOHandler.WriteLn(IndyFormat('%s %s', ['421', RSCMDNotRecognized])); {do not localize}
- end;
- procedure TIdIRCServer.DoCommandOther(ASender: TIdCommandHandler;
- ACommand: TIdCommand; const AData, AMessage: String);
- begin
- if Assigned(OnCommandOther) then begin
- OnCommandOther(ACommand, ACommand.Params[0], ACommand.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandPass(ASender: TIdCommand);
- begin
- if Assigned(OnCommandPass) then begin
- OnCommandPass(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandNick(ASender: TIdCommand);
- begin
- if Assigned(OnCommandNick) then begin
- OnCommandNick(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandUser(ASender: TIdCommand);
- begin
- if Assigned(OnCommandUser) then begin
- OnCommandUser(ASender, ASender.Params[0], ASender.Params[1], ASender.Params[2], ASender.Params[3]);
- end;
- end;
- procedure TIdIRCServer.DoCommandServer(ASender: TIdCommand);
- begin
- if Assigned(OnCommandServer) then begin
- OnCommandServer(ASender, ASender.Params[0], ASender.Params[1], ASender.Params[2]);
- end;
- end;
- procedure TIdIRCServer.DoCommandOper(ASender: TIdCommand);
- begin
- if Assigned(OnCommandNick) then begin
- OnCommandNick(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandQuit(ASender: TIdCommand);
- begin
- if Assigned(OnCommandQuit) then begin
- OnCommandQuit(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandSQuit(ASender: TIdCommand);
- begin
- if Assigned(OnCommandSQuit) then begin
- OnCommandSQuit(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandJoin(ASender: TIdCommand);
- begin
- if Assigned(OnCommandJoin) then begin
- OnCommandJoin(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandPart(ASender: TIdCommand);
- begin
- if Assigned(OnCommandPart) then begin
- OnCommandPart(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandMode(ASender: TIdCommand);
- begin
- if Assigned(OnCommandMode) then begin
- OnCommandMode(ASender, ASender.Params[0], ASender.Params[1], ASender.Params[2], ASender.Params[3], ASender.Params[4]);
- end;
- end;
- procedure TIdIRCServer.DoCommandTopic(ASender: TIdCommand);
- begin
- if Assigned(OnCommandTopic) then begin
- OnCommandTopic(ASender, ASender.Params[0], ASender.Params[1]) ;
- end;
- end;
- procedure TIdIRCServer.DoCommandNames(ASender: TIdCommand);
- begin
- if Assigned(OnCommandNames) then begin
- OnCommandNames(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandList(ASender: TIdCommand);
- begin
- if Assigned(OnCommandList) then begin
- OnCommandList(ASender, ASender.Params[0], ASender.Params[1]) ;
- end;
- end;
- procedure TIdIRCServer.DoCommandInvite(ASender: TIdCommand);
- begin
- if Assigned(OnCommandInvite) then begin
- OnCommandInvite(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandKick(ASender: TIdCommand);
- begin
- if Assigned(OnCommandKick) then begin
- OnCommandKick(ASender, ASender.Params[0], ASender.Params[1], ASender.Params[2]);
- end;
- end;
- procedure TIdIRCServer.DoCommandVersion(ASender: TIdCommand);
- begin
- if Assigned(OnCommandVersion) then begin
- OnCommandVersion(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandStats(ASender: TIdCommand);
- begin
- if Assigned(OnCommandStats) then begin
- OnCommandStats(ASender, ASender.Params[0], ASender.Params[1]) ;
- end;
- end;
- procedure TIdIRCServer.DoCommandLinks(ASender: TIdCommand);
- begin
- if Assigned(OnCommandLinks) then begin
- OnCommandLinks(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandTime(ASender: TIdCommand);
- var
- LTarget: String;
- begin
- if Assigned(OnCommandTime) then begin
- if ASender.Params.Count > 0 then begin
- LTarget := ASender.Params[0];
- end;
- OnCommandTime(ASender, LTarget);
- end;
- end;
- procedure TIdIRCServer.DoCommandConnect(ASender: TIdCommand);
- begin
- if Assigned(OnCommandConnect) then begin
- OnCommandConnect(ASender, ASender.Params[0], ASender.Params[1], ASender.Params[2]);
- end;
- end;
- procedure TIdIRCServer.DoCommandTrace(ASender: TIdCommand);
- begin
- if Assigned(OnCommandTrace) then begin
- OnCommandTrace(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandAdmin(ASender: TIdCommand);
- begin
- if Assigned(OnCommandAdmin) then begin
- OnCommandAdmin(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandInfo(ASender: TIdCommand);
- begin
- if Assigned(OnCommandInfo) then begin
- OnCommandInfo(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandPrivMsg(ASender: TIdCommand);
- begin
- if Assigned(OnCommandPrivMsg) then begin
- OnCommandPrivMsg(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandNotice(ASender: TIdCommand);
- begin
- if Assigned(OnCommandNotice) then begin
- OnCommandNotice(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandWho(ASender: TIdCommand);
- begin
- if Assigned(OnCommandWho) then begin
- OnCommandWho(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandWhoIs(ASender: TIdCommand);
- begin
- if Assigned(OnCommandWhoIs) then begin
- OnCommandWhoIs(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandWhoWas(ASender: TIdCommand);
- begin
- if Assigned(OnCommandWhoWas) then begin
- OnCommandWhoWas(ASender, ASender.Params[0], ASender.Params[1], ASender.Params[2]);
- end;
- end;
- procedure TIdIRCServer.DoCommandKill(ASender: TIdCommand);
- begin
- if Assigned(OnCommandKill) then begin
- OnCommandKill(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandPing(ASender: TIdCommand);
- begin
- if Assigned(OnCommandPing) then begin
- OnCommandPing(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandPong(ASender: TIdCommand);
- begin
- if Assigned(OnCommandPong) then begin
- OnCommandPong(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandError(ASender: TIdCommand);
- begin
- if Assigned(OnCommandError) then begin
- OnCommandError(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandAway(ASender: TIdCommand);
- begin
- if Assigned(OnCommandAway) then begin
- OnCommandAway(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandRehash(ASender: TIdCommand);
- begin
- if Assigned(OnCommandRehash) then begin
- OnCommandRehash(ASender);
- end;
- end;
- procedure TIdIRCServer.DoCommandRestart(ASender: TIdCommand);
- begin
- if Assigned(OnCommandRestart) then begin
- OnCommandRestart(ASender);
- end;
- end;
- procedure TIdIRCServer.DoCommandSummon(ASender: TIdCommand);
- begin
- if Assigned(OnCommandSummon) then begin
- OnCommandSummon(ASender, ASender.Params[0], ASender.Params[1]);
- end;
- end;
- procedure TIdIRCServer.DoCommandUsers(ASender: TIdCommand);
- begin
- if Assigned(OnCommandUsers) then begin
- OnCommandUsers(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandWallops(ASender: TIdCommand);
- begin
- if Assigned(OnCommandWallops) then begin
- OnCommandWallops(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandUserHost(ASender: TIdCommand);
- begin
- if Assigned(OnCommandUserHost) then begin
- OnCommandUserHost(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoCommandIsOn(ASender: TIdCommand);
- begin
- if Assigned(OnCommandIsOn) then begin
- OnCommandIsOn(ASender, ASender.Params[0]);
- end;
- end;
- procedure TIdIRCServer.DoConnect(AContext: TIdContext);
- begin
- if AContext.Connection.IOHandler is TIdSSLIOHandlerSocketBase then begin
- TIdSSLIOHandlerSocketBase(AContext.Connection.IOHandler).PassThrough := False;
- end;
- inherited DoConnect(AContext);
- end;
- procedure TIdIRCServer.SetIOHandler(const AValue: TIdServerIOHandler);
- begin
- inherited SetIOHandler(AValue);
- //we do it this way so that if a user is using a custom value <> default, the default port
- //is not set when the IOHandler is changed.
- if IOHandler is TIdServerIOHandlerSSLBase then
- begin
- if DefaultPort = IdPORT_IRC then begin
- DefaultPort := IdPORT_IRCS;
- end;
- end else
- begin
- if DefaultPort = IdPORT_IRCS then begin
- DefaultPort := IdPORT_IRC;
- end;
- end;
- end;
- end.
|