]>
Commit | Line | Data |
---|---|---|
fa4c11b5 MT |
1 | --- ppp-2.4.3/pppd/ipv6cp.c~ 2005-11-04 09:40:10.000000000 +0000 |
2 | +++ ppp-2.4.3/pppd/ipv6cp.c 2005-11-04 10:20:14.000000000 +0000 | |
3 | @@ -235,6 +235,8 @@ static option_t ipv6cp_option_list[] = { | |
4 | ||
5 | { "ipv6cp-accept-local", o_bool, &ipv6cp_allowoptions[0].accept_local, | |
6 | "Accept peer's interface identifier for us", 1 }, | |
7 | + { "ipv6cp-accept-remote", o_bool, &ipv6cp_allowoptions[0].accept_remote, | |
8 | + "Accept peer's interface identifier for itself", 1 }, | |
9 | ||
10 | { "ipv6cp-use-ipaddr", o_bool, &ipv6cp_allowoptions[0].use_ip, | |
11 | "Use (default) IPv4 address as interface identifier", 1 }, | |
12 | @@ -427,6 +429,7 @@ ipv6cp_init(unit) | |
13 | memset(ao, 0, sizeof(*ao)); | |
14 | ||
15 | wo->accept_local = 1; | |
16 | + wo->accept_remote = 1; | |
17 | wo->neg_ifaceid = 1; | |
18 | ao->neg_ifaceid = 1; | |
19 | ||
20 | @@ -952,7 +955,7 @@ ipv6cp_reqci(f, inp, len, reject_if_disa | |
21 | orc = CONFREJ; /* Reject CI */ | |
22 | break; | |
23 | } | |
24 | - if (!eui64_iszero(wo->hisid) && | |
25 | + if (!eui64_iszero(wo->hisid) && !wo->accept_remote && | |
26 | !eui64_equals(ifaceid, wo->hisid) && | |
27 | eui64_iszero(go->hisid)) { | |
28 | ||
29 | --- ppp-2.4.3/pppd/ipv6cp.h~ 2002-12-04 23:03:32.000000000 +0000 | |
30 | +++ ppp-2.4.3/pppd/ipv6cp.h 2005-11-04 10:20:55.000000000 +0000 | |
31 | @@ -150,7 +150,8 @@ | |
32 | typedef struct ipv6cp_options { | |
33 | int neg_ifaceid; /* Negotiate interface identifier? */ | |
34 | int req_ifaceid; /* Ask peer to send interface identifier? */ | |
35 | - int accept_local; /* accept peer's value for iface id? */ | |
36 | + int accept_local; /* accept peer's value for our iface id? */ | |
37 | + int accept_remote; /* accept peer's value for his iface id? */ | |
38 | int opt_local; /* ourtoken set by option */ | |
39 | int opt_remote; /* histoken set by option */ | |
40 | int use_ip; /* use IP as interface identifier */ |