]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
lib: Add "hex_byte()" to replace.h
authorVolker Lendecke <vl@samba.org>
Mon, 4 Jan 2021 12:12:30 +0000 (13:12 +0100)
committerJeremy Allison <jra@samba.org>
Fri, 8 Jan 2021 20:31:33 +0000 (20:31 +0000)
This is required in quite a few places, and replace.h has things like
ZERO_STRUCT already, so this is not completely outplaced.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
lib/replace/replace.h

index f7f6b65386985a4225ae88145241f4d01075af17..e08bf7c2e585d157be8241381044e02dc2608fc5 100644 (file)
@@ -977,6 +977,22 @@ bool nss_wrapper_hosts_enabled(void);
 bool socket_wrapper_enabled(void);
 bool uid_wrapper_enabled(void);
 
+static inline bool _hexcharval(char c, uint8_t *val)
+{
+       if ((c >= '0') && (c <= '9')) { *val = c - '0';      return true; }
+       if ((c >= 'a') && (c <= 'f')) { *val = c - 'a' + 10; return true; }
+       if ((c >= 'A') && (c <= 'F')) { *val = c - 'A' + 10; return true; }
+       return false;
+}
+
+static inline bool hex_byte(const char *in, uint8_t *out)
+{
+       uint8_t hi=0, lo=0;
+       bool ok = _hexcharval(in[0], &hi) && _hexcharval(in[1], &lo);
+       *out = (hi<<4)+lo;
+       return ok;
+}
+
 /* Needed for Solaris atomic_add_XX functions. */
 #if defined(HAVE_SYS_ATOMIC_H)
 #include <sys/atomic.h>