]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
add a result code for ENOPROTOOPT, EPROTONOSUPPORT
authorEvan Hunt <each@isc.org>
Wed, 5 Apr 2023 21:05:46 +0000 (14:05 -0700)
committerOndřej Surý <ondrej@isc.org>
Fri, 21 Apr 2023 10:42:10 +0000 (12:42 +0200)
there was no isc_result_t value for invalid protocol errors
that could be returned from libuv.

lib/isc/include/isc/result.h
lib/isc/result.c
lib/isc/uv.c

index ac7273ce52149034348b661f40313c2b2210ef18..215c83aba333b4a228b50fe45f5e2bc6d61f79e8 100644 (file)
@@ -95,6 +95,7 @@ typedef enum isc_result {
        ISC_R_TLSBADPEERCERT, /*%< TLS peer certificate verification failed */
        ISC_R_HTTP2ALPNERROR, /*%< ALPN for HTTP/2 failed */
        ISC_R_DOTALPNERROR,   /*%< ALPN for DoT failed */
+       ISC_R_INVALIDPROTO,   /*%< invalid protocol */
 
        DNS_R_LABELTOOLONG = 1 << 16,
        DNS_R_BADESCAPE,
index b41f760fa453a4c07a1fafe4d09ac13e9c610823..ac55e0bd46f4cfbed3e9539cdfd0c2748ee77bde 100644 (file)
@@ -94,6 +94,7 @@ static const char *description[ISC_R_NRESULTS] = {
        [ISC_R_TLSBADPEERCERT] = "TLS peer certificate verification failed",
        [ISC_R_HTTP2ALPNERROR] = "ALPN for HTTP/2 failed",
        [ISC_R_DOTALPNERROR] = "ALPN for DoT failed",
+       [ISC_R_INVALIDPROTO] = "invalid protocol",
 
        [DNS_R_LABELTOOLONG] = "label too long",
        [DNS_R_BADESCAPE] = "bad escape",
index 79c436247981e7d943a6371f1a630513af0b9052..8b1ef7398e02e2fab8fb55bd060632ac08f62edd 100644 (file)
@@ -87,13 +87,15 @@ isc__uverr2result(int uverr, bool dolog, const char *file, unsigned int line,
                return (ISC_R_MAXSIZE);
        case UV_ENOTSUP:
                return (ISC_R_FAMILYNOSUPPORT);
+       case UV_ENOPROTOOPT:
+       case UV_EPROTONOSUPPORT:
+               return (ISC_R_INVALIDPROTO);
        default:
                if (dolog) {
-                       UNEXPECTED_ERROR(
-                               file, line,
-                               "unable to convert libuv "
-                               "error code in %s to isc_result: %d: %s",
-                               func, uverr, uv_strerror(uverr));
+                       UNEXPECTED_ERROR("unable to convert libuv error code "
+                                        "in %s (%s:%d) to isc_result: %d: %s",
+                                        func, file, line, uverr,
+                                        uv_strerror(uverr));
                }
                return (ISC_R_UNEXPECTED);
        }