fix olsrd cflags handling, add new init script and config by Alina Friedrichsen
git-svn-id: svn://svn.openwrt.org/openwrt/packages@9431 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
312331dcf2
commit
545ba27284
@ -102,7 +102,7 @@ define Build/Compile
|
|||||||
$(MAKE) -C "$(PKG_BUILD_DIR)" \
|
$(MAKE) -C "$(PKG_BUILD_DIR)" \
|
||||||
$(TARGET_CONFIGURE_OPTS) \
|
$(TARGET_CONFIGURE_OPTS) \
|
||||||
NODEBUG=1 \
|
NODEBUG=1 \
|
||||||
OFLAGS="$(TARGET_CFLAGS)" \
|
CFLAGS="$(TARGET_CFLAGS)" \
|
||||||
OS="linux" \
|
OS="linux" \
|
||||||
INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
|
INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
|
||||||
LIBDIR="$(PKG_INSTALL_DIR)/usr/lib" \
|
LIBDIR="$(PKG_INSTALL_DIR)/usr/lib" \
|
||||||
@ -114,10 +114,11 @@ define Build/Compile
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/olsrd/install
|
define Package/olsrd/install
|
||||||
$(INSTALL_DIR) $(1)/etc
|
$(INSTALL_DIR) $(1)/etc/config
|
||||||
$(CP) $(PKG_INSTALL_DIR)/etc/olsrd.conf $(1)/etc/
|
$(INSTALL_DATA) ./files/olsr.config $(1)/etc/config/olsr
|
||||||
|
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/olsrd.conf $(1)/etc/
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/olsrd $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/olsrd $(1)/usr/sbin/
|
||||||
$(INSTALL_DIR) $(1)/etc/init.d
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
$(INSTALL_BIN) ./files/olsrd.init $(1)/etc/init.d/olsrd
|
$(INSTALL_BIN) ./files/olsrd.init $(1)/etc/init.d/olsrd
|
||||||
endef
|
endef
|
||||||
|
40
net/olsrd/files/olsr.config
Normal file
40
net/olsrd/files/olsr.config
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
config "olsr" "general"
|
||||||
|
option DebugLevel '0'
|
||||||
|
option IpVersion '4'
|
||||||
|
option AllowNoInt 'yes'
|
||||||
|
option Pollrate '0.025'
|
||||||
|
option TcRedundancy '2'
|
||||||
|
option NatThreshold '0.9'
|
||||||
|
option MprCoverage '7'
|
||||||
|
option LinkQualityFishEye '1'
|
||||||
|
option LinkQualityWinSize '100'
|
||||||
|
option LinkQualityDijkstraLimit '0 9.0'
|
||||||
|
option LinkQualityLevel '2'
|
||||||
|
option UseHysteresis 'no'
|
||||||
|
|
||||||
|
config "LoadPlugin" "arprefresh"
|
||||||
|
option Library 'olsrd_arprefresh.so.0.1'
|
||||||
|
|
||||||
|
config "LoadPlugin" "dyn_gw_plain"
|
||||||
|
option Library 'olsrd_dyn_gw_plain.so.0.4'
|
||||||
|
|
||||||
|
config "LoadPlugin" "nameservice"
|
||||||
|
option Library 'olsrd_nameservice.so.0.3'
|
||||||
|
option name 'sven-ola-gs'
|
||||||
|
option hosts_file '/var/etc/hosts'
|
||||||
|
option suffix '.olsr'
|
||||||
|
option latlon_infile '/var/run/latlon.txt'
|
||||||
|
|
||||||
|
config "LoadPlugin" "txtinfo"
|
||||||
|
option Library 'olsrd_txtinfo.so.0.1'
|
||||||
|
option Accept '127.0.0.1'
|
||||||
|
|
||||||
|
config "Interface" "if1"
|
||||||
|
option HelloInterval '6.0'
|
||||||
|
option HelloValidityTime '108.0'
|
||||||
|
option TcInterval '4.0'
|
||||||
|
option TcValidityTime '324.0'
|
||||||
|
option MidInterval '18.0'
|
||||||
|
option MidValidityTime '324.0'
|
||||||
|
option HnaInterval '18.0'
|
||||||
|
option HnaValidityTime '108.0'
|
@ -1,22 +1,331 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
# Copyright (C) 2006 OpenWrt.org
|
|
||||||
START=50
|
START=50
|
||||||
|
|
||||||
BIN=olsrd
|
BIN=olsrd
|
||||||
|
CONF_F=/var/etc/olsrd.conf
|
||||||
|
USE_CONF_F=
|
||||||
DEFAULT=/etc/default/olsrd
|
DEFAULT=/etc/default/olsrd
|
||||||
RUN_D=/var/run
|
RUN_D=/var/run
|
||||||
PID_F=$RUN_D/$BIN.pid
|
PID_F=$RUN_D/$BIN.pid
|
||||||
|
|
||||||
|
format_olsr_option() {
|
||||||
|
local str="$*"
|
||||||
|
echo -n "$str" | tr -d '\n\r\t\v '
|
||||||
|
}
|
||||||
|
|
||||||
|
format_olsr_value() {
|
||||||
|
local str="$*"
|
||||||
|
echo -n "$str" | tr -d '\n\r\v'
|
||||||
|
}
|
||||||
|
|
||||||
|
format_olsr_param() {
|
||||||
|
local str="$*"
|
||||||
|
echo -n "$str" | tr -d '\n\r\v"'
|
||||||
|
}
|
||||||
|
|
||||||
|
format_uci_varname() {
|
||||||
|
local str="$*"
|
||||||
|
echo -n "$str" | sed -e 's/[^a-zA-Z0-9_]//g'
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach_olsr() {
|
||||||
|
local cfg="$1"
|
||||||
|
local option
|
||||||
|
local value
|
||||||
|
|
||||||
|
for option in $CONFIG_OPTIONS
|
||||||
|
do
|
||||||
|
config_get value "$cfg" "$option"
|
||||||
|
option=$(format_olsr_option "$option")
|
||||||
|
value=$(format_olsr_value "$value")
|
||||||
|
|
||||||
|
if [ -n "$value" -a "$option" != "ConfigFile" ]; then
|
||||||
|
echo "$option $value" >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach_Hna4() {
|
||||||
|
local cfg="$1"
|
||||||
|
local netaddr
|
||||||
|
local netmask
|
||||||
|
|
||||||
|
config_get netaddr "$cfg" NetAddr
|
||||||
|
config_get netmask "$cfg" NetMask
|
||||||
|
netaddr=$(format_olsr_option "$netaddr")
|
||||||
|
netmask=$(format_olsr_option "$netmask")
|
||||||
|
|
||||||
|
if [ -n "$netaddr" -a -n "$netmask" ]; then
|
||||||
|
if [ "$HNA4_COUNT" -le 0 ]; then
|
||||||
|
echo "Hna4" >> "$CONF_F"
|
||||||
|
echo "{" >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo " $netaddr $netmask" >> "$CONF_F"
|
||||||
|
HNA4_COUNT=$((HNA4_COUNT + 1))
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
write_Hna4() {
|
||||||
|
if [ "$HNA4_COUNT" -gt 0 ]; then
|
||||||
|
echo "}" >> "$CONF_F"
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach_Hna6() {
|
||||||
|
local cfg="$1"
|
||||||
|
local netaddr
|
||||||
|
local netmask
|
||||||
|
|
||||||
|
config_get netaddr "$cfg" NetAddr
|
||||||
|
config_get prefix "$cfg" Prefix
|
||||||
|
netaddr=$(format_olsr_option "$netaddr")
|
||||||
|
prefix=$(format_olsr_option "$prefix")
|
||||||
|
|
||||||
|
if [ -n "$netaddr" -a -n "$prefix" ]; then
|
||||||
|
if [ "$HNA6_COUNT" -le 0 ]; then
|
||||||
|
echo "Hna6" >> "$CONF_F"
|
||||||
|
echo "{" >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo " $netaddr $prefix" >> "$CONF_F"
|
||||||
|
HNA6_COUNT=$((HNA6_COUNT + 1))
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
write_Hna6() {
|
||||||
|
if [ "$HNA6_COUNT" -gt 0 ]; then
|
||||||
|
echo "}" >> "$CONF_F"
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach_IpcConnect() {
|
||||||
|
local cfg="$1"
|
||||||
|
local option
|
||||||
|
local value
|
||||||
|
local c
|
||||||
|
|
||||||
|
echo "IpcConnect" >> "$CONF_F"
|
||||||
|
echo -n "{" >> "$CONF_F"
|
||||||
|
|
||||||
|
for option in $CONFIG_OPTIONS
|
||||||
|
do
|
||||||
|
config_get value "$cfg" "$option"
|
||||||
|
option=$(format_olsr_option "$option")
|
||||||
|
value=$(format_olsr_value "$value")
|
||||||
|
|
||||||
|
if [ -n "$value" ]; then
|
||||||
|
if [ "$option" = "Host" ]; then
|
||||||
|
for item in $value
|
||||||
|
do
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo -n " $option $item" >> "$CONF_F"
|
||||||
|
done
|
||||||
|
elif [ "$option" = "Net" ]; then
|
||||||
|
c=0
|
||||||
|
for item in $value
|
||||||
|
do
|
||||||
|
if [ $((c % 2)) -eq 0 ]; then
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo -n " $option $item" >> "$CONF_F"
|
||||||
|
else
|
||||||
|
echo -n " $item" >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
c=$((c + 1))
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo -n " $option $value" >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo "}" >> "$CONF_F"
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach_LoadPlugin() {
|
||||||
|
local cfg="$1"
|
||||||
|
local library
|
||||||
|
local option
|
||||||
|
local value
|
||||||
|
local is_ip_addr
|
||||||
|
local item
|
||||||
|
local c
|
||||||
|
|
||||||
|
config_get library "$cfg" Library
|
||||||
|
library=$(format_olsr_param "$library")
|
||||||
|
|
||||||
|
if [ -n "$library" ]; then
|
||||||
|
echo "LoadPlugin \"$library\"" >> "$CONF_F"
|
||||||
|
echo -n "{" >> "$CONF_F"
|
||||||
|
|
||||||
|
for option in $CONFIG_OPTIONS
|
||||||
|
do
|
||||||
|
config_get value "$cfg" "$option"
|
||||||
|
option=$(format_olsr_param "$option")
|
||||||
|
value=$(format_olsr_param "$value")
|
||||||
|
|
||||||
|
if [ -n "$value" ]; then
|
||||||
|
option=$(echo "$option" | sed -e y/[_]/[-]/)
|
||||||
|
|
||||||
|
is_ip_addr=$(echo "$option" | sed -e 's/[^-]//g')
|
||||||
|
if [ "$is_ip_addr" = "---" ]; then
|
||||||
|
option=$(echo "$option" | sed -e y/[-]/[.]/)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$option" = "Ping" -o "$option" = "redistribute" -o "$option" = "Host" -o "$option" = "NonOlsrIf" -o "$option" = "name" -o "$is_ip_addr" = "---" ]; then
|
||||||
|
for item in $value
|
||||||
|
do
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo -n " PlParam \"$option\" \"$item\"" >> "$CONF_F"
|
||||||
|
done
|
||||||
|
elif [ "$option" = "Net" -o "$option" = "HNA" ]; then
|
||||||
|
c=0
|
||||||
|
for item in $value
|
||||||
|
do
|
||||||
|
if [ $((c % 2)) -eq 0 ]; then
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo -n " PlParam \"$option\" \"$item" >> "$CONF_F"
|
||||||
|
else
|
||||||
|
echo -n " $item\"" >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
c=$((c + 1))
|
||||||
|
done
|
||||||
|
elif [ "$option" != "Library" ]; then
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo -n " PlParam \"$option\" \"$value\"" >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo "}" >> "$CONF_F"
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach_Interface() {
|
||||||
|
local cfg="$1"
|
||||||
|
local interfaces
|
||||||
|
local interface
|
||||||
|
local ifname
|
||||||
|
local option
|
||||||
|
local value
|
||||||
|
local item
|
||||||
|
local c
|
||||||
|
|
||||||
|
config_get interfaces "$cfg" Interface
|
||||||
|
|
||||||
|
if [ -n "$interfaces" ]; then
|
||||||
|
echo -n "Interface" >> "$CONF_F"
|
||||||
|
|
||||||
|
for interface in $interfaces
|
||||||
|
do
|
||||||
|
interface=$(format_uci_varname "$interface")
|
||||||
|
config_get ifnames "$interface" ifname
|
||||||
|
for ifname in $ifnames
|
||||||
|
do
|
||||||
|
ifname=$(format_olsr_param "$ifname")
|
||||||
|
echo -n " \"$ifname\"" >> "$CONF_F"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo -n "{" >> "$CONF_F"
|
||||||
|
|
||||||
|
for option in $CONFIG_OPTIONS
|
||||||
|
do
|
||||||
|
config_get value "$cfg" "$option"
|
||||||
|
option=$(format_olsr_option "$option")
|
||||||
|
value=$(format_olsr_value "$value")
|
||||||
|
|
||||||
|
if [ -n "$value" ]; then
|
||||||
|
if [ "$option" = "LinkQualityMult" ]; then
|
||||||
|
c=0
|
||||||
|
for item in $value
|
||||||
|
do
|
||||||
|
if [ $((c % 2)) -eq 0 ]; then
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo -n " $option $item" >> "$CONF_F"
|
||||||
|
else
|
||||||
|
echo -n " $item" >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
c=$((c + 1))
|
||||||
|
done
|
||||||
|
elif [ "$option" != "Interface" ]; then
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo -n " $option $value" >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo >> "$CONF_F"
|
||||||
|
echo "}" >> "$CONF_F"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
write_config() {
|
||||||
|
include /lib/network
|
||||||
|
scan_interfaces
|
||||||
|
config_load /var/state/network
|
||||||
|
|
||||||
|
config_cb() {
|
||||||
|
local cfgtype="$1"
|
||||||
|
local name="$2"
|
||||||
|
CONFIG_TYPE="$cfgtype"
|
||||||
|
}
|
||||||
|
|
||||||
|
option_cb() {
|
||||||
|
local varname="$1"
|
||||||
|
local value="$2"
|
||||||
|
|
||||||
|
if [ "$CONFIG_TYPE" = "OLSR" -a "$varname" = "ConfigFile" ]; then
|
||||||
|
USE_CONF_F="$value"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! echo "$CONFIG_OPTIONS" | grep " $varname " > /dev/null; then
|
||||||
|
CONFIG_OPTIONS="$CONFIG_OPTIONS $varname "
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
CONFIG_OPTIONS=""
|
||||||
|
config_load olsr
|
||||||
|
|
||||||
|
if [ -n "$USE_CONF_F" ]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
USE_CONF_F="$CONF_F"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p $(dirname "$CONF_F")
|
||||||
|
> "$CONF_F"
|
||||||
|
config_foreach foreach_olsr olsr
|
||||||
|
HNA4_COUNT=0
|
||||||
|
config_foreach foreach_Hna4 Hna4
|
||||||
|
write_Hna4
|
||||||
|
HNA6_COUNT=0
|
||||||
|
config_foreach foreach_Hna6 Hna6
|
||||||
|
write_Hna6
|
||||||
|
config_foreach foreach_IpcConnect IpcConnect
|
||||||
|
config_foreach foreach_LoadPlugin LoadPlugin
|
||||||
|
config_foreach foreach_Interface Interface
|
||||||
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
|
[ -z "$USE_CONF_F" ] && write_config
|
||||||
|
|
||||||
[ -f $DEFAULT ] && . $DEFAULT
|
[ -f $DEFAULT ] && . $DEFAULT
|
||||||
$BIN -nofork $OPTIONS &
|
$BIN -f "$USE_CONF_F" -nofork $OPTIONS &
|
||||||
|
|
||||||
# write pid file (but strip out own pid ($$))
|
# write pid file (but strip out own pid ($$))
|
||||||
mkdir -p $RUN_D
|
mkdir -p $RUN_D
|
||||||
PID=`pidof $BIN`
|
PID=`pidof $BIN`
|
||||||
echo ${PID%$$} > $PID_F
|
echo ${PID%$$} > $PID_F
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user