* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#define RCSID "$Id: ipcp.c,v 1.64 2003/07/28 12:25:41 carlsonj Exp $"
+#define RCSID "$Id: ipcp.c,v 1.67 2004/11/08 11:45:59 paulus Exp $"
/*
* TODO:
wo->accept_remote = 0;
}
}
+ BZERO(&ipcp_hisoptions[f->unit], sizeof(ipcp_options));
}
* First see if we want to change our options to the old
* forms because we have received old forms from the peer.
*/
- if ((wo->neg_addr || wo->old_addrs) && !go->neg_addr && !go->old_addrs) {
- /* use the old style of address negotiation */
- go->old_addrs = 1;
- }
+ if (go->neg_addr && go->old_addrs && !ho->neg_addr && ho->old_addrs)
+ go->neg_addr = 0;
if (wo->neg_vj && !go->neg_vj && !go->old_vj) {
/* try an older style of VJ negotiation */
/* use the old style only if the peer did */
script_setenv("IPLOCAL", ip_ntoa(go->ouraddr), 0);
script_setenv("IPREMOTE", ip_ntoa(ho->hisaddr), 1);
+ if (go->dnsaddr[0])
+ script_setenv("DNS1", ip_ntoa(go->dnsaddr[0]), 0);
+ if (go->dnsaddr[1])
+ script_setenv("DNS2", ip_ntoa(go->dnsaddr[1]), 0);
if (usepeerdns && (go->dnsaddr[0] || go->dnsaddr[1])) {
script_setenv("USEPEERDNS", "1", 0);
- if (go->dnsaddr[0])
- script_setenv("DNS1", ip_ntoa(go->dnsaddr[0]), 0);
- if (go->dnsaddr[1])
- script_setenv("DNS2", ip_ntoa(go->dnsaddr[1]), 0);
create_resolv(go->dnsaddr[0], go->dnsaddr[1]);
}
notice("secondary DNS address %I", go->dnsaddr[1]);
}
+ reset_link_stats(f->unit);
+
np_up(f->unit, PPP_IP);
ipcp_is_up = 1;
IPCPDEBUG(("ipcp: down"));
/* XXX a bit IPv4-centric here, we only need to get the stats
* before the interface is marked down. */
+ /* XXX more correct: we must get the stats before running the notifiers,
+ * at least for the radius plugin */
update_link_stats(f->unit);
notify(ip_down_notifier, 0);
if (ip_down_hook)
}
sifvjcomp(f->unit, 0, 0, 0);
+ print_link_stats(); /* _after_ running the notifiers and ip_down_hook(),
+ * because print_link_stats() sets link_stats_valid
+ * to 0 (zero) */
+
/*
* If we are doing dial-on-demand, set the interface
* to queue up outgoing packets (for now).