]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
configure.ac: (AC_C_CONST, AC_C_INLINE) Check for const and inline
authorErik Rozendaal <erik@NLnetLabs.nl>
Thu, 16 Dec 2004 08:50:59 +0000 (08:50 +0000)
committerErik Rozendaal <erik@NLnetLabs.nl>
Thu, 16 Dec 2004 08:50:59 +0000 (08:50 +0000)
keywords.  (OURCPPFLAGS) New.  (OURCFLAGS) Moved from Makefile.in.

Makefile.in: Removed OURCFLAGS.

util.h: (read_uint16, read_uint32) Copied from NSD.

rr.c: Use read_uint16 and read_uint32.

util.h

diff --git a/util.h b/util.h
index 759496f6485314f807694f7bdbe931af52e5c953..49585e2ec689f9f9f36c168493b856c60961ba3a 100644 (file)
--- a/util.h
+++ b/util.h
 
 #define DEP     printf("DEPRICATED FUNCTION!\n");
 
+/* TODO: is this a good way? */
+/*
+ * Copy data allowing for unaligned accesses in network byte order
+ * (big endian).
+ */
+static inline uint16_t
+read_uint16(const void *src)
+{
+#ifdef ALLOW_UNALIGNED_ACCESSES
+       return ntohs(*(uint16_t *) src);
+#else
+       uint8_t *p = (uint8_t *) src;
+       return ((uint16_t) p[0] << 8) | (uint16_t) p[1];
+#endif
+}
+
+static inline uint32_t
+read_uint32(const void *src)
+{
+#ifdef ALLOW_UNALIGNED_ACCESSES
+       return ntohl(*(uint32_t *) src);
+#else
+       uint8_t *p = (uint8_t *) src;
+       return (((uint32_t) p[0] << 24)
+               | ((uint32_t) p[1] << 16)
+               | ((uint32_t) p[2] << 8)
+               | (uint32_t) p[3]);
+#endif
+}
+
 /* prototypes */
 void    xprintf_rd_field(t_rdata_field *);
 void    xprintf_rr(ldns_rr_type *);