JCGIPLUSCALLOUTV1.0 4-NOV-2021 10:08 VSI C V7.4-002  $READONLY$i$CODE$ $LITERAL$$LINK$,$DATA$(JMAIN0JX`PROCESSREQUEST(JP__MAIN @6= =#~P^X^`cG#GLH=D]@}<8 "ݶ0#(=#  >LH=D]@}<84G0B8b@Zkb# @G4GBb@ZkcGP]X]`p#k#~^^ GGGGGtG8B@b@ZkG(B0b@Zk/G4GHBPb@Zk"4GhBpb/@Zkb#@GXB`b@ZkÐ#~P^X^`G#G`X" (0}gK1 J1'JqG0}"xB=}gK2@J2GJrG} "!0 @ "1G "1"TGhBpb@Zk8 "!@= "4GBb@ZkH "4GBb@Zk= >8 "@1"@]H}G"G(B0b@ZkGBb@ZkG "1"]"tG(B0b@ZkG4GHBPb/@ZkP"?"TGBb@ZkG8B@b@ZkT= G "`1"P]"G " "G(B0b@ZkGBb@ZkG " 1" ]"tG(B0b@ZkG4GHBPb@ZkP"?"TGBb/@ZkG8B@b@ZkT= G "h1"P]"G "G(B0b@ZkGBb@ZkG "01" ]"tG(B0b/@ZkG4GHBPb/@ZkP"?"TGBb@ZkG8B@b@ZkG "@1"P]"tG(B0b@ZkGP]X]`p#k4G DECC$MAIN4b#P DECC$MAIN4@ DECC$MAIN4G DECC$EXIT4b#P DECC$EXIT4@ DECC$EXIT<GCGILIBENVIRONMENTINIT<b#CGILIBENVIRONMENTINIT<@CGILIBENVIRONMENTINITDG CGILIBENVIRONMENTISCGIPLUSDb#CGILIBENVIRONMENTISCGIPLUSD@ CGILIBENVIRONMENTISCGIPLUS4G( DECC$EXIT4 b# DECC$EXIT4$@( DECC$EXIT44GD CGILIBVAR48b# CGILIBVAR4@@D CGILIBVAR<PG\CGILIBCGIPLUSEOF<Tb#CGILIBCGIPLUSEOF<X@\CGILIBCGIPLUSEOF< G CGILIBRESPONSEHEADER<b#XCGILIBRESPONSEHEADER< @ CGILIBRESPONSEHEADER40G< DECC$GETENV44b#X DECC$GETENV48@< DECC$GETENV4LGX DECC$GETENV4Pb#X DECC$GETENV4T@X DECC$GETENV4GDECC$GXFPRINTF4b#XDECC$GXFPRINTF4@DECC$GXFPRINTF<GCGILIBCGIPLUSESC<b#XCGILIBCGIPLUSESC<@CGILIBCGIPLUSESC4GDECC$GXFPRINTF4b#XDECC$GXFPRINTF4@DECC$GXFPRINTF4 G DECC$FFLUSH4 b#X DECC$FFLUSH4 @ DECC$FFLUSH<GCGILIBCGIPLUSINGETS<b#XCGILIBCGIPLUSINGETS<@CGILIBCGIPLUSINGETS< G CGILIBCGIPLUSEOT< b#XCGILIBCGIPLUSEOT< @ CGILIBCGIPLUSEOT48GDDECC$GXFPRINTF4<b#XDECC$GXFPRINTF4@@DDECC$GXFPRINTF <HGTCGILIBCGIPLUSESC<Lb#XCGILIBCGIPLUSESC<P@TCGILIBCGIPLUSESC4pG|DECC$GXFPRINTF4tb#XDECC$GXFPRINTF4x@|DECC$GXFPRINTF4 G DECC$FFLUSH4 b#X DECC$FFLUSH4 @ DECC$FFLUSH<GCGILIBCGIPLUSINGETS<b#XCGILIBCGIPLUSINGETS<@CGILIBCGIPLUSINGETS< GCGILIBCGIPLUSEOT< b#XCGILIBCGIPLUSEOT< @CGILIBCGIPLUSEOT4GDECC$GXFPRINTF4b#XDECC$GXFPRINTF4@DECC$GXFPRINTF<GCGILIBCGIPLUSESC<b#XCGILIBCGIPLUSESC<@CGILIBCGIPLUSESC4$G4DECC$GXFPRINTF4(b#XDECC$GXFPRINTF40@4DECC$GXFPRINTF4 DGT DECC$FFLUSH4 Hb#X DECC$FFLUSH4 P@T DECC$FFLUSH<`GlCGILIBCGIPLUSINGETS<db#XCGILIBCGIPLUSINGETS<h@lCGILIBCGIPLUSINGETS< pG|CGILIBCGIPLUSEOT< tb#XCGILIBCGIPLUSEOT< x@|CGILIBCGIPLUSEOT4GDECC$GXFPRINTF4b#XDECC$GXFPRINTF4@DECC$GXFPRINTF = ttpd//wasd_roT:[SRC.H  DECC$GETENV CGILIBCGIPLUSINGETS CGILIBCGIPLUSESC7DECC$GA_STDOUT=0P"`;=p (;DECC$GXFPRINTF CGILIBCGIPLUSEOT DECC$FFLUSH=TTPD]WASD_ROO CGILIBRESPONSEHEADER=ot/src/h=0";=0 (CGILIBENVIRONMENTISCGIPLUS CGILIBENVIRONMENTINIT DECC$EXIT CGILIBCGIPLUSEOF CGILIBVAR=0P";=p  7DECC$$SHELL_HANDLER= DECC$MAIN d == text/html= CGIPLUSESC(= CGIPLUSEOT8= MAP-PATH: %sH= MAP-FILE: %sX= UNKNOWN: %sh=(CGIPLUSCALLOUT.C

Usage count: %d

This script provides a simple demonstration of the CGIplus callout facility, used to suspend normal script output and communicate directly with the server. This allows the script to request information from the server, or set certain script operating parameters, etc.

To begin an callout the CGIPLUSESC environment variable (logical name) is output as a record. For this script it has a value of:

  %s

(but of course is not static, and varies each time the script is first executed).

A single-record script request followed by a single-record server response dialog may then be engaged in.

To end an callout the CGIPLUSEOT environment variable (logical name) is output as a record. For this script it has a value of:

  %s

(and also will vary each time the script is first executed).

Normal script output (to the browser) is then resumed. When in callout mode one or more request/responses may be made. Normal and callout output may be interleaved during a script response, as this script illustrates.

Example Behaviour

Comments

Success responses begin with an HTTP-like "200", other responses with appropriate status codes. (=  D=4,+CGIPLUSCALLOUTVSI C V7.4-002 ?= 4=TRANSFER$BREAK$GO }= 44= main4=  =  = `4X4=ProcessRequest`4=`XW # '  !  !   = \ s= 4P4= __main4=  =  =  DECC$GA_STDOUT DECC$FFLUSHDECC$GXFPRINTF DECC$EXIT DECC$GETENV CGILIBVAR CGILIBCGIPLUSEOF CGILIBCGIPLUSEOT CGILIBCGIPLUSESC CGILIBCGIPLUSINGETS CGILIBENVIRONMENTINIT(CGILIBENVIRONMENTISCGIPLUS CGILIBRESPONSEHEADER DECC$MAIN DECC$$SHELL_HANDLER  PC$GA