$! Demonstration of output direct to the client via the raw TCP/IP socket $! 20-AUG-2000 MGD initial $! 22-AUG-2006 MGD updated for changes to TCP/IP services $! (open/write to a BG device seems to fail now-a-days) $! add script-control to suppress encodings $! $ lf[0,8] = %x0a $ say = "write sys$output" $! $ say "Content-Type: text/html" $ say "Script-Control: x-content-encoding-gzip=0" $ say "Script-Control: x-transfer-encoding-chunked=0" $ say "" $ say "
"
$ say "The script: HT_ROOT:[SRC.OTHER]GATEWAY_BG_EXAMPLE.COM"
$ say ""
$!
$ if f$type(WWW_GATEWAY_BG) .eqs. ""
$ then
$    say "There is no ""WWW_GATEWAY_BG"" CGI variable."
$    if f$type(WWW_REQUEST_SCHEME) .eqs. ""
$    then
$       say "There is no ""WWW_REQUEST_SCHEME"" CGI variable ... what gives?"
$       exit
$    endif
$    if WWW_REQUEST_SCHEME .eqs. "https:"
$    then
$       say "This is an SSL encrypted request (""https://"")."
$       say "Using the BG: device is not possible."
$       exit
$    endif
$    say "This indicates [DclGatewayBg] configuration directive is disabled."
$    exit
$ endif
$!
$ sysOutput = f$getdvi("SYS$OUTPUT","devnam") - "_"
$ say "This first section is coming courtesy of SYS$OUTPUT (''sysOutput')"
$ say ""
$ say "$ SHOW TIME"
$ show time
$ say "$ SHOW DEVICE /FULL SYS$OUTPUT:"
$ show device /full sys$output:
$ say "$ SHOW DEVICE /FULL ''WWW_GATEWAY_BG'"
$ show device /full 'WWW_GATEWAY_BG'
$!
$ say "This second section is being output to the raw TCP/IP socket (''WWW_GATEWAY_BG')"
$ say "(note the absence of carriage-control except when explicitly added)"
$ say ""
$ if WWW_QUERY_STRING .nes. ""
$ then
$!   (use a CGI callout to switch the carriab-control bit)
$    say WWW_GATEWAY_ESC
$    say "GATEWAY-CCL: " + WWW_QUERY_STRING
$    say WWW_GATEWAY_EOT
$!   (let the driver provide it's own carriage-control)
$    lf = ""
$ endif
$ prevSysOutput = f$trnlnm("SYS$OUTPUT")
$ define /process SYS$OUTPUT 'WWW_GATEWAY_BG'
$ say "$ SHOW TIME" + lf
$ show time 
$ say lf + "$ SHOW DEVICE /FULL SYS$OUTPUT:" + lf
$ show device /full sys$output:
$ say lf + "$ SHOW DEVICE /FULL ''WWW_GATEWAY_BG'" + lf
$ show device /full 'WWW_GATEWAY_BG'
$ define /process SYS$OUTPUT 'prevSysOutput'
$ exit