[BACK]Return to httpd.sm1 CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Doc

Diff for /OpenXM/src/kan96xx/Doc/httpd.sm1 between version 1.1 and 1.12

version 1.1, 2001/08/23 00:16:55 version 1.12, 2002/10/30 13:23:06
Line 1 
Line 1 
 %% $OpenXM$  %% $OpenXM: OpenXM/src/kan96xx/Doc/httpd.sm1,v 1.11 2002/10/29 07:29:23 takayama Exp $
 %% common modules for httpd on sm1.  %% common modules for httpd on sm1.
   /Oxserver_history_variable (Oxserver_history_variable_) def
   /httpd.image.type
     [(getenv) (OpenXM_PSTOIMG_TYPE)] extension
   def
   
   [(getenv) (OXWEB_DEBUG)] extension tag 0 eq {
      /httpd.debug 0 def
   } {
      /httpd.debug 1 def
   } ifelse
   [(getenv) (OXWEB_TAKE_LOG)] extension tag 0 eq {
      /httpd.take.log  0 def
   } {
      /httpd.take.log 1 def
   } ifelse
   
   
 /httpd_startserver {  /httpd_startserver {
    [(sm1.socket) (open) [httpd.port (localhost)]] extension     [(sm1.socket) (open) [httpd.port (localhost)]] extension
    /httpd.server.fdAndPort set     /httpd.server.fdAndPort set
Line 21 
Line 38 
   
 /sendln {  /sendln {
  /arg1 set   /arg1 set
  [/in-sendln /mmm] pushVariables   [/in-sendln /mmm /i] pushVariables
  [ arg1 /mmm set   [ arg1 /mmm set
   mmm tag 5 eq {    mmm tag 5 eq {
     [mmm 10 (string) dc] cat /mmm set      [mmm 10 (string) dc] cat /mmm set
Line 31 
Line 48 
   [(sm1.socket) (select) [httpd.server.fd 0 get 0]] extension {    [(sm1.socket) (select) [httpd.server.fd 0 get 0]] extension {
     (Warning (sendln): your peer closed the connection. Do not send the data.) message      (Warning (sendln): your peer closed the connection. Do not send the data.) message
   } {    } {
     [(sm1.socket) (write) [httpd.server.fd 0 get mmm]] extension message      [(sm1.socket) (write) [httpd.server.fd 0 get mmm]] extension /i set
        httpd.debug { i message } { } ifelse
   } ifelse    } ifelse
  ] pop   ] pop
  popVariables   popVariables
Line 68 
Line 86 
     httpd_startserver ;      httpd_startserver ;
     httpd_action ;      httpd_action ;
     httpd_stopserver ;      httpd_stopserver ;
     (5 sleep) system      httpd.take.log { (date) system  } { } ifelse
   %    (sleep 2) system
     httpd.serial 1 add /httpd.serial set      httpd.serial 1 add /httpd.serial set
   } loop    } loop
 } def  } def
Line 87 
Line 106 
    0 sendln     0 sendln
    (<html>) sendln     (<html>) sendln
    (Shutdown the engine. <br>) sendln     (Shutdown the engine. <br>) sendln
    (See you! <a href="http://www.openxm.org"> Web/sm1 </a>) sendln     (See you! <a href="http://www.openxm.org"> Web/asir, Web/sm1 </a>) sendln
    (</html>) sendln     (</html>) sendln
    0 sendln     0 sendln
    [(flush)] extension     [(flush)] extension
Line 121 
Line 140 
    %%(<img src="hoge.jpeg"> <img>) sendln %%test.  It does not work always?!     %%(<img src="hoge.jpeg"> <img>) sendln %%test.  It does not work always?!
    %%(<a href="hoge.jpeg"> Pretty format </a>) sendln %%test. It works.     %%(<a href="hoge.jpeg"> Pretty format </a>) sendln %%test. It works.
   
    (<FORM NAME="myFORM">) sendln    [(getenv) (OXWEB_POST)] extension tag 0 eq {
       (<FORM NAME="myFORM">) sendln  % use get
     }{
       (<FORM NAME="myFORM" METHOD="POST">) sendln
     } ifelse
    (<INPUT TYPE=submit VALUE="submit">) sendln     (<INPUT TYPE=submit VALUE="submit">) sendln
    [(<textarea name=) httpd.textarea.name     [(<textarea name=) httpd.textarea.name
     ( rows=10 cols="80" wrap="soft"></textarea>)] cat sendln      ( rows=10 cols="80" wrap="soft"></textarea>)] cat sendln
Line 172 
Line 195 
    [(flush)] extension     [(flush)] extension
 } def  } 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<br>) sendln
      (  Check the value of the environmental variable OpenXM_PSTOIMG_TYPE <br>) sendln
      0 sendln
      [(flush)] extension
   } def
   
 /stopclient {  /stopclient {
   [(sm1.socket) (close) [client.fdAndPort 0 get] ] extension message    [(sm1.socket) (close) [client.fdAndPort 0 get] ] extension message
 } def  } def
Line 267 
Line 301 
         ss i (,) put          ss i (,) put
       } {  } ifelse        } {  } ifelse
     } for      } for
     ss message      httpd.debug { ss message } {  } ifelse
     [ ss to_records pop] /arg1 set      [ ss to_records pop] /arg1 set
   ] pop    ] pop
   popVariables    popVariables
Line 301 
Line 335 
   arg1    arg1
 } def  } def
   
 %% remove GET /?msg=  %% remove GET /?msg= or msg=
 /removeGET {  /removeGET {
   /arg1 set    /arg1 set
   [/in-removeGET /s /s2 /i /j /i0    [/in-removeGET /s /s2 /i /j /i0
    /tname     /tname  /nnn /sta
   ] pushVariables    ] pushVariables
   [    [
      /s arg1 def       /s arg1 def
      /httpd.textarea.valid 1 def       /httpd.textarea.valid 0 def
      s 1 copy /s2 set       s 1 copy /s2 set
      s (array) dc /s set       s (array) dc /s set
   
        /sta 0 def
   
        %% In case of POST, remove the HTTP header. cf. trouble for NS 6.0
        s length 4 gt {
          [s 0 get s 1 get s 2 get s 3 get] (POST) (array) dc eq {
             0 1 s length 4 sub {
                /i0 set
                /sta i0 def
                [ s i0 get  s i0 1 add get ] [ 10 10 ] eq
                [ s i0 get  s i0 1 add get s i0 2 add get s i0 3 add get]
                [ 13 10 13 10] eq or
                { exit } { } ifelse
             } for
           }{ } ifelse
        } { } ifelse
        (sta=) messagen sta message
        /nnn httpd.textarea.name.aaa length 6 sub def
   
      /tname  [  ] def       /tname  [  ] def
      0 1 s length 1 sub {       sta 1 s length 1 sub {
        /i0 set         /i0 set
        s i0 get 61 eq {  %% 61 is =         s i0 get 61 eq {  %% 61 is =
          i0 1 add /i0 set           i0 1 add /i0 set
          tname message  
          httpd.textarea.name.aaa message           [
             << tname length 1 sub  >> -1
             << tname length nnn sub >> dup 0 ge { } { pop 0 } ifelse
             {
                /i set
                tname i get
             } for
            ] reverse /tname set
            (GET /?) (array) dc tname join /tname set
   
            httpd.debug { httpd.textarea.name.aaa message } {  } ifelse
          tname httpd.textarea.name.aaa eq {           tname httpd.textarea.name.aaa eq {
            /httpd.textarea.valid 1 def             /httpd.textarea.valid 1 def
          } {           } {
            /httpd.textarea.valid 0 def             /httpd.textarea.valid 0 def
              tname message
              httpd.textarea.name.aaa { (string) dc } map cat message
            (Warning: got an invalid name for the text field.) message             (Warning: got an invalid name for the text field.) message
          } ifelse           } ifelse
          exit           exit
Line 335 
Line 399 
      i0 1 s length 1 sub {       i0 1 s length 1 sub {
        /i set         /i set
        s2 j << s i get (string) dc >> put         s2 j << s i get (string) dc >> put
          j s2 length 1 sub lt { s2 j 1 add ( ) put } { } ifelse
          %% might cause a BUG. It should be improved.
        j 1 add /j set         j 1 add /j set
      } for       } for
      /arg1 s2 def       /arg1 s2 def
Line 407 
Line 473 
   ] pop    ] pop
   popVariables    popVariables
   arg1    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
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.12

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>