| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1962,11 +1962,32 @@ sub DefineConfigToCLIConversion {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        name => 'httpd',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        configKeys => [
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          KasmVNC::ConfigKey->new({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            name => "server.advanced.httpd_directory",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            name => "server.http.httpd_directory",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            type => KasmVNC::ConfigKey::ANY
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        ]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    KasmVNC::CliOption->new({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        name => 'http-header',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        configKeys => [
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          KasmVNC::ConfigKey->new({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            name => "server.http.headers",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            type => KasmVNC::ConfigKey::ANY
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        ],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        toStringSub => sub {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          $self = shift;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          my @values = @{ listify($self->configValues()) };
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          my $valuesStr = "";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          foreach $value (@values) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            $valuesStr = $valuesStr . "-http-header '$value' "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          chop($valuesStr);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          return $valuesStr;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    KasmVNC::CliOption->new({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        name => 'IgnoreClientSettingsKasm',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        configKeys => [
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -2199,6 +2220,24 @@ sub DefineConfigToCLIConversion {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        isActiveSub => sub {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          $self = shift;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          my $value = $self->configValue();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          isPresent($value) && $value ne 'auto';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    KasmVNC::CliOption->new({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        name => 'StunServer',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        configKeys => [
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          KasmVNC::ConfigKey->new({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            name => "network.udp.stun_server",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            validator => KasmVNC::PatternValidator->new({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              pattern => qr/^(auto|\S+)$/,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              errorMessage => "must be 'auto' or an IP address/hostname"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        ],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        isActiveSub => sub {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          $self = shift;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          my $value = $self->configValue();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          isPresent($value) && $value ne 'auto';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -2644,7 +2683,9 @@ sub ConfigToCmd {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  %optFromConfig = %{ ConstructOptFromConfig() };
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  my @cmd = map { $cliArgMap{$_}->toString() } (keys %optFromConfig);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  " " . join " ", @cmd;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  my $cmdStr = " " . join " ", @cmd;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return $cmdStr;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				sub ValidateConfig {
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |