Skip to content
Snippets Groups Projects
Commit 5874e911 authored by Matthias Schiffer's avatar Matthias Schiffer
Browse files

Add some patches to OpenWRT packages

parent 78b42eb1
No related branches found
No related tags found
No related merge requests found
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 12 Jan 2014 00:42:43 +0100
Subject: radvd: update to 1.9.8 and add patch to fix race condition
diff --git a/ipv6/radvd/Makefile b/ipv6/radvd/Makefile
index 571d9de..b14c02b 100644
--- a/ipv6/radvd/Makefile
+++ b/ipv6/radvd/Makefile
@@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=radvd
-PKG_VERSION:=1.9.1
-PKG_RELEASE:=2
+PKG_VERSION:=1.9.8
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://v6web.litech.org/radvd/dist \
http://download.sourcemage.org/mirror
-PKG_MD5SUM:=e807ad7e9a76d46b6133df391385cd31
+PKG_MD5SUM:=7a96a38252c3964ee18bbc1fdeae25fa
PKG_INSTALL:=1
diff --git a/ipv6/radvd/patches/100-silent-netlink-config-reload.patch b/ipv6/radvd/patches/100-silent-netlink-config-reload.patch
index 049d654..313b8cb 100644
--- a/ipv6/radvd/patches/100-silent-netlink-config-reload.patch
+++ b/ipv6/radvd/patches/100-silent-netlink-config-reload.patch
@@ -1,26 +1,26 @@
--- a/netlink.c
+++ b/netlink.c
-@@ -67,7 +67,7 @@ void process_netlink_msg(int sock)
- else {
- dlog(LOG_DEBUG, 3, "%s, ifindex %d, flags is *NOT* running", ifname, ifinfo->ifi_index);
- }
-- reload_config();
-+ reload_config(LOG_DEBUG);
- }
- }
-
+@@ -75,7 +75,7 @@ void process_netlink_msg(int sock)
+ dlog(LOG_DEBUG, 3, "%s, ifindex %d, flags is *NOT* running", ifname, ifinfo->ifi_index);
+ }
+ if (!reloaded) {
+- reload_config();
++ reload_config(LOG_DEBUG);
+ reloaded = 1;
+ }
+ }
--- a/radvd.c
+++ b/radvd.c
@@ -443,7 +443,7 @@ void main_loop(void)
- if (sighup_received)
- {
+
+ if (sighup_received) {
dlog(LOG_INFO, 3, "sig hup received.\n");
- reload_config();
+ reload_config(LOG_INFO);
sighup_received = 0;
}
-@@ -552,11 +552,11 @@ stop_adverts(void)
+@@ -545,11 +545,11 @@ void stop_adverts(void)
}
}
@@ -32,9 +32,9 @@
- flog(LOG_INFO, "attempting to reread config file");
+ flog(loglevel, "attempting to reread config file");
- iface=IfaceList;
- while(iface)
-@@ -626,7 +626,7 @@ void reload_config(void)
+ iface = IfaceList;
+ while (iface) {
+@@ -614,7 +614,7 @@ void reload_config(void)
config_interface();
kickoff_adverts();
@@ -42,10 +42,10 @@
+ flog(loglevel, "resuming normal operation");
}
- void
+ void sighup_handler(int sig)
--- a/radvd.h
+++ b/radvd.h
-@@ -185,7 +185,7 @@ int yylex(void);
+@@ -186,7 +186,7 @@ int yylex(void);
/* radvd.c */
int check_ip6_forwarding(void);
@@ -56,7 +56,7 @@
/* timer.c */
--- a/send.c
+++ b/send.c
-@@ -154,7 +154,7 @@ send_ra(struct Interface *iface, struct
+@@ -143,7 +143,7 @@ int send_ra(struct Interface *iface, str
* reload_config() will kick off new timers anyway. This avoids
* timer list corruption.
*/
diff --git a/ipv6/radvd/patches/200-handle-setup_linklocal_addr-failure.patch b/ipv6/radvd/patches/200-handle-setup_linklocal_addr-failure.patch
new file mode 100644
index 0000000..3f22f76
--- /dev/null
+++ b/ipv6/radvd/patches/200-handle-setup_linklocal_addr-failure.patch
@@ -0,0 +1,78 @@
+diff --git a/device-linux.c b/device-linux.c
+index bbf508d..054937e 100644
+--- a/device-linux.c
++++ b/device-linux.c
+@@ -141,7 +141,13 @@ int setup_linklocal_addr(struct Interface *iface)
+ }
+ }
+
+- flog(LOG_ERR, "no linklocal address configured for %s", iface->Name);
++ if (iface->IgnoreIfMissing)
++ dlog(LOG_DEBUG, 4, "no linklocal address configured for %s", iface->Name);
++ else
++ flog(LOG_ERR, "no linklocal address configured for %s", iface->Name);
++
++ iface->if_index = 0;
++
+ fclose(fp);
+ return (-1);
+ }
+diff --git a/gram.y b/gram.y
+index 9b453a1..3239848 100644
+--- a/gram.y
++++ b/gram.y
+@@ -176,19 +176,33 @@ ifacedef : ifacehead '{' ifaceparams '}' ';'
+ flog(LOG_ERR, "interface %s does not exist", iface->Name);
+ ABORT;
+ }
++
++ iface->HasFailed = 1;
+ }
+- if (update_device_info(iface) < 0)
++ if (update_device_info(iface) < 0) {
+ if (!iface->IgnoreIfMissing)
+- ABORT;
+- if (check_iface(iface) < 0)
++ ABORT;
++
++ iface->HasFailed = 1;
++ }
++ if (check_iface(iface) < 0) {
+ if (!iface->IgnoreIfMissing)
+- ABORT;
+- if (setup_linklocal_addr(iface) < 0)
++ ABORT;
++
++ iface->HasFailed = 1;
++ }
++ if (setup_linklocal_addr(iface) < 0) {
+ if (!iface->IgnoreIfMissing)
+- ABORT;
+- if (setup_allrouters_membership(iface) < 0)
++ ABORT;
++
++ iface->HasFailed = 1;
++ }
++ if (setup_allrouters_membership(iface) < 0) {
+ if (!iface->IgnoreIfMissing)
+- ABORT;
++ ABORT;
++
++ iface->HasFailed = 1;
++ }
+
+ dlog(LOG_DEBUG, 4, "interface definition for %s is ok", iface->Name);
+
+diff --git a/send.c b/send.c
+index 0d7ed5b..d6a3da2 100644
+--- a/send.c
++++ b/send.c
+@@ -124,7 +124,7 @@ int send_ra(struct Interface *iface, struct in6_addr *dest)
+ update_device_info(iface);
+
+ /* First we need to check that the interface hasn't been removed or deactivated */
+- if (check_device(iface) < 0) {
++ if (check_device(iface) < 0 || (iface->if_index == 0 && setup_linklocal_addr(iface) < 0)) {
+ if (iface->IgnoreIfMissing) /* a bit more quiet warning message.. */
+ dlog(LOG_DEBUG, 4, "interface %s does not exist, ignoring the interface", iface->Name);
+ else {
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 12 Jan 2014 00:44:29 +0100
Subject: haveged: start directly after the root partition has been mounted
diff --git a/utils/haveged/files/haveged.init b/utils/haveged/files/haveged.init
index 129d951..2c5be1d 100644
--- a/utils/haveged/files/haveged.init
+++ b/utils/haveged/files/haveged.init
@@ -1,7 +1,7 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2012 OpenWrt.org
-START=98
+START=11
HAVEGED_THRESHOLD=1024
HAVEGED_DCACHE=32
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment