Commit fa90bf8a authored by stephan's avatar stephan
Browse files

sync version 5.0.1

parent 928df5e4
workdir/
dl/
coredumps/
logs/
......@@ -17,13 +17,13 @@ Ziel:
----
Freifunk hat es sich zum Ziel gesetzt, Menschen möglichst flächendeckend mit freiem WLAN zu versorgen. Freier Zugang zu Informationen ist nicht nur eine Quelle für Wissen, sondern kann sich auch positiv auf die wirtschaftliche und kulturelle Entwicklung einer Stadt, Region und Land auswirken, da das Internet in der heutigen Zeit sicher ein fester Bestandteil des täglichen Lebens geworden ist. Freifunk bietet die Möglichkeit, Internet per WLAN frei zu nutzen - ohne Zugangssperren und sicher, da der Internettraffic via verschlüsselten Internettunnel (VPN) ins Ausland geroutet wird.
Diese Firmware ist für verschiedene Router (derzeit Plattformen: ar71xx, x86) gedacht.
Diese Firmware ist für verschiedene Router gedacht.
License:
--------
Um die Firmware zu nutzen und im Dresdner Freifunk Netzwerk zu verwenden, sind die License und einige Regeln
zubeachten. Der genaue Text und die Regeln lassen sich in license/license.txt nachlesen und MÜSSEN eingehalten werden
(siehe dazu Knotenspezifikationen im Wiki).
zubeachten. Der genaue Text und die Regeln lassen sich in license/license.txt nachlesen und MÜSSEN eingehalten werden.
Siehe dazu Knotenspezifikationen im Wiki!
Links:
------
......
......@@ -2,21 +2,20 @@
#usage: see below
PLATFORMS="ar71xx x86"
#PLATFORMS="x86"
#PLATFORMS="ar71xx"
# target file
PLATFORMS="build.targets"
DL_DIR=dl
WORK_DIR=workdir
CONFIG_DIR=lede-configs
LEDE_PATCHES_DIR=lede-patches
#use "original" or "ddmesh" lede config
CONFIG_TYPE=ddmesh
#define a list of supported versions
VERSIONS="lede"
# -------------------------------------------------------------------
#Black 0;30 Dark Gray 1;30
#Red 0;31 Light Red 1;31
#Green 0;32 Light Green 1;32
......@@ -25,9 +24,36 @@ VERSIONS="lede"
#Purple 0;35 Light Purple 1;35
#Cyan 0;36 Light Cyan 1;36
#Light Gray 0;37 White 1;37
C_NONE='\033[0m' # No Color
C_RED='\033[0;31m'
C_GREEN='\033[0;32m'
C_NONE='\033[0m' # No Color
C_GREY='\033[1;30m'
C_LGREY='\033[0;37m'
C_YELLOW='\033[1;33m'
C_PURPLE='\033[0;35m'
C_BLUE='\033[0;32m'
C_ORANGE='\033[0;33m'
#save current directory, used by log and when copying config file
RUN_DIR=$(pwd)
getTargets()
{
cat $RUN_DIR/$PLATFORMS | sed '
#delete comments
s/#.*//
# delete empty lines
# delete leading and tailing spaces
s/^[ ]*//
s/[ ]*$//
/^$/d
# replace spaces with new lines, in case more targets are specified
# in one line
s/[ ]\+/\n/g
'
}
# process argument
# check for correct argument (addtional arguments are passt to command line make)
......@@ -47,6 +73,8 @@ if [ "$1" = "menuconfig" ]; then
shift;
fi
BUILD_PARAMS=$*
if [ -z "$VER" ]; then
# create a simple menu
echo ""
......@@ -57,7 +85,6 @@ if [ -z "$VER" ]; then
echo ""
echo "================================"
echo " Additional make parameters: $* "
echo " Config type: $CONFIG_TYPE"
echo " Select lede version "
echo "================================"
c=1
......@@ -86,9 +113,11 @@ case "$VER" in
#later revision hat problems with TP-Link mr3020 dnsmasq. no resolve at all
#lede_rev="995193ccdb2adb2bfe226965589b5f3db71bdd80" #2.4.8;
#lede_rev="e64463ebde554071431514925825e2c30f2b6998" geht soweit 4.2.9
lede_rev="lede-17.01" #98c003e3da5993779b9011a24072e2bac4492d86
#lede_rev="lede-17.01" #98c003e3da5993779b9011a24072e2bac4492d86
#lede_rev="b41a2e646e71d9a483fa3d770a0f53a33eea696c" 4.2.17
lede_rev="b1205a921177607c572605601b6e8ca5b6816838" # 4.2.18 (3.2.2018)
lede_rev="3ca1438ae0f780664e29bf0d102c1c6f9a99ece7" # 4.2.19 (branch 17.01)
VER=lede
VARIANT=".generic"
;;
*)
echo "[ERROR: VERSION $VER, not defined: no git url and revision] - exit"
......@@ -99,28 +128,27 @@ esac
#--------------------------------------------------------
lede_dl_dir="$DL_DIR/$VER"
lede_dl_tgz="$lede_dl_dir/lede-$VER-$lede_rev.tgz"
lede_dl_tgz="$lede_dl_dir/lede-$lede_rev.tgz"
lede_patches_dir="$LEDE_PATCHES_DIR/$VER"
buildroot="$WORK_DIR/$VER/buildroot"
log_dir="logs"
script_file="$log_dir/log.common.$VER.$CONFIG_TYPE"
log_file="build.common.log" # when compiling targets, this is overwritten
#delete old log file
rm -rf $log_dir
mkdir -p $log_dir
#save current directory, used by log and when copying config file
RUN_DIR=$(pwd)
rm -rf $log_dir/*
#each command appends its output to the script file.
#the command is passed as argument to script-tool
#"script $script_file -a -c"
#"script $log_file -a -c"
log ()
{
echo "cmd:[$*]" >> $RUN_DIR/$script_file
script $RUN_DIR/$script_file -q -f -a -c "$*"
sf=$1
shift
echo "*************** [$*]" >> $RUN_DIR/$log_dir/$sf
script -q -f -c "$*" | tee -a $RUN_DIR/$log_dir/$sf
}
setup_buildroot ()
......@@ -128,27 +156,27 @@ setup_buildroot ()
#check if directory exists
if [ ! -d $buildroot ]
then
log echo "directory [$buildroot] not present"
log $log_file echo "directory [$buildroot] not present"
log mkdir -p $buildroot
log mkdir -p $lede_dl_dir
log $log_file mkdir -p $buildroot
log $log_file mkdir -p $lede_dl_dir
#check if we have already downloaded the lede revision
if [ -f $lede_dl_tgz ]
then
#extract into buildroot dir
log echo "using already downloaded $lede_dl_tgz"
log tar xzf $lede_dl_tgz
log $log_file echo "using already downloaded $lede_dl_tgz"
log $log_file tar xzf $lede_dl_tgz
else
#clone from lede
log echo "cloning lede "
log git clone $git_url $buildroot
log echo "switch to specific revision"
log $log_file echo "cloning lede "
log $log_file git clone $git_url $buildroot
log $log_file echo "switch to specific revision"
cd $buildroot
log git checkout $lede_rev >/dev/null
log $log_file git checkout $lede_rev >/dev/null
cd $RUN_DIR
log echo "create lede tgz"
log tar czf $lede_dl_tgz $buildroot
log $log_file echo "create lede tgz"
log $log_file tar czf $lede_dl_tgz $buildroot
fi
#apply lede patches
......@@ -161,56 +189,57 @@ setup_buildroot ()
done
fi
else
log echo "Buildroot [$buildroot] already present"
echo -e $C_PURPLE"Buildroot [$buildroot] already present"$C_NONE
fi
log echo "create dl directory/links and feed links"
log rm -f $buildroot/feeds.conf
log ln -s ../../../feeds/feeds-$VER.conf $buildroot/feeds.conf
log rm -f $buildroot/dl
log ln -s ../../../$lede_dl_dir $buildroot/dl
echo -e $C_PURPLE"create dl directory/links and feed links"$C_NONE
log $log_file rm -f $buildroot/feeds.conf
log $log_file ln -s ../../../feeds/feeds-$VER.conf $buildroot/feeds.conf
log $log_file rm -f $buildroot/dl
log $log_file ln -s ../../../$lede_dl_dir $buildroot/dl
#if feeds_copied directory contains same packages as delivered with
#lede, then assume that the packages came with lede git clone are
#older. delete those old packages to force lede make system to use the
#new versions of packages from feeds-copied directory
echo "delete old packages from buildroot/package"
echo -e $C_PURPLE "delete old packages from buildroot/package"$C_NONE
for i in $(ls -1 feeds/$VER/feeds-copied) $(ls -1 feeds/$VER/feeds-own)
do
base=$(basename $i)
log echo "check: [$base]"
# test -x $buildroot/package/$base && log echo "rm -rf $buildroot/package/$base" && rm -rf $buildroot/package/$base
echo -e "$C_PURPLE""check$C_NONE: [$C_GREEN$base$C_NONE]"
# test -x $buildroot/package/$base && log $log_file echo "rm -rf $buildroot/package/$base" && rm -rf $buildroot/package/$base
find $buildroot/package -type d -wholename "*/$base" -exec rm -rf {} \; -exec echo " -> rm {} " \; 2>/dev/null
done
# copy common files first
echo "copy rootfs: common"
echo -e $C_PURPLE"copy rootfs$C_NONE: $C_GREEN""common"$C_NONE
rm -rf $buildroot/files
mkdir -p $buildroot/files
log cp -a $RUN_DIR/files/common/* $buildroot/files/
log $log_file cp -a $RUN_DIR/files/common/* $buildroot/files/
# copy specific files over (may overwrite common)
echo "copy rootfs: $VER"
echo -e $C_PURPLE"copy rootfs$C_NONE: $C_GREEN$VER"$C_NONE
mkdir -p $RUN_DIR/files/$VER
test -n "$(ls $RUN_DIR/files/$VER/)" && log cp -a $RUN_DIR/files/$VER/* $buildroot/files/
test -n "$(ls $RUN_DIR/files/$VER/)" && log $log_file cp -a $RUN_DIR/files/$VER/* $buildroot/files/
echo "create rootfs/etc/built_info file"
echo -e $C_PURPLE"create rootfs/etc/built_info file"$C_NONE
mkdir -p $buildroot/files/etc
> $buildroot/files/etc/built_info
echo "----- generate built_info ----"
git_lede_ref=$(cd $buildroot && git log -1 --format=%H)
git_lede_branch=$(cd $buildroot && git symbolic-ref --short HEAD)
echo "git_lede_ref:$git_lede_ref" >> $buildroot/files/etc/built_info
git_lede_rev=$(cd $buildroot && git log -1 --format=%H)
git_lede_branch=$(cd $buildroot && git name-rev --name-only $git_lede_rev | sed 's#.*/##')
echo "git_lede_rev:$git_lede_rev" >> $buildroot/files/etc/built_info
echo "git_lede_branch:$git_lede_branch" >> $buildroot/files/etc/built_info
git_ddmesh_ref=$(git log -1 --format=%H)
git_ddmesh_branch=$(git symbolic-ref --short HEAD)
echo "git_ddmesh_ref:$git_ddmesh_ref" >> $buildroot/files/etc/built_info
git_ddmesh_rev=$(git log -1 --format=%H)
git_ddmesh_branch=$(git name-rev --name-only $git_ddmesh_rev | sed 's#.*/##')
echo "git_ddmesh_rev:$git_ddmesh_rev" >> $buildroot/files/etc/built_info
echo "git_ddmesh_branch:$git_ddmesh_branch" >> $buildroot/files/etc/built_info
echo "builtdate:$(date)" >> $buildroot/files/etc/built_info
cat $buildroot/files/etc/built_info
} # setup_buildroot
......@@ -221,53 +250,79 @@ setup_buildroot
echo "------------------------------"
echo "install feeds"
echo -e $C_PURPLE"install feeds"$C_NONE
echo "change to buildroot [$buildroot]"
cd $buildroot
#log scripts/feeds clean
log scripts/feeds update ddmesh_own
log scripts/feeds update ddmesh_copied
log scripts/feeds install -a -p ddmesh_own
log scripts/feeds install -a -p ddmesh_copied
log $log_file scripts/feeds update ddmesh_own
log $log_file scripts/feeds update ddmesh_copied
log $log_file scripts/feeds install -a -p ddmesh_own
log $log_file scripts/feeds install -a -p ddmesh_copied
for PLATFORM in $PLATFORMS
for p in $(getTargets)
do
IFS='.'
set $p
PLATFORM=$1
VARIANT=$2
DEVICE=$3 # this is optional
unset IFS
echo -e $C_GREY"--------------------"$C_NONE
echo -e $C_YELLOW"Platform$C_NONE: $C_BLUE$PLATFORM"$C_NONE
echo -e $C_YELLOW"Variant$C_NONE: $C_BLUE$VARIANT"$C_NONE
echo -e $C_YELLOW"Device$C_NONE: $C_BLUE$DEVICE"$C_NONE
echo -e $C_GREY"--------------------"$C_NONE
# reset to inital directory
cd $RUN_DIR
config_file="$CONFIG_DIR/config.$PLATFORM$VARIANT.$VER.$CONFIG_TYPE"
# check for optional parameter "DEVICE"
# platform specific
script_file="$log_dir/log.$PLATFORM$VARIANT.$VER.$CONFIG_TYPE"
if [ -n "$DEVICE" ]; then
config_file="$CONFIG_DIR/config.$PLATFORM.$VARIANT.$DEVICE.$VER"
log_file="build.$PLATFORM.$VARIANT.$DEVICE.$VER.log"
else
config_file="$CONFIG_DIR/config.$PLATFORM.$VARIANT.$VER"
log_file="build.$PLATFORM.$VARIANT.$VER.log"
fi
echo "change to buildroot [$buildroot]"
cd $buildroot
echo "delete previous firmware: bin/$PLATFORM"
rm -rf bin/targets/$PLATFORM
echo "********* TODO: pfad anpassen fuer DEVICE**************"
# only delete when no specific device is built
if [ -z "$DEVICE" ]; then
echo -e $C_PURPLE"delete previous firmware$C_NONE: $C_GREEN""bin/targets/$PLATFORM/$VARIANT"
log $log_file rm -rf bin/targets/$PLATFORM/$VARIANT
else
echo -e $C_PURPLE"DO NOT delete previous firmware$C_NONE: $C_GREEN""bin/targets/$PLATFORM/$VARIANT"
fi
#copy after installing feeds, because .config will be overwritten by default config
log echo "copy configuration \($RUN_DIR/$config_file\)"
log cp $RUN_DIR/$config_file .config
echo -e $C_PURPLE"copy configuration$C_NONE: $C_GREEN$RUN_DIR/$config_file$C_NONE"
rm -f .config # delete previous config in case we have no $RUN_DIR/$config_file yet and want to
# create a new config
log $log_file cp $RUN_DIR/$config_file .config
if [ "$MENUCONFIG" = "1" ]; then
log echo "run menuconfig"
log make menuconfig
echo -e $C_PURPLE"run menuconfig"$C_NONE
log $log_file make menuconfig
echo -e "Please call '$C_GREEN./$(basename $0) $VER'$C_NONE to build firmware."
exit 0
fi
# run make command
log time make $*
echo -e $C_PURPLE"time make$C_NONE $C_GREEN$BUILD_PARAMS"
log $log_file time make $BUILD_PARAMS
#$RUN_DIR/files/common/usr/lib/ddmesh/ddmesh-utils-check-firmware-size.sh bin/ar71xx/lede-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
log echo "images created in $buildroot/bin/targets/$PLATFORM/..."
echo "********* TODO: pfad anpassen fuer DEVICE**************"
echo -e $C_PURPLE"images created in$C_NONE $C_GREEN$buildroot/bin/targets/$PLATFORM/$VARIANT/..."$C_NONE
done
echo ".......... complete build finished ........................"
echo -e $C_PURPLE".......... complete build finished ........................"$C_NONE
echo ""
######################################################################
# This file lists one target in each line that should be built
# in one run.
#
# The order is important for device specific builds.
# In this case output directory is not deleted and device specific
# files are placed in exisiting directory.
#
# Example for device specific:
# ramips.mt7621.ubiquiti-edgerouter-x
#
# If no specific device builds are created, then platform directory
# is deleted before.
# So consider order when specifying targets!
#
# Excample:
# ramips.mt7621
# ramips.mt7621.ubiquiti-edgerouter-x"
# This would first build all targets that can be built, and then device specific
# builds are generated and copied
#
# target name has specific format:
# platform.subplatform
# or
# platform.subplatform.device
#########################################################################
ar71xx.generic
x86.generic
ramips.mt7621.ubiquiti-edgerouter-x
ramips.mt7621.dlink-dir-860l
# testing targets
# ramips.rt305x
# ramips.rt7628
2018-05-13 5.0.1 (testing)
--------------------------------------------------
gui-map - set default gps coordinates
DSGVO - add text for DSGVO (Datenschutz Grundverordnung)
Wifi - remove unneeded dhcp lease configuration (solves problem with
invalid statistic for number of clients
2018-03-1 4.2.19 (testing)
--------------------------------------------------
gui-map - replace google maps with openstreatmap (leaflet)
booting - support devices which must be flashed in two steps
(initramfs-kernel.bin + sysupgrade.tar)
UBNT EdgeRouter-X
bmxd - remove unused HNA, dynamic plugin loading (saves flash memory)
- fix crash when using -d4/7/9 options
wifi2 - add option to configure isolation
meshing - separate lan and wan meshing to allow connecting different
freifunk networks without forwarding private network
2018-02-1 4.2.18 (testing)
--------------------------------------------------
lede update - Lede 17.01 (3.February 2018)
wifi - add option to create 'open' private wifi
2018-01-1 4.2.17 (testing)
--------------------------------------------------
firmware upgrade - fix firewall upgrade
gui-wifi - fix formular check
2017-10-1 4.2.16 (testing)
--------------------------------------------------
dhcp server - delete dhcp server config (lan) to disable server
factory reset - fix factory reset for x86 non-jffs2 overlay file systems
private wifi - prepare encrypted wifi (WPA2-PSK) bridged with lan/wan
gui-progress-bar - implement javascript progress bar (remove animated gif)
factory reset - fix not working factory reset
firmware download - switch to new "download.json" to get all needed data for
nightly update and manual update from within firmware
(remove hardcoded filenames)
sysinfo.json - add link type to neighours (bmxd --links)
- add "auto update" info
statistic - separate input/output/forward statistic
2017-10-1 4.2.10 (testing)
--------------------------------------------------
......
......@@ -18,9 +18,10 @@ include $(INCLUDE_DIR)/package.mk
define Package/OVPNCerts
SECTION:=base
CATEGORY:=ddmesh
DEFAULT:=m
DEFAULT:=n
DEPENDS:=+openvpn-mbedtls
TITLE:=Open VPN Tunnel
SUBMENU:=Packages
endef
define Package/OVPNCerts/description
......
......@@ -33,6 +33,7 @@ s#[ ]*$##
/^dhcp-release/d
/^explicit-exit-notify/d
/^ping/d
/^pull-filter/d
s#^auth-user-pass.*#auth-user-pass openvpn.login#
' >> $CONF
......
include $(TOPDIR)/rules.mk
PKG_NAME:=bmxd
PKG_VERSION:=0.3rv1885
PKG_VERSION:=0.4
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
......@@ -18,11 +18,11 @@ include $(INCLUDE_DIR)/package.mk
define Package/bmxd
SECTION:=base
CATEGORY:=ddmesh
SUBMENU:=Routing
DEFAULT:=y
DEPENDS:=
TITLE:=BMXD-Routing Protocol
URL:=http://download.ddmesh.de/
SUBMENU:=Packages
endef
define Package/bmxd/description
......
......@@ -57,9 +57,23 @@ CFLAGS += -DREVISION_VERSION=$(REVISION_VERSION)
# -DTESTDEBUG (testing syntax of __VA_ARGS__ dbg...() macros)
# -DWITHUNUSED (includes yet unused stuff)
EXTRA_CFLAGS += -DNODEPRECATED -DNOVIS -DNOSRV -DNODEBUGALL
# remove all twt functions, as this would allocated memory also when
# not using it (disabled by command line options of bmxd)
# -DSTEPHAN_ENABLE_TWT
LDFLAGS += -Wl,-export-dynamic -ldl -g3
# to create coredumps on pc /var/crash) disable SIGSEGV handling
#EXTRA_CFLAGS += -DSTEPHAN_ENABLE_SEGMENTATION_FAULT_HANDLING
# This disables dynamic plugin support
EXTRA_CFLAGS += -DSTEPHAN_NO_DYNAMIC_PLUGIN
#EXTRA_CFLAGS += -DNODEPRECATED -DNOVIS -DNOSRV -DNODEBUGALL -DNOHNA
# um viele debug traces zu bekommen (nur fuer entwicklung nutzen)
EXTRA_CFLAGS += -DNODEPRECATED -DNOVIS -DNOSRV -DNOHNA
#LDFLAGS += -Wl,-export-dynamic -ldl -g3
LDFLAGS += -g3
# -static
# -pg
......
......@@ -117,10 +117,13 @@ void batman( void ) {
check_apply_parent_option( ADD, OPT_APPLY, 0, get_option( 0, 0, ARG_STATUS ), 0, cn );
check_apply_parent_option( ADD, OPT_APPLY, 0, get_option( 0, 0, ARG_LINKS ), 0, cn );
check_apply_parent_option( ADD, OPT_APPLY, 0, get_option( 0, 0, ARG_ORIGINATORS ), 0, cn );
#ifndef NOHNA
check_apply_parent_option( ADD, OPT_APPLY, 0, get_option( 0, 0, ARG_HNAS ), 0, cn );
#endif
check_apply_parent_option( ADD, OPT_APPLY, 0, get_option( 0, 0, ARG_GATEWAYS ), 0, cn );
#ifndef NOSRV
check_apply_parent_option( ADD, OPT_APPLY, 0, get_option( 0, 0, ARG_SERVICES ), 0, cn );
#endif
dbg_printf( cn, "--------------- END DEBUG ---------------\n" );
}
......
......@@ -61,7 +61,7 @@
* Global Variables and definitions
*/
#define SOURCE_VERSION "0.3-freifunk-dresden" //put exactly one distinct word inside the string like "0.3-pre-alpha" or "0.3-rc1" or "0.3"
#define SOURCE_VERSION "0.4-freifunk-dresden" //put exactly one distinct word inside the string like "0.3-pre-alpha" or "0.3-rc1" or "0.3"
#define COMPAT_VERSION 10
......@@ -182,9 +182,9 @@ extern uint32_t My_pid;
// e.g. sudo BMX_LIB_PATH="$(pwd)/lib" ./bmxd -d3 eth0:bmx
#define BMX_ENV_DEBUG "BMX_DEBUG"
#define ARG_SERVICES "services"
#ifndef STEPHAN_NOSERVICES
#define ARG_SERVICES "services"
#endif
#define SOME_ADDITIONAL_SIZE 0 /*100*/
#define IEEE80211_HDR_SIZE 24
......
......@@ -377,10 +377,8 @@ void handle_ctrl_node( struct ctrl_node *cn ) {
} else {
close_ctrl_node( CTRL_CLOSE_STRAIGHT, cn );
//leaving this after close_ctrl_node() -> remove_dbgl_node() prevents debugging via broken -d4 pipe
dbgf_all( DBGT_INFO, "closed fd %d, rcvd %d bytes, auth %d: %s",
cn->fd, input, cn->authorized, buff );
//stephan: remove debug print on closed and already freed cn
//bmxd crashed when bmxd -cd4
}
......@@ -1603,7 +1601,7 @@ int32_t check_apply_parent_option( uint8_t del, uint8_t cmd, uint8_t _save, stru
int32_t ret;
paranoia( -500102, ( (cmd != OPT_CHECK && cmd != OPT_APPLY) || opt->parent_name ) );
paranoia( -500102, ( (cmd != OPT_CHECK && cmd != OPT_APPLY) || !opt || opt->parent_name ) );
struct opt_parent *p = add_opt_parent( &Patch_opt );
......@@ -1793,9 +1791,11 @@ static int32_t _opt_connect ( uint8_t cmd, struct opt_type *opt, struct ctrl_nod
}
if ( cmd == OPT_CHECK )
{
return SUCCESS;
Client_mode = YES;
}
Client_mode = YES;
do {
......@@ -3106,15 +3106,16 @@ static int32_t opt_debug ( uint8_t cmd, uint8_t _save, struct opt_type *opt, str
check_apply_parent_option( ADD, OPT_APPLY, 0, get_option( 0, 0, ARG_STATUS ), 0, cn );
check_apply_parent_option( ADD, OPT_APPLY, _save, get_option( 0, 0, ARG_LINKS ), 0, cn );
check_apply_parent_option( ADD, OPT_APPLY, _save, get_option( 0, 0, ARG_ORIGINATORS ), 0, cn );
#ifndef NOSRV
} else if ( ival == DBGL_SERVICES ) {
check_apply_parent_option( ADD, OPT_APPLY, _save, get_option( 0, 0, ARG_SERVICES ), 0, cn );
#endif
#ifndef NOHNA
} else if ( ival == DBGL_HNAS ) {
check_apply_parent_option( ADD, OPT_APPLY, _save, get_option( 0, 0, ARG_HNAS ), 0, cn );
#endif
} else if ( ival == DBGL_GATEWAYS ) {
check_apply_parent_option( ADD, OPT_APPLY, _save, get_option( 0, 0, ARG_GATEWAYS ), 0, cn );
......@@ -3267,7 +3268,9 @@ static struct opt_type control_options[]=
" 3 : changes\n"
" 4 : verbose changes\n"
" 5 : profiling (depends on -DDEBUG_MALLOC -DMEMORY_USAGE -DPROFILE_DATA)\n"
#ifndef NOSRV
" 7 : services\n"
#endif
" 8 : details\n"
" 9 : announced networks and interfaces\n"
" 10 : links\n"