===================================================================
RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/httpd.sm1,v
retrieving revision 1.1
retrieving revision 1.5
diff -u -p -r1.1 -r1.5
--- OpenXM/src/kan96xx/Doc/httpd.sm1 2001/08/23 00:16:55 1.1
+++ OpenXM/src/kan96xx/Doc/httpd.sm1 2001/09/20 05:57:40 1.5
@@ -1,5 +1,11 @@
-%% $OpenXM$
+%% $OpenXM: OpenXM/src/kan96xx/Doc/httpd.sm1,v 1.4 2001/08/29 11:18:57 takayama Exp $
%% common modules for httpd on sm1.
+/Oxserver_history_variable (Oxserver_history_variable_) def
+/httpd.image.type
+ [(getenv) (OpenXM_PSTOIMG_TYPE)] extension
+def
+
+
/httpd_startserver {
[(sm1.socket) (open) [httpd.port (localhost)]] extension
/httpd.server.fdAndPort set
@@ -172,6 +178,17 @@
[(flush)] extension
} def
+/send-page-warning-image {
+ (HTTP/0.9 200 OK) sendln
+ (Connection: close) sendln
+ (Content-Type: text/html) sendln
+ 0 sendln
+ (Error: Image translation is not supported on this server
) sendln
+ ( Check the value of the environmental variable OpenXM_PSTOIMG_TYPE
) sendln
+ 0 sendln
+ [(flush)] extension
+} def
+
/stopclient {
[(sm1.socket) (close) [client.fdAndPort 0 get] ] extension message
} def
@@ -407,4 +424,78 @@
] pop
popVariables
arg1
-} def
+} def
+
+/executeStringAndSelectInputFromBrowserAndOxserver {
+ /arg3 set
+ /arg2 set
+ /arg1 set
+ [/in-executeStringAndSelectInputFromBrowserAndOxserver
+ /oxserver.ccc
+ /command.to.oxserver
+ /sss.engine
+ /sss.web
+ /sss
+ /err
+ /httpd.result
+ /stringOrCmo
+ ] pushVariables
+% Global var: httpd.server.fd
+ [
+ /oxserver.ccc arg1 def
+ /command.to.oxserver arg2 def
+ /stringOrCmo arg3 def
+ oxserver.ccc
+ command.to.oxserver
+ oxexecutestring ;
+
+ [(oxReq) oxserver.ccc SM_dupErrors ] extension pop
+
+ [(oxReq) oxserver.ccc SM_popCMO ] extension pop
+ stringOrCmo (string) eq {
+ [(oxReq) oxserver.ccc SM_popString ] extension pop
+ }{
+ [(oxReq) oxserver.ccc SM_popCMO ] extension pop
+ } ifelse
+ [(flush)] extension pop
+ %% Select inputs for interruption.
+ %% Wait by the spin lock.
+ {
+ [(oxMultiSelect) [oxserver.ccc] 1] extension 1 get 0 get
+ /sss.engine set
+ [(sm1.socket) (mselect)
+ [[httpd.server.fd 0 get] 1]
+ ] extension 0 get /sss.web set
+ /sss [sss.engine sss.web] def
+ sss.engine { exit } { } ifelse
+ sss.web { exit } { } ifelse
+ } loop
+ sss message
+
+ sss 0 get {
+ [(oxGet) oxserver.ccc] extension /err set
+ [(oxGet) oxserver.ccc] extension /httpd.result set
+ } {
+ oxserver.ccc oxreset
+ oxserver.ccc ("computation is interrupted.";) oxexecutestring ;
+ oxserver.ccc oxpopstring
+ /httpd.result set
+ exit
+ } ifelse
+ (------------- result -------------) message
+ httpd.result message
+ (----------------------------------) message
+ ( ) message
+
+ err message
+ err [ ] eq {
+ } {
+ oxserver.ccc cleanErrors
+ [httpd.result 10 (string) dc err toString] cat
+ /httpd.result set
+ } ifelse
+ /arg1 [err httpd.result] def
+ ] pop
+ popVariables
+ arg1
+} def
\ No newline at end of file