Package: network-manager
Version: 0.8.999-1
Severity: normal

On a Finnish free software IRC channel I heard that sometimes when
people use a 3G stick of their Finnish ISP (Saunalahti) their DNS
requests are sent to 4.2.2.1 which according to traceroute is
somewhere in the UK.

I have not hit this bug myself but I started investigating and found the
below function in the source code. Does this mean that gtei.net can
profile what websites people visit when they use a Finnish ISP?


static void
ppp_ip4_config (NMPPPManager *ppp_manager,
                                const char *iface,
                                NMIP4Config *config,
                                gpointer user_data)
{
        NMModem *self = NM_MODEM (user_data);
        NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (self);
        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) {
                nm_log_warn (LOGD_PPP, "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);
        }

        priv->pending_ip4_config = g_object_ref (config);
        g_signal_emit (self, signals[IP4_CONFIG_RESULT], 0, iface, config, 
NULL);
}



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to