Chapter 5 – Technical Reference |
|
This section identifies all standard files and directories of a normal IPS installation, as well as describes their contents and which platform they are designed for.
Path |
Description |
Platform |
---|---|---|
ips\ |
This is the IPS root directory. It consists of IPS's subdirectories and a couple of IPS's core files. |
(directory) |
ips\file_id.diz |
Standard archive description file. |
- |
ips\ips2.exe |
Main IPS executable. |
OS/2 |
ips\ips2.ico |
Icon for IPS executable. |
OS/2 |
ips\ips32.exe |
Main IPS executable. |
Win32 |
ips\ips32.ico |
Icon for IPS executables. |
Win32 |
ips\readme.txt |
Small text file that redirects the reader to read the documentation\readme.txt and documentation\index.html files. |
- |
ips\binaries\ |
This directory contains all executables needed to run IPS and use all of its features. You should never run any of these programs directly. |
(directory) |
ips\binaries\ips2cgi.exe |
IPS executable used to run CGI sessions. |
OS/2 |
ips\binaries\ips2old.exe |
IPS Server executable used before last update. |
OS/2 |
ips\binaries\ips2srv.exe |
IPS Server executable currently in use. |
OS/2 |
ips\binaries\ips2upd.exe |
IPS Server executable to be installed on next restart. |
OS/2 |
ips\binaries\ips32cgi.exe |
IPS executable used to run CGI sessions. |
Win32 |
ips\binaries\ips32old.exe |
IPS Server executable used before last update. |
Win32 |
ips\binaries\ips32srv.exe |
IPS Server executable currently in use. |
Win32 |
ips\binaries\ips32upd.exe |
IPS Server executable to be installed on next restart. |
Win32 |
ips\binaries\ico\ |
|
(directory) |
ips\binaries\ico\ipsfldr1.ico |
Icon for IPS folders. |
OS/2 |
ips\binaries\ico\ipsfldr2.ico |
Icon for IPS folders. |
OS/2 |
ips\config\ |
All IPS configuration files (CFs) are located in the directory tree beneath this directory. Each subdirectory will contain one site personality. |
(directory) |
ips\config\ips.cfg |
The main IPS configuration file. This file is actually not a very interesting one. It isn't a configuration file for site personalities, but rather a config file for IPS internals. |
- |
ips\config\<site>\ |
|
(directory) |
ips\config\<site>\<site>.cfg |
A site personality configuration file (CF). Each one of these files defines a site personality's security, VFS tree and the services that run as part of that personality. IPS ships with one default site personality called "main", which is stored in ips\config\main, and defined in that directory's main.cfg file. |
- |
ips\documentation\ |
IPS documentation and default configuration directories are stored in this directory. |
(directory) |
ips\documentation\index.html |
Main documentation entry point. If opened in a web browser, a convenient web-based interface to view IPS documentation can be used. |
- |
ips\documentation\* |
All other directory entires are either documentation files or sub-directories containing default configuration directories. |
- |
ips\log\ |
|
(directory) |
ips\log\ips2.log |
|
OS/2 |
ips\log\ips32.log |
|
Win32 |
ips\log\*.log |
Service log files, whose files defined in the site personality CFs. Format is <site>-<service>.log! |
- |
ips\log\ips*.trc |
Trace log files. |
- |
ips\log\<yyyymm>\ |
|
(directory) |
ips\log\<yyyymm>\<datetime>.zip |
The log file archive. All files in the parent directory are automatically archived into this zip file, whenever IPS is started up or restarted. The date and time are combined in a string of numbers to make up the filename. This makes it easy to locate a log that ends at a given point in time. The logs are easier to read since they're more compact than a single, monolithic log file. Format is <yyyymmdd>-<hhmmss>.zip! |
- |
ips\messages\ftp\ |
Multiple response message files and online help files for the FTPd service are placed in this directory. |
(directory) |
ips\messages\ftp\ftp.hlp |
This file is displayed when a SITE HELP command is issued by the client over the FTP connection. |
- |
ips\messages\ftp\ftp.res |
Response messages file used by the FTPd service component. |
- |
ips\messages\ftp\login.msg |
Contains the message displayed to a user immediately after they log in to the FTPd service component. The file that IPS looks for (ie: this one) is determined by the path and filename setting in the file messages\ftp\ftp.res. |
- |
ips\messages\ftp\login-anon.msg |
Contains the message displayed to a guest immediately after logging in to the FTPd service component. The file that IPS looks for (ie: this one) is determined by the path and filename setting in the file messages\ftp\ftp.res. |
- |
ips\messages\ftp\retr0.msg |
Message displayed when a user has downloaded (RETRieved) a file from the FTPd service component. The file that IPS looks for (ie: this one) is determined by the path and filename setting in the file messages\ftp\ftp.res. |
- |
ips\messages\ftp\sitestat.msg |
Contains the message displayed when a user executes the SITE STAT command. The file that IPS looks for (ie: this one) is determined by the path and filename setting in the file messages\ftp\ftp.res. |
- |
ips\messages\ftp\stor0.msg |
Message displayed when a user has uploaded (STORed) a file. The file that IPS looks for (ie: this one) is determined by the path and filename setting in the file messages\ftp\ftp.res. |
- |
ips\messages\http\ |
Multiple response message files and online help files for the HTTPd service are placed in this directory. |
(directory) |
ips\messages\http\http.res |
Response messages file used by the HTTPd service component. |
- |
ips\messages\http\icons\ |
|
(directory) |
ips\messages\http\icons\file.gif |
|
- |
ips\messages\http\icons\folder.gif |
|
- |
ips\messages\http\icons\ipsadm.gif |
|
- |
ips\messages\http\icons\ipsicon20.gif |
|
- |
ips\messages\http\icons\ipsicon40.gif |
|
- |
ips\messages\pop3\ |
Multiple response message files and online help files for the POP3d service are placed in this directory. |
(directory) |
ips\messages\pop3\pop3.res |
Response messages file used by the POP3d service component. |
- |
ips\messages\smtp\ |
Multiple response message files and online help files for the SMTPd service are placed in this directory. |
(directory) |
ips\messages\smtp\smtp.res |
Response messages file used by the SMTPd service component. |
- |
ips\queue\ |
This directory contains various queues used by IPS. You should not modify files in this directory while IPS is running. |
(directory) |
ips\queue\mail\*.inc |
Contains the header part of incoming mail messages. |
- |
ips\queue\mail\*.hdr |
Contains the header part of queued mail messages. |
- |
ips\queue\mail\*.msg |
Contain the message part of incoming/queued mail messages. |
- |
ips\queue\mail\*.lck |
A message lock file. Exists when a delivery is in progress. |
- |
ips\scripts\ftp\ |
RexxHooks used by the FTPd service component is stored in this directory. |
(directory) |
ips\scripts\ftp\OnConnect.rexx |
Example RexxHook script that's called whenever a connection is made to the FTPd service component. This script is configured in the site personality CF. |
- |
ips\scripts\ftp\OnPass.rexx |
Example RexxHook script that's called whenever a guest users has sent a password to the FTPd service component. This script is configured in the site personality CF. |
- |
ips\scripts\ftp\OnSite.rexx |
Example RexxHook script that's called whenever a SITE command is sent to the FTPd service component. This RexxHook script is executed before internal SITE commands are processed. This script is configured in the site personality CF. |
- |
ips\scripts\ftp\OnUser.rexx |
Example RexxHook script that's called whenever a user has sent his/her username to the FTPd service component. This script is configured in the site personality CF. |
- |
ips\scripts\http\ |
RexxHooks used by the HTTPd service component are stored in this directory. |
(directory) |
ips\scripts\http\*.rexx |
RexxHooks used by the HTTPd service component. |
- |
ips\scripts\pop3\ |
RexxHooks used by the POP3d service component is stored in this directory. |
(directory) |
ips\scripts\pop3\*.rexx |
RexxHooks used by the POP3d service component. |
- |
ips\scripts\smtp\ |
RexxHooks used by the SMTPd service component is stored in this directory. |
(directory) |
ips\scripts\smtp\*.rexx |
RexxHooks used by the SMTPd service component. |
- |
ips\tmp\ |
|
(directory) |
ips\utilities\ |
This directory contains files that IPS uses for file-level access control, and also the informational utilities used at startup and during runtime operation. This path should probably be included in the system's PATH and LIBPATH (OS/2 only) environment variables. |
(directory) |
ips\utilities\chgrp.exe |
UNIX-like utility to control group access (EA based access). |
OS/2 |
ips\utilities\chmod.exe |
UNIX-like utility to control user access (EA based access). |
OS/2 |
ips\utilities\chown.exe |
UNIX-like utility to control owner access (EA based access). |
OS/2 |
ips\utilities\ips2con.exe |
IPS Console executable. |
OS/2 |
ips\utilities\ips2con.ico |
IPS Console icon. |
OS/2 |
ips\utilities\ips32con.exe |
IPS Console executable. |
Win32 |
ips\utilities\ips32con.ico |
IPS Console icon. |
Win32 |
ips\utilities\ips32mgr.exe |
IPS Manager executable. |
Win32 |
ips\utilities\ips32mgr.ico |
IPS Manager icon. |
Win32 |
ips\utilities\ipsrexx.dll |
Rexx DLL for IPS password checking, OS/2 Warp version only (Not supported). |
OS/2 |
ips\utilities\ls.exe |
UNIX-like utility to list directories with IPS access (EA based access). |
OS/2 |
This section describes the specifications that IPS's service components have been based on, and to what degree these specifications are supported. Additional functionality going beyond those specifications are also described here.
RFC |
Category |
Relationship |
Document title |
|
---|---|---|---|---|
9 |
|
Obsoletes 765 |
File Transfer Protocol (FTP) |
|
|
Informational |
|
Firewall-Friendly FTP |
|
|
Informational |
|
How to Use Anonymous FTP |
|
|
Experimental |
Obsoletes 1545 |
FTP Operation Over Big Address Records (FOOBAR) |
|
|
Standards Track |
Updated 959 |
FTP Security Extensions |
|
|
Standards Track |
|
Feature negotiation mechanism for the File Transfer Protocol |
|
|
Standards Track |
|
FTP Extensions for IPv6 and NATs |
|
|
Informational |
|
FTP Security Considerations |
The follow table list the additional SITE commands available to all users:
Command |
Description |
---|---|
SITE HELP {[command]} |
Display help about available SITE commands. |
SITE IDLE {[seconds]} |
View/set current idle time-out. |
SITE LANG [language] |
Change current response language. |
SITE LIST |
List a directory using the control connection. |
SITE NAME {[name]} |
View/set fullname. Anonymous users can only view. |
SITE NLST |
List a directory using the control connection. |
SITE PASS [new-password] |
Change password. |
SITE STAT |
View user information and statistics. |
SITE WHO |
List active sockets. |
SITE XIPS XCMD |
Activate IPS specific extended command connection. After activation the current session is no longer rfc compliant. |
After this SITE command is issued, IPS will send various bits of information over the control connection, even if they are not a response to a specific command. The current session in which this command is issued will no longer be RFC compliant.
The responses sent by the server to the client after this, are of the format:
IPS <command>|<code>|<parameter>|
where:
<command> is the FTP command this response shall be associated with.
<code> is the sub-code.
<parameter> is a response specific value.
There may be any number of parameters, and extra parameters can be added to responses without further notice. Each parameter is always terminated with a | (pipe) character.
Defined extended command responses are:
Command |
Response |
Description |
---|---|---|
APPE |
IPS APPE|0|<xfered>| |
<xfered> is a decimal value indicating the number of bytes appended to files so far. |
RETR |
IPS RETR|0|<xfered>| |
<xfered> is a decimal value indicating the number of bytes downloaded so far. |
RETR |
IPS RETR|1|<filesize>|<filedate>| |
<filesize> is a decimal value indicating the size of
the file. |
STOR |
IPS STOR|0|<xfered>| |
<xfered> is a decimal value indicating the number of bytes uploaded so far. |
The follow table list the addition SITE commands available to administrative users:
Command |
Description |
---|---|
SITE EXEC [command] |
Execute any normal OS command and view the result as a normal multiple response. |
SITE RADM CGET [path] {[sect] {[id]}} |
Gets any value from any configuration file. |
SITE RADM CSET [path] [sect] [id] [val] |
Assigns value [val] to parameter [id] in section [sect] of CF at path [path]. |
SITE RADM KILL [socket] {[socket] ..} |
Kills the listed socket(s). |
SITE RADM LIST [object] |
Lists the system object. |
SITE RADM MONITOR [seconds] |
Starts a real-time site monitor, and keeps it running for a total of [seconds] seconds. |
SITE RADM RESTART |
Restart IPS when all sockets are closed or at once if done twice. |
SITE RADM SHUTDOWN |
Shuts down IPS when all sockets are closed, or immediately if issued twice. |
SITE RADM UDUP [user] [newuser] |
Duplicates an existing user [user] to user account [newuser]. |
SITE RADM UGET [usr] {[sect] {[id]}} |
Displays a value for parameter [id] for user [usr] in section [sect] of the CF. |
SITE RADM USET [usr] [sect] [id] [val] |
Sets a value [val] for parameter [id], for username [usr], in section [sect] of the CF. |
This collection of commands are used to remotely administer the IPS server. The format of the commands are:
SITE RADM CGET [cfg-file] {[section] [ident]} SITE RADM CSET [cfg-file] [section] [ident] [new-value] SITE RADM UDUPE [user] [newuser] SITE RADM UGET [user] {[section] [ident]} SITE RADM USET [user] [section] [ident] [new-value]
They will return the value or error messages as found in the [SITE] section of the ipsftp file. The UGET command can be given only a user name as the input and will the return a printout of the whole user file.
RFC |
Category |
Relationship |
Document title |
|
---|---|---|---|---|
|
Informational |
|
Hypertext Transfer Protocol -- HTTP/1.0 |
|
|
Standards Track |
|
Hypertext Transfer Protocol -- HTTP/1.1 |
|
|
Standards Track |
|
An Extension to HTTP : Digest Access Authentication |
|
|
Standards Track |
|
HTTP State Management Mechanism |
|
|
Informational |
|
Use and Interpretation of HTTP Version Numbers |
|
|
Experimental |
|
A Trivial Convention for using HTTP in URN Resolution |
|
|
Standards Track |
|
Simple Hit-Metering and Usage-Limiting for HTTP |
|
|
Experimental |
|
Transparent Content Negotiation in HTTP |
|
|
Experimental |
|
HTTP Remote Variant Selection Algorithm -- RVSA/1.0 |
|
|
Standards Track |
|
HTTP Extensions for Distributed Authoring -- WEBDAV |
RFC |
Category |
Relationship |
Document title |
|
---|---|---|---|---|
|
Standards Track |
|
POP3 AUTHentication command |
|
53 |
Standards Track |
Obsoletes 1725 |
Post Office Protocol - Version 3 |
|
|
Informational |
Updates 1939 |
Some Observations on Implementations of the Post Office Protocol (POP3) |
|
|
Standards Track |
Obsoletes 2095 |
IMAP/POP AUTHorize Extension for Simple Challenge/Response |
|
|
Standards Track |
|
POP URL Scheme |
|
|
Standards Track |
Updates 1939 |
POP3 Extension Mechanism |
RFC |
Category |
Relationship |
Document title |
|
---|---|---|---|---|
10 |
|
|
Simple Mail Transfer Protocol |
|
|
|
|
Survey of SMTP Implementations |
|
|
|
|
Duplicate Messages and SMTP |
|
|
|
|
Transition of Internet Mail from Just-Send-8 to 8bit-SMTP/MIME |
|
|
Standards Track |
Obsoletes 1426 |
SMTP Service Extension for 8bit-MIME transport |
|
|
Experimental |
|
SMTP Service Extensions for Transmission of Large and Binary MIME Messages |
|
|
Experimental |
|
SMTP Service Extension for Checkpoint/Restart |
|
|
Experimental |
|
SMTP 521 Reply Code |
|
|
Standards Track |
Obsoletes 1651 |
SMTP Service Extensions |
|
10 |
Standards Track |
Obsoletes 1653 |
SMTP Service Extension for Message Size Declaration |
|
|
Standards Track |
|
SMTP Service Extension for Delivery Status Notifications |
|
|
Standards Track |
|
SMTP Service Extension for Remote Message Queue Starting |
|
|
Standards Track |
|
SMTP Service Extension for Returning Enhanced Error Codes |
|
|
Standards Track |
Obsoletes 1854 |
SMTP Service Extension for Command Pipelining |
The following is an alphabetized list of all variables in IPS that can be used in FIBs expressions. These are system-wide variables that are valid for all service types. Following this, there is a section for each service component, that lists additional variables that are available only for the particular service.
Variable |
Description |
---|---|
session.<identifier> |
User defined session variables (Only available within current session). |
service.<identifier> |
User defined service variables (Available from any session of that service). |
configfile |
Path of service configuration file. |
configsection |
Section in service configuration file. |
connectduration |
Duration of current session (seconds). |
connecttime |
Start time of session (seconds since 1980). |
connections |
Number of currently active connections with the current service. |
clientaddress |
Client addresses that this service allows connection with. |
ctid |
Client TID. |
date |
Current date. |
debugflag |
State of the Debugflag from the site personality CF. |
idle |
Current time idle. |
localhost |
Local hostname. |
logfile |
LogFile from the site personality CF. |
logflag |
State of the LogFlag, as set in the site personality CF. |
platform |
Returns the current OS platform IPS is running under. Values are "os2" or "w32". |
recv |
Files received from user during this client connection. |
recvkb |
KBytes received from user during this client connection. |
remotehost |
Client host name. |
remoteip |
Client IP address. |
sent |
Files sent to user during this client connection. |
sentkb |
kBytes sent to user during this client connection. |
sock |
Main socket of current client connection. |
sock.first |
Main socket of first client connection on this service. |
sock.next |
Main socket of next client connection on this service. |
sock.prev |
Main socket of previous client connection on this service. |
time |
The current time. |
timeout |
Idle time-out value of current client connection. |
uptime |
Server uptime. |
usr.admin |
Administrative user. |
usr.aliases |
User aliases. |
usr.anon |
Anonymous user. |
usr.changepassword |
User allowed to change password? |
usr.clientaddress |
User allowed client addresses. |
usr.ftp.recv |
Files received from user by FTP. |
usr.ftp.recvkb |
kBytes received from user by FTP. |
usr.ftp.recvkbs |
Maximum received speed by FTP (kBytes/s). |
usr.ftp.sent |
Files sent to user by FTP. |
usr.ftp.sentkb |
kBytes sent to user by FTP. |
usr.ftp.sentkbs |
Maximum send speed by FTP (kBytes/s). |
usr.fullname |
Full (Real) name of user. |
usr.logindir |
User initial login directory. |
usr.maxbandwidth |
Maximum bandwidth used for each FTP transfer. |
usr.smtp.recv |
Messages received for user. |
usr.smtp.recvkb |
kBytes of message data received for user. |
usr.username |
Name of user connected. |
vers |
IPS version. |
version |
IPS version. |
vers.compile |
IPS compilation date and time. |
Variable |
Description |
---|---|
curdir |
Current directory of the current client connection. |
curdisk |
Fully-qualified path of the current directory for the current client connection (in OS format). |
curpath |
Fully-qualified path of the most current file or directory action. |
curroot |
Root directory of the current session. |
password |
Password typed by Anonymous user. |
status |
Current status of the client connection. Possible values include: |
timeoutmax |
Value of TimeoutMax, as specified in the configuration file. |
type |
Transfer mode setting of the client connection (ASCII or Binary) |
Variable |
Description |
---|---|
http.!<headerfield> |
All received Header fields from the web browser can be accessed through this variable. <headerfield> must always be written in upper case. |
http.directory |
Current directory being listed (Only available if request is for a directory). |
http.iconlink.large |
HTML code displaying a normal IPS icon with a link to the IPS site. |
http.iconlink.small |
HTML code displaying a small IPS icon with a link to the IPS site. |
http.itemaddress |
Service list. |
http.itemconnected |
Session list. |
http.itemdate |
Date of file being listed (Only available if request is for a directory). |
http.itemhostaddress |
Session list. |
http.itemhostname |
Session list. |
http.itemicon |
Type icon of file being listed (Only available if request is for a directory). |
http.itemidle |
Session list. |
http.itemname |
Name of file being listed (Only available if request is for a directory). |
http.itemobject |
Session list. |
http.itempoolsize |
Service list. |
http.itemport |
Service list. |
http.itemprotocol |
Service list. |
http.itemservice |
Service list. |
http.itemsession |
Session list. |
http.itemsessions |
Service list. |
http.itemsize |
Size of file being listed (Only available if request is for a directory). |
http.itemstatus |
Session list. |
http.itemstatus |
Service list. |
http.itemtid |
Service list. |
http.itemtime |
Time of file being listed (Only available if request is for a directory). |
http.itemusername |
Session list. |
http.querystring |
CGI querystring. |
http.request |
Complete request line as client sent it. |
http.request.method |
Method part of request line. |
http.request.uri |
URI |
http.request.version |
Version part of request line. |
http.service |
Session list. |
http.serviceaddress |
Session list. |
http.serviceport |
Session list. |
http.serviceprotocol |
Session list. |
http.status |
Status number. |
http.statusmessage |
Status description (Only available if request is about to return an error). |
http.statustext |
One line status message. |
Variable |
Description |
---|---|
messages |
Number of messages in the mailbox. |
messagessize |
Total size of messages in the mailbox (in bytes). |
status |
The current status of the client connection. Possible values include: |
Variable |
Description |
---|---|
smtp.!<headerfield> |
Message header fields can be accessed through this variable. <headerfield> must always be written in upper case. |
domain |
The domain that IPS is attempting to deliver the current message to. |
ident |
Ident attempting to deliver message to. |
localdomain |
Local domain represented by this service. |
messagename |
The name of the message file. |
messagepath |
The local path of the message file. |
This sections covers the technical details about the RexxHook implementation within the system. For general information about RexxHooks and the configuration on which hooks to use, please see Chapter 4.
All RexxHooks can query any system variable listed in section 5.3 and should return 0 to continue session processing unmodified. To modify execution most hooks should return a valid service response line with the possibility of return a multiple-line response in a file as an option. This would mean that some knowledge about the RFC specifications for the service in question is required.
ipsCFG |
|||
---|---|---|---|
Usage: |
value = ipsCFG(configfile, section, ident); |
||
Description: |
Read values from a IPS style configuration file. |
||
Parameter |
Description |
Default |
Type |
configfile |
Path of configuration file to read |
- |
Required |
section |
Section in configuration file |
- |
Required |
ident |
Ident within section |
- |
Required |
value |
Value of the configuration parameter |
- |
Result |
ipsLOG |
|||
---|---|---|---|
Usage: |
ipsLOG(logtext); |
||
Description: |
Writes data to the log file. |
||
Parameter |
Description |
Default |
Type |
logtext |
|
|
Required |
ipsVAR |
|||
---|---|---|---|
Usage: |
vartext = ipsVAR(vartext); |
||
Description: |
Resolve a IPS FIBs expression. |
||
Parameter |
Description |
Default |
Type |
vartext |
|
|
Required |
vartext |
|
|
Result |
ipsSAY |
|||
---|---|---|---|
Usage: |
ipsSAY(saytext); |
||
Description: |
Sends a text string using the current session socket. |
||
Parameter |
Description |
Default |
Type |
saytext |
|
|
Required |
RexxHook |
Trigger action |
Description |
---|---|---|
hookOnConnect |
Connection |
This hook is called whenever a new session is opened against the server, before a login attempt is made. Return a response string to deny session establishment. |
hookOnCommand |
Any command |
This hook is called for every command received from the client, before any internal processing begins. The command can be modified by this hook and returned to the system. |
hookOnPass |
PASS command |
This hook is called after receiving a password from an anonymous user login. To deny login, return a response string. |
hookOnRetr |
RETR command |
This hook is called before a retrieve (send to client) command is started. Return a response string to deny action. |
hookOnSite |
SITE command |
This hook is called before internal processing of SITE commands occurs. Return a response string to skip internal processing. |
hookOnStor |
STOR command |
This hook is called before a store (receive from client) command is started. Return a response string to deny action. |
hookOnUser |
USER command |
This hook is called when a user has identified him/herself and been found in the user database. Return a response string to deny login. |
RexxHook |
Trigger action |
Description |
---|---|---|
|
|
|
RexxHook |
Trigger action |
Description |
---|---|---|
hookOnConnect |
Connection |
This hook is called whenever a new sessions is opened against the server before a login attempt is made. Return a response string to deny session. |
hookOnCommand |
Any command |
This hook is called for every command received from the client before any internal processing begins. The command can be modified by this hook and returned to the system. |
hookOnUser |
USER and APOP commands |
This hook is called when a user has identified themselves and have been found in the user database. Return a response string to deny login. |
RexxHook |
Trigger action |
Description |
---|---|---|
hookOnConnect |
Connection |
This hook is called whenever new sessions is opened with the server, just before a login attempt is made. Return a response string to deny establishment of a session. |
hookOnCommand |
Any command |
This hook is called for every command received from the client before any internal processing begins. The command can be modified by this hook and returned to the system. |
hookOnData |
Incoming DATA command |
This hook is called when a full message body has been received before the client is given an final result. The hook may reject the message by returning a response string. |
Please see ipsHookInterface.pas and ipsHookExample.pas for information about DllHooks.
IPS can be configured to authentication the passwords for incoming connections from any external sources. This is implemented by developing a .dll with a special function exported which performs the password authentication.
The .dll must be named ipsauth.dll, and it must export the function ipsAuthenticate . In addition to this, the Password field in the user file must be set to <external>.
This function is called with two zero terminated string pointers using the default OS calling convention and should return a 32-bit integer value of 0 for successful validation or any other error value to deny password authentication.
Please ask for information about this through the mailing list.
This document is the exclusive property of Terje Flaarønning.