aboutsummaryrefslogtreecommitdiff
path: root/src/supplemental/http/http_api.h
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-06-15 12:50:03 -0700
committerGarrett D'Amore <garrett@damore.org>2018-06-15 13:39:29 -0700
commit5ecea06b1f39a93735e8b2f711b125d0b1a84d16 (patch)
tree843c699c3618328856c0b373a4b49b75205bf234 /src/supplemental/http/http_api.h
parent16088417694de3d3300ae8429c20e944128d3f52 (diff)
downloadnng-5ecea06b1f39a93735e8b2f711b125d0b1a84d16.tar.gz
nng-5ecea06b1f39a93735e8b2f711b125d0b1a84d16.tar.bz2
nng-5ecea06b1f39a93735e8b2f711b125d0b1a84d16.zip
fixes #539 Feature request: customizable http error page
Diffstat (limited to 'src/supplemental/http/http_api.h')
-rw-r--r--src/supplemental/http/http_api.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/supplemental/http/http_api.h b/src/supplemental/http/http_api.h
index f1a5c0fa..4b515ca5 100644
--- a/src/supplemental/http/http_api.h
+++ b/src/supplemental/http/http_api.h
@@ -30,6 +30,9 @@ typedef struct nng_http_client nni_http_client;
// These functions are private to the internal framework, and really should
// not be used elsewhere.
+
+extern const char *nni_http_reason(uint16_t);
+
extern int nni_http_req_init(nni_http_req **);
extern void nni_http_req_reset(nni_http_req *);
extern int nni_http_req_get_buf(nni_http_req *, void **, size_t *);
@@ -111,6 +114,11 @@ extern int nni_http_res_set_version(nni_http_res *, const char *);
extern const char *nni_http_res_get_reason(nni_http_res *);
extern int nni_http_res_set_reason(nni_http_res *, const char *);
+// nni_http_res_is_error is true if the status was allocated as part of
+// nni_http_res_alloc_error(). This is a hint to the server to replace
+// the HTML body with customized content if it exists.
+extern bool nni_http_res_is_error(nni_http_res *);
+
extern void nni_http_read(nni_http_conn *, nni_aio *);
extern void nni_http_read_full(nni_http_conn *, nni_aio *);
extern void nni_http_write(nni_http_conn *, nni_aio *);
@@ -170,6 +178,19 @@ extern int nni_http_server_start(nni_http_server *);
// associated with a callback will complete their callback, and then close.
extern void nni_http_server_stop(nni_http_server *);
+// nni_http_server_set_error_page sets an error page for the named status.
+extern int nni_http_server_set_error_page(
+ nni_http_server *, uint16_t, const char *);
+
+// nni_http_server_set_error_page sets an error file for the named status.
+extern int nni_http_server_set_error_file(
+ nni_http_server *, uint16_t, const char *);
+
+// nni_http_server_res_error takes replaces the body of the res with
+// a custom error page previously set for the server, using the status
+// of the res. The res must have the status set first.
+extern int nni_http_server_res_error(nni_http_server *, nni_http_res *);
+
// nni_http_hijack is intended to be called by a handler that wishes to
// take over the processing of the HTTP session -- usually to change protocols
// (such as in the case of websocket). The caller is responsible for obtaining