diff options
author | Paul Duncan <pabs@pablotron.org> | 2016-08-28 00:30:02 -0400 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2016-08-28 00:30:02 -0400 |
commit | 9315bbfd0f9e51da5438d29681cab6f9a6533d89 (patch) | |
tree | f02b70f56196e57be7086333b321e9cf012ac9ef /error.c | |
parent | 1bc717dc54b9964e7c62082b34d2d74e3daaa6a6 (diff) | |
download | libfhp-9315bbfd0f9e51da5438d29681cab6f9a6533d89.tar.bz2 libfhp-9315bbfd0f9e51da5438d29681cab6f9a6533d89.zip |
split up fhp.c
Diffstat (limited to 'error.c')
-rw-r--r-- | error.c | 50 |
1 files changed, 50 insertions, 0 deletions
@@ -0,0 +1,50 @@ +#include <string.h> +#include "fhp/fhp.h" + +// +// error functions +// + +static const char * +fhp_errors[] = { + "OK", + "callback error", + "bad state", + "invalid character", + "invalid character in HTTP method", + "invalid character in HTTP URL", + "invalid percent-encoded character in HTTP URL", + "invalid character in HTTP version", + "invalid character after carriage return", + "invalid character in HTTP header name", + "invalid error code", + "buffer too small", + "invalid body type", + "too many transfer encodings", + "invalid character in transfer encoding name", + "invalid character in transfer encoding", + "bad transfer encoding state", + "transfer encoding parser already done", +}; + +fhp_err_t +fhp_strerror( + fhp_err_t err, + char * const buf, + size_t len +) { + // check error code + if (err >= FHP_ERR_LAST) + return FHP_ERR_INVALID_ERROR; + + // check buffer size + size_t err_len = strlen(fhp_errors[err]) + 1; + if (len < err_len) + return FHP_ERR_BUFFER_TOO_SMALL; + + // copy string + memcpy(buf, fhp_errors[err], err_len); + + // return success + return FHP_OK; +} |