blob: b6f009c7c7cacf777cc40ab50dc8af4209358dfa [file] [log] [blame]
From 07d9434867adf70d7efca532ca67d842f72ee181 Mon Sep 17 00:00:00 2001
From: Peter Qiu <zqiu@chromium.org>
Date: Wed, 27 May 2015 15:58:00 -0700
Subject: [PATCH] Add ability to disable hook scripts
This allow dhcpcd to be installed without hook scripts and bypassing
the hook script processing code.
---
Makefile | 10 +++++++---
configure | 8 ++++++++
script-stub.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 64 insertions(+), 3 deletions(-)
create mode 100644 script-stub.c
diff --git a/Makefile b/Makefile
index f277750..e52e7cc 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
PROG= dhcpcd
SRCS= common.c control.c dhcpcd.c duid.c eloop.c
-SRCS+= if.c if-options.c script.c rpc-stub.c
+SRCS+= if.c if-options.c rpc-stub.c
SRCS+= dhcp-common.c
CFLAGS?= -O2
@@ -36,7 +36,11 @@ CLEANFILES+= dhcpcd-run-hooks
FILES= dhcpcd.conf
FILESDIR= ${SYSCONFDIR}
-SUBDIRS= dhcpcd-hooks ${MKDIRS}
+SUBDIRS= ${MKDIRS}
+
+ifeq ($(HOOK_SUPPORT),yes)
+SUBDIRS+= dhcpcd-hooks
+endif
SED_RUNDIR= -e 's:@RUNDIR@:${RUNDIR}:g'
SED_DBDIR= -e 's:@DBDIR@:${DBDIR}:g'
@@ -114,7 +118,7 @@ _scriptsinstall: ${SCRIPTS}
${INSTALL} -d ${DESTDIR}${SCRIPTSDIR}
${INSTALL} -m ${BINMODE} ${SCRIPTS} ${DESTDIR}${SCRIPTSDIR}
-proginstall: _proginstall _scriptsinstall ${EMBEDDEDINSTALL}
+proginstall: _proginstall ${SCRIPTSINSTALL} ${EMBEDDEDINSTALL}
for x in ${SUBDIRS}; do cd $$x; ${MAKE} $@; cd ..; done
_maninstall: ${MAN5} ${MAN8}
diff --git a/configure b/configure
index b13c232..0d80876 100755
--- a/configure
+++ b/configure
@@ -406,6 +406,14 @@ if [ -z "$INET6" -o "$INET6" = yes ]; then
echo "DHCPCD_SRCS+= ipv6.c ipv6nd.c dhcp6.c" >>$CONFIG_MK
fi
+if [ -z "$HOOKSCRIPTS" ]; then
+ echo "DHCPCD_SRCS+= script-stub.c" >>$CONFIG_MK
+else
+ echo "HOOK_SUPPORT= yes" >>$CONFIG_MK
+ echo "SCRIPTSINSTALL= _scriptsinstall" >>$CONFIG_MK
+ echo "DHCPCD_SRCS+= script.c" >>$CONFIG_MK
+fi
+
echo "Using compiler .. $CC"
# Add CPPFLAGS and CFLAGS to CC for testing features
XCC="$CC `$SED -n -e 's/CPPFLAGS+=*\(.*\)/\1/p' $CONFIG_MK`"
diff --git a/script-stub.c b/script-stub.c
new file mode 100644
index 0000000..ed2a474
--- /dev/null
+++ b/script-stub.c
@@ -0,0 +1,49 @@
+/*
+ * dhcpcd - DHCP client daemon
+ * Copyright (c) 2006-2015 Roy Marples <roy@marples.name>
+ * All rights reserved
+
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "common.h"
+#include "script.h"
+
+void
+if_printoptions(void)
+{
+ /* Stub implementation. */
+}
+
+int
+send_interface(struct fd_list *fd, const struct interface *ifp)
+{
+ /* Stub implementation. */
+ return 0;
+}
+
+int
+script_runreason(const struct interface *ifp, const char *reason)
+{
+ /* Stub implementation. */
+ return 0;
+}
--
2.2.0.rc0.207.ga3a616c