Browse Source

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>
Daniel Danzberger 4 years ago
parent
commit
fef6d3d311
2 changed files with 22 additions and 0 deletions
  1. 20 0
      uclient.c
  2. 2 0
      uclient.h

+ 20 - 0
uclient.c

@@ -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";
+	}
+}

+ 2 - 0
uclient.h

@@ -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