summaryrefslogtreecommitdiff
path: root/olsrd/patches/600-add-ubus-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'olsrd/patches/600-add-ubus-support.patch')
-rw-r--r--olsrd/patches/600-add-ubus-support.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/olsrd/patches/600-add-ubus-support.patch b/olsrd/patches/600-add-ubus-support.patch
new file mode 100644
index 0000000..c43e78d
--- /dev/null
+++ b/olsrd/patches/600-add-ubus-support.patch
@@ -0,0 +1,60 @@
+--- a/src/scheduler.c
++++ b/src/scheduler.c
+@@ -59,6 +59,8 @@
+ #include <assert.h>
+ #include <time.h>
+
++#include "ubus.h"
++
+ #ifdef __MACH__
+ #include "mach/clock_gettime.h"
+ #endif
+@@ -363,6 +365,8 @@ poll_sockets(void)
+ }
+ OLSR_FOR_ALL_SOCKETS_END(entry);
+
++ hfd = olsrd_ubus_add_read_sock(&ibits, hfd);
++
+ /* Running select on the FD set */
+ do {
+ n = olsr_select(hfd, fdsets & SP_PR_READ ? &ibits : NULL, fdsets & SP_PR_WRITE ? &obits : NULL, NULL, &tvp);
+@@ -395,6 +399,7 @@ poll_sockets(void)
+ }
+ }
+ OLSR_FOR_ALL_SOCKETS_END(entry);
++ olsrd_ubus_receive(&ibits);
+ }
+
+ static void
+--- a/src/main.c
++++ b/src/main.c
+@@ -74,6 +74,8 @@
+ #include "lock_file.h"
+ #include "cli.h"
+
++#include "ubus.h"
++
+ #if defined(__GLIBC__) && defined(__linux__) && !defined(__ANDROID__) && !defined(__UCLIBC__)
+ #define OLSR_HAVE_EXECINFO_H
+ #endif
+@@ -771,6 +773,9 @@ int main(int argc, char *argv[]) {
+ signal(SIGUSR2, SIG_IGN);
+ #endif /* _WIN32 */
+
++ /* Adding ubus */
++ olsrd_add_ubus();
++
+ /* Starting scheduler */
+ olsr_scheduler();
+
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -252,7 +252,7 @@ else
+ ifeq ($(OS),win32)
+ LDFLAGS += -Wl,-export-all-symbols
+ else
+- LDFLAGS += -Wl,-export-dynamic
++ LDFLAGS += -Wl,-export-dynamic,-lubus,-lubox
+ endif
+ ifeq ($(NORPATH),0)
+ LDFLAGS += -Wl,-rpath,$(LIBDIR)