gluon-ebtables: Enable concurrent ebtables updates
This enables the ebtables internal locking mechanism which will avoid race conditions between multiple, concurrent ebtables calls. This is a preparation for the upcoming gluon-arp-limiter daemon, to avoid issues if upon restarting gluon-ebtables the gluon-arp-limiter daemon tries to modify the tables. Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
This commit is contained in:
		
							parent
							
								
									cb03183284
								
							
						
					
					
						commit
						4911da56e1
					
				| @ -51,8 +51,12 @@ exec_all() { | ||||
| 
 | ||||
| start() { | ||||
| 	( | ||||
| 		export EBTABLES_RULE='"ebtables -t " .. table .. " -A " .. command' | ||||
| 		export EBTABLES_CHAIN='"ebtables -t " .. table .. "  -N " .. name .. " -P " .. policy' | ||||
| 		export EBTABLES_RULE='"ebtables --concurrent -t " .. table .. " -A " .. command' | ||||
| 		export EBTABLES_CHAIN='"ebtables --concurrent -t " .. table .. "  -N " .. name .. " -P " .. policy' | ||||
| 
 | ||||
| 		# Contains /var/lib/ebtables/lock for '--concurrent' | ||||
| 		[ ! -d "/var/lib/ebtables" ] && \ | ||||
| 			mkdir -p /var/lib/ebtables | ||||
| 
 | ||||
| 		if [ -z "$1" ]; then | ||||
| 			exec_all '' | ||||
| @ -64,8 +68,8 @@ start() { | ||||
| 
 | ||||
| stop() { | ||||
| 	( | ||||
| 		export EBTABLES_RULE='"ebtables -t " ..	table .. " -D " .. command' | ||||
| 		export EBTABLES_CHAIN='"ebtables -t " .. table .. " -X " .. name' | ||||
| 		export EBTABLES_RULE='"ebtables --concurrent -t " ..	table .. " -D " .. command' | ||||
| 		export EBTABLES_CHAIN='"ebtables --concurrent -t " .. table .. " -X " .. name' | ||||
| 
 | ||||
| 		if [ -z "$1" ]; then | ||||
| 			exec_all '-r' | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user