open Printf
open Http_types
+let port = 9999
+
let callback (req: Http_types.request) outchan =
let i = int_of_string (req#param "x") in
- match i with
- | 0 -> output_string outchan "1"
- | x when x > 0 ->
- let data =
- Http_user_agent.get (sprintf "http://127.0.0.1/foo?x=%d" (x - 1))
- in
- output_string outchan (sprintf "%s %d" data x)
- | _ -> assert false
+ let body =
+ match i with
+ | 0 -> "0"
+ | x when x > 0 ->
+ let data =
+ Http_user_agent.get (sprintf "http://127.0.0.1:%d/foo?x=%d"
+ port (x - 1))
+ in
+ sprintf "%s %d" data x
+ | _ -> assert false
+ in
+ Http_daemon.respond ~code:(`Code 200) ~body outchan;
+ close_out outchan (* Http_user_agent relies on EOF, not Content-Length *)
let spec =
{ Http_daemon.default_spec with
callback = callback;
- port = 9999;
+ port = port;
mode = `Thread;
}