wg-quick: linux: don't fail down when using systemd-resolved
systemd-resolved has a compatibility interface for use with resolvconf scripts when resolvectl is called from a symlink from resolvconf. However, when tearing down the interface, cmd_down calls del_if and then unset_dns. In the case of systemd-resolved, deleting the interface also removes the systemd-resolved entry and causes resolvconf -d to fail when resolvconf really is a symlink to resolvectl. This causes `wg-quick down` and 'wg-quick@.service' to exit with failure. Instead we use the resolvconf '-f' flag to ignore non-existent interfaces, supported by both openresolv and sd-resolved resolvconf. Signed-off-by: Ronan Pigott <rpigott@berkeley.edu> [zx2c4: moved -f argument to end to remain compatible with Debian's resolvconf] Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
		
							parent
							
								
									5df58a945d
								
							
						
					
					
						commit
						4154476d89
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
					@ -155,7 +155,7 @@ set_dns() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
unset_dns() {
 | 
					unset_dns() {
 | 
				
			||||||
	[[ ${#DNS[@]} -gt 0 ]] || return 0
 | 
						[[ ${#DNS[@]} -gt 0 ]] || return 0
 | 
				
			||||||
	cmd resolvconf -d "$(resolvconf_iface_prefix)$INTERFACE"
 | 
						cmd resolvconf -d "$(resolvconf_iface_prefix)$INTERFACE" -f
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_route() {
 | 
					add_route() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue