| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- {
- $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.5 12/2/2004 4:24:00 PM JPMugaas
- Adjusted for changes in Core.
- Rev 1.4 1/21/2004 4:21:18 PM JPMugaas
- InitComponent
- Rev 1.3 2/24/2003 10:39:58 PM JPMugaas
- Rev 1.2 1/17/2003 07:11:10 PM JPMugaas
- Now compiles under new framework.
- Rev 1.1 1/9/2003 06:55:54 AM JPMugaas
- Changed OnQueryEvent so users do not have to bother with WriteLn's in their
- events.
- Now works with IdContext.
- Rev 1.0 11/13/2002 08:04:48 AM JPMugaas
- }
- unit IdWhoIsServer;
- {
- 2000-Apr-19 Hadi Hariri
- Converted to Indy
- 13-JAN-2000 MTL: Moved to new Palette Scheme (Winshoes Servers)
- 5.13.99 Final Version
- ? [responds with the following]
- Please enter a name or a NIC handle, such as "Smith" or "SRI-NIC".
- Starting with a period forces a name-only search; starting with
- exclamation point forces handle-only. Examples:
- Smith [looks for name or handle SMITH]
- !SRI-NIC [looks for handle SRI-NIC only]
- .Smith, John
- [looks for name JOHN SMITH only]
- Adding "..." to the argument will match anything from that point,
- e.g. "ZU..." will match ZUL, ZUM, etc.
- To search for mailboxes, use one of these forms:
- Smith@ [looks for mailboxes with username SMITH]
- @Host [looks for mailboxes on HOST]
- Smith@Host
- Orig Author: Ozz Nixon (RFC 954)
- }
- interface
- {$i IdCompilerDefines.inc}
- uses
- IdAssignedNumbers,
- IdContext,
- IdCustomTCPServer;
- type
- TGetEvent = procedure(AContext:TIdContext; ALookup: string; var VResponse : String) of object;
- TIdWhoIsServer = class(TIdCustomTCPserver)
- protected
- FOnCommandLookup: TGetEvent;
- //
- function DoExecute(AContext:TIdContext): boolean; override;
- procedure InitComponent; override;
- published
- property OnCommandLookup: TGetEvent read FOnCommandLookup write FOnCommandLookup;
- property DefaultPort default IdPORT_WHOIS;
- end;
- implementation
- { TIdWhoIsServer }
- procedure TIdWhoIsServer.InitComponent;
- begin
- inherited;
- DefaultPort := IdPORT_WHOIS;
- end;
- function TIdWhoIsServer.DoExecute(AContext:TIdContext): boolean;
- var
- LRequest, VResponse: string;
- begin
- Result := True;
- // Get the domain name the client is inquiring about
- LRequest := AContext.Connection.IOHandler.ReadLn;
- if Assigned(OnCommandLookup) then begin
- OnCommandLookup(AContext, LRequest, VResponse);
- AContext.Connection.IOHandler.Write(VResponse);
- end;
- AContext.Connection.Disconnect;
- end;
- end.
|