Class: Y2Network::NetworkManager::ConnectionConfigWriters::Wireless
- Defined in:
- src/lib/y2network/network_manager/connection_config_writers/wireless.rb
Overview
This class is responsible for writing the information from a ConnectionConfig::Wireless object to the underlying system.
Constant Summary collapse
- DEFAULT_MODE =
"infrastructure".freeze
- MODE =
{ "ad-hoc" => "ad-hoc", "master" => "ap", "managed" => "infrastructure" }.freeze
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
- #update_file(conn) ⇒ Object
-
#write_auth_settings(conn) ⇒ Object
Writes authentication settings.
-
#write_eap_auth_settings(conn) ⇒ Object
Writes autentication settings for WPA-EAP networks.
-
#write_open_auth_settings(conn) ⇒ Object
Writes autentication settings for WEP networks (open auth).
-
#write_psk_auth_settings(conn) ⇒ Object
Writes autentication settings for WPA-PSK networks.
-
#write_shared_auth_settings(conn) ⇒ Object
Writes autentication settings for WEP networks (shared auth).
-
#write_wep_auth_settings(conn) ⇒ Object
Writes autentication settings for WEP networks.
Methods inherited from Base
Constructor Details
This class inherits a constructor from Y2Network::NetworkManager::ConnectionConfigWriters::Base
Instance Method Details
#update_file(conn) ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'src/lib/y2network/network_manager/connection_config_writers/wireless.rb', line 32 def update_file(conn) file.connection["type"] = "wifi" file.wifi["ssid"] = conn.essid unless conn.essid.to_s.empty? file.wifi["mode"] = MODE[conn.mode] || DEFAULT_MODE file.wifi["channel"] = conn.channel.to_s if conn.channel write_auth_settings(conn) end |
#write_auth_settings(conn) ⇒ Object
Writes authentication settings
This method relies in write_*_auth_settings
methods.
52 53 54 55 56 |
# File 'src/lib/y2network/network_manager/connection_config_writers/wireless.rb', line 52 def write_auth_settings(conn) auth_mode = conn.auth_mode || :open meth = "write_#{auth_mode}_auth_settings" send(meth, conn) if respond_to?(meth, true) end |
#write_eap_auth_settings(conn) ⇒ Object
Writes autentication settings for WPA-EAP networks
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'src/lib/y2network/network_manager/connection_config_writers/wireless.rb', line 61 def write_eap_auth_settings(conn) file.wifi_security["key-mgmt"] = "wpa-eap" section = file.section_for("802-1x") section["eap"] = conn.eap_mode.downcase if conn.eap_mode section["phase2-auth"] = conn.eap_auth if conn.eap_auth section["password"] = conn.wpa_password if conn.wpa_password && conn.eap_mode != "TLS" section["anonymous-identity"] = conn.wpa_anonymous_identity if conn.eap_mode == "TTLS" section["identity"] = conn.wpa_identity if conn.wpa_identity section["ca-cert"] = conn.ca_cert if conn.ca_cert return unless conn.eap_mode == "TLS" section["client-cert"] = conn.client_cert section["private-key"] = conn.client_key section["private-key-password"] = conn.client_key_password end |
#write_open_auth_settings(conn) ⇒ Object
Writes autentication settings for WEP networks (open auth)
111 112 113 114 115 116 |
# File 'src/lib/y2network/network_manager/connection_config_writers/wireless.rb', line 111 def write_open_auth_settings(conn) return unless conn.keys? file.wifi_security["auth-alg"] = "open" write_wep_auth_settings(conn) end |
#write_psk_auth_settings(conn) ⇒ Object
Writes autentication settings for WPA-PSK networks
82 83 84 85 86 |
# File 'src/lib/y2network/network_manager/connection_config_writers/wireless.rb', line 82 def write_psk_auth_settings(conn) file.wifi_security["key-mgmt"] = "wpa-psk" file.wifi_security["auth-alg"] = "open" file.wifi_security["psk"] = conn.wpa_psk end |
#write_shared_auth_settings(conn) ⇒ Object
Writes autentication settings for WEP networks (shared auth)
121 122 123 124 125 126 |
# File 'src/lib/y2network/network_manager/connection_config_writers/wireless.rb', line 121 def write_shared_auth_settings(conn) return unless conn.keys? file.wifi_security["auth-alg"] = "shared" write_wep_auth_settings(conn) end |
#write_wep_auth_settings(conn) ⇒ Object
Writes autentication settings for WEP networks
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'src/lib/y2network/network_manager/connection_config_writers/wireless.rb', line 91 def write_wep_auth_settings(conn) file.wifi_security["key-mgmt"] = "none" default_key_idx = conn.default_key || 0 file.wifi_security["wep-tx-keyidx"] = default_key_idx.to_s if !default_key_idx.zero? conn.keys.each_with_index do |v, i| next if v.to_s.empty? file.wifi_security["wep-key#{i}"] = v.gsub(/^[sh]:/, "") end passphrase_used = conn.keys[default_key_idx].to_s.start_with?(/h:/) # see https://developer.gnome.org/libnm/stable/NMSettingWirelessSecurity.html#NMWepKeyType # 1: Hex or ASCII, 2: 104/128-bit Passphrase file.wifi_security["wep-key-type"] = passphrase_used ? "2" : "1" true end |