===================================================================
RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v
retrieving revision 1.10
retrieving revision 1.26
diff -u -p -r1.10 -r1.26
--- OpenXM/src/kan96xx/Doc/httpd-asir.sm1 2001/04/23 13:34:00 1.10
+++ OpenXM/src/kan96xx/Doc/httpd-asir.sm1 2005/11/17 08:15:51 1.26
@@ -1,11 +1,15 @@
-%% $OpenXM: OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v 1.9 2001/04/22 04:55:07 takayama Exp $
+%% $OpenXM: OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v 1.25 2003/09/14 01:59:56 takayama Exp $
%% http server by sm1
+[(parse) (httpd.sm1) pushfile] extension pop
+
/httpd.port 1200 def
+/httpd.image.name (kobeuniv2.jpg) def
/httpd.initialization
%% Put initialization codes here.
[
+ (XM_debug=0; ctrl("debug_window",0);)
("Asirweb version 0.80. "+
" Risa/Asir oxasir version "+rtostr(version());)
] cat
@@ -20,8 +24,30 @@ def
oxasir.ccc oxsetmathcap
} ifelse
+/ox-win.start.iconic 1 def
+/ox.win.set.start {
+ [(stat) (c:\windows\system32\cmd.exe)] extension 0 get
+ 0 eq {
+ /ox.win.start.0 [(c:\windows\system32\cmd.exe) (/c) (start)] def
+ /ox.win.start [ox.win.start.0 aload pop
+ ox-win.start.iconic { (/min) } { } ifelse ] def
+ }{
+ [(stat) (c:\winnt\system32\cmd.exe)] extension 0 get
+ 0 eq {
+ /ox.win.start.0 [(c:\winnt\system32\cmd.exe) (/c) (start) ] def
+ /ox.win.start [ox.win.start.0 aload pop
+ ox-win.start.iconic { (/min) } { } ifelse ] def
+ }{
+ /ox.win.start.0 [ (start) ] def
+ /ox.win.start [ ox.win.start.0 aload pop
+ ox-win.start.iconic { (/min) } { } ifelse ] def
+ } ifelse
+ } ifelse
+} def
+
+/webasir { asirweb } def
/asirweb {
- [/rrr ] pushVariables
+ [/rrr /cmd] pushVariables
[
%% This procedure to generate port number might fail.
[(oxGenPass)] extension . (integer) dc /rrr set
@@ -29,90 +55,76 @@ def
/httpd.port 1200 rrr add def
httpd.port message
- [(sleep 3; netscape -geometry 800x500 http://localhost:)
- httpd.port toString
- ( &)] cat system
+ %%[(sleep 3; netscape -geometry 800x500 http://localhost:)
+ %% httpd.port toString
+ %% ( &)] cat system
+ [(ostype)] extension 0 get
+ (windows) eq {
+ %% On windows.
+ ox.win.set.start
+ [(forkExec)
+ [
+ %%(c:\windows\command\start)
+ ox.win.start.0 aload pop
+ (iexplore) %% Starting internet explorer (TM).
+ [(http://localhost:) httpd.port toString] cat
+ ]
+ [ ]
+ 3] extension
+ }{
+ %% On unix.
+ httpd.port httpd.startBrowserUnix
+ } ifelse
+
httpd ;
] pop
popVariables
} def
-/httpd_startserver {
- [(sm1.socket) (open) [httpd.port (localhost)]] extension
- /httpd.server.fdAndPort set
- (sm1.socket.open returns ) messagen httpd.server.fdAndPort message
- [(sm1.socket) (accept) [httpd.server.fdAndPort 0 get]] extension
- /httpd.server.fd set
- (connected.) message
- (sm1.socket.accept returns ) messagen httpd.server.fd message
-} def
-/httpd_stopserver {
- [(sm1.socket) (close) httpd.server.fd ] extension message
-} def
-
-/send_packet {
- /arg1 set
- [(sm1.socket) (write) [httpd.server.fd 0 get arg1]] extension message
-} def
-
-/sendln {
- /arg1 set
- [/in-sendln /mmm] pushVariables
- [ arg1 /mmm set
- mmm tag 5 eq {
- [mmm 10 (string) dc] cat /mmm set
- }{
- 10 (string) dc /mmm set
- } ifelse
- [(sm1.socket) (select) [httpd.server.fd 0 get 0]] extension {
- (Warning: your peer closed the connection. Do not send the data.) message
- } {
- [(sm1.socket) (write) [httpd.server.fd 0 get mmm]] extension message
- } ifelse
- ] pop
- popVariables
-} def
-
-/httpd {
- /httpd.serial 0 def
- /httpd.history [ ] def
- {
- httpd_startserver ;
- httpd_action ;
- httpd_stopserver ;
- (5 sleep) system
- httpd.serial 1 add /httpd.serial set
- } loop
-} def
-
/httpd_action {
[/in-httpd /ff /httpd.com /httpd.result /sss
/sss.engine /sss.web /err
+ /oxserver.vname
] pushVariables
[
{
[(sm1.socket) (select) [httpd.server.fd 0 get -1]] extension
%% wait for ever
- [(sm1.socket) (read) [httpd.server.fd 0 get ]] extension /ff set
- ff length 0 eq {
- (connection is closed.) message
+ [(sm1.socket) (readHTTP) [httpd.server.fd 0 get ]] extension /ff set
+ ff tag 0 eq {
+ (connection is closed.) message exit
}
{
(------------ start ----------------------) message
ff message
(-----------------------------------------) message
- ff removeGET webstringToAscii /httpd.com set
- httpd.com message
+ ff 1 copy askToSendFile /httpd.sendFile set
+ httpd.sendFile tag 0 eq {
+ ff removeGET webstringToAscii /httpd.com set
+ } {
+ /httpd.com (NONE) def
+ } ifelse
+ [(httpd.com=) httpd.com] cat message
+ (httpd.sendFile=) messagen httpd.sendFile message
(------------ end ----------------------) message
( ) message
httpd.serial 0 eq {
/httpd.com httpd.initialization def
+ /httpd.textarea.valid 1 def
} { } ifelse
+ httpd.sendFile tag 0 eq { }
+ {
+ httpd.sendFile httpd.image.type send-image
+ exit %% exit the loop LOOP-A
+ } ifelse
httpd.com metaCommand {
httpd.textarea.valid {
+ /oxserver.vname
+ [Oxserver_history_variable httpd.serial toString] cat
+ def
oxasir.ccc
- [(if (1) {) httpd.com (; };)] cat
+ [(if (1) {) httpd.com (; };)] cat
oxexecutestring ;
}{
send-page-warning exit
@@ -120,6 +132,10 @@ def
[(oxReq) oxasir.ccc SM_dupErrors ] extension pop
[(oxReq) oxasir.ccc SM_popCMO ] extension pop
+
+ [(oxReq) oxasir.ccc SM_setName oxserver.vname] extension pop
+ oxasir.ccc [oxserver.vname (;)] cat oxexecutestring
+
[(oxReq) oxasir.ccc SM_popString ] extension pop
[(flush)] extension pop
%% Select inputs for interruption.
@@ -178,78 +194,28 @@ def
} ifelse
( Output-) httpd.serial toString
(: )
+ ( (in pretty format) )
+ %%( (in pretty format) ) %%test
httpd.result preformatHTML
+ httpd.result.history httpd.result append /httpd.result.history set
] cat
- send-page-3 exit
+ send-page-3 exit %% exit the loop LOOP-A
} { exit } ifelse %% metaCommand
} ifelse
- } loop
+ } loop %% LOOP-A
] pop
popVariables
} def
-/send-page-bye {
- (HTTP/0.9 200 OK) sendln
-%% (Date: Sun, 18 Mar 2001 02:54:50 GMT) sendln
-%% (Server: sm1/0.1 (Unix)) sendln
-%% (Last-Modified: Wed, 23 Aug 2000 11:19:27 GMT) sendln
-%% (ETag: "1f8f-5df-39a3b33f") sendln
-%% (Accept-Ranges: bytes) sendln
-%% (Content-Length: 10) sendln
- (Connection: close) sendln
-% (Content-Type: text/plain) sendln
- (Content-Type: text/html) sendln
- 0 sendln
- () sendln
- (Shutdown the engine.
) sendln
- (See you! asirweb ) sendln
- () sendln
- 0 sendln
- [(flush)] extension
-} def
-/send-page-2 {
- (HTTP/0.9 200 OK) sendln
-%% (Content-Length: 10) sendln
- (Connection: close) sendln
- (Content-Type: text/html) sendln
- 0 sendln
- (
) sss ()] cat /arg1 set - ] pop - popVariables - arg1 -} def + oxasir.ccc + [$print_$ httpd.image.type $_form(Oxserver_history_variable_$ + nn toString + $);$ + ] cat + (cmo) + executeStringAndSelectInputFromBrowserAndOxserver + dup 0 get /err set + 1 get /fn set + err [ ] eq { + fn 0 get httpd.image.type send-image + } { + [err preformatHTML] cat + send-page-3 + } ifelse + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -/metaCommand { - /arg1 set - [/in-metaCommand /msg /result] pushVariables - [ - /msg arg1 def - /result 1 def + /skip-image + /result 0 def + } { } ifelse + }{ } ifelse msg (httpdAsirMeta quit) eq { oxasir.ccc oxshutdown send-page-bye