From 013b079f2ed5a9a5c36d72ea5ec5c6ab2a32392e Mon Sep 17 00:00:00 2001
From: Daniel Salzman <daniel.salzman@nic.cz>
Date: Thu, 3 Dec 2015 14:06:43 +0100
Subject: [PATCH] contrib: move base64 and base32hex from internal

---
 Knot.files                                    |  8 ++++----
 src/Makefile.am                               |  8 ++++----
 src/{libknot/internal => contrib}/base32hex.c |  3 +--
 src/{libknot/internal => contrib}/base32hex.h | 16 +++++++---------
 src/{libknot/internal => contrib}/base64.c    |  3 +--
 src/{libknot/internal => contrib}/base64.h    | 16 +++++++---------
 src/knot/dnssec/nsec3-chain.c                 |  2 +-
 src/knot/dnssec/zone-nsec.c                   |  2 +-
 src/knot/zone/semantic-check.c                |  2 +-
 src/libknot/binary.c                          |  2 +-
 src/libknot/rrset-dump.c                      |  4 ++--
 src/libknot/yparser/yptrafo.c                 |  2 +-
 tests/base32hex.c                             |  2 +-
 tests/base64.c                                |  2 +-
 14 files changed, 33 insertions(+), 39 deletions(-)
 rename src/{libknot/internal => contrib}/base32hex.c (99%)
 rename src/{libknot/internal => contrib}/base32hex.h (92%)
 rename src/{libknot/internal => contrib}/base64.c (99%)
 rename src/{libknot/internal => contrib}/base64.h (92%)

diff --git a/Knot.files b/Knot.files
index e020f4c724..2d5c9f570b 100644
--- a/Knot.files
+++ b/Knot.files
@@ -31,6 +31,10 @@ libtap/tap/float.h
 libtap/tap/macros.h
 samples/Makefile.am
 src/Makefile.am
+src/contrib/base32hex.c
+src/contrib/base32hex.h
+src/contrib/base64.c
+src/contrib/base64.h
 src/contrib/endian.h
 src/contrib/getline.c
 src/contrib/getline.h
@@ -353,10 +357,6 @@ src/libknot/dnssec/rrset-sign.c
 src/libknot/dnssec/rrset-sign.h
 src/libknot/errcode.c
 src/libknot/errcode.h
-src/libknot/internal/base32hex.c
-src/libknot/internal/base32hex.h
-src/libknot/internal/base64.c
-src/libknot/internal/base64.h
 src/libknot/internal/consts.h
 src/libknot/internal/errcode.c
 src/libknot/internal/errcode.h
diff --git a/src/Makefile.am b/src/Makefile.am
index 7094f4703e..90d1a107b0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -24,6 +24,8 @@ AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
 
 libcontrib_ladir = $(includedir)
 nobase_libcontrib_la_HEADERS =			\
+	contrib/base32hex.h			\
+	contrib/base64.h			\
 	contrib/endian.h			\
 	contrib/getline.h			\
 	contrib/print.h				\
@@ -74,8 +76,6 @@ nobase_libknot_la_HEADERS =			\
 
 libknot_internal_ladir = $(includedir)
 nobase_libknot_internal_la_HEADERS = 		\
-	libknot/internal/base32hex.h		\
-	libknot/internal/base64.h		\
 	libknot/internal/consts.h		\
 	libknot/internal/errcode.h		\
 	libknot/internal/hhash.h		\
@@ -101,6 +101,8 @@ nobase_libknot_yparser_la_HEADERS = 		\
 
 # dynamic: libknot sources
 libcontrib_la_SOURCES = 			\
+	contrib/base32hex.c			\
+	contrib/base64.c			\
 	contrib/getline.c			\
 	contrib/print.c				\
 	contrib/string.c			\
@@ -145,8 +147,6 @@ libknot_yparser_la_SOURCES = 			\
 	$(nobase_libknot_yparser_la_HEADERS)
 
 libknot_internal_la_SOURCES = 			\
-	libknot/internal/base32hex.c		\
-	libknot/internal/base64.c		\
 	libknot/internal/errcode.c		\
 	libknot/internal/hhash.c		\
 	libknot/internal/lists.c		\
diff --git a/src/libknot/internal/base32hex.c b/src/contrib/base32hex.c
similarity index 99%
rename from src/libknot/internal/base32hex.c
rename to src/contrib/base32hex.c
index 0ee62252f6..a0fc999f0e 100644
--- a/src/libknot/internal/base32hex.c
+++ b/src/contrib/base32hex.c
@@ -14,8 +14,7 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "libknot/internal/macros.h"
-#include "libknot/internal/base32hex.h"
+#include "contrib/base32hex.h"
 #include "libknot/internal/errcode.h"
 
 #include <stdlib.h>
diff --git a/src/libknot/internal/base32hex.h b/src/contrib/base32hex.h
similarity index 92%
rename from src/libknot/internal/base32hex.h
rename to src/contrib/base32hex.h
index 8b04e0c42a..384ffcb842 100644
--- a/src/libknot/internal/base32hex.h
+++ b/src/contrib/base32hex.h
@@ -14,22 +14,20 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 /*!
- * \file base32hex.h
- *
- * \author Daniel Salzman <daniel.salzman@nic.cz>
+ * \file
  *
  * \brief Base32hex implementation (RFC 4648).
  *
  * \note Input Base32hex string can contain a-v characters. These characters
  *       are considered as A-V equivalent.
  *
- * \addtogroup common_lib
+ * \addtogroup contrib
  * @{
  */
 
 #pragma once
 
-#include <stdint.h>			// uint8_t
+#include <stdint.h>
 
 /*!
  * \brief Encodes binary data using Base32hex.
@@ -43,7 +41,7 @@
  * \param out_len	Size of output buffer.
  *
  * \retval >=0		length of output string.
- * \retval errcode	if error.
+ * \retval KNOT_E*	if error.
  */
 int32_t base32hex_encode(const uint8_t  *in,
                          const uint32_t in_len,
@@ -63,7 +61,7 @@ int32_t base32hex_encode(const uint8_t  *in,
  * \param out		Output data buffer.
  *
  * \retval >=0		length of output string.
- * \retval errcode	if error.
+ * \retval KNOT_E*	if error.
  */
 int32_t base32hex_encode_alloc(const uint8_t  *in,
                                const uint32_t in_len,
@@ -82,7 +80,7 @@ int32_t base32hex_encode_alloc(const uint8_t  *in,
  * \param out_len	Size of output buffer.
  *
  * \retval >=0		length of output data.
- * \retval errcode	if error.
+ * \retval KNOT_E*	if error.
  */
 int32_t base32hex_decode(const uint8_t  *in,
                          const uint32_t in_len,
@@ -103,7 +101,7 @@ int32_t base32hex_decode(const uint8_t  *in,
  * \param out		Output data buffer.
  *
  * \retval >=0		length of output data.
- * \retval errcode	if error.
+ * \retval KNOT_E*	if error.
  */
 int32_t base32hex_decode_alloc(const uint8_t  *in,
                                const uint32_t in_len,
diff --git a/src/libknot/internal/base64.c b/src/contrib/base64.c
similarity index 99%
rename from src/libknot/internal/base64.c
rename to src/contrib/base64.c
index d8b12e31e5..2a1641a49e 100644
--- a/src/libknot/internal/base64.c
+++ b/src/contrib/base64.c
@@ -14,8 +14,7 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "libknot/internal/macros.h"
-#include "libknot/internal/base64.h"
+#include "contrib/base64.h"
 #include "libknot/internal/errcode.h"
 
 #include <stdlib.h>
diff --git a/src/libknot/internal/base64.h b/src/contrib/base64.h
similarity index 92%
rename from src/libknot/internal/base64.h
rename to src/contrib/base64.h
index c74b7bf0fd..ebe89a6ba4 100644
--- a/src/libknot/internal/base64.h
+++ b/src/contrib/base64.h
@@ -14,19 +14,17 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 /*!
- * \file base64.h
- *
- * \author Daniel Salzman <daniel.salzman@nic.cz>
+ * \file
  *
  * \brief Base64 implementation (RFC 4648).
  *
- * \addtogroup common_lib
+ * \addtogroup contrib
  * @{
  */
 
 #pragma once
 
-#include <stdint.h>			// uint8_t
+#include <stdint.h>
 
 /*!
  * \brief Encodes binary data using Base64.
@@ -40,7 +38,7 @@
  * \param out_len	Size of output buffer.
  *
  * \retval >=0		length of output string.
- * \retval errcode	if error.
+ * \retval KNOT_E*	if error.
  */
 int32_t base64_encode(const uint8_t  *in,
                       const uint32_t in_len,
@@ -60,7 +58,7 @@ int32_t base64_encode(const uint8_t  *in,
  * \param out		Output data buffer.
  *
  * \retval >=0		length of output string.
- * \retval errcode	if error.
+ * \retval KNOT_E*	if error.
  */
 int32_t base64_encode_alloc(const uint8_t  *in,
                             const uint32_t in_len,
@@ -79,7 +77,7 @@ int32_t base64_encode_alloc(const uint8_t  *in,
  * \param out_len	Size of output buffer.
  *
  * \retval >=0		length of output data.
- * \retval errcode	if error.
+ * \retval KNOT_E*	if error.
  */
 int32_t base64_decode(const uint8_t  *in,
                       const uint32_t in_len,
@@ -100,7 +98,7 @@ int32_t base64_decode(const uint8_t  *in,
  * \param out		Output data buffer.
  *
  * \retval >=0		length of output data.
- * \retval errcode	if error.
+ * \retval KNOT_E*	if error.
  */
 int32_t base64_decode_alloc(const uint8_t  *in,
                             const uint32_t in_len,
diff --git a/src/knot/dnssec/nsec3-chain.c b/src/knot/dnssec/nsec3-chain.c
index 3bcb680d4e..c8e7c468e0 100644
--- a/src/knot/dnssec/nsec3-chain.c
+++ b/src/knot/dnssec/nsec3-chain.c
@@ -17,7 +17,6 @@
 #include <assert.h>
 
 #include "dnssec/nsec.h"
-#include "libknot/internal/base32hex.h"
 #include "libknot/internal/macros.h"
 #include "libknot/internal/wire_ctx.h"
 #include "knot/dnssec/nsec3-chain.h"
@@ -29,6 +28,7 @@
 #include "knot/dnssec/nsec-chain.h"
 #include "knot/dnssec/zone-sign.h"
 #include "knot/dnssec/zone-nsec.h"
+#include "contrib/base32hex.h"
 
 /* - NSEC3 node comparison -------------------------------------------------- */
 
diff --git a/src/knot/dnssec/zone-nsec.c b/src/knot/dnssec/zone-nsec.c
index 5d8a564b8f..88fd3f8101 100644
--- a/src/knot/dnssec/zone-nsec.c
+++ b/src/knot/dnssec/zone-nsec.c
@@ -22,7 +22,6 @@
 
 #include "dnssec/error.h"
 #include "dnssec/nsec.h"
-#include "libknot/internal/base32hex.h"
 #include "libknot/descriptor.h"
 #include "libknot/packet/wire.h"
 #include "libknot/rrtype/nsec3.h"
@@ -33,6 +32,7 @@
 #include "knot/dnssec/zone-sign.h"
 #include "knot/zone/contents.h"
 #include "knot/zone/zone-diff.h"
+#include "contrib/base32hex.h"
 
 /*!
  * \brief Deletes NSEC3 chain if NSEC should be used.
diff --git a/src/knot/zone/semantic-check.c b/src/knot/zone/semantic-check.c
index 5ed08d9c91..9aca0434e3 100644
--- a/src/knot/zone/semantic-check.c
+++ b/src/knot/zone/semantic-check.c
@@ -27,8 +27,8 @@
 #include "knot/dnssec/zone-nsec.h"
 #include "libknot/libknot.h"
 #include "libknot/dnssec/rrset-sign.h"
-#include "libknot/internal/base32hex.h"
 #include "libknot/internal/mempattern.h"
+#include "contrib/base32hex.h"
 
 static char *error_messages[(-ZC_ERR_UNKNOWN) + 1] = {
 	[-ZC_ERR_MISSING_SOA] =
diff --git a/src/libknot/binary.c b/src/libknot/binary.c
index 10a8279360..062dd1f9b9 100644
--- a/src/libknot/binary.c
+++ b/src/libknot/binary.c
@@ -19,8 +19,8 @@
 
 #include "libknot/binary.h"
 #include "libknot/errcode.h"
-#include "libknot/internal/base64.h"
 #include "libknot/internal/macros.h"
+#include "contrib/base64.h"
 #include "contrib/string.h"
 
 _public_
diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c
index 116c834bc0..4f9d67d9ef 100644
--- a/src/libknot/rrset-dump.c
+++ b/src/libknot/rrset-dump.c
@@ -31,11 +31,11 @@
 #include "libknot/consts.h"
 #include "libknot/descriptor.h"
 #include "libknot/errcode.h"
-#include "libknot/internal/base64.h"
-#include "libknot/internal/base32hex.h"
 #include "libknot/internal/macros.h"
 #include "libknot/internal/utils.h"
 #include "libknot/internal/wire_ctx.h"
+#include "contrib/base32hex.h"
+#include "contrib/base64.h"
 
 #define TAB_WIDTH		8
 #define BLOCK_WIDTH		40
diff --git a/src/libknot/yparser/yptrafo.c b/src/libknot/yparser/yptrafo.c
index d39838a8aa..e232e348cb 100644
--- a/src/libknot/yparser/yptrafo.c
+++ b/src/libknot/yparser/yptrafo.c
@@ -22,9 +22,9 @@
 
 #include "libknot/yparser/yptrafo.h"
 #include "libknot/internal/macros.h"
-#include "libknot/internal/base64.h"
 #include "libknot/internal/sockaddr.h"
 #include "libknot/libknot.h"
+#include "contrib/base64.h"
 
 enum {
 	UNIT_BYTE = 'B',
diff --git a/tests/base32hex.c b/tests/base32hex.c
index 442a82988f..3e1341218d 100644
--- a/tests/base32hex.c
+++ b/tests/base32hex.c
@@ -20,7 +20,7 @@
 #include <tap/basic.h>
 
 #include "libknot/libknot.h"
-#include "libknot/internal/base32hex.h"
+#include "contrib/base32hex.h"
 #include "contrib/openbsd/strlcpy.h"
 
 #define BUF_LEN			256
diff --git a/tests/base64.c b/tests/base64.c
index 6b680e3615..2580220a2d 100644
--- a/tests/base64.c
+++ b/tests/base64.c
@@ -20,7 +20,7 @@
 #include <tap/basic.h>
 
 #include "libknot/libknot.h"
-#include "libknot/internal/base64.h"
+#include "contrib/base64.h"
 #include "contrib/openbsd/strlcpy.h"
 
 #define BUF_LEN			256
-- 
GitLab