=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/cgi.sm1,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -r1.3 -r1.4 --- OpenXM/src/kan96xx/Doc/cgi.sm1 2004/09/27 01:20:46 1.3 +++ OpenXM/src/kan96xx/Doc/cgi.sm1 2004/09/27 08:32:05 1.4 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/src/kan96xx/Doc/cgi.sm1,v 1.2 2004/09/24 13:15:27 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Doc/cgi.sm1,v 1.3 2004/09/27 01:20:46 takayama Exp $ % OpenXM/src/polymake/cgi/cgi-polymake.sh % is a shell script to call sm1/polymake as a CGI script. % Override as /doPolymake {doPolymake.OoHG} def if you need. @@ -96,16 +96,21 @@ /cgiPolymake { { [(getenv) (QUERY_STRING)] extension /cgi.query_string set - cgi.query_string isString { } + cgi.query_string isString { + cgi.query_string length 0 eq { + cgiPolymake.errorMessage message exit + } { } ifelse + } { cgiPolymake.errorMessage message exit } ifelse - cgi.body.http0 message + cgi.body.http0 message cgi.query_string cgiPolymake.0 cgi.body cgiReplyInHttp0 /cgi.body.http set cgi.body.http message exit } loop + [(flush)] extension } def /cgiPolymake.errorMessage [ (Content-Type: text/html) nl @@ -120,7 +125,7 @@ () nl (
) nl () nl - () nl (
) nl () nl @@ -136,8 +141,9 @@ def [ /sss arg1 def % Step 1. analyze the query string in URL encoding. - [(cgiUrlEncodingToKeyValuePair) sss] extension /kv set + [(cgiUrlEncodingToKeyValuePair) [(?) sss] cat] extension /kv set kv (oxMessageBody) getNode /comm set +% [nl nl] cat message sss message kv message % for debug. % Step 2. Extract action part and file part for polymake. comm (array) dc /comm set /i 0 def @@ -167,7 +173,7 @@ def [cgiPolymake.polymakeName (stringInOut://cgi_body.poly) acti0] addStdoutStderr oxshell pop pError [@@@stdout @@@stderr] append /pError set - /cgi.body cgi_body def + /cgi.body cgi_body def ] pop popVariables } def @@ -195,8 +201,8 @@ def /ss arg1 def [[(Content-Body) ss] % [(Content-Type) (text/plain)] - [(oxshell-stdout) @@@stdout] - [(oxshell-stderr) @@@stderr] + [(oxshell-stdout) [(cgiStringToUrlEncoding) @@@stdout] extension] + [(oxshell-stderr) [(cgiStringToUrlEncoding) @@@stderr] extension] ] /sskv set [(cgiKeyValuePairToHttpString) sskv] extension /arg1 set ] pop @@ -205,7 +211,7 @@ def % ------------ client side script --------------- /cgiQueryPolymake.hostname (polymake.math.kobe-u.ac.jp) def -/cgiQueryPolymake.cginame (cgi-bin/cgi-polymake.sh) def +/cgiQueryPolymake.cginame (/cgi-bin/cgi-polymake.sh) def /cgiQueryPolymake { /arg2 set /arg1 set [/saction /sfile /ff /ff1 /sss2 /goo /pp /pp2] pushVariables @@ -266,7 +272,8 @@ def @@@polymake.k0.ccc ( QuoteMode(0); ) oxexecutestring [(treeToPolymake) ptree] extension /pNative set %% step 2: calling the polymake - [(which) (polymake)] oxshell tag 0 eq +% [(which) (polymake)] oxshell tag 0 eq + 1 % always call web service { % cgi-polymake (Trying web service.) message