Minor post-merge refactor, mainly moved duplicated method ca_bundle_path into common.rb

This commit is contained in:
2025-08-04 10:50:07 -05:00
parent ad2544a56b
commit 48617b26da
5 changed files with 16 additions and 23 deletions

View File

@@ -1,19 +1,11 @@
class W3DHub class W3DHub
class Api class Api
# Detect CA bundle path for Excon
def self.ca_bundle_path
redhat_path = '/etc/pki/tls/certs/ca-bundle.crt'
debian_path = '/etc/ssl/certs/ca-certificates.crt'
[redhat_path, debian_path].find { |path| File.exist?(path) }
end
# Set Excon default CA file if found # Set Excon default CA file if found
ca_file = ca_bundle_path if (ca_file = W3DHub.ca_bundle_path)
if ca_file
Excon.defaults[:ssl_ca_file] = ca_file Excon.defaults[:ssl_ca_file] = ca_file
end end
LOG_TAG = "W3DHub::Api".freeze LOG_TAG = "W3DHub::Api".freeze
API_TIMEOUT = 30 # seconds API_TIMEOUT = 30 # seconds
@@ -295,7 +287,7 @@ class W3DHub
end end
# If channel versions and access levels match then all's well # If channel versions and access levels match then all's well
if channel.current_version == _channel.current_version && if channel.current_version == _channel.current_version &&
channel.user_level == _channel.user_level channel.user_level == _channel.user_level
# All's Well! # All's Well!
@@ -310,7 +302,7 @@ class W3DHub
# Replaced, continue. # Replaced, continue.
next next
end end
# If versions doen't match then pick whichever one is higher # If versions doen't match then pick whichever one is higher
if Gem::Version.new(channel.current_version) > Gem::Version.new(_channel.current_version) if Gem::Version.new(channel.current_version) > Gem::Version.new(_channel.current_version)
# Replace alternate's channel with primary's channel # Replace alternate's channel with primary's channel

View File

@@ -10,15 +10,6 @@ class W3DHub
TAG = "IRCClient" TAG = "IRCClient"
class SSL class SSL
# Detect system CA bundle path for SSL verification
def self.ca_bundle_path
[
'/etc/ssl/certs/ca-certificates.crt', # Debian/Ubuntu
'/etc/pki/tls/certs/ca-bundle.crt', # RHEL/Fedora/CentOS
'/etc/ssl/ca-bundle.pem' # Some other distros
].find { |path| File.exist?(path) }
end
def self.default_context def self.default_context
verify_peer_and_hostname verify_peer_and_hostname
end end
@@ -33,8 +24,7 @@ class W3DHub
no_verify.tap do |context| no_verify.tap do |context|
context.verify_mode = OpenSSL::SSL::VERIFY_PEER context.verify_mode = OpenSSL::SSL::VERIFY_PEER
context.cert_store = OpenSSL::X509::Store.new context.cert_store = OpenSSL::X509::Store.new
ca_file = ca_bundle_path if (ca_file = W3DHub.ca_bundle_path)
if ca_file
context.cert_store.add_file(ca_file) context.cert_store.add_file(ca_file)
else else
context.cert_store.set_default_paths context.cert_store.set_default_paths

View File

@@ -32,6 +32,15 @@ class W3DHub
linux? || mac? linux? || mac?
end end
# Detect system CA bundle path for SSL verification
def self.ca_bundle_path
[
"/etc/ssl/certs/ca-certificates.crt", # Debian/Ubuntu
"/etc/pki/tls/certs/ca-bundle.crt", # RHEL/Fedora/CentOS
"/etc/ssl/ca-bundle.pem" # Some other distros
].find { |path| File.exist?(path) }
end
def self.url(path) def self.url(path)
raise "Hazardous input: #{path}" if path.include?("&&") || path.include?(";") raise "Hazardous input: #{path}" if path.include?("&&") || path.include?(";")

View File

@@ -85,6 +85,8 @@ class W3DHub
"Español" "Español"
else else
logger.warn("W3DHub::Settings") { "Unknown language code: #{string.inspect}" } logger.warn("W3DHub::Settings") { "Unknown language code: #{string.inspect}" }
"UNKNOWN"
end end
end end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 KiB

After

Width:  |  Height:  |  Size: 795 KiB