Chapter 5 - Technical reference

5.1 - Installation directories

In this section we will identify all standard directories of a normal IPS installation as well as describe their contents.

5.1.1 - Directory "IPS\"

This is the IPS root directory, it contains all other IPS sub-directories as well as a few files.

Filename

Description

file_id.diz

Standard archive description file.

setupos2.cmd

Rexx script for setup under OS/2.

setupw32.bat

Batch file for setup under Windows.

startips.bat

Batch file for startup under Windows.

startips.cmd

Rexx script for startup under OS/2.

5.1.2 - Directory "IPS\BIN\"

This directory contains all executables needed to run IPS and use all of its features, you should probably include this directory in your PATH and LIBPATH environment settings.

Filename

Description

chgrp.exe

UNIX alike utility to control group access (EA based access in OS/2 only).

chmod.exe

UNIX alike utility to control access access (EA based access in OS/2 only).

chown.exe

UNIX alike utility to control owner access (EA based access in OS/2 only).

ips2.exe

Main IPS executable currently in use (OS/2 version).

ips2old.exe

Main IPS executable used before last update (OS/2 version).

ips2upd.exe

Main IPS executable to be installed on next restart (OS/2 version).

ips32.exe

Main IPS executable currently in use (Windows version).

ips32old.exe

Main IPS executable used before last update (Windows version).

ips32upd.exe

Main IPS executable to be installed on next restart (Windows version).

ipsmon.exe

Prototype connection monitor for Windows (Not supported).

isos2.exe

Utility to check if we are running under OS/2.

ls.exe

UNIX alike utility to list directories with IPS access (EA based access in OS/2 only).

pwd2.exe

OS/2 utility to encrypt or verify IPS passwords.

pwd32.exe

Windows utility to encrypt or verify IPS passwords.

startos2.cmd

Rexx script running IPS under OS/2. This script runs IPS in a loop to automatically restart IPS in case of software failures. You should never call this file directory but instead call the same file in the parent directory.

startw32.bat

Batch file running IPS under Windows. This script runs IPS in a loop to automatically restart IPS in case of software failures. You should never call this file directory but instead call the same file in the parent directory.

5.1.3 - Directory "IPS\BIN\ICO\"

Filename

Description

ips.ico

Icon for IPS executables.

ipsfldr1.ico

Icon for IPS folders.

ipsfldr2.ico

Icon for IPS folders.

5.1.4 - Directory "IPS\CFG\"

All IPS configuration files is located in the directory three starting with this directory. Each sub-directory will contain one site personality.

Filename

Description

ips.cfg

Main IPS configuration file. This file is actually not very interesting as IPS implement multiple site personalities and there for the site configuration file(s) is the interesting one. IPS shits with one default site personality named "main".

ipsftp

Response message used by the FTPd service component.

ipshttp

Response message used by the HTTPd service component.

ipspop3

Response message used by the POP3d service component.

ipssmtp

Response message used by the SMTPd service component.

5.1.5 - Directory "IPS\<site_personality>\"

Filename

Description

<site_personality>.cfg

Site personality configuration file. This file specifies a "site" with the possibility of multiple services active. You may host multiple instances of a service component on each site to achieve multi-homing/hosting. One <site_personality> may only have one set of users.

5.1.6 - Directory "IPS\DOC\"

IPS documentation as well as the default configuration directories are stored in this directory.

Filename

Description

index.html

Main documentation entry point. Open this file in your web browser to view the IPS documentation.

*

All other files are documentation files and sub-directories containing default configuration directories.

5.1.7 - Directory "IPS\LOG\"

Filename

Description

ips.log

Main IPS log file. Important errors are logged here, please keep an eye on this one.

*.log

Service log files defined in the site personality configuration file(s).

5.1.8 - Directory "IPS\LOG\HISTORY\"

Filename

Description

<datetime>.zip

Archived log files. All files in the parent directory are automatically archived here on each IPS startup (or restart).

5.1.9 - Directory "IPS\MSG\"

Multiple response message files and online help files are placed in this directory.

Filename

Description

ftp.hlp

Help file for SITE HELP command of FTPd service component. The file name is defined in the site personality configuration file.

login-anon.msg

Message displayed when a guest logs in to the FTPd service component. The file name is defined in cfg\ipsftp.

login.msg

Message displayed when a user logs in to the FTPd service component. The file name is defined in cfg\ipsftp.

retr0.msg

Message displayed when a user has retrieved a file from the FTPd service component. The file name is defined in cfg\ipsftp.

sitestat.msg

Message displayed when a user execute the SITE STAT command to the FTPd service component. The file name is defined in cfg\ipsftp.

stor0.msg

Message displayed when a user has stored a file to the FTPd service component. The file name is defined in cfg\ipsftp.

5.1.10 - Directory "IPS\QUE\"

This directory contains various queues used by IPS. You should not modify files in this directory while IPS is running.

Filename

Description


5.1.11 - Directory "IPS\SCR\FTPD"

RexxHooks used by the FTPd service component is stored in this directory.

Filename

Description

rxOnConnect.rexx

Examples RexxHook script called whenever a connection is made to the FTPd service component. This script is configured in the site personality configuration file.

rxOnPass.rexx

Examples RexxHook script called whenever a guest users has sent a password to the FTPd service component. This script is configured in the site personality configuration file.

rxOnSite.rexx

Examples RexxHook script called whenever a SITE command is sent to the FTPd service component before internal SITE commands are processed. This script is configured in the site personality configuration file.

rxOnUser.rexx

Examples RexxHook script called whenever a used has sent his/her username to the FTPd service component. This script is configured in the site personality configuration file.

5.1.12 - Directory "IPS\SCR\POP3D"

RexxHooks used by the POP3d service component is stored in this directory.

Filename

Description


5.1.13 - Directory "IPS\SCR\SMTPD"

RexxHooks used by the SMTPd service component is stored in this directory.

Filename

Description


5.2 - Services components

This section describes which specifications the various service components are based on and in what degree they support those specifications.

5.2.1 - FTP component

RFC

Category

Relationship

Document title

959


Obsoletes 765

FILE TRANSFER PROTOCOL (FTP)

1579

Informational


Firewall-Friendly FTP

1635

Informational


How to Use Anonymous FTP

1639

Experimental

Obsoletes 1545

FTP Operation Over Big Address Records (FOOBAR)

2228

Standards Track

Updated 959

FTP Security Extensions

2389

Standards Track


Feature negotiation mechanism for the File Transfer Protocol

2428

Standards Track


FTP Extensions for IPv6 and NATs

2577

Informational


FTP Security Considerations

5.2.2 - HTTP component

RFC

Category

Relationship

Document title

1945

Informational


Hypertext Transfer Protocol -- HTTP/1.0

2068

Standards Track


Hypertext Transfer Protocol -- HTTP/1.1

2069

Standards Track


An Extension to HTTP : Digest Access Authentication

2109

Standards Track


HTTP State Management Mechanism

2145

Informational


Use and Interpretation of HTTP Version Numbers

2169

Experimental


A Trivial Convention for using HTTP in URN Resolution

2227

Standards Track


Simple Hit-Metering and Usage-Limiting for HTTP

2295

Experimental


Transparent Content Negotiation in HTTP

2296

Experimental


HTTP Remote Variant Selection Algorithm -- RVSA/1.0

2518

Standards Track


HTTP Extensions for Distributed Authoring -- WEBDAV

5.2.3 - POP3 component

RFC

Category

Relationship

Document title

1734

Standards Track


POP3 AUTHentication command

1939

Standards Track

Obsoletes 1725

Post Office Protocol - Version 3

1957

Informational

Updates 1939

Some Observations on Implementations of the Post Office Protocol (POP3)

2195

Standards Track

Obsoletes 2095

IMAP/POP AUTHorize Extension for Simple Challenge/Response

2384

Standards Track


POP URL Scheme

2449

Standards Track

Updates 1939

POP3 Extension Mechanism

5.2.4 - SMTP component

RFC

Category

Relationship

Document title

821



SIMPLE MAIL TRANSFER PROTOCOL

876



Survey of SMTP Implementations

1047



DUPLICATE MESSAGES AND SMTP

1428



Transition of Internet Mail from Just-Send-8 to 8bit-SMTP/MIME

1652

Standards Track

Obsoletes 1426

SMTP Service Extension for 8bit-MIMEtransport

1830

Experimental


SMTP Service Extensions for Transmission of Large and Binary MIME Messages

1845

Experimental


SMTP Service Extension for Checkpoint/Restart

1846

Experimental


SMTP 521 Reply Code

1869

Standards Track

Obsoletes 1651

SMTP Service Extensions

1870

Standards Track

Obsoletes 1653

SMTP Service Extension for Message Size Declaration

1891

Standards Track


SMTP Service Extension for Delivery Status Notifications

1985

Standards Track


SMTP Service Extension for Remote Message Queue Starting

2034

Standards Track


SMTP Service Extension for Returning Enhanced Error Codes

2197

Standards Track

Obsoletes 1854

SMTP Service Extension for Command Pipelining

5.3 - System variables

Here we provide you with an alphabetical list of all variables which can be used in FIBs expressions. The table below lists the system wide variables valid for all service types, and below there is a section for each service component listing additional variables available only in that service.

Variable

Description

configfile

Path of service configuration file.

configsection

Section in service configuration file.

connectduration

Duration of current session (seconds).

connecttime

Starttime of session (seconds since 1980).

connections

Number of active connections at current service.

clientaddress

Service allowed client addresses.

ctid

Client TID.

date

Current date.

debugflag

Debugflag from the site personality configuration file.

idle

Current time idle.

localhost

Local hostname.

logfile

LogFile from the site personality configuration file.

logflag

LogFlag from the site personality configuration file.

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

Current time.

timeout

Idle time-out value of current client connection.

uptime

Server uptime string.

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.

vers.compile

IPS version, compilation date/time.

5.3.1 - FTP component variables

Variable

Description

curdir

Directory of current client connection.

curdisk

Root and current directory of current client connection in OS format.

curpath

Full path of current/last file/directory action.

curroot

Root directory of current session.

password

Password typed by Anonymous user.

status

Status of client connection.

Possible values include:
0: Not logged, 1: Awaiting password, 10: Idle, 11: Retrieving a file; 12: Storing a file; 13: Listing a directory; 14: Executing a SITE command.

timeoutmax

TimeoutMax from the group configuration file.

type

Transfer type setting of client connection..

5.3.2 - HTTP component variables

Variable

Description


5.3.3 - POP3 component variables

Variable

Description

messages

Number of message in mailbox.

messagessize

Total size of messages in mailbox (Bytes).

status

Status of client connection.

Possible values include:
0: In authorization 1, 1: In authorization 2, 2: In transaction, 3: Update

5.3.4 - SMTP component variables

Variable

Description

messagefile

Path of message body file.





OLD DOCS BELOW:


FTP service features

The following FTP commands are implemented according to various rfc's:

Command

Date

Access

Notes

ABOR

1999/05/16

---


ACCT

Not implemented


ALLO

Not implemented


APPE

1999/05/16

rw-


CDUP, XCUP

1999/05/16

--x


CWD, XCWD

1999/05/16

--x


DELE

1999/05/16

rw-


FEAT

1999/05/16

---

As defined in rfc2389

HELP

1999/05/16

---


LIST

1999/05/16

--x


MDTM

1999/05/16

r--


MKD, XMKD

1999/05/16

-wx


MODE

1999/05/16

---


NOOP

1999/05/16

---


PASS

1999/05/16

---


PASV

1999/05/16

---


PORT

1999/05/16

---


PWD, XPWD

1999/05/16

---


REIN

1999/05/16

---


REST

1999/05/16

---


RETR

1999/05/16

r--


RNFR

1999/05/16

rw-


RNTO

1999/05/16

-w-


RMD, XRMD

1999/05/16

-wx


SMNT

Not implemented


SITE

1999/05/16

---


SIZE

1999/05/16

r--

Not implemented for sub-directories

STAT

Not implemented


STOR

1999/05/16

-w-


STOU

Not implemented


STRU

Not implemented


SYST

1999/05/16

---


TYPE

1999/05/16

---


USER

1999/05/16

---




Special IPS commands

Command

Date

Access

Description

SITE IDLE

1999/12/29

Any user

View/set current idle time-out.

SITE LANG

1999/05/16

Any user

Change current response language.

SITE LIST

1999/12/29

Any user

List a directory using the control connection.

SITE NAME

1999/12/29

Any user

View/set fullname.

SITE NLST

1999/12/29

Any user

List a directory using the control connection.

SITE PASS

1999/05/16

Any user with ChangePassword setting enabled

Change password.

SITE RADM CGET

1999/12/30

Administrator

Get any value from any configuration file.

SITE RADM CSET

1999/12/30

Administrator

Set any value to any configuration file.

SITE RADM KILL

1999/05/16

Administrator

Kill listed sockets.

SITE RADM LIST SOCKETS

1999/05/16

Administrator

List active sockets.

SITE RADM LIST SERVICES

1999/05/16

Administrator

List active services.

SITE RADM LIST USERS

1999/12/30

Administrator

List users.

SITE RADM MONITOR

1999/05/16

Administrator

Start a real-time site monitor.

SITE RADM RESTART

1999/05/16

Administrator

Restart IPS when all sockets are closed or at once if done twice.

SITE RADM SHUTDOWN

1999/05/16

Administrator

Shutdown IPS when all sockets are closed or at once if done twice.

SITE RADM UDUPE

1999/12/29

Administrator

Duplicate an existing user.

SITE RADM UGET

1999/12/29

Administrator

Get user setting.

SITE RADM USET

1999/12/29

Administrator

Set user setting.

SITE STAT

1999/12/29

Any user

View user information and statistics.

SITE WHO

1999/05/16

Any user

List active sockets.

SITE XIPS XCMD

1999/05/16

Any user

Active IPS specific extended command connection.

SITE RADM CGET/CSET/UDUPE/UGET/USET

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.

SITE XIPS XCMD

After issued this setting will make IPS send various information on the control connection even if they are not a response to a specific command. Well activated, the session using this feature is no longer rfc compliant.

The responses sent after this is enables has the format:

IPS <command>|<code>|<parameter>|

<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 number of bytes transferred so far.

RETR
IPS RETR|0|<xfered>|

<xfered> is a decimal number of bytes transferred so far.

RETR
IPS RETR|1|<filesize>|<filedate>|

<filesize> is a decimal number of bytes describing the size of the file.
<filedate> is the date of the file in the same format as MDTM returns.

STOR
IPS STOR|0|<xfered>|

<xfered> is a decimal number of bytes transferred so far.



POP service features



SMTP service features



TELNET service features



System Variables

IPS has a lot of variables available for getting more information from a running server. These variables can be used in system texts, response files and RexxHook-scripts. To identify a variable you have to insert the variable name within two percent signs in your text.

So, to insert the make a string with the current IPS version you could make something like this:

"This site is running InetPowerServer/2 %(vers)"

System wide FIB procedures

cfg(file,section,ident)
fill(text,size[,pad])