Change WOPO to use new channel API
This commit is contained in:
parent
3672a77a4a
commit
922438fe79
1 changed files with 74 additions and 97 deletions
171
WOPO.COB
171
WOPO.COB
|
@ -34,8 +34,8 @@
|
|||
88 SUCCESS VALUE 0.
|
||||
88 DONE VALUE 99.
|
||||
01 BUFFER.
|
||||
03 MSG-LENGTH PIC 9(3).
|
||||
03 MSG-BODY PIC X(512).
|
||||
03 MSG-BODY PIC X(999).
|
||||
03 ASCII-TABLE PIC 999 OCCURS 999 TIMES.
|
||||
01 WOPO.
|
||||
03 WOPO-NICK PIC X(16).
|
||||
01 IRC-MESSAGE.
|
||||
|
@ -52,8 +52,10 @@
|
|||
05 TARGET PIC X(50).
|
||||
05 REST PIC X(480).
|
||||
01 WAITING-COMMAND PIC X(16).
|
||||
|
||||
01 PARAMS.
|
||||
03 WORK PIC X(480).
|
||||
03 WORK-PTR PIC 999 USAGE COMPUTATION.
|
||||
03 WORK-PREFIX REDEFINES WORK PIC X.
|
||||
88 IS-COMMAND VALUE "$".
|
||||
03 PARAM PIC X(480) OCCURS 5 TIMES.
|
||||
|
@ -76,62 +78,51 @@
|
|||
PROCEDURE DIVISION.
|
||||
DISPLAY "CONFIGURATION FOLLOWS.".
|
||||
CALL "PRINT-CONFIG".
|
||||
MOVE LENGTH OF MSG-BODY TO MSG-LENGTH.
|
||||
CALL "CHANNEL-INIT"
|
||||
USING BUFFER, STATE.
|
||||
OPEN INPUT CONFIG.
|
||||
MOVE "SERVER" TO CONFIG-KEY.
|
||||
PERFORM READ-CONFIG-ENTRY.
|
||||
MOVE 1 TO MSG-LENGTH.
|
||||
STRING
|
||||
CONFIG-VALUE, DELIMITED BY SPACE,
|
||||
"$NUL$"
|
||||
INTO MSG-BODY,
|
||||
WITH POINTER MSG-LENGTH.
|
||||
CALL "CHANNEL-OPEN".
|
||||
CALL "CHANNEL-OPEN" USING MSG-BODY, STATE.
|
||||
IF NOT SUCCESS THEN DISPLAY MSG-BODY
|
||||
GO TO DIE.
|
||||
MOVE "PASS" TO CONFIG-KEY.
|
||||
READ CONFIG RECORD
|
||||
INVALID KEY MOVE SPACES TO CONFIG-VALUE.
|
||||
IF CONFIG-VALUE IS NOT EQUAL TO SPACES THEN
|
||||
MOVE SPACES TO MSG-BODY
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
STRING "PASS " DELIMITED BY SIZE,
|
||||
CONFIG-VALUE DELIMITED BY SPACE,
|
||||
"$NUL$"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
PERFORM SEND-LINE.
|
||||
MOVE "NICK" TO CONFIG-KEY.
|
||||
PERFORM READ-CONFIG-ENTRY.
|
||||
MOVE CONFIG-VALUE TO WOPO-NICK.
|
||||
MOVE 1 TO MSG-LENGTH.
|
||||
MOVE SPACES TO MSG-BODY.
|
||||
STRING "NICK"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
ADD 1 TO MSG-LENGTH.
|
||||
STRING WOPO-NICK DELIMITED BY SPACE,
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
STRING "NICK " DELIMITED BY SIZE,
|
||||
WOPO-NICK DELIMITED BY SPACES,
|
||||
"$NUL$"
|
||||
INTO MSG-BODY.
|
||||
PERFORM SEND-LINE.
|
||||
MOVE 1 TO MSG-LENGTH.
|
||||
MOVE SPACES TO MSG-BODY.
|
||||
STRING "USER"
|
||||
MOVE 1 TO WORK-PTR.
|
||||
STRING "USER " DELIMITED BY SIZE
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
ADD 1 TO MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
MOVE "IDENT" TO CONFIG-KEY.
|
||||
PERFORM READ-CONFIG-ENTRY.
|
||||
STRING CONFIG-VALUE DELIMITED BY SPACE,
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
ADD 1 TO MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
ADD 1 TO WORK-PTR.
|
||||
MOVE "REAL-NAME" TO CONFIG-KEY.
|
||||
PERFORM READ-CONFIG-ENTRY.
|
||||
STRING "BOGUS HOST; " DELIMITED BY SIZE,
|
||||
STRING "BOGUS HOST $COLN$" DELIMITED BY SIZE,
|
||||
CONFIG-VALUE DELIMITED BY " ",
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
PERFORM SEND-LINE.
|
||||
OPEN INPUT CHANNELS.
|
||||
PERFORM AUTOJOIN-CHANNELS UNTIL DONE.
|
||||
|
@ -147,11 +138,10 @@
|
|||
READ CHANNELS RECORD
|
||||
AT END MOVE 99 TO STATE.
|
||||
IF NOT DONE THEN
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
STRING "JOIN " DELIMITED BY SIZE,
|
||||
CHANNEL-NAME DELIMITED BY SPACES,
|
||||
"$NUL$"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
PERFORM SEND-LINE.
|
||||
|
||||
READ-CONFIG-ENTRY.
|
||||
|
@ -160,16 +150,15 @@
|
|||
DISPLAY CONFIG-KEY
|
||||
GO TO DIE.
|
||||
|
||||
SEND-LINE.
|
||||
CALL "CHANNEL-SEND".
|
||||
SEND-LINE.
|
||||
CALL "CHANNEL-SEND" USING MSG-BODY, STATE.
|
||||
IF NOT SUCCESS THEN DISPLAY MSG-BODY
|
||||
GO TO DIE.
|
||||
|
||||
RECEIVE-LINE.
|
||||
MOVE SPACES TO MSG-BODY.
|
||||
CALL "CHANNEL-RECV".
|
||||
CALL "CHANNEL-RECV" USING MSG-BODY, STATE.
|
||||
IF NOT SUCCESS THEN GO TO DIE.
|
||||
CALL "IRC-MSG" USING BUFFER, IRC-MESSAGE.
|
||||
CALL "IRC-MSG" USING MSG-BODY, IRC-MESSAGE.
|
||||
|
||||
WAIT-FOR-COMMAND.
|
||||
PERFORM RECEIVE-LINE UNTIL COMMAND EQUALS WAITING-COMMAND.
|
||||
|
@ -191,14 +180,10 @@
|
|||
D DISPLAY "SUPPOSED USER LEVEL ", USER-LEVEL.
|
||||
IF USER-LEVEL IS GREATER THAN 0 THEN
|
||||
MOVE SPACES TO MSG-BODY
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
STRING "PRIVMSG NICKSERV ;ACC"
|
||||
STRING "PRIVMSG NICKSERV $COLN$ ACC " DELIMITED BY SIZE
|
||||
NICK DELIMITED BY SPACE
|
||||
"$NUL$"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
ADD 1 TO MSG-LENGTH
|
||||
STRING NICK
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
PERFORM SEND-LINE
|
||||
MOVE "NOTICE" TO WAITING-COMMAND
|
||||
MOVE 0 TO STATE
|
||||
|
@ -236,81 +221,75 @@
|
|||
*THE REPLY FUNCTIONS NEED NICK, COMMAND, AND TARGET PRESERVED.
|
||||
BEGIN-REPLY.
|
||||
MOVE SPACES TO MSG-BODY.
|
||||
MOVE 1 TO MSG-LENGTH.
|
||||
STRING COMMAND
|
||||
MOVE 1 TO WORK-PTR.
|
||||
STRING COMMAND DELIMITED BY SPACES
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
ADD 1 TO MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
ADD 1 TO WORK-PTR.
|
||||
IF TARGET IS EQUAL TO WOPO-NICK THEN
|
||||
STRING NICK DELIMITED BY SPACE
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
WITH POINTER WORK-PTR
|
||||
ELSE
|
||||
STRING TARGET DELIMITED BY SPACE
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
ADD 1 TO MSG-LENGTH.
|
||||
STRING ";"
|
||||
WITH POINTER WORK-PTR.
|
||||
ADD 1 TO WORK-PTR.
|
||||
STRING "$COLN$"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
IF TARGET IS NOT EQUAL TO WOPO-NICK THEN
|
||||
STRING NICK DELIMITED BY SPACES
|
||||
". " DELIMITED BY SIZE
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
|
||||
REPLY-ACK.
|
||||
PERFORM BEGIN-REPLY.
|
||||
STRING "OK."
|
||||
STRING "OK.$NUL$"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
PERFORM SEND-LINE.
|
||||
|
||||
PONG.
|
||||
MOVE SPACES TO MSG-BODY.
|
||||
MOVE 1 TO MSG-LENGTH.
|
||||
STRING "PONG"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
STRING "PONG$NUL$"
|
||||
INTO MSG-BODY.
|
||||
PERFORM SEND-LINE.
|
||||
|
||||
HANDLE-KICK.
|
||||
PERFORM GET-PARAMS.
|
||||
IF PARAM(1) IS EQUAL TO WOPO-NICK THEN
|
||||
MOVE SPACES TO MSG-BODY
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
STRING "JOIN " DELIMITED BY SIZE,
|
||||
TARGET DELIMITED BY SPACES
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
"$NUL$"
|
||||
INTO MSG-BODY
|
||||
PERFORM SEND-LINE
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
UNSTRING REST DELIMITED BY ";"
|
||||
MOVE 1 TO WORK-PTR
|
||||
UNSTRING REST DELIMITED BY "$COLN$"
|
||||
INTO WORK
|
||||
WITH POINTER MSG-LENGTH
|
||||
WITH POINTER WORK-PTR
|
||||
UNSTRING REST
|
||||
INTO WORK
|
||||
WITH POINTER MSG-LENGTH
|
||||
WITH POINTER WORK-PTR
|
||||
IF WORK IS NOT EQUAL TO WOPO-NICK THEN
|
||||
MOVE SPACES TO MSG-BODY
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
STRING "PRIVMSG " DELIMITED BY SIZE,
|
||||
TARGET DELIMITED BY SPACES,
|
||||
" :" DELIMITED BY SIZE,
|
||||
" $COLN$" DELIMITED BY SIZE,
|
||||
NICK DELIMITED BY SPACES,
|
||||
". " DELIMITED BY SIZE,
|
||||
WORK
|
||||
WORK DELIMITED BY "$NUL$",
|
||||
"$NUL$"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
MOVE 513 TO MSG-LENGTH
|
||||
PERFORM SEND-LINE.
|
||||
|
||||
HANDLE-MESSAGE.
|
||||
PERFORM GET-PARAMS.
|
||||
IF IS-COMMAND THEN
|
||||
MOVE 2 TO MSG-LENGTH
|
||||
MOVE 2 TO WORK-PTR
|
||||
UNSTRING WORK INTO PARAM(1)
|
||||
WITH POINTER MSG-LENGTH
|
||||
WITH POINTER WORK-PTR
|
||||
D DISPLAY "COMMAND BODY ", PARAM(1)
|
||||
IF PARAM(1) IS EQUAL TO "HELP" THEN
|
||||
PERFORM HANDLE-HELP
|
||||
|
@ -344,21 +323,21 @@
|
|||
- "$HELP $LEVEL $JOIN $PART $QUIT $RELEVEL $SHITFED "
|
||||
- "$SOURCE"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
PERFORM SEND-LINE.
|
||||
|
||||
HANDLE-SHITFED.
|
||||
PERFORM BEGIN-REPLY.
|
||||
STRING "LEAVE MY CASE ALONE, ASSHOLE."
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
PERFORM SEND-LINE.
|
||||
|
||||
HANDLE-SOURCE.
|
||||
PERFORM BEGIN-REPLY.
|
||||
STRING "HTTPS;//GITHUB.COM/HEDDWCH/WOPO"
|
||||
STRING "HTTPS$COLN$//GITHUB.COM/HEDDWCH/WOPO"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
PERFORM SEND-LINE.
|
||||
|
||||
HANDLE-LEVEL.
|
||||
|
@ -371,7 +350,7 @@
|
|||
PERFORM BEGIN-REPLY
|
||||
STRING USER-RECORD
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
PERFORM SEND-LINE.
|
||||
|
||||
HANDLE-JOIN.
|
||||
|
@ -384,10 +363,10 @@
|
|||
IF USER-LEVEL IS GREATER THAN 80 AND
|
||||
REG(1) IS NOT EQUAL TO "0" THEN
|
||||
MOVE SPACES TO MSG-BODY
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
STRING "JOIN ", REG(1)
|
||||
STRING "JOIN ", DELIMITED BY SIZE,
|
||||
REG(1), DELIMITED BY SPACES,
|
||||
"$NUL$"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
PERFORM SEND-LINE
|
||||
* RESTORE NICK AND TARGET, THEN REPLY.
|
||||
MOVE REG(2) TO NICK
|
||||
|
@ -411,10 +390,10 @@
|
|||
MOVE REG(4) TO TARGET
|
||||
PERFORM REPLY-ACK
|
||||
MOVE SPACES TO MSG-BODY
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
STRING "PART ", REG(1)
|
||||
STRING "PART " DELIMITED BY SIZE,
|
||||
REG(1) DELIMITED BY SPACES,
|
||||
"$NUL$"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
PERFORM SEND-LINE.
|
||||
|
||||
HANDLE-QUIT.
|
||||
|
@ -433,10 +412,9 @@
|
|||
MOVE REG(3) TO TARGET
|
||||
PERFORM REPLY-ACK
|
||||
MOVE SPACES TO MSG-BODY
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
STRING "QUIT ;", CONFIG-VALUE
|
||||
STRING "QUIT $COLN$" DELIMITED BY SIZE,
|
||||
CONFIG-VALUE,
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
PERFORM SEND-LINE
|
||||
GO TO QUIT.
|
||||
|
||||
|
@ -462,16 +440,17 @@
|
|||
PERFORM BEGIN-REPLY.
|
||||
STRING USER-RECORD
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
PERFORM SEND-LINE.
|
||||
|
||||
HANDLE-BF-CODE.
|
||||
IF PARAM(2) IS EQUAL TO SPACES THEN
|
||||
PERFORM BEGIN-REPLY
|
||||
STRING "CODE. " DELIMITED BY SIZE,
|
||||
BF-CODE DELIMITED BY " "
|
||||
BF-CODE DELIMITED BY " ",
|
||||
"$NUL$"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
WITH POINTER WORK-PTR
|
||||
PERFORM SEND-LINE
|
||||
ELSE
|
||||
MOVE PARAM(2) TO REG(1)
|
||||
|
@ -495,18 +474,17 @@
|
|||
STRING "INPUT. ",
|
||||
BF-INPUT
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH
|
||||
D DISPLAY "INPUT. ", BF-INPUT
|
||||
D DISPLAY "MSG-BODY. ", MSG-BODY
|
||||
PERFORM SEND-LINE
|
||||
ELSE
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
MOVE 1 TO WORK-PTR
|
||||
UNSTRING REST DELIMITED BY SPACE
|
||||
INTO PARAM(1)
|
||||
WITH POINTER MSG-LENGTH
|
||||
UNSTRING REST
|
||||
INTO PARAM(1),
|
||||
WITH POINTER WORK-PTR
|
||||
UNSTRING REST DELIMITED BY SIZE
|
||||
INTO REG(1)
|
||||
WITH POINTER MSG-LENGTH
|
||||
WITH POINTER WORK-PTR
|
||||
* PRESERVE VARIABLES FOR REPLY.
|
||||
MOVE NICK TO REG(2)
|
||||
MOVE COMMAND TO REG(3)
|
||||
|
@ -527,7 +505,7 @@
|
|||
STRING "OUTPUT. " DELIMITED BY SIZE,
|
||||
BF-OUTPUT DELIMITED BY "$NUL$"
|
||||
INTO MSG-BODY
|
||||
WITH POINTER MSG-LENGTH.
|
||||
WITH POINTER WORK-PTR.
|
||||
D DISPLAY "SENDING LINE".
|
||||
PERFORM SEND-LINE.
|
||||
D DISPLAY "SENT LINE".
|
||||
|
@ -550,7 +528,6 @@
|
|||
MOVE REG(3) TO COMMAND
|
||||
MOVE REG(4) TO TARGET
|
||||
IF USER-LEVEL > 50 THEN
|
||||
MOVE 1 TO MSG-LENGTH
|
||||
PERFORM REPLY-ACK
|
||||
MOVE MAYBE-CYCLE-LIMIT TO CYCLE-LIMIT
|
||||
PERFORM BF-LIMIT-CYCLES
|
||||
|
|
Loading…
Reference in a new issue