hnetd: add hnetd package
This commit is contained in:
parent
6beba22a4d
commit
4988cbc735
4 changed files with 176 additions and 0 deletions
80
hnetd/Makefile
Normal file
80
hnetd/Makefile
Normal file
|
@ -0,0 +1,80 @@
|
|||
#
|
||||
# Copyright (C) 2012-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:=hnetd
|
||||
PKG_SOURCE_VERSION:=f733b81679ac3d0fb8157a9056afe55854a1c956
|
||||
PKG_VERSION:=2014-02-28-$(PKG_SOURCE_VERSION)
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=git://github.com/sbyx/hnetd.git
|
||||
PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
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
|
||||
|
||||
define Package/hnetd
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=HNCP Homenet daemon
|
||||
URL:=https://github.com/sbyx/hnetd
|
||||
DEPENDS:=+odhcpd +odhcp6c +netifd
|
||||
DEPENDS+=+@IPV6
|
||||
endef
|
||||
|
||||
define Package/hnet-full
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=HNCP Homenet metapackage (hnetd + ohybridproxy + babels)
|
||||
URL:=https://github.com/sbyx/hnetd
|
||||
DEPENDS:=+odhcpd +odhcp6c +netifd +hnetd +ohybridproxy +babels
|
||||
DEPENDS+=+@IPV6
|
||||
endef
|
||||
|
||||
define Package/hnetd/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/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-call
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/hnetd.init $(1)/etc/init.d/hnetd
|
||||
$(INSTALL_BIN) ./files/ohp-script $(1)/usr/sbin/hnetd-ohp-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
|
||||
endef
|
||||
|
||||
define Package/hnet-full/install
|
||||
true
|
||||
endef
|
||||
|
||||
define Package/hnetd/postinst
|
||||
#!/bin/sh
|
||||
[ -n "$${IPKG_INSTROOT}" ] || (. /etc/uci-defaults/x-hnetd.defaults) && rm -f /etc/uci-defaults/x-hnetd.defaults
|
||||
exit 0
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,hnetd))
|
||||
$(eval $(call BuildPackage,hnet-full))
|
6
hnetd/files/hnetd.defaults
Normal file
6
hnetd/files/hnetd.defaults
Normal file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
uci batch <<EOF
|
||||
set dhcp.odhcpd.maindhcp=1
|
||||
commit dhcp
|
||||
EOF
|
42
hnetd/files/hnetd.init
Normal file
42
hnetd/files/hnetd.init
Normal file
|
@ -0,0 +1,42 @@
|
|||
#!/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
|
||||
|
||||
start_service() {
|
||||
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
|
||||
fi
|
||||
# State file
|
||||
procd_append_param command -s /tmp/hnetd.pa_state
|
||||
|
||||
# Routing script
|
||||
procd_append_param command -r /usr/sbin/hnetd-routing
|
||||
|
||||
procd_set_param respawn
|
||||
procd_close_instance
|
||||
}
|
48
hnetd/files/ohp-script
Normal file
48
hnetd/files/ohp-script
Normal file
|
@ -0,0 +1,48 @@
|
|||
#!/bin/sh
|
||||
#-*-sh-*-
|
||||
#
|
||||
# $Id: ohp-script $
|
||||
#
|
||||
# Author: Markus Stenberg <mstenber@cisco.com>
|
||||
#
|
||||
# Copyright (c) 2014 cisco Systems, Inc.
|
||||
#
|
||||
# Created: Fri Jan 17 11:46:30 2014 mstenber
|
||||
# Last modified: Mon Feb 3 14:39:15 2014 mstenber
|
||||
# Edit time: 15 min
|
||||
#
|
||||
|
||||
# This is minimalist init.d-like start/stop script for
|
||||
# ohybridproxy. However, as ohybridproxy receives it's configuration
|
||||
# via command line, the 'start' command is also equivalent to
|
||||
# 'restart', and has bunch of extra arguments..
|
||||
|
||||
OHP=ohybridproxy
|
||||
|
||||
start() {
|
||||
$OHP $* &
|
||||
}
|
||||
|
||||
stop() {
|
||||
killall -9 $OHP
|
||||
}
|
||||
|
||||
|
||||
CMD=$1
|
||||
# For debugging purposes
|
||||
LOGNAME=`basename $0`
|
||||
echo "$*" | logger -t "$LOGNAME"
|
||||
case $CMD in
|
||||
start)
|
||||
shift
|
||||
stop
|
||||
start $*
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
*)
|
||||
echo "Only start [config]/stop supported"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
Loading…
Reference in a new issue