X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Focaml-http%2Fhttp_parser.ml;h=6f556527a825655a1fc48103308bd4d0840f0f4f;hb=01b6b4ac25266beeb500693d00b65b73aeb91329;hp=7ab21be7f58599914b50d97c309bfa535e552be7;hpb=aa13dc23161864aa272517badddf8d7c3e509ab6;p=helm.git diff --git a/helm/DEVEL/ocaml-http/http_parser.ml b/helm/DEVEL/ocaml-http/http_parser.ml index 7ab21be7f..6f556527a 100644 --- a/helm/DEVEL/ocaml-http/http_parser.ml +++ b/helm/DEVEL/ocaml-http/http_parser.ml @@ -106,6 +106,19 @@ let parse_request_fst_line ic = | _ -> raise (Malformed_request request_line)) with Malformed_URL url -> raise (Malformed_request_URI url) +let parse_response_fst_line ic = + let response_line = generic_input_line ~sep:crlf ~ic in + debug_print (sprintf "HTTP response line (not yet parsed): %s" response_line); + try + (match Pcre.split ~rex:pieces_sep response_line with + | [ version_raw; code_raw; _ ] -> + (version_of_string version_raw, (* method *) + status_of_code (int_of_string code_raw)) (* status *) + | _ -> raise (Malformed_response response_line)) + with + | Malformed_URL _ | Invalid_code _ | Failure "int_of_string" -> + raise (Malformed_response response_line) + let parse_path uri = patch_empty_path (String.concat "/" (Neturl.url_path uri)) let parse_query_get_params uri = try (* act on HTTP encoded URIs *)