mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2025-02-04 21:39:49 +00:00
more cleanup prework to fix bug #45029
This commit is contained in:
parent
7754f96549
commit
94550682d7
@ -761,10 +761,9 @@ nd6_tmr(void)
|
||||
for (j = 1; j < LWIP_IPV6_NUM_ADDRESSES; j++) {
|
||||
if (netif_ip6_addr_state(prefix_list[i].netif, j) == IP6_ADDR_INVALID) {
|
||||
/* Generate an address using this prefix and interface ID from link-local address. */
|
||||
prefix_list[i].netif->ip6_addr[j].addr[0] = prefix_list[i].prefix.addr[0];
|
||||
prefix_list[i].netif->ip6_addr[j].addr[1] = prefix_list[i].prefix.addr[1];
|
||||
prefix_list[i].netif->ip6_addr[j].addr[2] = prefix_list[i].netif->ip6_addr[0].addr[2];
|
||||
prefix_list[i].netif->ip6_addr[j].addr[3] = prefix_list[i].netif->ip6_addr[0].addr[3];
|
||||
IP6_ADDR(&prefix_list[i].netif->ip6_addr[j],
|
||||
prefix_list[i].prefix.addr[0], prefix_list[i].prefix.addr[1],
|
||||
netif_ip6_addr(prefix_list[i].netif, 0)->addr[2], netif_ip6_addr(prefix_list[i].netif, 0)->addr[3]);
|
||||
|
||||
/* Mark it as tentative (DAD will be performed if configured). */
|
||||
netif_ip6_addr_set_state(prefix_list[i].netif, j, IP6_ADDR_TENTATIVE);
|
||||
|
@ -152,10 +152,7 @@ netif_init(void)
|
||||
#endif /* NO_SYS */
|
||||
|
||||
#if LWIP_IPV6
|
||||
loop_netif.ip6_addr[0].addr[0] = 0;
|
||||
loop_netif.ip6_addr[0].addr[1] = 0;
|
||||
loop_netif.ip6_addr[0].addr[2] = 0;
|
||||
loop_netif.ip6_addr[0].addr[3] = PP_HTONL(0x00000001UL);
|
||||
IP6_ADDR(loop_netif.ip6_addr, 0, 0, 0, PP_HTONL(0x00000001UL));
|
||||
loop_netif.ip6_addr_state[0] = IP6_ADDR_VALID;
|
||||
#endif /* LWIP_IPV6 */
|
||||
|
||||
|
@ -107,6 +107,8 @@ static ip4_addr_t* ip_2_ip4(const ip_addr_t *ipaddr)
|
||||
ip4_addr_set(ip_2_ip4(dest), ip_2_ip4(src)); IP_SET_TYPE(dest, IPADDR_TYPE_V4); }}while(0)
|
||||
#define ip_addr_set_zero(ipaddr) do{ \
|
||||
ip6_addr_set_zero(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, 0); }while(0)
|
||||
#define ip_addr_set_zero_ip6(ipaddr) do{ \
|
||||
ip6_addr_set_zero(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V6); }while(0)
|
||||
#define ip_addr_set_any(is_ipv6, ipaddr) do{if(is_ipv6){ \
|
||||
ip6_addr_set_any(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V6); }else{ \
|
||||
ip4_addr_set_any(ip_2_ip4(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V4); }}while(0)
|
||||
@ -213,6 +215,7 @@ typedef ip6_addr_t ip_addr_t;
|
||||
#define ip_addr_set(dest, src) ip6_addr_set(dest, src)
|
||||
#define ip_addr_set_ipaddr(dest, src) ip6_addr_set(dest, src)
|
||||
#define ip_addr_set_zero(ipaddr) ip6_addr_set_zero(ipaddr)
|
||||
#define ip_addr_set_zero_ip6(ipaddr) ip6_addr_set_zero(ipaddr)
|
||||
#define ip_addr_set_any(is_ipv6, ipaddr) ip6_addr_set_any(ipaddr)
|
||||
#define ip_addr_set_loopback(is_ipv6, ipaddr) ip6_addr_set_loopback(ipaddr)
|
||||
#define ip_addr_set_hton(dest, src) ip6_addr_set_hton(dest, src)
|
||||
|
@ -342,6 +342,9 @@ void netif_set_default(struct netif *netif);
|
||||
void netif_set_ipaddr(struct netif *netif, const ip4_addr_t *ipaddr);
|
||||
void netif_set_netmask(struct netif *netif, const ip4_addr_t *netmask);
|
||||
void netif_set_gw(struct netif *netif, const ip4_addr_t *gw);
|
||||
#define netif_ip4_addr(netif) (&((netif)->ip_addr))
|
||||
#define netif_ip4_netmask(netif) (&((netif)->netmask))
|
||||
#define netif_ip4_gw(netif) (&((netif)->gw))
|
||||
#endif /* LWIP_IPV4 */
|
||||
|
||||
void netif_set_up(struct netif *netif);
|
||||
@ -388,14 +391,9 @@ void netif_poll_all(void);
|
||||
#endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */
|
||||
#endif /* ENABLE_LOOPBACK */
|
||||
|
||||
#if LWIP_IPV4
|
||||
#define netif_ip4_addr(netif) (&((netif)->ip_addr))
|
||||
#define netif_ip4_netmask(netif) (&((netif)->netmask))
|
||||
#define netif_ip4_gw(netif) (&((netif)->gw))
|
||||
#endif /* LWIP_IPV4 */
|
||||
|
||||
#if LWIP_IPV6
|
||||
#define netif_ip6_addr(netif, i) (&((netif)->ip6_addr[(i)]))
|
||||
#define netif_ip6_addr_set(netif, i, addr6) ip6_addr_set(&((netif)->ip6_addr[(i)]), addr6)
|
||||
#define netif_ip6_addr_state(netif, i) ((netif)->ip6_addr_state[(i)])
|
||||
#define netif_ip6_addr_set_state(netif, i, state) ((netif)->ip6_addr_state[(i)] = (state))
|
||||
s8_t netif_get_ip6_addr_match(struct netif *netif, ip6_addr_t *ip6addr);
|
||||
|
@ -1209,7 +1209,7 @@ int sif6addr(ppp_pcb *pcb, eui64_t our_eui64, eui64_t his_eui64) {
|
||||
LWIP_UNUSED_ARG(his_eui64);
|
||||
|
||||
IN6_LLADDR_FROM_EUI64(ip6, our_eui64);
|
||||
ip6_addr_copy(pcb->netif->ip6_addr[0], ip6);
|
||||
netif_ip6_addr_set(pcb->netif, 0, &ip6);
|
||||
netif_ip6_addr_set_state(pcb->netif, 0, IP6_ADDR_PREFERRED);
|
||||
/* FIXME: should we add an IPv6 static neighbor using his_eui64 ? */
|
||||
return 1;
|
||||
@ -1223,8 +1223,8 @@ int cif6addr(ppp_pcb *pcb, eui64_t our_eui64, eui64_t his_eui64) {
|
||||
LWIP_UNUSED_ARG(our_eui64);
|
||||
LWIP_UNUSED_ARG(his_eui64);
|
||||
|
||||
netif_ip6_addr_set(pcb->netif, 0, IP6_ADDR_ANY6);
|
||||
netif_ip6_addr_set_state(pcb->netif, 0, IP6_ADDR_INVALID);
|
||||
ip6_addr_set_zero(&pcb->netif->ip6_addr[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user