mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-14 20:18:39 +00:00
wwan: drop workaround to use GTE DNS servers for PPP
Drop a workaround added by commita8ca7f537d
('ppp: work around PPP bug that returns bogus nameservers'), in 2009. Also drop the second workaround (`if (!num ...`), which was introduced by commit294a5e3153
('modem: substitute known-good nameservers if PPP doesn't return any (lp:434477)'). I hope this doesn't break something, but it really doesn't seem right in 2021. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/988
This commit is contained in:
parent
07d570766f
commit
e81c2baf70
|
@ -526,48 +526,6 @@ static void
|
|||
ppp_ip4_config(NMPPPManager *ppp_manager, NMIP4Config *config, gpointer user_data)
|
||||
{
|
||||
NMModem *self = NM_MODEM(user_data);
|
||||
guint32 i, num;
|
||||
guint32 bad_dns1 = htonl(0x0A0B0C0D);
|
||||
guint32 good_dns1 = htonl(0x04020201); /* GTE nameserver */
|
||||
guint32 bad_dns2 = htonl(0x0A0B0C0E);
|
||||
guint32 good_dns2 = htonl(0x04020202); /* GTE nameserver */
|
||||
gboolean dns_workaround = FALSE;
|
||||
|
||||
/* Work around a PPP bug (#1732) which causes many mobile broadband
|
||||
* providers to return 10.11.12.13 and 10.11.12.14 for the DNS servers.
|
||||
* Apparently fixed in ppp-2.4.5 but we've had some reports that this is
|
||||
* not the case.
|
||||
*
|
||||
* http://git.ozlabs.org/?p=ppp.git;a=commitdiff_plain;h=2e09ef6886bbf00bc5a9a641110f801e372ffde6
|
||||
* http://git.ozlabs.org/?p=ppp.git;a=commitdiff_plain;h=f8191bf07df374f119a07910a79217c7618f113e
|
||||
*/
|
||||
|
||||
num = nm_ip4_config_get_num_nameservers(config);
|
||||
if (num == 2) {
|
||||
gboolean found1 = FALSE, found2 = FALSE;
|
||||
|
||||
for (i = 0; i < num; i++) {
|
||||
guint32 ns = nm_ip4_config_get_nameserver(config, i);
|
||||
|
||||
if (ns == bad_dns1)
|
||||
found1 = TRUE;
|
||||
else if (ns == bad_dns2)
|
||||
found2 = TRUE;
|
||||
}
|
||||
|
||||
/* Be somewhat conservative about substitutions; the "bad" nameservers
|
||||
* could actually be valid in some cases, so only substitute if ppp
|
||||
* returns *only* the two bad nameservers.
|
||||
*/
|
||||
dns_workaround = (found1 && found2);
|
||||
}
|
||||
|
||||
if (!num || dns_workaround) {
|
||||
_LOGW("compensating for invalid PPP-provided nameservers");
|
||||
nm_ip4_config_reset_nameservers(config);
|
||||
nm_ip4_config_add_nameserver(config, good_dns1);
|
||||
nm_ip4_config_add_nameserver(config, good_dns2);
|
||||
}
|
||||
|
||||
g_signal_emit(self, signals[IP4_CONFIG_RESULT], 0, config, NULL);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue