[OCaml] Mobile-friendly clone of cgit.
fix suppress internal details in error messages
Store_error and Internal errors now show generic messages instead of leaking internal resolver/store details to the user. Bad_request and Not_found still pass through their specific messages.
lib/handlers.ml
@@ -1,14 +1,19 @@
1
1
(* -*- mode: tuareg; -*- *)
2
2
3
3
let error_response error =
4
Removed:
let status, title =
4
Added:
let status, title, message =
5
5
match error with
6
Removed:
| Resolvers.Bad_request _ -> (`Bad_Request, "Bad request")
7
Removed:
| Resolvers.Not_found _ -> (`Not_Found, "Not found")
8
Removed:
| Resolvers.Store_error _ | Resolvers.Internal _ ->
9
Removed:
(`Internal_Server_Error, "Internal server error")
6
Added:
| Resolvers.Bad_request raw -> (`Bad_Request, "Bad request", raw)
7
Added:
| Resolvers.Not_found raw -> (`Not_Found, "Not found", raw)
8
Added:
| Resolvers.Store_error _ ->
9
Added:
( `Internal_Server_Error,
10
Added:
"Internal server error",
11
Added:
"An unexpected error occurred while reading repository data." )
12
Added:
| Resolvers.Internal _ ->
13
Added:
( `Internal_Server_Error,
14
Added:
"Internal server error",
15
Added:
"An unexpected error occurred." )
10
16
in
11
Removed:
let message = Format.asprintf "%a" Resolvers.pp_error error in
12
17
Views.error_page ~status ~title message
13
18
14
19
let root_title config =