1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#include "internal.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",
"NULL transfer encoding hash output buffer",
"transfer encoding hash output buffer is too small",
};
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;
}
|