mirror of
				https://github.com/Icinga/icinga2.git
				synced 2025-10-29 18:23:51 +01:00 
			
		
		
		
	ApiListener: Choose bind host default based on OS IPv6 support
This commit is contained in:
		
							parent
							
								
									aaccd0448f
								
							
						
					
					
						commit
						ec73b417f2
					
				| @ -1095,7 +1095,7 @@ Configuration Attributes: | |||||||
|   ca\_path                              | String                | **Deprecated.** Path to the CA certificate file. |   ca\_path                              | String                | **Deprecated.** Path to the CA certificate file. | ||||||
|   ticket\_salt                          | String                | **Optional.** Private key for [CSR auto-signing](06-distributed-monitoring.md#distributed-monitoring-setup-csr-auto-signing). **Required** for a signing master instance. |   ticket\_salt                          | String                | **Optional.** Private key for [CSR auto-signing](06-distributed-monitoring.md#distributed-monitoring-setup-csr-auto-signing). **Required** for a signing master instance. | ||||||
|   crl\_path                             | String                | **Optional.** Path to the CRL file. |   crl\_path                             | String                | **Optional.** Path to the CRL file. | ||||||
|   bind\_host                            | String                | **Optional.** The IP address the api listener should be bound to. If not specified, the ApiListener is bound to `::` and listens for both IPv4 and IPv6 connections. |   bind\_host                            | String                | **Optional.** The IP address the api listener should be bound to. If not specified, the ApiListener is bound to `::` and listens for both IPv4 and IPv6 connections or to `0.0.0.0` if IPv6 is not supported by the operating system. | ||||||
|   bind\_port                            | Number                | **Optional.** The port the api listener should be bound to. Defaults to `5665`. |   bind\_port                            | Number                | **Optional.** The port the api listener should be bound to. Defaults to `5665`. | ||||||
|   accept\_config                        | Boolean               | **Optional.** Accept zone configuration. Defaults to `false`. |   accept\_config                        | Boolean               | **Optional.** Accept zone configuration. Defaults to `false`. | ||||||
|   accept\_commands                      | Boolean               | **Optional.** Accept remote commands. Defaults to `false`. |   accept\_commands                      | Boolean               | **Optional.** Accept remote commands. Defaults to `false`. | ||||||
|  | |||||||
| @ -504,7 +504,7 @@ Environment         |**Read-write.** The name of the Icinga environment. Include | |||||||
| RunAsUser           |**Read-write.** Defines the user the Icinga 2 daemon is running as. Set in the Icinga 2 sysconfig. | RunAsUser           |**Read-write.** Defines the user the Icinga 2 daemon is running as. Set in the Icinga 2 sysconfig. | ||||||
| RunAsGroup          |**Read-write.** Defines the group the Icinga 2 daemon is running as. Set in the Icinga 2 sysconfig. | RunAsGroup          |**Read-write.** Defines the group the Icinga 2 daemon is running as. Set in the Icinga 2 sysconfig. | ||||||
| MaxConcurrentChecks |**Read-write.** The number of max checks run simultaneously. Defaults to `512`. | MaxConcurrentChecks |**Read-write.** The number of max checks run simultaneously. Defaults to `512`. | ||||||
| ApiBindHost         |**Read-write.** Overrides the default value for the ApiListener `bind_host` attribute. Defaults to `::`. | ApiBindHost         |**Read-write.** Overrides the default value for the ApiListener `bind_host` attribute. Defaults to `::` if IPv6 is supported by the operating system and to `0.0.0.0` otherwise. | ||||||
| ApiBindPort         |**Read-write.** Overrides the default value for the ApiListener `bind_port` attribute. Not set by default. | ApiBindPort         |**Read-write.** Overrides the default value for the ApiListener `bind_port` attribute. Not set by default. | ||||||
| 
 | 
 | ||||||
| #### Application Runtime Constants <a id="icinga-constants-application-runtime"></a> | #### Application Runtime Constants <a id="icinga-constants-application-runtime"></a> | ||||||
|  | |||||||
| @ -8,7 +8,20 @@ using namespace icinga; | |||||||
| 
 | 
 | ||||||
| REGISTER_TYPE(Configuration); | REGISTER_TYPE(Configuration); | ||||||
| 
 | 
 | ||||||
| String Configuration::ApiBindHost{"::"}; | String Configuration::ApiBindHost = []() { | ||||||
|  | #ifndef _WIN32 | ||||||
|  | 	// Automatically fall back to an IPv4 default if socket() tells us that IPv6 is not supported.
 | ||||||
|  | 	int fd = socket(AF_INET6, SOCK_STREAM, 0); | ||||||
|  | 	if (fd < 0 && errno == EAFNOSUPPORT) { | ||||||
|  | 		return "0.0.0.0"; | ||||||
|  | 	} else if (fd >= 0) { | ||||||
|  | 		close(fd); | ||||||
|  | 	} | ||||||
|  | #endif /* _WIN32 */ | ||||||
|  | 
 | ||||||
|  | 	return "::"; | ||||||
|  | }(); | ||||||
|  | 
 | ||||||
| String Configuration::ApiBindPort{"5665"}; | String Configuration::ApiBindPort{"5665"}; | ||||||
| bool Configuration::AttachDebugger{false}; | bool Configuration::AttachDebugger{false}; | ||||||
| String Configuration::CacheDir; | String Configuration::CacheDir; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user