Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
This commit is contained in:
108
package/network/services/odhcpd/Makefile
Normal file
108
package/network/services/odhcpd/Makefile
Normal file
@@ -0,0 +1,108 @@
|
||||
#
|
||||
# Copyright (C) 2013-2015 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_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git
|
||||
PKG_MIRROR_HASH:=f6e1c18551a00e01229fa12caa7b3fe33ad82785150fedcbe615fcc651ba2876
|
||||
PKG_SOURCE_DATE:=2024-05-08
|
||||
PKG_SOURCE_VERSION:=a29882318a4ccb3ae26f7cc0145e06ad4ead224b
|
||||
|
||||
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_odhcpd_$(BUILD_VARIANT)_ext_cer_id
|
||||
PKG_ASLR_PIE_REGULAR:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
define Package/odhcpd/default
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=OpenWrt DHCPv6(-PD)/RA Server & Relay
|
||||
DEPENDS:=+libubox +libuci +libubus +libnl-tiny
|
||||
endef
|
||||
|
||||
define Package/odhcpd/default/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.
|
||||
endef
|
||||
|
||||
define Package/odhcpd/default/config
|
||||
menu "Configuration"
|
||||
depends on PACKAGE_$(1)
|
||||
|
||||
config PACKAGE_odhcpd_$(2)_ext_cer_id
|
||||
int
|
||||
default 0
|
||||
prompt "CER-ID Extension ID (0 = disabled)"
|
||||
endmenu
|
||||
endef
|
||||
|
||||
define Package/odhcpd
|
||||
$(call Package/odhcpd/default)
|
||||
TITLE += and DHCPv4 server
|
||||
VARIANT:=full
|
||||
endef
|
||||
|
||||
Package/odhcpd/config=$(call Package/odhcpd/default/config,odhcpd,full)
|
||||
|
||||
define Package/odhcpd/description
|
||||
$(call Package/odhcpd/default/description)
|
||||
|
||||
This is a variant providing server services for DHCPv4, 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-ipv6only
|
||||
$(call Package/odhcpd/default)
|
||||
VARIANT:=ipv6only
|
||||
DEPENDS+= @IPV6
|
||||
endef
|
||||
|
||||
Package/odhcpd-ipv6only/config=$(call Package/odhcpd/default/config,odhcpd-ipv6only,ipv6only)
|
||||
|
||||
define Package/odhcpd-ipv6only/description
|
||||
$(call Package/odhcpd/default/description)
|
||||
|
||||
This is a variant providing server services for 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
|
||||
|
||||
CMAKE_OPTIONS += -DUBUS=1
|
||||
|
||||
ifeq ($(BUILD_VARIANT),full)
|
||||
CMAKE_OPTIONS += -DDHCPV4_SUPPORT=1
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_odhcpd_$(BUILD_VARIANT)_ext_cer_id),0)
|
||||
CMAKE_OPTIONS += -DEXT_CER_ID=$(CONFIG_PACKAGE_odhcpd_$(BUILD_VARIANT)_ext_cer_id)
|
||||
endif
|
||||
|
||||
define Package/odhcpd/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/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/15_odhcpd
|
||||
endef
|
||||
|
||||
Package/odhcpd-ipv6only/install = $(Package/odhcpd/install)
|
||||
|
||||
$(eval $(call BuildPackage,odhcpd))
|
||||
$(eval $(call BuildPackage,odhcpd-ipv6only))
|
||||
6
package/network/services/odhcpd/files/odhcpd-update
Executable file
6
package/network/services/odhcpd/files/odhcpd-update
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
# Make dnsmasq reread hostfile by sending SIGHUP signal
|
||||
|
||||
. /lib/functions/procd.sh
|
||||
|
||||
procd_send_signal dnsmasq
|
||||
52
package/network/services/odhcpd/files/odhcpd.defaults
Normal file
52
package/network/services/odhcpd/files/odhcpd.defaults
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/bin/sh
|
||||
uci -q get dhcp.odhcpd && exit 0
|
||||
touch /etc/config/dhcp
|
||||
|
||||
. /usr/share/libubox/jshn.sh
|
||||
|
||||
json_load "$(cat /etc/board.json)"
|
||||
json_select network
|
||||
json_select lan
|
||||
json_get_vars protocol
|
||||
json_select ..
|
||||
json_select ..
|
||||
|
||||
ODHCPDONLY=0
|
||||
V4MODE=disabled
|
||||
V6MODE=disabled
|
||||
|
||||
[ -e /usr/sbin/dnsmasq ] || ODHCPDONLY=1
|
||||
|
||||
case "$protocol" in
|
||||
# only enable server mode on statically addressed lan ports
|
||||
"static")
|
||||
V4MODE=server
|
||||
[ -e /proc/sys/net/ipv6 ] && V6MODE=server
|
||||
;;
|
||||
esac
|
||||
|
||||
uci get dhcp.lan 1>/dev/null 2>/dev/null || {
|
||||
uci batch <<EOF
|
||||
set dhcp.lan=dhcp
|
||||
set dhcp.lan.interface='lan'
|
||||
set dhcp.lan.start='100'
|
||||
set dhcp.lan.limit='150'
|
||||
set dhcp.lan.leasetime='12h'
|
||||
set dhcp.lan.domain='lan'
|
||||
EOF
|
||||
}
|
||||
|
||||
uci batch <<EOF
|
||||
set dhcp.odhcpd=odhcpd
|
||||
set dhcp.odhcpd.maindhcp=$ODHCPDONLY
|
||||
set dhcp.odhcpd.leasefile=/tmp/hosts/odhcpd
|
||||
set dhcp.odhcpd.leasetrigger=/usr/sbin/odhcpd-update
|
||||
set dhcp.odhcpd.loglevel=4
|
||||
set dhcp.lan.dhcpv4=$V4MODE
|
||||
set dhcp.lan.dhcpv6=$V6MODE
|
||||
set dhcp.lan.ra=$V6MODE
|
||||
set dhcp.lan.ra_slaac=1
|
||||
add_list dhcp.lan.ra_flags=managed-config
|
||||
add_list dhcp.lan.ra_flags=other-config
|
||||
commit dhcp
|
||||
EOF
|
||||
22
package/network/services/odhcpd/files/odhcpd.init
Normal file
22
package/network/services/odhcpd/files/odhcpd.init
Normal file
@@ -0,0 +1,22 @@
|
||||
#!/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
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
procd_send_signal odhcpd
|
||||
}
|
||||
|
||||
service_triggers()
|
||||
{
|
||||
procd_add_reload_trigger "dhcp"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user