#!/bin/sh /etc/rc.common # Copyright (C) 2006-2011 OpenWrt.org START=99 append_bool() { local section="$1" local option="$2" local value="$3" local _loctmp config_get_bool _loctmp "$section" "$option" 0 [ "$_loctmp" -gt 0 ] && append args "$value" } append_parm() { local section="$1" local option="$2" local switch="$3" local _loctmp config_get _loctmp "$section" "$option" [ -z "$_loctmp" ] && return 0 append args "$switch $_loctmp" } btpd() { local cfg="$1" args="" directory="" append_bool "$cfg" useipv4 "-4" append_bool "$cfg" useipv6 "-6" append_bool "$cfg" emptystart "--empty-start" append_parm "$cfg" port "-p" append_parm "$cfg" directory "-d" append_parm "$cfg" maxpeers "--max-peers" append_parm "$cfg" maxuploads "--max-uploads" append_parm "$cfg" maxkbin "--bw-in" append_parm "$cfg" maxkbout "--bw-out" config_get directory "$cfg" directory } start() { config_load btpd config_foreach btpd btpd service_start /usr/bin/btpd $args } stop() { config_load btpd config_foreach btpd btpd [ -d $directory ] && args="-d $directory " while btcli $args kill ; do sleep 3 done 2>/dev/null service_stop /usr/bin/btpd }