The default send buffer size of 8192 potentially can run past the end of the buffer (skb) and trash memory. Explicitly setting a limit is required. (Patch by Philip Prindeville) SVN-Revision: 26242
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh /etc/rc.common
 | 
						|
START=50
 | 
						|
 | 
						|
start_daemon() {
 | 
						|
	local cfg="$1"
 | 
						|
 | 
						|
	local atmdev
 | 
						|
	config_get atmdev "$cfg" atmdev 0
 | 
						|
 | 
						|
	local unit
 | 
						|
	config_get unit "$cfg" unit 0
 | 
						|
 | 
						|
	local vpi
 | 
						|
	config_get vpi "$cfg" vpi 8
 | 
						|
 | 
						|
	local vci
 | 
						|
	config_get vci "$cfg" vci 35
 | 
						|
 | 
						|
	local encaps
 | 
						|
	config_get encaps "$cfg" encaps
 | 
						|
 | 
						|
	case "$encaps" in
 | 
						|
		1|vc) encaps=1;;
 | 
						|
		*) encaps=0;;
 | 
						|
	esac
 | 
						|
 | 
						|
	local payload
 | 
						|
	config_get payload "$cfg" payload
 | 
						|
 | 
						|
	case "$payload" in
 | 
						|
		0|routed) payload=0;;
 | 
						|
		*) payload=1;;
 | 
						|
	esac
 | 
						|
 | 
						|
	local qos
 | 
						|
	config_get qos "$cfg" qos
 | 
						|
 | 
						|
	local sendsize
 | 
						|
	config_get sendsize "$cfg" sendsize
 | 
						|
 | 
						|
	local circuit="$atmdev.$vpi.$vci"
 | 
						|
	local pid="/var/run/br2684ctl-$circuit.pid"
 | 
						|
 | 
						|
	start-stop-daemon -S -b -x /usr/sbin/br2684ctl -m -p "$pid" -- \
 | 
						|
		-c "$unit" -e "$encaps" -p "$payload" \
 | 
						|
		-a "$circuit" ${qos:+-q "$qos"} ${sendsize:+-s "$sendsize"}
 | 
						|
}
 | 
						|
 | 
						|
start() {
 | 
						|
	insmod br2684 >/dev/null 2>/dev/null
 | 
						|
	config_load network
 | 
						|
	config_foreach start_daemon atm-bridge
 | 
						|
}
 | 
						|
 | 
						|
stop() {
 | 
						|
	local pid
 | 
						|
	for pid in /var/run/br2684ctl-*.pid; do
 | 
						|
		if [ -f "$pid" ]; then
 | 
						|
			service_kill br2684ctl "$pid"
 | 
						|
			rm -f "$pid"
 | 
						|
		fi
 | 
						|
	done
 | 
						|
}
 |