]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
kr_rank_test*: avoid code duplication
authorVladimír Čunát <vladimir.cunat@nic.cz>
Mon, 11 Jun 2018 08:14:47 +0000 (10:14 +0200)
committerMarek Vavruša <mvavrusa@cloudflare.com>
Fri, 7 Sep 2018 17:45:21 +0000 (10:45 -0700)
lib/resolve.h

index f5db47c5347341076579868c395f800e0f50863a..8fa3e8aa638926822a0029ee8be88002a74783da 100644 (file)
@@ -121,10 +121,10 @@ enum kr_rank {
 /** Check that a rank value is valid.  Meant for assertions. */
 bool kr_rank_check(uint8_t rank) KR_PURE;
 
-/** Test the presence of any flag/state in a rank, i.e. including KR_RANK_AUTH. */
-static inline bool kr_rank_test(uint8_t rank, uint8_t kr_flag)
+/** kr_rank_test() except that `rank` may be rubbish (don't assert that). */
+static inline bool kr_rank_test_noassert(uint8_t rank, uint8_t kr_flag)
 {
-       assert(kr_rank_check(rank) && kr_rank_check(kr_flag));
+       assert(kr_rank_check(kr_flag));
        if (kr_flag == KR_RANK_AUTH) {
                return rank & KR_RANK_AUTH;
        }
@@ -133,6 +133,13 @@ static inline bool kr_rank_test(uint8_t rank, uint8_t kr_flag)
        return (rank & ~KR_RANK_AUTH) == kr_flag;
 }
 
+/** Test the presence of any flag/state in a rank, i.e. including KR_RANK_AUTH. */
+static inline bool kr_rank_test(uint8_t rank, uint8_t kr_flag)
+{
+       assert(kr_rank_check(rank));
+       return kr_rank_test_noassert(rank, kr_flag);
+}
+
 /** Set the rank state. The _AUTH flag is kept as it was. */
 static inline void kr_rank_set(uint8_t *rank, uint8_t kr_flag)
 {