validateHttpConfig static method
Validate HTTP configuration
Checks for common configuration issues and logs warnings.
Implementation
static void validateHttpConfig(LLMConfig config) {
// Check for conflicting timeout settings
final connectionTimeout =
config.getExtension<Duration>('connectionTimeout');
final receiveTimeout = config.getExtension<Duration>('receiveTimeout');
final globalTimeout = config.timeout;
if (connectionTimeout != null &&
globalTimeout != null &&
connectionTimeout != globalTimeout) {
_logger.warning('Connection timeout differs from global timeout');
}
if (receiveTimeout != null &&
globalTimeout != null &&
receiveTimeout != globalTimeout) {
_logger.warning('Receive timeout differs from global timeout');
}
// Check for security issues
final bypassSSL =
config.getExtension<bool>('bypassSSLVerification') ?? false;
if (bypassSSL) {
if (isAdvancedHttpSupported) {
_logger.warning(
'⚠️ SSL verification is disabled - use only for development');
} else {
_logger.warning(
'⚠️ SSL verification bypass is not supported on this platform');
}
}
// Check proxy configuration
final proxyUrl = config.getExtension<String>('httpProxy');
if (proxyUrl != null) {
if (!isAdvancedHttpSupported) {
_logger.warning(
'⚠️ HTTP proxy configuration is not supported on this platform');
} else if (!proxyUrl.startsWith('http')) {
_logger.warning('Proxy URL should start with http:// or https://');
}
}
// Check SSL certificate configuration
final certificatePath = config.getExtension<String>('sslCertificate');
if (certificatePath != null && !isAdvancedHttpSupported) {
_logger.warning(
'⚠️ Custom SSL certificate loading is not supported on this platform');
}
}