home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-07-25 | 1.7 KB | 69 lines | [TEXT/Moml] |
- (* A very simple cgi echo test. *)
- (* 14May1997 e *)
-
- (* build with:
-
- load "Path";
- load "Process";
-
- val home =
- case Process.getEnv "PATH_TRANSLATED" of
- SOME n => Path.dir n
- | NONE => ":"
- ;
-
- let val base = home ^ "e_SML:cgi:"
- in
- make "default" (home ^ "lib") [] base;
- chDir base;
- link "cgi-echo.image"
- (true,true) (* -g -noheader *)
- (true,"") (* -autolink -P *)
- (home ^ "lib") []
- ["cgi-echo.uo"]
- end;
-
- *)
-
- fun echo _ =
- let open FileSys TextIO Process
- fun maybe_echo s =
- case getEnv s of
- SOME x => output(stdOut, s ^ ": " ^ x ^ "<BR>\r\n")
- | NONE => ()
- fun maybe_echo_list (hd::tl) = (maybe_echo hd; maybe_echo_list tl)
- | maybe_echo_list _ = ()
- fun maybe_echo_post NONE = ()
- | maybe_echo_post (SOME x) =
- (case Int.fromString x of
- NONE => ()
- | SOME i =>
- (output(stdOut, "Input: ");
- output(stdOut, (inputN (stdIn,i)))))
- in
- (* Print the header *)
- output(stdOut, "HTTP/1.0 200 OK\r\n");
- output(stdOut, "MIME-version: 1.0\r\n");
- output(stdOut, "Content-type: text/html\r\n\r\n<P>");
- maybe_echo_list
- ["PATH_TRANSLATED",
- "PATH_INFO",
- "QUERY_STRING",
- "REMOTE_USER",
- "REMOTE_PASS",
- "REQUEST_METHOD",
- "REMOTE_HOST",
- "REMOTE_ADDR",
- "SERVER_NAME",
- "SERVER_PORT",
- "SCRIPT_NAME",
- "HTTP_REFERER",
- "HTTP_USER_AGENT",
- "CONTENT_TYPE",
- "GATEWAY_INTERFACE",
- "CONTENT_LENGTH"];
- maybe_echo_post (getEnv "CONTENT_LENGTH")
- end;
-
- val _ = echo ()
-