/* rexx cgi test reads CGI varibles reads stdin write results to stdout as text/plain 2002-05-16 SHL Baseline 2020-02-12 SHL Add missing say 2020-03-03 SHL Update */ call time 'E' gCmdName = 'my_test_rex2' gDbg = 0 gLogFile = '\tmp.out' gStartTime = time() msg = gCmdName 'starting at' gStartTime if gDbg then call lineout gLogFile, msg if 0 then call lineout 'STDERR', msg say 'Content-type: text/plain' say call charout, 'CGI/1.0 test script report:' parse arg sz say 'argc is' arg() 'argv is' sz say say 'SERVER_SOFTWARE =' value('SERVER_SOFTWARE',,'OS2ENVIRONMENT') say 'SERVER_NAME =' value('SERVER_NAME',,'OS2ENVIRONMENT') say 'GATEWAY_INTERFACE =' value('GATEWAY_INTERFACE',,'OS2ENVIRONMENT') say 'SERVER_PROTOCOL =' value('SERVER_PROTOCOL',,'OS2ENVIRONMENT') say 'SERVER_PORT =' value('SERVER_PORT',,'OS2ENVIRONMENT') say 'REQUEST_METHOD =' value('REQUEST_METHOD',,'OS2ENVIRONMENT') say 'HTTP_ACCEPT ="' value('HTTP_ACCEPT',,'OS2ENVIRONMENT') say 'PATH_INFO =' value('PATH_INFO',,'OS2ENVIRONMENT') say 'PATH_TRANSLATED =' value('PATH_TRANSLATED',,'OS2ENVIRONMENT') say 'SCRIPT_NAME =' value('SCRIPT_NAME',,'OS2ENVIRONMENT') say 'QUERY_STRING =' value('QUERY_STRING',,'OS2ENVIRONMENT') say 'REMOTE_HOST =' value('REMOTE_HOST',,'OS2ENVIRONMENT') say 'REMOTE_ADDR =' value('REMOTE_ADDR',,'OS2ENVIRONMENT') say 'REMOTE_USER =' value('REMOTE_USER',,'OS2ENVIRONMENT') say 'AUTH_TYPE =' value('AUTH_TYPE',,'OS2ENVIRONMENT') say 'CONTENT_TYPE =' value('CONTENT_TYPE',,'OS2ENVIRONMENT') say 'CONTENT_LENGTH =' value('CONTENT_LENGTH',,'OS2ENVIRONMENT') say if chars() = 0 then say 'STDIN empty' else do say 'chars() returned ' chars() ' - reading from STDIN' input = '' cnt = 0 do while chars() > 0 gError = 0 call on NotReady name Error s = charin() signal off NotReady if gError then say 'charin raised not ready while chars() > 0' else do cnt = cnt + 1 if input == '' then input = s else input = input || s end end /* do */ say 'Read' cnt 'characters from STDIN' say 'Input is' length(input) 'characters' say '=== input begin ===' say input say c2x(input) say '=== input end ===' end elapsedTime = time('E') gEndTime = time() msg = gCmdName 'started at' gStartTime 'and ended at' gEndTime 'and ran for' elapsedTime 'seconds' if gDbg then call lineout gLogFile, msg say say msg /* Enable to force cgi_log output */ if 1 then call charout 'STDERR', msg if gDbg then call stream gLogFile, 'C', 'CLOSE' if gDbg then call stream 'STDIN', 'C', 'CLOSE' /* Does not speed up termination */ if 0 then call stream 'STDOUT', 'C', 'CLOSE' if 0 then call stream 'STDERR', 'C', 'CLOSE' /* Does not speed up termination */ if 0 then '@exit' exit Error: gError = 1 return