#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 parser state", "transfer-encoding parser already done", "NULL transfer encoding hash output buffer", "transfer encoding hash output buffer is too small", "invalid character before content-length header value", "invalid character in content-length header value", "invalid character after content-length header value", "content-length parser already done", "bad content-length parser state", "overflow in content-length header value", "invalid character in chunk length value", "invalid character after chunk length value", "overflow in chunk lenth value", "invalid character after chunk body", }; 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; }