=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v retrieving revision 1.1 retrieving revision 1.3 diff -u -p -r1.1 -r1.3 --- OpenXM/src/kan96xx/Doc/httpd-asir.sm1 2001/04/20 13:38:31 1.1 +++ OpenXM/src/kan96xx/Doc/httpd-asir.sm1 2001/04/21 08:18:03 1.3 @@ -1,13 +1,16 @@ -%% $OpenXM$ +%% $OpenXM: OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v 1.2 2001/04/21 06:38:37 takayama Exp $ %% http server by sm1 + +/httpd.port 1200 def [(parse) (oxasir.sm1) pushfile] extension (oxasir.started) boundp { } { [(x^2-1) (x)] fctr pop } ifelse -/startserver { - [(sm1.socket) (open) [1200 (localhost)]] extension /server.fdAndPort set +/httpd_startserver { + [(sm1.socket) (open) [httpd.port (localhost)]] extension + /server.fdAndPort set (sm1.socket.open returns ) messagen server.fdAndPort message [(sm1.socket) (accept) [server.fdAndPort 0 get]] extension /server.fd set @@ -15,35 +18,46 @@ (sm1.socket.accept returns ) messagen server.fd message } def -/stopserver { +/httpd_stopserver { [(sm1.socket) (close) server.fd ] extension message } def -/send { +/send_packet { /arg1 set [(sm1.socket) (write) [server.fd 0 get arg1]] extension message } def /sendln { - /mmm set + /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) (write) [server.fd 0 get mmm]] extension message + ] pop + popVariables } def /httpd { + /httpd.serial 1 def + /httpd.history [ ] def { - startserver ; - action ; - stopserver ; + httpd_startserver ; + httpd_action ; + httpd_stopserver ; (5 sleep) system + httpd.serial 1 add /httpd.serial set } loop } def -/action { +/httpd_action { + [/in-httpd /httpd.com.old /ff /httpd.com /httpd.result + ] pushVariables + [ + (httpd:sm1 is ready) message { /httpd.com.old ( ) def [(sm1.socket) (select) [server.fd 0 get -1]] extension @@ -63,30 +77,37 @@ httpd.com message (------------ end ----------------------) message ( ) message - oxasir.ccc - [(if (1) {) httpd.com (};)] cat - oxexecutestring ; - oxasir.ccc oxpopstring /httpd.result set - /httpd.com.old httpd.com def - (------------- result -------------) message - httpd.result message - (----------------------------------) message - ( ) message - [(Input:) (
) httpd.com () (
) - httpd.result - () - ] cat - send-page-3 exit - %% [(SigIgn) 1] system_variable + httpd.com metaCommand { + /httpd.history httpd.history httpd.com append def + oxasir.ccc + [(if (1) {) httpd.com (};)] cat + oxexecutestring ; + oxasir.ccc oxpopstring /httpd.result set + /httpd.com.old httpd.com def + (------------- result -------------) message + httpd.result message + (----------------------------------) message + ( ) message + [(
) httpd.com () (
) httpd.result () + ] cat + send-page-3 exit + } { } ifelse } ifelse } { } ifelse } loop + ] pop + popVariables } def -/send-page-1 { +/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 @@ -95,9 +116,13 @@ %% (Accept-Ranges: bytes) sendln %% (Content-Length: 10) sendln (Connection: close) sendln - (Content-Type: text/plain) sendln +% (Content-Type: text/plain) sendln + (Content-Type: text/html) sendln 0 sendln - (HOGE HOGE!) sendln + () sendln + (Shutdown the engine.