aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/odhcpd
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/odhcpd')
-rw-r--r--package/network/services/odhcpd/Makefile67
-rwxr-xr-xpackage/network/services/odhcpd/files/odhcpd-update5
-rw-r--r--package/network/services/odhcpd/files/odhcpd.defaults13
-rw-r--r--package/network/services/odhcpd/files/odhcpd.init18
4 files changed, 103 insertions, 0 deletions
diff --git a/package/network/services/odhcpd/Makefile b/package/network/services/odhcpd/Makefile
new file mode 100644
index 0000000..0ec4769
--- /dev/null
+++ b/package/network/services/odhcpd/Makefile
@@ -0,0 +1,67 @@
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=odhcpd
+PKG_VERSION:=2015-09-07-1
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=git://github.com/sbyx/odhcpd.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=cb1842c117030e6779f9556cd5d86b1a0ef145d7
+
+PKG_MAINTAINER:=Steven Barth <steven@midlink.org>
+PKG_LICENSE:=GPL-2.0
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+CMAKE_OPTIONS += -DUBUS=1
+
+ifneq ($(CONFIG_PACKAGE_odhcpd_ext_cer_id),0)
+ CMAKE_OPTIONS += -DEXT_CER_ID=$(CONFIG_PACKAGE_odhcpd_ext_cer_id)
+endif
+
+
+define Package/odhcpd
+ SECTION:=net
+ CATEGORY:=Network
+ TITLE:=OpenWrt DHCP/DHCPv6(-PD)/RA Server & Relay
+ DEPENDS:=+libubox +libuci +libubus
+endef
+
+define Package/odhcpd/config
+ config PACKAGE_odhcpd_ext_cer_id
+ int "CER-ID Extension ID (0 = disabled)"
+ depends on PACKAGE_odhcpd
+ default 0
+endef
+
+define Package/odhcpd/description
+ odhcpd is a daemon for serving and relaying IP management protocols to
+ configure clients and downstream routers. It tries to follow the RFC 6204
+ requirements for IPv6 home routers.
+
+ odhcpd provides server services for DHCP, RA, stateless and stateful DHCPv6,
+ prefix delegation and can be used to relay RA, DHCPv6 and NDP between routed
+ (non-bridged) interfaces in case no delegated prefixes are available.
+endef
+
+define Package/odhcpd/install
+ $(INSTALL_DIR) $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/odhcpd $(1)/usr/sbin/
+ $(INSTALL_BIN) ./files/odhcpd-update $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/odhcpd.init $(1)/etc/init.d/odhcpd
+ $(INSTALL_DIR) $(1)/etc/uci-defaults
+ $(INSTALL_BIN) ./files/odhcpd.defaults $(1)/etc/uci-defaults
+endef
+
+$(eval $(call BuildPackage,odhcpd))
diff --git a/package/network/services/odhcpd/files/odhcpd-update b/package/network/services/odhcpd/files/odhcpd-update
new file mode 100755
index 0000000..e17cd0b
--- /dev/null
+++ b/package/network/services/odhcpd/files/odhcpd-update
@@ -0,0 +1,5 @@
+#!/bin/sh
+# Make dnsmasq reread hostfile
+
+pid=$(pidof dnsmasq)
+[ "$(readlink /proc/$pid/exe)" = "/usr/sbin/dnsmasq" ] && kill -SIGHUP $pid
diff --git a/package/network/services/odhcpd/files/odhcpd.defaults b/package/network/services/odhcpd/files/odhcpd.defaults
new file mode 100644
index 0000000..d079ec0
--- /dev/null
+++ b/package/network/services/odhcpd/files/odhcpd.defaults
@@ -0,0 +1,13 @@
+#!/bin/sh
+uci -q get dhcp.odhcpd && exit 0
+touch /etc/config/dhcp
+
+uci batch <<EOF
+set dhcp.odhcpd=odhcpd
+set dhcp.odhcpd.maindhcp=0
+set dhcp.odhcpd.leasefile=/tmp/hosts/odhcpd
+set dhcp.odhcpd.leasetrigger=/usr/sbin/odhcpd-update
+set dhcp.lan.dhcpv6=server
+set dhcp.lan.ra=server
+commit dhcp
+EOF
diff --git a/package/network/services/odhcpd/files/odhcpd.init b/package/network/services/odhcpd/files/odhcpd.init
new file mode 100644
index 0000000..c8a3114
--- /dev/null
+++ b/package/network/services/odhcpd/files/odhcpd.init
@@ -0,0 +1,18 @@
+#!/bin/sh /etc/rc.common
+
+START=35
+STOP=85
+USE_PROCD=1
+
+start_service() {
+ procd_open_instance
+ procd_set_param command /usr/sbin/odhcpd
+ procd_set_param respawn
+ procd_close_instance
+}
+
+service_triggers()
+{
+ procd_add_reload_trigger "dhcp"
+}
+