Browse Source
			
			
			httpcaddyfile: Support explicitly turning off `strict_sni_host` (#4592)
			
			
				master
			
			
		 
		
			
				
					
						
						Francis Lavoie
					
					4 years ago
					
						
							committed by
							
								
								GitHub
							
						 
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: 4AEE18F83AFDEB23
						
					
				
			
		
		
		
	
		
			
				 2 changed files with 
17 additions and 
6 deletions
			 
			
		 
		
			
				- 
					
					
					 
					caddyconfig/httpcaddyfile/serveroptions.go
				
 
			
				- 
					
					
					 
					caddytest/integration/caddyfile_adapt/global_server_options_multi.txt
				
 
			
		
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -157,11 +157,14 @@ func unmarshalCaddyfileServerOptions(d *caddyfile.Dispenser) (interface{}, error | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											serverOpts.ExperimentalHTTP3 = true | 
					 | 
					 | 
											serverOpts.ExperimentalHTTP3 = true | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										case "strict_sni_host": | 
					 | 
					 | 
										case "strict_sni_host": | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
											if d.NextArg() { | 
					 | 
					 | 
											if d.NextArg() && d.Val() != "insecure_off" && d.Val() != "on" { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
												return nil, d.ArgErr() | 
					 | 
					 | 
												return nil, d.Errf("strict_sni_host only supports 'on' or 'insecure_off', got '%s'", d.Val()) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
											} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
											boolVal := true | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
											if d.Val() == "insecure_off" { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
												boolVal = false | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											} | 
					 | 
					 | 
											} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
											trueBool := true | 
					 | 
					 | 
											serverOpts.StrictSNIHost = &boolVal | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
											serverOpts.StrictSNIHost = &trueBool | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										default: | 
					 | 
					 | 
										default: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											return nil, d.Errf("unrecognized protocol option '%s'", d.Val()) | 
					 | 
					 | 
											return nil, d.Errf("unrecognized protocol option '%s'", d.Val()) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -3,6 +3,9 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							timeouts { | 
					 | 
					 | 
							timeouts { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								idle 90s | 
					 | 
					 | 
								idle 90s | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							} | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							protocol { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								strict_sni_host insecure_off | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						} | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						servers :80 { | 
					 | 
					 | 
						servers :80 { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							timeouts { | 
					 | 
					 | 
							timeouts { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -13,6 +16,9 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							timeouts { | 
					 | 
					 | 
							timeouts { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								idle 30s | 
					 | 
					 | 
								idle 30s | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							} | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							protocol { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								strict_sni_host | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						} | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -46,7 +52,8 @@ http://bar.com { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												], | 
					 | 
					 | 
												], | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
												"terminal": true | 
					 | 
					 | 
												"terminal": true | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											} | 
					 | 
					 | 
											} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
										] | 
					 | 
					 | 
										], | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
										"strict_sni_host": true | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									}, | 
					 | 
					 | 
									}, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									"srv1": { | 
					 | 
					 | 
									"srv1": { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										"listen": [ | 
					 | 
					 | 
										"listen": [ | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -70,7 +77,8 @@ http://bar.com { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										"listen": [ | 
					 | 
					 | 
										"listen": [ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
											":8080" | 
					 | 
					 | 
											":8080" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
										], | 
					 | 
					 | 
										], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
										"idle_timeout": 90000000000 | 
					 | 
					 | 
										"idle_timeout": 90000000000, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
										"strict_sni_host": false | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
									} | 
					 | 
					 | 
									} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								} | 
					 | 
					 | 
								} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							} | 
					 | 
					 | 
							} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |