This avoids the situation where a duplicate entry is created if
Settings is started with the wwan panel disabled, a previous connection
exists, and the panel is later enabled.
Fixes#1468
It is perfectly possible for mm_sim_dup_identifier() to return NULL if
the SIM ID wasn't provided by the modem for any reason, leading to an
assertion failure:
(gnome-control-center:910641): cc-wwan-data-CRITICAL **: 12:43:51.573:
cc_wwan_data_set_default_apn: assertion 'self->sim_id != NULL' failed
Handle the NULL SIM ID gracefully.
Since we return early, the code followed is never run.
Also, the password for GSM APNs are not actually sensitive
secrets. So Remove the lines that are never reached.
Otherwise the comparison in wwan_data_apn_are_same will always be False
due to nm_setting_gsm_get_password always returning NULL.
Helps #1468
Relates !1059
The current DNS priority settings for WWAN were set far too low. Most
connections (including WiFi) do not set DNS priority (set to 0) and per
https://developer.gnome.org/NetworkManager/stable/nm-settings.html :
"A lower value is better (higher priority). Zero selects a globally
configured default value. If the latter is missing or zero too, it
defaults to 50 for VPNs and 100 for other connections."
By setting both the "low" and "high" settings to 15 and 20 respectively,
the WWAN DNS servers were always appearing above WiFi, even though WiFi
had routing priority. This caused latency and other problems when the
wwan connection was slow because the system would query those DNS
servers before WiFi ones. Beyond that, it would even cause WWAN to
override VPN DNS settings which isn't what we want.
This change puts the "low priority" setting above the default 100 that
connections get when they don't otherwise set a priority, and the "high
priority" slightly below 100. I did this instead of setting the values
to 0 because I noticed that NM doesn't seem to be aware it should
prioritize WiFi in that case so WWAN DNS servers were still sometimes
taking precedence.
The panel supports 2G/3G/4G GSM/LTE modems. CDMA2000 Modems are not supported.
If a supported modem is present, the panel will be shown and the modem will be
handled, else, network-panel shall manage the modem as it did in the past.
If more than one modem with data enabled is present, the user is allowed to set
priority of one SIM over the other (the priority is for SIM, not modem).
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/issues/132