(*
OCaml HTTP - do it yourself (fully OCaml) HTTP daemon
- Copyright (C) <2002> Stefano Zacchiroli <zack@cs.unibo.it>
+ Copyright (C) <2002-2004> Stefano Zacchiroli <zack@cs.unibo.it>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*)
-open Printf;;
+open Printf
+open Http_types
let callback req outchan =
- Http_daemon.send_basic_headers ~code:200 outchan;
+ Http_daemon.send_basic_headers ~code:(`Code 200) outchan;
Http_daemon.send_CRLF outchan;
- let (s1, s2, s3, s4) =
- (sprintf "request path = %s\n" req#path),
+ let str =
+ (sprintf "request path = %s\n" req#path) ^
(sprintf "request GET params = %s\n"
(String.concat ";"
- (List.map (fun (h,v) -> String.concat "=" [h;v]) req#params_GET))),
+ (List.map (fun (h,v) -> String.concat "=" [h;v]) req#params_GET))) ^
(sprintf "request POST params = %s\n"
(String.concat ";"
- (List.map (fun (h,v) -> String.concat "=" [h;v]) req#params_POST))),
+ (List.map (fun (h,v) -> String.concat "=" [h;v]) req#params_POST))) ^
(sprintf "request ALL params = %s\n"
(String.concat ";"
- (List.map (fun (h,v) -> String.concat "=" [h;v]) req#params)))
+ (List.map (fun (h,v) -> String.concat "=" [h;v]) req#params))) ^
+ (sprintf "request BODY = '%s'\n" req#body)
in
- output_string outchan (s1 ^ s2 ^ s3 ^ s4);
- prerr_endline (s1 ^ s2 ^ s3 ^ s4)
-in
-print_endline "Starting custom Http_daemon ...";
-flush stdout;
-Http_daemon.start' ~port:9999 callback
+ output_string outchan str
+
+let spec =
+ { Http_daemon.default_spec with
+ callback = callback;
+ port = 9999;
+ }
+
+let _ = Http_daemon.main spec