#!/bin/sh # # convert uci configuration into daemon specific format # UCI=/sbin/uci create_file() { echo "# -- DO NOT EDIT THIS FILE --" > $1 echo "# automatic generated configuration file for IBR-DTN daemon" >> $1 echo "#" >> $1 } add_param() { VALUE=`$UCI -q get $2` if [ $? == 0 ]; then echo "$3 = $VALUE" >> $1 fi } getconfig() { $UCI -q get ibrdtn.$1 return $? } if [ "$1" == "--safe-mode" ]; then SAFEMODE=yes CONFFILE=$2 else SAFEMODE=no CONFFILE=$1 fi # create the file and write some header info create_file $CONFFILE add_param $CONFFILE "ibrdtn.main.uri" "local_uri" add_param $CONFFILE "ibrdtn.main.routing" "routing" add_param $CONFFILE "ibrdtn.main.fragmentation" "fragmentation" if [ "$SAFEMODE" == "yes" ]; then if [ -n "`getconfig safemode.forwarding`" ]; then add_param $CONFFILE "ibrdtn.safemode.forwarding" "routing_forwarding" else add_param $CONFFILE "ibrdtn.main.forwarding" "routing_forwarding" fi if [ -n "`getconfig safemode.maxblock`" ]; then add_param $CONFFILE "ibrdtn.safemode.maxblock" "limit_blocksize" else add_param $CONFFILE "ibrdtn.main.blocksize" "limit_blocksize" fi if [ -n "`getconfig safemode.storage`" ]; then add_param $CONFFILE "ibrdtn.safemode.storage" "limit_storage" else add_param $CONFFILE "ibrdtn.storage.limit" "limit_storage" fi else add_param $CONFFILE "ibrdtn.main.forwarding" "routing_forwarding" add_param $CONFFILE "ibrdtn.main.blocksize" "limit_blocksize" add_param $CONFFILE "ibrdtn.storage.limit" "limit_storage" add_param $CONFFILE "ibrdtn.storage.blobs" "blob_path" add_param $CONFFILE "ibrdtn.storage.bundles" "storage_path" add_param $CONFFILE "ibrdtn.storage.engine" "storage" fi add_param $CONFFILE "ibrdtn.main.max_predated_timestamp" "limit_predated_timestamp" add_param $CONFFILE "ibrdtn.main.limit_lifetime" "limit_lifetime" add_param $CONFFILE "ibrdtn.main.foreign_blocksize" "limit_foreign_blocksize" add_param $CONFFILE "ibrdtn.discovery.address" "discovery_address" add_param $CONFFILE "ibrdtn.discovery.timeout" "discovery_timeout" add_param $CONFFILE "ibrdtn.discovery.version" "discovery_version" add_param $CONFFILE "ibrdtn.discovery.crosslayer" "discovery_crosslayer" add_param $CONFFILE "ibrdtn.tcptuning.idle_timeout" "tcp_idle_timeout" add_param $CONFFILE "ibrdtn.tcptuning.nodelay" "tcp_nodelay" add_param $CONFFILE "ibrdtn.tcptuning.chunksize" "tcp_chunksize" add_param $CONFFILE "ibrdtn.security.level" "security_level" add_param $CONFFILE "ibrdtn.security.bab_key" "security_bab_default_key" add_param $CONFFILE "ibrdtn.security.key_path" "security_path" add_param $CONFFILE "ibrdtn.security.generate_dh" "generate_dh_params" add_param $CONFFILE "ibrdtn.tls.certificate" "security_certificate" add_param $CONFFILE "ibrdtn.tls.key" "security_key" add_param $CONFFILE "ibrdtn.tls.trustedpath" "security_trusted_ca_path" add_param $CONFFILE "ibrdtn.tls.required" "security_tls_required" add_param $CONFFILE "ibrdtn.tls.noencryption" "security_tls_disable_encryption" add_param $CONFFILE "ibrdtn.tls.fallback_badclock" "security_tls_fallback_badclock" add_param $CONFFILE "ibrdtn.timesync.reference" "time_reference" add_param $CONFFILE "ibrdtn.timesync.synchronize" "time_synchronize" add_param $CONFFILE "ibrdtn.timesync.discovery_announcement" "time_discovery_announcements" add_param $CONFFILE "ibrdtn.timesync.sigma" "time_sigma" add_param $CONFFILE "ibrdtn.timesync.psi" "time_psi" add_param $CONFFILE "ibrdtn.timesync.sync_level" "time_sync_level" add_param $CONFFILE "ibrdtn.timesync.time_set_clock" "time_set_clock" add_param $CONFFILE "ibrdtn.dht.enabled" "dht_enabled" add_param $CONFFILE "ibrdtn.dht.port" "dht_port" add_param $CONFFILE "ibrdtn.dht.id" "dht_id" add_param $CONFFILE "ibrdtn.dht.bootstrap" "dht_bootstrapping" add_param $CONFFILE "ibrdtn.dht.nodesfile" "dht_nodes_file" add_param $CONFFILE "ibrdtn.dht.enable_ipv4" "dht_enable_ipv4" add_param $CONFFILE "ibrdtn.dht.enable_ipv6" "dht_enable_ipv6" add_param $CONFFILE "ibrdtn.dht.bind_ipv4" "dht_bind_ipv4" add_param $CONFFILE "ibrdtn.dht.bind_ipv6" "dht_bind_ipv6" add_param $CONFFILE "ibrdtn.dht.ignore_neighbour_informations" "dht_ignore_neighbour_informations" add_param $CONFFILE "ibrdtn.dht.allow_neighbours_to_announce_me" "dht_allow_neighbours_to_announce_me" add_param $CONFFILE "ibrdtn.dht.allow_neighbour_announcement" "dht_allow_neighbour_announcement" # iterate through all network interfaces iter=0 netinterfaces= netinternet= while [ 1 == 1 ]; do $UCI -q get "ibrdtn.@network[$iter]" > /dev/null if [ $? == 0 ]; then netinterfaces="${netinterfaces} lan${iter}" add_param $CONFFILE "ibrdtn.@network[$iter].type" "net_lan${iter}_type" add_param $CONFFILE "ibrdtn.@network[$iter].interface" "net_lan${iter}_interface" add_param $CONFFILE "ibrdtn.@network[$iter].port" "net_lan${iter}_port" if [ "$(uci -q get ibrdtn.@network[$iter].global)" == "yes" ]; then netinternet="${netinternet} $(uci -q get ibrdtn.@network[$iter].interface)" fi else break fi let iter=iter+1 done # write list of network interfaces echo "net_interfaces =$netinterfaces" >> $CONFFILE echo "net_internet =${netinternet}" >> $CONFFILE # iterate through all static routes iter=0 while [ 1 == 1 ]; do $UCI -q get "ibrdtn.@static-route[$iter]" > /dev/null if [ $? == 0 ]; then PATTERN=`$UCI -q get "ibrdtn.@static-route[$iter].pattern"` DESTINATION=`$UCI -q get "ibrdtn.@static-route[$iter].destination"` let NUMBER=iter+1 echo "route$NUMBER = $PATTERN $DESTINATION" >> $CONFFILE else break fi let iter=iter+1 done #iterate through all static connections iter=0 while [ 1 == 1 ]; do $UCI -q get "ibrdtn.@static-connection[$iter]" > /dev/null if [ $? == 0 ]; then let NUMBER=iter+1 add_param $CONFFILE "ibrdtn.@static-connection[$iter].uri" "static${NUMBER}_uri" add_param $CONFFILE "ibrdtn.@static-connection[$iter].address" "static${NUMBER}_address" add_param $CONFFILE "ibrdtn.@static-connection[$iter].port" "static${NUMBER}_port" add_param $CONFFILE "ibrdtn.@static-connection[$iter].protocol" "static${NUMBER}_proto" add_param $CONFFILE "ibrdtn.@static-connection[$iter].immediately" "static${NUMBER}_immediately" else break fi let iter=iter+1 done