wg-quick: ifnames have max len of 15
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
		
							parent
							
								
									9207dec08f
								
							
						
					
					
						commit
						7fc4c0af45
					
				
					 3 changed files with 5 additions and 5 deletions
				
			
		| 
						 | 
					@ -9,8 +9,8 @@ shopt -s extglob
 | 
				
			||||||
export LC_ALL=C
 | 
					export LC_ALL=C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CONFIG_FILE="$1"
 | 
					CONFIG_FILE="$1"
 | 
				
			||||||
[[ $CONFIG_FILE =~ ^[a-zA-Z0-9_=+.-]{1,16}$ ]] && CONFIG_FILE="/etc/wireguard/$CONFIG_FILE.conf"
 | 
					[[ $CONFIG_FILE =~ ^[a-zA-Z0-9_=+.-]{1,15}$ ]] && CONFIG_FILE="/etc/wireguard/$CONFIG_FILE.conf"
 | 
				
			||||||
[[ $CONFIG_FILE =~ /?([a-zA-Z0-9_=+.-]{1,16})\.conf$ ]]
 | 
					[[ $CONFIG_FILE =~ /?([a-zA-Z0-9_=+.-]{1,15})\.conf$ ]]
 | 
				
			||||||
INTERFACE="${BASH_REMATCH[1]}"
 | 
					INTERFACE="${BASH_REMATCH[1]}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
process_peer() {
 | 
					process_peer() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -97,7 +97,7 @@ interface upon shutdown.
 | 
				
			||||||
.P
 | 
					.P
 | 
				
			||||||
Recommended \fIINTERFACE\fP names include `wg0' or `wgvpn0' or even `wgmgmtlan0'.
 | 
					Recommended \fIINTERFACE\fP names include `wg0' or `wgvpn0' or even `wgmgmtlan0'.
 | 
				
			||||||
However, the number at the end is in fact optional, and really
 | 
					However, the number at the end is in fact optional, and really
 | 
				
			||||||
any free-form string [a-zA-Z0-9_=+.-]{1,16} will work. So even interface names corresponding
 | 
					any free-form string [a-zA-Z0-9_=+.-]{1,15} will work. So even interface names corresponding
 | 
				
			||||||
to geographic locations would suffice, such as `cincinnati', `nyc', or `paris', if that's
 | 
					to geographic locations would suffice, such as `cincinnati', `nyc', or `paris', if that's
 | 
				
			||||||
somehow desirable.
 | 
					somehow desirable.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,9 +29,9 @@ ARGS=( "$@" )
 | 
				
			||||||
parse_options() {
 | 
					parse_options() {
 | 
				
			||||||
	local interface_section=0 line key value
 | 
						local interface_section=0 line key value
 | 
				
			||||||
	CONFIG_FILE="$1"
 | 
						CONFIG_FILE="$1"
 | 
				
			||||||
	[[ $CONFIG_FILE =~ ^[a-zA-Z0-9_=+.-]{1,16}$ ]] && CONFIG_FILE="/etc/wireguard/$CONFIG_FILE.conf"
 | 
						[[ $CONFIG_FILE =~ ^[a-zA-Z0-9_=+.-]{1,15}$ ]] && CONFIG_FILE="/etc/wireguard/$CONFIG_FILE.conf"
 | 
				
			||||||
	[[ -e $CONFIG_FILE ]] || die "\`$CONFIG_FILE' does not exist"
 | 
						[[ -e $CONFIG_FILE ]] || die "\`$CONFIG_FILE' does not exist"
 | 
				
			||||||
	[[ $CONFIG_FILE =~ /?([a-zA-Z0-9_=+.-]{1,16})\.conf$ ]] || die "The config file must be a valid interface name, followed by .conf"
 | 
						[[ $CONFIG_FILE =~ /?([a-zA-Z0-9_=+.-]{1,15})\.conf$ ]] || die "The config file must be a valid interface name, followed by .conf"
 | 
				
			||||||
	CONFIG_FILE="$(readlink -f "$CONFIG_FILE")"
 | 
						CONFIG_FILE="$(readlink -f "$CONFIG_FILE")"
 | 
				
			||||||
	((($(stat -c '0%#a' "$CONFIG_FILE") & $(stat -c '0%#a' "${CONFIG_FILE%/*}") & 0007) == 0)) || echo "Warning: \`$CONFIG_FILE' is world accessible" >&2
 | 
						((($(stat -c '0%#a' "$CONFIG_FILE") & $(stat -c '0%#a' "${CONFIG_FILE%/*}") & 0007) == 0)) || echo "Warning: \`$CONFIG_FILE' is world accessible" >&2
 | 
				
			||||||
	INTERFACE="${BASH_REMATCH[1]}"
 | 
						INTERFACE="${BASH_REMATCH[1]}"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue