| /* SHORT FORM DYNAMIC IP ADDRESS */ |
| /* DIALUP CONNECTION */ |
| |
| /* LPD: OBTAIN IP ADDRESS OF USER AND MODIFY TCP/IP DEVICE */ |
| /* QUEUE TO USE NEW ADDRESS (FIREWALL PRINTING) */ |
| /* OS/400 V3.7 */ |
| /* */ |
| PGM |
| |
| |
DCL |
VAR(&RECEIVER) TYPE(*CHAR) LEN(892) |
| |
DCL |
VAR(&DEVICE) TYPE(*CHAR) LEN(10) |
| |
DCL |
VAR(&USER) TYPE(*CHAR) LEN(10) |
| |
DCL |
VAR(&PRTQ) TYPE(*CHAR) LEN(10) |
| |
DCL |
VAR(&CHANGE) TYPE(*CHAR) LEN(3) |
| |
DCL |
VAR(&ERROR) TYPE(*CHAR) LEN(4) + |
| |
|
VALUE(X’00000000′) |
| |
DCL |
VAR(&RCVRLN) TYPE(*CHAR) LEN(4) |
| |
DCL |
VAR(&FORMAT) TYPE(*CHAR) LEN(8) + |
| |
|
VALUE(’DEVD0600′) |
| |
DCL |
VAR(&IPADDR) TYPE(*CHAR) LEN(15) |
| |
DCL |
VAR(&DONEXT) TYPE(*CHAR) LEN(1) |
| |
DCL |
VAR(&YESNO) TYPE(*CHAR) LEN(1) |
| |
DCL |
VAR(&PRINTER) TYPE(*CHAR) LEN(10) |
| |
| /* OBTAIN DEVICE NAME AND USERID */ |
| |
RTVJOBA |
JOB(&DEVICE) CURUSER(&USER) |
| |
CHGVAR |
VAR(&CHANGE) VALUE(%SST(&USER 1 3)) |
| |
| /* NAME PRINT QUEUE TO CHANGE */ |
| |
SNDUSRMSG |
MSG(’Enter the name of the printer to + |
| |
|
change!’) MSGTYPE(*INQ) TOMSGQ(*) + |
| |
|
MSGRPY(&PRINTER) |
| |
CHGVAR |
VAR(&PRTQ) VALUE(&PRINTER) |
| |
| /* OBTAIN IP ADDRESS */ |
| |
CHGVAR |
VAR(%BIN(&RCVRLN)) VALUE(892) |
| |
CALL |
PGM(QDCRDEVD) PARM(&RECEIVER &RCVRLN &FORMAT + |
| |
|
&DEVICE &ERROR) |
| |
CHGVAR |
VAR(&IPADDR) VALUE(%SST(&RECEIVER 878 15)) |
| |
| /* MODIFY OUTQ WITH CURRENT IP ADDRESS */ |
| |
SNDMSG |
MSG(’IP address is being updated, it will + |
| |
|
take about 15 seconds, please wait: + |
| |
|
<<<hit enter>>>’) TOUSR(*REQUESTER) + |
| |
|
MSGTYPE(*INFO) |
| |
ENDWTR |
WTR(&PRTQ) OPTION(*IMMED) |
| |
MONMSG |
MSGID(CPF3313) /* SUPPRESS WRITER NOT STARTED MSG */ |
| |
GOTO |
CMDLBL(CHGOUTQ) |
| |
| TRYAGAIN: |
|
|
| |
CHGVAR |
VAR(&DONEXT) VALUE(’a') |
| |
SNDUSRMSG |
MSG(’Enter the name of the printer to + |
| |
|
change!’) MSGTYPE(*INQ) TOMSGQ(*) + |
| |
|
MSGRPY(&PRINTER) |
| |
CHGVAR |
VAR(&PRTQ) VALUE(&PRINTER) |
| |
SNDMSG |
MSG(’IP address is being updated, it will + |
| |
|
take about 15 seconds, please wait: + |
| |
|
<<<hit enter>>>’) TOUSR(*REQUESTER) + |
| |
|
MSGTYPE(*INFO) |
| |
ENDWTR |
WTR(&PRTQ) OPTION(*IMMED) |
| |
MONMSG |
MSGID(CPF3313) /* SUPPRESS WRITER NOT STARTED MSG */ |
| |
| CHGOUTQ: |
| |
DLYJOB |
DLY(15) /* WAIT 15 SECONDS */ |
| |
CHGOUTQ |
OUTQ(QUSRSYS/&PRTQ) AUTOSTRWTR(1) + |
| |
|
INTNETADR(&IPADDR) |
| |
MONMSG |
MSGID(CPF3319) EXEC(SNDMSG MSG(’UNABLE TO + |
| |
|
MODIFY IP ADDRESS, WRITER IS CURRENTLY IN + |
| |
|
USE. (CPF3319)’) TOUSR(&USER)) |
| |
MONMSG |
MSGID(CPF3357) EXEC(SNDUSRMSG MSG(’Printer + |
| |
|
not found!, <<R-Retry(enter PRT name), + |
| |
|
C-Cancel(end program)>>’) VALUES(R C) + |
| |
|
TOMSGQ(*) MSGRPY(&DONEXT)) |
| |
IF |
COND(&DONEXT *EQ ‘C’) THEN(GOTO CMDLBL(ENDPGM)) |
| |
IF |
COND(&DONEXT *EQ ‘R’) THEN(GOTO + |
| |
|
CMDLBL(TRYAGAIN)) |
| |
| ADDPRT: |
| |
SNDUSRMSG |
MSG(’Update another printer address? + |
| |
|
Yes/No(Y/N)’) VALUES(Y N) MSGTYPE(*INQ) + |
| |
|
TOMSGQ(*) MSGRPY(&YESNO) |
| |
IF |
COND(&YESNO *EQ ‘N’) THEN(GOTO CMDLBL(ENDPGM)) |
| |
IF |
COND(&YESNO *EQ ‘Y’) THEN(GOTO + |
| |
|
CMDLBL(TRYAGAIN)) |
| |
| ENDPGM: |
|
|
| |
ENDPGM |
|