* luci/contrib: add fork of openwrt olsrd
This commit is contained in:
parent
c245841b48
commit
f8b5b746ac
5 changed files with 447 additions and 0 deletions
223
contrib/package/olsrd-luci/Makefile
Normal file
223
contrib/package/olsrd-luci/Makefile
Normal file
|
@ -0,0 +1,223 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2008 Freifunk Leipzig
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=olsrd-luci
|
||||||
|
PKG_VERSION:=0.5.6-rc7
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
|
PKG_SOURCE_URL:=http://www.olsr.org/releases/0.5
|
||||||
|
PKG_MD5SUM:=10fbf796792d51eda735d171b6c86941
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
|
||||||
|
define Package/olsrd-luci/common_info
|
||||||
|
SECTION:=net
|
||||||
|
CATEGORY:=Network
|
||||||
|
TITLE:=OLSR - Optimized Link State Routing Daemon
|
||||||
|
URL:=http://www.olsr.org/
|
||||||
|
MAINTAINER:=Jo-Philipp Wich <xm@leipzig.freifunk.net>
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
DEPENDS:=+libpthread
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-arprefresh
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - ARP Refresh Plugin
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-dot-draw
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - Dot Draw Plugin
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-bmf
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - Basic Multicast Forwarding Plugin
|
||||||
|
DEPENDS:=olsrd-luci +kmod-tun
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-dyn-gw
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - Dynamic Gateway Plugin
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-dyn-gw-plain
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - Dynamic Gateway Plugin (Plain Version)
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-httpinfo
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - HTTP/HTML Info Plugin
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-nameservice
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - Hostname Propagation Plugin
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-secure
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - Security Extensions Plugin
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-txtinfo
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - HTTP/Plaintext Info Plugin
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-pgraph
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - PGraph Plugin
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-quagga
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - Quagga Plugin
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-tas
|
||||||
|
$(call Package/olsrd-luci/common_info)
|
||||||
|
MENU:=1
|
||||||
|
TITLE:=OLSR - Tiny Application Server Plugin
|
||||||
|
DEPENDS:=olsrd-luci
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
$(MAKE) -C "$(PKG_BUILD_DIR)" olsrd-luci libs \
|
||||||
|
$(TARGET_CONFIGURE_OPTS) \
|
||||||
|
NODEBUG=1 \
|
||||||
|
CFLAGS="$(TARGET_CFLAGS)" \
|
||||||
|
OS="linux" \
|
||||||
|
INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
|
||||||
|
LIBDIR="$(PKG_INSTALL_DIR)/usr/lib" \
|
||||||
|
SBINDIR="$(PKG_INSTALL_DIR)/usr/sbin/" \
|
||||||
|
ETCDIR="$(PKG_INSTALL_DIR)/etc" \
|
||||||
|
MANDIR="$(PKG_INSTALL_DIR)/usr/share/man" \
|
||||||
|
STRIP="true" \
|
||||||
|
INSTALL_LIB="true" \
|
||||||
|
SUBDIRS="arprefresh bmf dot_draw dyn_gw dyn_gw_plain httpinfo nameservice secure txtinfo pgraph quagga tas"
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
|
$(INSTALL_DIR) $(1)/lib/config
|
||||||
|
$(INSTALL_DIR) $(1)/etc/config
|
||||||
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/olsrd-luci $(1)/usr/sbin/
|
||||||
|
$(INSTALL_BIN) ./files/etc/init.d/olsrd-luci $(1)/etc/init.d/
|
||||||
|
$(INSTALL_CONF) ./files/etc/config/olsr $(1)/etc/config/
|
||||||
|
$(INSTALL_DATA) ./files/lib/config/olsr.lua $(1)/lib/config/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-arprefresh/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/arprefresh/olsrd-luci_arprefresh.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-dot-draw/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/dot_draw/olsrd-luci_dot_draw.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-bmf/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/bmf/olsrd-luci_bmf.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-dyn-gw/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/dyn_gw/olsrd-luci_dyn_gw.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-dyn-gw-plain/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/dyn_gw_plain/olsrd-luci_dyn_gw_plain.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-httpinfo/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/httpinfo/olsrd-luci_httpinfo.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-nameservice/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/nameservice/olsrd-luci_nameservice.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-secure/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/secure/olsrd-luci_secure.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-txtinfo/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/txtinfo/olsrd-luci_txtinfo.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-pgraph/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/pgraph/olsrd-luci_pgraph.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-quagga/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/quagga/olsrd-luci_quagga.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/olsrd-luci-mod-tas/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lib/tas/olsrd-luci_tas.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-arprefresh))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-dot-draw))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-bmf))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-dyn-gw))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-dyn-gw-plain))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-httpinfo))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-nameservice))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-secure))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-txtinfo))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-pgraph))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-quagga))
|
||||||
|
$(eval $(call BuildPackage,olsrd-luci-mod-tas))
|
||||||
|
|
42
contrib/package/olsrd-luci/files/etc/config/olsr
Normal file
42
contrib/package/olsrd-luci/files/etc/config/olsr
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
config 'olsr' 'general'
|
||||||
|
option 'DebugLevel' '0'
|
||||||
|
option 'IpVersion' '4'
|
||||||
|
option 'AllowNoInt' 'yes'
|
||||||
|
option 'Pollrate' '0.025'
|
||||||
|
option 'TcRedundancy' '2'
|
||||||
|
option 'MprCoverage' '7'
|
||||||
|
option 'LinkQualityFishEye' '1'
|
||||||
|
option 'LinkQualityWinSize' '100'
|
||||||
|
option 'LinkQualityDijkstraLimit' '0 9.0'
|
||||||
|
option 'LinkQualityLevel' '2'
|
||||||
|
option 'UseHysteresis' 'no'
|
||||||
|
|
||||||
|
config 'LoadPlugin' 'dyn_gw'
|
||||||
|
option 'Library' 'olsrd_dyn_gw.so.0.4'
|
||||||
|
|
||||||
|
config 'LoadPlugin' 'nameservice'
|
||||||
|
option 'Library' 'olsrd_nameservice.so.0.3'
|
||||||
|
option 'suffix' '.olsr'
|
||||||
|
option 'latlon_infile' '/tmp/latlon.txt'
|
||||||
|
option 'hosts_file' '/var/etc/hosts'
|
||||||
|
option 'name' 'luci-node'
|
||||||
|
|
||||||
|
config 'LoadPlugin' 'txtinfo'
|
||||||
|
option 'Library' 'olsrd_txtinfo.so.0.1'
|
||||||
|
option 'Accept' '127.0.0.1'
|
||||||
|
|
||||||
|
config 'Interface'
|
||||||
|
option 'HelloInterval' '6.0'
|
||||||
|
option 'MidValidityTime' '324.0'
|
||||||
|
option 'TcInterval' '4.0'
|
||||||
|
option 'HnaValidityTime' '108.0'
|
||||||
|
option 'HelloValidityTime' '108.0'
|
||||||
|
option 'TcValidityTime' '324.0'
|
||||||
|
option 'HnaInterval' '18.0'
|
||||||
|
option 'MidInterval' '18.0'
|
||||||
|
option 'Interface' 'br-ff'
|
||||||
|
|
||||||
|
config 'ipc' 'IpcConnect'
|
||||||
|
option 'MaxConnections' '0'
|
||||||
|
option 'Host' '127.0.0.1 10.0.0.5'
|
||||||
|
option 'Net' '192.168.1.0 255.255.255.0 10.0.0.0 255.0.0.0'
|
8
contrib/package/olsrd-luci/files/etc/default/olsrd
Normal file
8
contrib/package/olsrd-luci/files/etc/default/olsrd
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# you can override olsrd's startup variables here
|
||||||
|
#BIN=/usr/sbin/olsrd
|
||||||
|
#CONF=/var/etc/olsrd.conf
|
||||||
|
#PID=/var/run/olsrd.pid
|
||||||
|
|
||||||
|
# place your custom olsrd parameters here
|
||||||
|
OPTIONS=
|
||||||
|
|
37
contrib/package/olsrd-luci/files/etc/init.d/olsrd
Executable file
37
contrib/package/olsrd-luci/files/etc/init.d/olsrd
Executable file
|
@ -0,0 +1,37 @@
|
||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
START=50
|
||||||
|
|
||||||
|
BIN=/usr/sbin/olsrd
|
||||||
|
CONF=/var/etc/olsrd.conf
|
||||||
|
DEFAULT=/etc/default/olsrd
|
||||||
|
PID=/var/run/olsrd.pid
|
||||||
|
|
||||||
|
start() {
|
||||||
|
### load defaults
|
||||||
|
[ -f $DEFAULT ] && . $DEFAULT
|
||||||
|
|
||||||
|
### generate config
|
||||||
|
mkdir -p ${CONF%/*}
|
||||||
|
lua /lib/config/olsr.lua > $CONF
|
||||||
|
|
||||||
|
### check for running instance (start-stop-daemon is too stupid to do this)
|
||||||
|
if [ -s $PID ]; then
|
||||||
|
if kill -0 $(cat $PID) 2>&-; then
|
||||||
|
echo "there is already a running instance ($(cat $PID))"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
### start olsrd
|
||||||
|
start-stop-daemon -b -m -p $PID -x $BIN -S -- -f $CONF -nofork $OPTIONS
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
### stop olsrd
|
||||||
|
start-stop-daemon -q -p $PID -a ${BIN##*/} -K
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
### override generic restart because we need some time between stop and start
|
||||||
|
stop; sleep 3; start
|
||||||
|
}
|
137
contrib/package/olsrd-luci/files/lib/config/olsr.lua
Normal file
137
contrib/package/olsrd-luci/files/lib/config/olsr.lua
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
#!/usr/bin/lua
|
||||||
|
|
||||||
|
--[[
|
||||||
|
|
||||||
|
OLSRd configuration generator
|
||||||
|
(c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
$Id$
|
||||||
|
|
||||||
|
]]--
|
||||||
|
|
||||||
|
require("luci.util")
|
||||||
|
require("luci.model.uci")
|
||||||
|
|
||||||
|
local conf = luci.model.uci.get_all("olsr")
|
||||||
|
|
||||||
|
local function _value(val)
|
||||||
|
if val:match("^[0-9%. \t]+$") or val == "yes" or val == "no" then
|
||||||
|
return val
|
||||||
|
else
|
||||||
|
return string.format( '"%s"', val )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function _section(sect,sval,parstr)
|
||||||
|
local rv = ""
|
||||||
|
local pad = ""
|
||||||
|
|
||||||
|
if sval then
|
||||||
|
rv = string.format( '%s "%s"\n{\n', conf[sect][".type"], conf[sect][sval] )
|
||||||
|
pad = "\t"
|
||||||
|
end
|
||||||
|
|
||||||
|
for k, v in luci.util.spairs(conf[sect]) do
|
||||||
|
if k:sub(1,1) ~= '.' and k ~= sval then
|
||||||
|
if parstr then
|
||||||
|
rv = rv .. string.format(
|
||||||
|
'%s%s "%s"\t"%s"\n',
|
||||||
|
pad, parstr,
|
||||||
|
k:gsub( "_", "-" ), -- XXX: find a better solution for this
|
||||||
|
v
|
||||||
|
)
|
||||||
|
else
|
||||||
|
rv = rv .. string.format(
|
||||||
|
'%s%s\t%s\n',
|
||||||
|
pad, k, _value(v)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if sval then
|
||||||
|
rv = rv .. "}\n"
|
||||||
|
end
|
||||||
|
|
||||||
|
return rv
|
||||||
|
end
|
||||||
|
|
||||||
|
local function _hna(sval)
|
||||||
|
local rv = string.format( "%s\n{\n", sval )
|
||||||
|
|
||||||
|
for k, v in luci.util.spairs(conf) do
|
||||||
|
if conf[k][".type"] == sval and conf[k].NetAddr and conf[k].Prefix then
|
||||||
|
rv = rv .. string.format(
|
||||||
|
"\t%s\t%s\n",
|
||||||
|
conf[k].NetAddr,
|
||||||
|
conf[k].Prefix
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return rv .. "}\n"
|
||||||
|
end
|
||||||
|
|
||||||
|
local function _ipc(sval)
|
||||||
|
local rv = string.format( "%s\n{\n", sval )
|
||||||
|
|
||||||
|
for k, v in luci.util.spairs(conf[sval]) do
|
||||||
|
if k:sub(1,1) ~= "." then
|
||||||
|
local vals = luci.util.split(v, "%s+", nil, true)
|
||||||
|
|
||||||
|
if k == "Net" then
|
||||||
|
for i = 1,#vals,2 do
|
||||||
|
rv = rv .. string.format(
|
||||||
|
"\tNet\t%s\t%s\n",
|
||||||
|
vals[i], vals[i+1]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
elseif k == "Host" then
|
||||||
|
for i, v in ipairs(vals) do
|
||||||
|
rv = rv .. string.format(
|
||||||
|
"\t%s\t%s\n",
|
||||||
|
k, vals[i]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
rv = rv .. string.format(
|
||||||
|
"\t%s\t%s\n",
|
||||||
|
k, v
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return rv .. "}\n"
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- general config section
|
||||||
|
print( _section("general") )
|
||||||
|
|
||||||
|
-- plugin config sections
|
||||||
|
for k, v in luci.util.spairs(conf) do
|
||||||
|
if conf[k][".type"] == "LoadPlugin" then
|
||||||
|
print( _section( k, "Library", "PlParam" ) )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- interface config sections
|
||||||
|
for k, v in luci.util.spairs(conf) do
|
||||||
|
if conf[k][".type"] == "Interface" then
|
||||||
|
print( _section( k, "Interface" ) )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- write Hna4, Hna6 sections
|
||||||
|
print( _hna("Hna4") )
|
||||||
|
print( _hna("Hna6") )
|
||||||
|
|
||||||
|
-- write IpcConnect section
|
||||||
|
print( _ipc("IpcConnect") )
|
Loading…
Reference in a new issue