diff options
author | Daniel Danzberger <daniel@dd-wrt.com> | 2019-12-05 17:51:58 +0100 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2019-12-07 15:00:12 +0100 |
commit | fef6d3d311ac45c662c01e0ebd9cb0f6c8d7145c (patch) | |
tree | 613c645b2f79e6e579cbd5f8ce2462f15137b0cb | |
parent | 3b3e368dead01979e985cb167873fe9868b15d19 (diff) | |
download | uclient-fef6d3d311ac45c662c01e0ebd9cb0f6c8d7145c.tar.gz |
uclient: Add string error function
This add's the uclient_strerror function, which resolves and error code
to a string message.
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
-rw-r--r-- | uclient.c | 20 | ||||
-rw-r--r-- | uclient.h | 2 |
2 files changed, 22 insertions, 0 deletions
@@ -422,3 +422,23 @@ void __hidden uclient_backend_reset_state(struct uclient *cl) cl->error_code = 0; uloop_timeout_cancel(&cl->timeout); } + +const char * uclient_strerror(unsigned err) +{ + switch (err) { + case UCLIENT_ERROR_UNKNOWN: + return "unknown error"; + case UCLIENT_ERROR_CONNECT: + return "connect failed"; + case UCLIENT_ERROR_TIMEDOUT: + return "timeout"; + case UCLIENT_ERROR_SSL_INVALID_CERT: + return "ssl invalid cert"; + case UCLIENT_ERROR_SSL_CN_MISMATCH: + return "ssl cn mismatch"; + case UCLIENT_ERROR_MISSING_SSL_CONTEXT: + return "missing ssl context"; + default: + return "invalid error code"; + } +} @@ -36,6 +36,7 @@ enum uclient_error_code { UCLIENT_ERROR_SSL_INVALID_CERT, UCLIENT_ERROR_SSL_CN_MISMATCH, UCLIENT_ERROR_MISSING_SSL_CONTEXT, + __UCLIENT_ERROR_MAX }; union uclient_addr { @@ -126,5 +127,6 @@ int uclient_http_redirect(struct uclient *cl); int uclient_http_set_ssl_ctx(struct uclient *cl, const struct ustream_ssl_ops *ops, struct ustream_ssl_ctx *ctx, bool require_validation); int uclient_http_set_address_family(struct uclient *cl, int af); +const char *uclient_strerror(unsigned err); #endif |