Update liburcu, add libedit and update knotlilik-openwrt-22.03
@ -0,0 +1,54 @@ | |||
# | |||
# Copyright (C) 2016 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz> | |||
# | |||
# This is free software, licensed under the GNU General Public License v2. | |||
# See /LICENSE for more information. | |||
# | |||
include $(TOPDIR)/rules.mk | |||
PKG_NAME:=libedit | |||
PKG_VERSION:=20150325-3.1 | |||
PKG_RELEASE:=1 | |||
PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz> | |||
PKG_LICENSE:=BSD-3-Clause | |||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | |||
PKG_SOURCE_URL:=http://thrysoee.dk/editline/ | |||
PKG_MD5SUM:=43cdb5df3061d78b5e9d59109871b4f6 | |||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) | |||
PKG_INSTALL:=1 | |||
include $(INCLUDE_DIR)/package.mk | |||
define Package/libedit | |||
SECTION:=libs | |||
CATEGORY:=Libraries | |||
TITLE:=BSD editline and history library | |||
URL:=http://thrysoee.dk/editline/ | |||
DEPENDS:=+libncurses | |||
endef | |||
define Package/libedit/description | |||
Generic line editing, history, and tokenization functions similar to GNU Readline. | |||
endef | |||
define Build/InstallDev | |||
$(INSTALL_DIR) $(1)/usr/include | |||
$(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/ | |||
$(INSTALL_DIR) $(1)/usr/include/editline | |||
$(CP) $(PKG_INSTALL_DIR)/usr/include/editline/*.h $(1)/usr/include/editline/ | |||
$(INSTALL_DIR) $(1)/usr/lib | |||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libedit.{a,so*} $(1)/usr/lib/ | |||
endef | |||
define Package/libedit/install | |||
$(INSTALL_DIR) $(1)/usr/lib | |||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libedit.so.* $(1)/usr/lib/ | |||
endef | |||
$(eval $(call BuildPackage,libedit)) |
@ -0,0 +1,15 @@ | |||
diff --git a/src/contrib/files.c b/src/contrib/files.c | |||
index 8aee482..12f36ca 100644 | |||
--- a/src/contrib/files.c | |||
+++ b/src/contrib/files.c | |||
@@ -24,6 +24,10 @@ | |||
#include <sys/stat.h> | |||
#include <unistd.h> | |||
+#ifndef O_NOFOLLOW | |||
+#define O_NOFOLLOW 0 | |||
+#endif | |||
+ | |||
static bool special_name(const char *name) | |||
{ | |||
return strcmp(name, ".") == 0 || strcmp(name, "..") == 0; |
@ -1,15 +0,0 @@ | |||
diff --git a/libtap/tap/files.c b/libtap/tap/files.c | |||
index 0c24075..d33db6c 100644 | |||
--- a/libtap/tap/files.c | |||
+++ b/libtap/tap/files.c | |||
@@ -27,6 +27,10 @@ | |||
#include <sys/types.h> | |||
#include <unistd.h> | |||
+#ifndef O_NOFOLLOW | |||
+#define O_NOFOLLOW 0 | |||
+#endif | |||
+ | |||
char *test_mkdtemp(void) | |||
{ | |||
char *tmpdir = getenv("TMPDIR"); |
@ -0,0 +1,37 @@ | |||
diff --git a/src/knot/conf/base.c b/src/knot/conf/base.c | |||
index 9a0a655..e4721ad 100644 | |||
--- a/src/knot/conf/base.c | |||
+++ b/src/knot/conf/base.c | |||
@@ -101,6 +101,10 @@ void conf_refresh_hostname( | |||
free(conf->hostname); | |||
conf->hostname = sockaddr_hostname(); | |||
+ if (conf->hostname == NULL) { | |||
+ // Empty hostname fallback, NULL cannot be passed to strlen! | |||
+ conf->hostname = strdup(""); | |||
+ } | |||
} | |||
static void init_cache( | |||
@@ -206,7 +210,7 @@ int conf_new( | |||
// Cache the current hostname. | |||
if (!(flags & CONF_FNOHOSTNAME)) { | |||
- out->hostname = sockaddr_hostname(); | |||
+ conf_refresh_hostname(out); | |||
} | |||
// Initialize cached values. | |||
diff --git a/src/knot/modules/dnstap.c b/src/knot/modules/dnstap.c | |||
index 890663d..b60c1ca 100644 | |||
--- a/src/knot/modules/dnstap.c | |||
+++ b/src/knot/modules/dnstap.c | |||
@@ -241,7 +241,7 @@ int dnstap_load(struct query_plan *plan, struct query_module *self, | |||
} else { | |||
ctx->identity = sockaddr_hostname(); | |||
} | |||
- ctx->identity_len = strlen(ctx->identity); | |||
+ ctx->identity_len = (ctx->identity != NULL) ? strlen(ctx->identity) : 0; | |||
// Set version. | |||
val = conf_mod_get(self->config, MOD_VERSION, self->id); |