hnetd: remove it as the development is stalled

Development of hnetd is stalled [1].
Last commit in the upstream repository is 7 years ago
and currently, hnetd is not compiled in snapshot builds
due to errors from GCC 14 [2]

[1] https://github.com/sbyx/hnetd/issues/67
[2] https://github.com/openwrt/routing/issues/1119

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
This commit is contained in:
Josef Schlehofer
2025-06-17 13:53:59 +02:00
committed by Paul Spooren
parent 6aed281d79
commit 85b868b341
6 changed files with 0 additions and 386 deletions

View File

@@ -1,165 +0,0 @@
#
# Copyright (C) 2012-2014 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:=hnetd
PKG_SOURCE_DATE:=2018-12-21
PKG_SOURCE_VERSION:=c43766610ed30194b048bc070a3c433aec731c40
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/sbyx/hnetd
PKG_MIRROR_HASH:=3b3bfff16b99dfd23b74932ac6a74af18cb9f8fd029980f1bd3788ddfb0414bb
PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
# Spammy debug builds for now
CMAKE_OPTIONS += -DL_LEVEL=7
# OpenWRT target
CMAKE_OPTIONS += -DBACKEND=openwrt
ifeq ($(BUILD_VARIANT),openssl)
CMAKE_OPTIONS += -DDTLS_OPENSSL=1
endif
define Package/hnetd/Default
SECTION:=net
CATEGORY:=Network
TITLE:=HNCP Homenet daemon - $(2)
URL:=https://github.com/sbyx/hnetd
DEPENDS:=+odhcpd +odhcp6c +netifd $(3)
DEPENDS+=@IPV6
VARIANT:=$1
endef
Package/hnetd-nossl=$(call Package/hnetd/Default,nossl,no authentication)
Package/hnetd-openssl=$(call Package/hnetd/Default,openssl,authentication via OpenSSL,+libopenssl)
define Package/hnet-full
SECTION:=net
CATEGORY:=Network
TITLE:=HNCP Homenet metapackage
URL:=https://github.com/sbyx/hnetd
DEPENDS:=+hnetd-nossl +luci-app-hnet +ip
# Routing
DEPENDS+=+babeld
# Service discovery
DEPENDS+=+ohybridproxy +zonestitcher
# Distributed PCP support
DEPENDS+=+miniupnpd +minimalist-pcproxy
endef
define Package/hnet-full-secure
SECTION:=net
CATEGORY:=Network
TITLE:=HNCP Homenet metapackage (w/ SSL)
URL:=https://github.com/sbyx/hnetd
DEPENDS:=+hnetd-openssl +luci-app-hnet +ip
# Routing
DEPENDS+=+babeld
# Service discovery
DEPENDS+=+ohybridproxy +zonestitcher
# Distributed PCP support
DEPENDS+=+miniupnpd +minimalist-pcproxy
endef
define Package/hnet-full-l2tp
SECTION:=net
CATEGORY:=Network
TITLE:=HNCP Homenet metapackage (w/ L2TP)
URL:=https://github.com/sbyx/hnetd
DEPENDS:=+hnetd-nossl +luci-app-hnet +ip-full +kmod-l2tp-eth
# Routing
DEPENDS+=+babeld
# Service discovery
DEPENDS+=+ohybridproxy +zonestitcher
# Distributed PCP support
DEPENDS+=+miniupnpd +minimalist-pcproxy
endef
define Package/luci-app-hnet
SECTION:=luci
CATEGORY:=LuCI
SUBMENU:=3. Applications
TITLE:=HNCP Homenet configuration and visualization
# DEPENDS:=+hnetd
# TBD - how to express dependency on 'some' hnetd?
endef
define Package/hnetd-$(BUILD_VARIANT)/description
This package provides a daemon which implementats distributed prefix assignment
and service discovery for a home network consisting of multiple routers
connected to multiple service providers. It provides a netifd protocol "hnet"
for use in /etc/config/network.
endef
define Package/hnetd-$(BUILD_VARIANT)/install
$(INSTALL_DIR) $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/hnetd $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/lib/netifd/proto
$(INSTALL_BIN) $(PKG_BUILD_DIR)/openwrt/hnet.sh $(1)/lib/netifd/proto
ln -s hnetd $(1)/usr/sbin/hnet-ifresolve
ln -s hnetd $(1)/usr/sbin/hnet-trust
ln -s hnetd $(1)/usr/sbin/hnet-dump
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/hnetd.init $(1)/etc/init.d/hnetd
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/hnet.config $(1)/etc/config/hnet
$(INSTALL_BIN) $(PKG_BUILD_DIR)/generic/ohp.script $(1)/usr/sbin/hnetd-ohp-script
$(INSTALL_BIN) $(PKG_BUILD_DIR)/generic/ddz.script $(1)/usr/sbin/hnetd-ddz-script
$(INSTALL_BIN) $(PKG_BUILD_DIR)/generic/pcp.script $(1)/usr/sbin/hnetd-pcp-script
$(INSTALL_BIN) $(PKG_BUILD_DIR)/generic/hnetd-routing $(1)/usr/sbin/hnetd-routing
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/hnetd.defaults $(1)/etc/uci-defaults/x-hnetd.defaults
$(INSTALL_BIN) $(PKG_BUILD_DIR)/generic/multicast.script $(1)/usr/sbin/hnet-multicast
$(INSTALL_BIN) $(PKG_BUILD_DIR)/openwrt/autowifi.script $(1)/usr/sbin/autowifi
endef
define Package/hnet-full/install
true
endef
define Package/hnet-full-secure/install
true
endef
define Package/hnet-full-l2tp/install
$(INSTALL_DIR) $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/generic/tunnel.script $(1)/usr/sbin/hnetd-tunnel
endef
define Package/luci-app-hnet/install
$(INSTALL_DIR) $(1)/usr/lib/lua/luci
$(INSTALL_DIR) $(1)/www
$(CP) -R $(PKG_BUILD_DIR)/openwrt/luci/luasrc/* $(1)/usr/lib/lua/luci/
$(CP) -R $(PKG_BUILD_DIR)/openwrt/luci/htdocs/* $(1)/www/
endef
define Package/hnetd-$(BUILD_VARIANT)/postinst
#!/bin/sh
[ -n "$${IPKG_INSTROOT}" ] || {
(. /etc/uci-defaults/x-hnetd.defaults) && rm -f /etc/uci-defaults/x-hnetd.defaults
[ -x /etc/init.d/dnsmasq ] && /etc/init.d/dnsmasq restart
/etc/init.d/hnetd enable
/etc/init.d/hnetd start
}
endef
$(eval $(call BuildPackage,hnetd-nossl))
$(eval $(call BuildPackage,hnetd-openssl))
$(eval $(call BuildPackage,hnet-full))
$(eval $(call BuildPackage,hnet-full-secure))
$(eval $(call BuildPackage,hnet-full-l2tp))
$(eval $(call BuildPackage,luci-app-hnet))

View File

@@ -1,29 +0,0 @@
config security security
# Simplest security mode:
# option password foo
# Trust consensus and CA-based share these options:
# option certificate_file /etc/hnetd-cert.pem
# option private_key_file /etc/hnetd-key.pem
# Then to enable trust consensus:
# option trust_store /etc/hnetd-trust.dat
# Or CA-based authentication:
# option trust_certificate_file /etc/ca-cert.pem
config pa pa
# option ip4prefix 10.0.0.0/8
# option ip4mode ifuplink
# option ulaprefix fd12:3456:789A::/48
# option ulamode off
option persistent_store /etc/hnet-pa.store
config sd sd
# option router_name openwrt
# option domain_name home.
# Wifi allows for very basic wifi autoconfiguration
# Warning: This feature is unstable
config wifi wifi
# option enable 0
# option ssid ssidtest
# option password test

View File

@@ -1,12 +0,0 @@
#!/bin/sh
# Why we tune dnsmasq?
# localservice=0 => other hnetd instances can query for local names
# boguspriv=0 => allow reverse resolution of RFC1918 w/o local hosts entries
uci batch <<EOF
set dhcp.odhcpd.maindhcp=1
set dhcp.@dnsmasq[0].localservice=0
set dhcp.@dnsmasq[0].boguspriv=0
commit dhcp
EOF

View File

@@ -1,127 +0,0 @@
#!/bin/sh /etc/rc.common
# XXX - is there something that should cause reload? or can we just
# use info from netifd and let it handle dynamic changes? let's hope
# so..
START=90
STOP=10
USE_PROCD=1
DNSMASQ_DIR=/tmp/dnsmasq.d
DNSMASQ_SCRIPT=/etc/init.d/dnsmasq
OHP_SCRIPT=/usr/sbin/hnetd-ohp-script
OHP_BINARY=/usr/sbin/ohybridproxy
DDZ_SCRIPT=/usr/sbin/hnetd-ddz-script
DDZ_BINARY=/usr/sbin/zonestitcher
PCP_SCRIPT=/usr/sbin/hnetd-pcp-script
PCP_BINARY=/usr/sbin/minimalist-pcproxy
MULTICAST_SCRIPT=/usr/sbin/hnet-multicast
WIFI_SCRIPT=/usr/sbin/autowifi
start_service() {
. /lib/functions.sh
. /lib/functions/network.sh
config_load hnet
mkdir -p $DNSMASQ_DIR
procd_open_instance
procd_set_param command /usr/sbin/hnetd
# SD parts are here (make configurable?)
if [ -f $OHP_BINARY -a -f $DNSMASQ_SCRIPT ]
then
mkdir -p $DNSMASQ_DIR
procd_append_param command -d $DNSMASQ_SCRIPT
procd_append_param command -f $DNSMASQ_DIR/hnet.conf
procd_append_param command -o $OHP_SCRIPT
HOSTNAME=`cat /proc/sys/kernel/hostname`
if [ -n "$HOSTNAME" ]
then
procd_append_param command -n "$HOSTNAME"
fi
if [ -f $DDZ_BINARY ]
then
procd_append_param command -z $DDZ_SCRIPT
fi
fi
# Enable multicast if present and installed
if [ -f "$MULTICAST_SCRIPT" ]
then
$MULTICAST_SCRIPT status && procd_append_param command -M "$MULTICAST_SCRIPT"
fi
config_get enableval wifi enable
if [ -f "$WIFI_SCRIPT" -a "$enableval" = "1" ]; then
wifiopt=$WIFI_SCRIPT
config_get ssidval wifi ssid
config_get passval wifi password
if [ -n "$ssidval" -a -n "$passval" ]; then
wifiopt=${wifiopt},${ssidval}:${passval}
fi
procd_append_param command -w "$wifiopt"
fi
# Enable PCP, if it's present
if [ -f $PCP_BINARY -a -f $PCP_SCRIPT ]
then
procd_append_param command -c $PCP_SCRIPT
fi
# State file
config_get val pa persistent_store
procd_append_param command -s ${val:-/tmp/hnetd.pa_state}
# Routing script
procd_append_param command -r /usr/sbin/hnetd-routing
[ -x /usr/sbin/hnetd-tunnel ] && \
procd_append_param command -t /usr/sbin/hnetd-tunnel
# Prefix assignment (pa)
config_get val pa ip4prefix
[ -n "$val" ] && procd_append_param command --ip4prefix $val
config_get val pa ip4mode
[ -n "$val" ] && procd_append_param command --ip4mode $val
config_get val pa ulaprefix
[ -n "$val" ] && procd_append_param command --ulaprefix $val
config_get val pa ulamode
[ -n "$val" ] && procd_append_param command --ulamode $val
# Service discovery (sd)
config_get val sd router_name
[ -n "$val" ] && procd_append_param command -n $val
config_get val sd domain_name
[ -n "$val" ] && procd_append_param command -m $val
# Security (needs security-enabled build)
config_get val security password
[ -n "$val" ] && procd_append_param command --password $val
config_get val security certificate_file
[ -n "$val" ] && procd_append_param command --certificate $val
config_get val security private_key_file
[ -n "$val" ] && procd_append_param command --privatekey $val
config_get val security trust_store
[ -n "$val" ] && procd_append_param command --trust $val
config_get val security trust_certificate_file
[ -n "$val" ] && procd_append_param command --verify-path $val
# For more verbose logging, uncomment this:
#procd_append_param command --loglevel 7
procd_set_param respawn
procd_close_instance
}
service_triggers() {
procd_add_reload_trigger "hnet"
}

View File

@@ -1,43 +0,0 @@
--- a/src/dtls.c
+++ b/src/dtls.c
@@ -698,8 +698,10 @@ dtls dtls_create(uint16_t port)
if (!_ssl_initialized)
{
_ssl_initialized = true;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
SSL_load_error_strings();
SSL_library_init();
+#endif
}
if (!d)
goto fail;
@@ -711,9 +713,9 @@ dtls dtls_create(uint16_t port)
goto fail;
#ifdef USE_ONE_CONTEXT
- SSL_CTX *ctx = SSL_CTX_new(DTLSv1_method());
+ SSL_CTX *ctx = SSL_CTX_new(DTLS_method());
#else
- SSL_CTX *ctx = SSL_CTX_new(DTLSv1_server_method());
+ SSL_CTX *ctx = SSL_CTX_new(DTLS_server_method());
#endif /* USE_ONE_CONTEXT */
if (!ctx)
{
@@ -1002,6 +1004,7 @@ _client_psk(SSL *ssl,
bool dtls_set_psk(dtls d, const char *psk, size_t psk_len)
{
+#ifndef OPENSSL_NO_PSK
free(d->psk);
d->psk = malloc(psk_len);
if (!d->psk)
@@ -1011,6 +1014,9 @@ bool dtls_set_psk(dtls d, const char *ps
SSL_CTX_set_psk_client_callback(d->ssl_client_ctx, _client_psk);
SSL_CTX_set_psk_server_callback(d->ssl_server_ctx, _server_psk);
return true;
+#else
+ return false;
+#endif
}
bool dtls_cert_to_pem_buf(dtls_cert cert, char *buf, int buf_len)

View File

@@ -1,10 +0,0 @@
--- a/src/hnetd.h
+++ b/src/hnetd.h
@@ -39,6 +39,7 @@
#endif /* __APPLE__ */
+#undef __unused
#include <stddef.h>
#include <stdint.h>
#include <time.h>