let main =
Random.self_init();
export_type := HtmlJscpt;
Sys.set_signal Sys.sigpipe Sys.Signal_ignore;
parse_args();
let config : http_reactor_config =
object
method config_timeout_next_request = 0.4
method config_timeout = 300.0
method config_reactor_synch = `Write
method config_cgi = Netcgi_env.default_config
method config_error_response n = "<html>Error " ^ string_of_int n ^ "</html>"
method config_log_error _ _ _ _ msg =
Printf.printf "Error log: %s\n" msg
method config_max_reqline_length = 256
method config_max_header_length = 32768
method config_max_trailer_length = 32768
method config_limit_pipeline_length = 5
method config_limit_pipeline_size = 250000
method config_announce_server = `Ocamlnet
end in
let master_sock = Unix.socket Unix.PF_INET Unix.SOCK_STREAM 0 in
Unix.setsockopt master_sock Unix.SO_REUSEADDR true;
Unix.bind master_sock (Unix.ADDR_INET(Unix.inet_addr_any, 8765));
Unix.listen master_sock 100;
let tim = Unix.localtime(Unix.time()) in
Printf.printf "----- : Server start at %d:%02d:%02d - %02d/%02d/%d\n"
(tim.Unix.tm_hour) (tim.Unix.tm_min) (tim.Unix.tm_sec)
(tim.Unix.tm_mday) (tim.Unix.tm_mon + 1) (tim.Unix.tm_year + 1900);
Printf.printf "Server : Listening on port 8765\n";
flush stdout;
while true do
try
let conn_sock, _ = Unix.accept master_sock in
Unix.set_nonblock conn_sock;
process_connection config conn_sock srv;
with
Unix.Unix_error(Unix.EINTR,_,_) -> ()
done