|
Do you have source some source that you want to share? Is there some source that you want to see posted here? If so, Contact Us and we'll be more than happy to help. |
/*===================================================================*/
/* */
/* EXIT PROGRAM TO CONTROL TELNET ACCESS */
/* */
/* THE SOURCE STILL HAS REFERENCES TO MY SYSTEM (LIBRARY NAMES */
/* USER IDS ON SNDMSG COMMANDS). */
/* */
/* AS WITH ANY OTHER SHARED PROGRAMS, TRHERE IS NO GUARANTEES OR */
/* RESPONSIBLE FOR ANY ERRORS CREATED BY THESE PROGRAMS */
/* */
/*===================================================================*/
/* To compile: */
/* CRTCLPGM PGM(LIBRARY/XCLTNINIT) + */
/* SRCFILE(LIBRARY/QCLSRC) */
/* */
/* */
/* Installation instructions: */
/* */
/* 1. Compile program */
/* */
/* 2. Change owner of the program to user QSECOFR. */
/* Adopted authority allows the program sending */
/* to the audit journal */
/* */
/* CHGOBJOWN OBJ(LIBRARY/XCLTNINIT) OBJTYPE(*PGM) + */
/* NEWOWN(QSECOFR) */
/* GRTOBJAUT OBJ(LIBRARY/XCLTNINIT) OBJTYPE(*PGM) + */
/* USER(QTCP) AUT(*ALL) */
/* */
/* 3. Name the exit program in registration facility */
/* QIBM_QTG_DEVINIT INIT0100 */
/* ADDEXITPGM EXITPNT(QIBM_QTG_DEVINIT + */
/* FORMAT(INIT0100) PGMNBR(1) + */
/* PGM(LIBRARY/XCLTNINIT) + */
/* TEXT('Check TELNET ACCESS') */
/* */
/* 4. Specify the registration facility in the network attribute */
/* */
/* CHGNETA PCSACC(*REGFAC) */
/* */
/* The request is recorded in the Telnet journal. */
/* The Telnet journal entries created are: */
/* */
/* 'X1' = requests that are allowed */
/* */
/*===================================================================*/
/* */
PGM PARM(&USERDESC &DEVDESC &CNCTDESC &ENVOPT +
&ENVLGTH &ALWCNCT &AUTOSGN)
/* */
/* INPUT VARIABLES */
/* */
DCL VAR(&USERDESC) TYPE(*CHAR) LEN(100)
DCL VAR(&DEVDESC) TYPE(*CHAR) LEN(100)
DCL VAR(&CNCTDESC) TYPE(*CHAR) LEN(100)
DCL VAR(&ENVOPT) TYPE(*CHAR) LEN(100)
DCL VAR(&ENVLGTH) TYPE(*CHAR) LEN(4)
DCL VAR(&ALWCNCT) TYPE(*CHAR) LEN(1)
DCL VAR(&AUTOSGN) TYPE(*CHAR) LEN(1)
/* */
/* LOCAL VARIABLES */
/* */
DCL VAR(&SINPORT) TYPE(*CHAR) LEN(2)
DCL VAR(&SINPORTX) TYPE(*CHAR) LEN(6)
/* */
DCL VAR(&IPADDR) TYPE(*CHAR) LEN(20) VALUE(' ')
DCL VAR(&IPADDR1) TYPE(*CHAR) LEN(2) VALUE(X'0000')
DCL VAR(&IPADDR2) TYPE(*CHAR) LEN(2) VALUE(X'0000')
DCL VAR(&IPADDR3) TYPE(*CHAR) LEN(2) VALUE(X'0000')
DCL VAR(&IPADDR4) TYPE(*CHAR) LEN(2) VALUE(X'0000')
/* */
DCL VAR(&IPADDR1X) TYPE(*CHAR) LEN(3)
DCL VAR(&IPADDR2X) TYPE(*CHAR) LEN(3)
DCL VAR(&IPADDR3X) TYPE(*CHAR) LEN(3)
DCL VAR(&IPADDR4X) TYPE(*CHAR) LEN(3)
/* */
/* SET IPADDR TO VALUE IN CONNECTION DESCRIPTION */
/* */
CHGVAR VAR(&IPADDR) VALUE(%SST(&CNCTDESC 5 20))
/* */
/* SET INPUT PORT TO VALUE IN IPADDR */
/* */
CHGVAR VAR(&SINPORT) VALUE(%SST(&IPADDR 3 2))
CHGVAR VAR(&SINPORTX) VALUE(%BINARY(&SINPORT))
/* */
/* SET EACH OCTET OF THE IP ADDRESS TO VALUE IN IPADDR */
/* */
CHGVAR VAR(%SST(&IPADDR1 2 1)) VALUE(%SST(&IPADDR 5 1))
CHGVAR VAR(%SST(&IPADDR2 2 1)) VALUE(%SST(&IPADDR 6 1))
CHGVAR VAR(%SST(&IPADDR3 2 1)) VALUE(%SST(&IPADDR 7 1))
CHGVAR VAR(%SST(&IPADDR4 2 1)) VALUE(%SST(&IPADDR 8 1))
/* */
/* SET PRINTABLE VERSION OF IP ADDRESS */
/* */
CHGVAR VAR(&IPADDR1X) VALUE(%BIN(&IPADDR1))
CHGVAR VAR(&IPADDR2X) VALUE(%BIN(&IPADDR2))
CHGVAR VAR(&IPADDR3X) VALUE(%BIN(&IPADDR3))
CHGVAR VAR(&IPADDR4X) VALUE(%BIN(&IPADDR4))
/* */
/* SNDMSG MSG('IP Connection from address' *BCAT + */
/* &IPADDR1X *TCAT '.' *TCAT &IPADDR2X *TCAT +*/
/* '.' *TCAT &IPADDR3X *TCAT '.' *TCAT + */
/* &IPADDR4X *BCAT 'using remote port' *BCAT +*/
/* &SINPORTX) TOUSR(STEVE) */
LOGIT:
/* */
/* LOG TELNET ACTIVITY TO TELNET JOURNAL */
/* */
SNDJRNE JRN(UTILITY/TLNJRN) TYPE(X1) ENTDTA('IP +
connection from address' *BCAT &IPADDR1X +
*TCAT '.' *TCAT &IPADDR2X *TCAT '.' *TCAT +
&IPADDR3X *TCAT '.' *TCAT &IPADDR4X *BCAT +
'using remote port' *BCAT &SINPORTX) +
FORCE(*YES)
/* */
/* End of program */
/* */
EXIT:
ENDPGM
|