X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Focaml-http%2Fexamples%2Fhighlander.ml;h=d42445481a84ff7220bac0ffbdacff32c3ce4379;hb=97c2d258a5c524eb5c4b85208899d80751a2c82f;hp=b58d3a6e7358b0b4cd51c97373a145bf1491cd77;hpb=a73d8f7f46dcb03d33417e02b7327a1cd7fc9b6d;p=helm.git diff --git a/helm/DEVEL/ocaml-http/examples/highlander.ml b/helm/DEVEL/ocaml-http/examples/highlander.ml index b58d3a6e7..d42445481 100644 --- a/helm/DEVEL/ocaml-http/examples/highlander.ml +++ b/helm/DEVEL/ocaml-http/examples/highlander.ml @@ -2,7 +2,7 @@ (* OCaml HTTP - do it yourself (fully OCaml) HTTP daemon - Copyright (C) <2002> Stefano Zacchiroli + Copyright (C) <2002-2004> Stefano Zacchiroli 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 @@ -19,36 +19,23 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) -(* almost the same as dump_args.ml, but used to test fast rebinding of the same -port *) - -open Printf;; - -let callback req outchan = - Http_daemon.send_basic_headers ~code:200 outchan; - Http_daemon.send_CRLF outchan; - 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))) ^ - (sprintf "request POST params = %s\n" - (String.concat ";" - (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))) ^ - (sprintf "request BODY = '%s'\n" req#body) - in - output_string outchan str; - prerr_endline str -in -print_endline "Starting custom Http_daemon ..."; -flush stdout; -(* Sys.catch_break true; *) -while true do -(* try *) - Http_daemon.start' ~mode:`Single ~port:9999 callback -(* with Sys.Break -> prerr_endline "RESURRECTION!!!!" *) -done +(* test for fast rebinding of the tcp port *) + +open Printf +open Http_types + +let spec = + { Http_daemon.default_spec with + callback = (fun _ outchan -> Http_daemon.respond ~body:"foo" outchan); + port = 9999; + mode = `Single; + } + +let _ = + Sys.catch_break true; + while true do + try + Http_daemon.main spec; + with Sys.Break -> prerr_endline "RESURRECTION!!!!" + done