#!/bin/sh # # $FreeBSD$ # # PROVIDE: tcpmss # BEFORE: ipfw # REQUIRE: netif # KEYWORD: nojail . /etc/rc.subr name="tcpmss" rcvar="${name}_enable" start_cmd="${name}_start" start_precmd="${name}_prestart" stop_cmd="${name}_stop" tcpmss_prestart() { [ -n "$1" ] && tcpmss_instances="$1" [ -z "$tcpmss_instances" ] && return 1 required_modules="netgraph ng_ipfw ng_tcpmss" } tcpmss_start() { local _i _m _v [ -n "$1" ] && tcpmss_instances="$1" checkyesno tcpmss_verbose && _v=yes rc=0 for _i in $tcpmss_instances do # get value of tcpmss_NAME="1452" eval _m=\"\$tcpmss_${_i}\" if [ -z "$_m" ]; then echo "Warning: variable tcpmss_$_i not defined" >&2 continue fi [ -n "$_v" ] && echo -n "Setup ng_tcpmss instance $_i: mss=$_m" ngctl mkpeer ipfw: tcpmss $_i mss_$_i && ngctl msg ipfw:$_i config \ '{ inHook="'mss_$_i'" outHook="'mss_$_i'" maxMSS='$_m' }' && \ ngctl name ipfw:$_i mss_$_i rc=$(($rc + $?)) [ -n "$_v" ] && echo . done return $rc } tcpmss_stop() { local _i _v [ -n "$1" ] && tcpmss_instances="$1" checkyesno tcpmss_verbose && _v=yes rc=0 for _i in $tcpmss_instances do [ -n "$_v" ] && echo -n "Shutdown ng_tcpmss instance $_i" ngctl shutdown mss_${_i}: rc=$(($rc + $?)) [ -n "$_v" ] && echo . done return $rc kldunload ng_ipfw ng_tcpmss netgraph } load_rc_config $name run_rc_command "$@"