ULOGX1 - ULOG Security Exit

ULOGX1 is a user-written routine called by the Com-plete ULOG utility program prior to various events, which are listed below.

When a terminal user logs onto Com-plete via the ULOG ON request, a ULOG Info Table (CCUIT) is created for the user before passing control to ULOGX1. This info table contains information taken from the user ID accounting block for the user ID, the data entered at the terminal, and miscellaneous information. For more information on the user ID accounting block, see section Com-plete Accounting Facility

ULOGX1 allows the installation to modify the contents of the CCUIT block before the construction of the user ID accounting block. It also enables secondary levels of user-defined security checking.

This document covers the following topics:


How to Use ULOGX1

Upon entry to ULOGX1, register 1 points to a parameter list. The first word points to the Com-plete ULOG Info Table (CCUIT), whose DSECT is listed in ULOG Info Table. The halfword UITCODE contains the function code, which corresponds to the ULOG message 'ULGnnnn', where nnnn = function code.

The second word, where applicable, points to the message(s) returned by the external security system.

The third word points to a halfword containing the number of 80-character messages in the area pointed to by word two.

The exit is activated in Com-plete's key.

ULOGX1 Conventions

The following table summarizes the ULOGX1 linkage conventions.

Feature Convention
Attributes None required.
Type No restrictions.
Size No restrictions.
Registers at Entry
Register 1 Address of the parameter list
Register 13 Address of an 18-fullword save area
Register 14 Return address within ULOG
Register 15 Entry address within ULOGX1
Registers at Return Registers 12 through 14 must be unmodified.
Parameters
Word 1 Address of the ULOG Info Table
Word 2 Address of External Security message(s), zero if none.
Word 3 Address of a halfword containing the number of External Security message(s).
Return Codes
0 Allow the function.
4 Disallow the function.
Considerations
a Called by ULOG.
b Linkage is dynamic, with COLOAD.

A description of some important UITCODEs and the function ULOGX1 may perform at the respective calls is given below:

Code Function to be performed by ULOGX1
0003 Logon processing is complete. The 'ULG0003 logon successful...' message can be suppressed by setting UITWRTM=N, UITNBROD=N inhibits ULOG showing broadcast information to the user.
0004 This is your last chance to modify UIT fields before the UAB is built.
0005 Logoff processing starts, time to perform site-specific user disconnection.
0006 This user is already logged on. If you wish to allow multiple sessions with the same user ID, set UITALLW to C'Y'. UITADTIB contains the address of the TIB of the user's other session.

Note:
Allowing multiple sessions with the same userid might lead to Adabas problems. You should make sure that the value of UBUID is unique, modifying it in ULOPADAB, e.g., including tib number, stacklevel, patchchar.

0008 When required, modify UITUID now before user ID and User profile definition records are retrieved from the System Data Container
0013 External security system messages are now ready to be processed. ULOGX1 may
-""-
a set UITSAFIM=N to suppress message display at all
b modify / edit the message(s)
c change the number of messages to be displayed by modifying the halfword third parameter passed to the exit.
0038 Modify UITCMOD now when either no model name is available so far but one is required, or the model currently set does not suit your needs.

Using ULOGX1 with the HTTP Server and the 3270 Bridge

The following limitations apply when ULOGX1 is used with the HTTP server:

  • ULOGX1 is not called during user's log-in to the HTTP server, but only when the first application is invoked using the 3270 bridge.

  • ULOGX1 must not perform any terminal output functions (WRT*) or FETCH.

  • No log-out calls take place to neither ULOG nor ULOGX1.

The following flag in the TIB can be checked for distinguishing between 3270 bridge users and terminal users:

TM    TIBSNTAM,TIBMNTAM         HTTP user?
BO    ISHTTP                    branch if HTTP user