[net][lwip] modified hostname, support lwIP 1.4.1 ,lwIP 2.0.2 and lwIP 2.1.2
Signed-off-by: liuxianliang <liuxianliang@rt-thread.com>
This commit is contained in:
parent
a9cad2b95b
commit
f9ef8c7ed9
|
@ -264,8 +264,8 @@
|
|||
#endif
|
||||
|
||||
/*
|
||||
* You can re-define following setting in rtcofnig.h to overwrite the default
|
||||
* setting in the lwip opts.h
|
||||
* You can re-define following setting in rtcofnig.h to overwrite the default
|
||||
* setting in the lwip opts.h
|
||||
*/
|
||||
/* MEMP_NUM_NETBUF: the number of struct netbufs. */
|
||||
// #define MEMP_NUM_NETBUF 2
|
||||
|
|
|
@ -165,7 +165,7 @@ static int lwip_netdev_set_dhcp(struct netdev *netif, rt_bool_t is_enabled)
|
|||
extern int lwip_ping_recv(int s, int *ttl);
|
||||
extern err_t lwip_ping_send(int s, ip_addr_t *addr, int size);
|
||||
|
||||
int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
||||
int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
||||
uint32_t timeout, struct netdev_ping_resp *ping_resp)
|
||||
{
|
||||
int s, ttl, recv_len, result = 0;
|
||||
|
@ -180,7 +180,7 @@ int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
|||
struct addrinfo hint, *res = RT_NULL;
|
||||
struct sockaddr_in *h = RT_NULL;
|
||||
struct in_addr ina;
|
||||
|
||||
|
||||
RT_ASSERT(netif);
|
||||
RT_ASSERT(host);
|
||||
RT_ASSERT(ping_resp);
|
||||
|
@ -199,7 +199,7 @@ int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
|||
return -RT_ERROR;
|
||||
}
|
||||
rt_memcpy(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
|
||||
|
||||
|
||||
/* new a socket */
|
||||
if ((s = lwip_socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP)) < 0)
|
||||
{
|
||||
|
@ -267,7 +267,7 @@ const struct netdev_ops lwip_netdev_ops =
|
|||
lwip_netdev_set_addr_info,
|
||||
#ifdef RT_LWIP_DNS
|
||||
lwip_netdev_set_dns_server,
|
||||
#else
|
||||
#else
|
||||
NULL,
|
||||
#endif /* RT_LWIP_DNS */
|
||||
|
||||
|
@ -315,7 +315,7 @@ static int netdev_add(struct netif *lwip_netif)
|
|||
|
||||
rt_strncpy(name, lwip_netif->name, LWIP_NETIF_NAME_LEN);
|
||||
result = netdev_register(netdev, name, (void *)lwip_netif);
|
||||
|
||||
|
||||
/* Update netdev info after registered */
|
||||
netdev->flags = lwip_netif->flags;
|
||||
netdev->mtu = lwip_netif->mtu;
|
||||
|
@ -325,7 +325,7 @@ static int netdev_add(struct netif *lwip_netif)
|
|||
netdev->ip_addr = lwip_netif->ip_addr;
|
||||
netdev->gw = lwip_netif->gw;
|
||||
netdev->netmask = lwip_netif->netmask;
|
||||
|
||||
|
||||
#ifdef RT_LWIP_DHCP
|
||||
netdev_low_level_set_dhcp_status(netdev, RT_TRUE);
|
||||
#endif
|
||||
|
@ -484,7 +484,7 @@ rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_
|
|||
#if LWIP_NETIF_HOSTNAME
|
||||
/* Initialize interface hostname */
|
||||
hostname = (char *)netif + sizeof(struct netif);
|
||||
rt_sprintf(hostname, "RTTHREAD_%02x%02x", name[0], name[1]);
|
||||
rt_sprintf(hostname, "rtthread_%02x%02x", name[0], name[1]);
|
||||
netif->hostname = hostname;
|
||||
#endif /* LWIP_NETIF_HOSTNAME */
|
||||
|
||||
|
@ -642,7 +642,7 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
while (1)
|
||||
{
|
||||
if(device->eth_rx == RT_NULL) break;
|
||||
|
||||
|
||||
p = device->eth_rx(&(device->parent));
|
||||
if (p != RT_NULL)
|
||||
{
|
||||
|
|
|
@ -173,7 +173,7 @@ static int lwip_netdev_set_dhcp(struct netdev *netif, rt_bool_t is_enabled)
|
|||
extern int lwip_ping_recv(int s, int *ttl);
|
||||
extern err_t lwip_ping_send(int s, ip_addr_t *addr, int size);
|
||||
|
||||
int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
||||
int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
||||
uint32_t timeout, struct netdev_ping_resp *ping_resp)
|
||||
{
|
||||
int s, ttl, recv_len, result = 0;
|
||||
|
@ -188,7 +188,7 @@ int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
|||
struct addrinfo hint, *res = RT_NULL;
|
||||
struct sockaddr_in *h = RT_NULL;
|
||||
struct in_addr ina;
|
||||
|
||||
|
||||
RT_ASSERT(netif);
|
||||
RT_ASSERT(host);
|
||||
RT_ASSERT(ping_resp);
|
||||
|
@ -207,7 +207,7 @@ int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
|||
return -RT_ERROR;
|
||||
}
|
||||
rt_memcpy(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
|
||||
|
||||
|
||||
/* new a socket */
|
||||
if ((s = lwip_socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP)) < 0)
|
||||
{
|
||||
|
@ -275,7 +275,7 @@ const struct netdev_ops lwip_netdev_ops =
|
|||
lwip_netdev_set_addr_info,
|
||||
#ifdef RT_LWIP_DNS
|
||||
lwip_netdev_set_dns_server,
|
||||
#else
|
||||
#else
|
||||
NULL,
|
||||
#endif /* RT_LWIP_DNS */
|
||||
|
||||
|
@ -323,8 +323,8 @@ static int netdev_add(struct netif *lwip_netif)
|
|||
|
||||
rt_strncpy(name, lwip_netif->name, LWIP_NETIF_NAME_LEN);
|
||||
result = netdev_register(netdev, name, (void *)lwip_netif);
|
||||
|
||||
/* Update netdev info after registered */
|
||||
|
||||
/* Update netdev info after registered */
|
||||
netdev->flags = lwip_netif->flags;
|
||||
netdev->mtu = lwip_netif->mtu;
|
||||
netdev->ops = &lwip_netdev_ops;
|
||||
|
@ -333,7 +333,7 @@ static int netdev_add(struct netif *lwip_netif)
|
|||
netdev->ip_addr = lwip_netif->ip_addr;
|
||||
netdev->gw = lwip_netif->gw;
|
||||
netdev->netmask = lwip_netif->netmask;
|
||||
|
||||
|
||||
#ifdef RT_LWIP_DHCP
|
||||
netdev_low_level_set_dhcp_status(netdev, RT_TRUE);
|
||||
#endif
|
||||
|
@ -412,7 +412,7 @@ static err_t eth_netif_device_init(struct netif *netif)
|
|||
/* network interface device register */
|
||||
netdev_add(netif);
|
||||
#endif /* RT_USING_NETDEV */
|
||||
|
||||
|
||||
ethif = (struct eth_device*)netif->state;
|
||||
if (ethif != RT_NULL)
|
||||
{
|
||||
|
@ -525,7 +525,7 @@ rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_
|
|||
#if LWIP_NETIF_HOSTNAME
|
||||
/* Initialize interface hostname */
|
||||
hostname = (char *)netif + sizeof(struct netif);
|
||||
rt_sprintf(hostname, "RTTHREAD_%02x%02x", name[0], name[1]);
|
||||
rt_sprintf(hostname, "rtthread_%02x%02x", name[0], name[1]);
|
||||
netif->hostname = hostname;
|
||||
#endif /* LWIP_NETIF_HOSTNAME */
|
||||
|
||||
|
@ -538,7 +538,7 @@ rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_
|
|||
ipaddr.addr = inet_addr(RT_LWIP_IPADDR);
|
||||
gw.addr = inet_addr(RT_LWIP_GWADDR);
|
||||
netmask.addr = inet_addr(RT_LWIP_MSKADDR);
|
||||
#else
|
||||
#else
|
||||
IP4_ADDR(&ipaddr, 0, 0, 0, 0);
|
||||
IP4_ADDR(&gw, 0, 0, 0, 0);
|
||||
IP4_ADDR(&netmask, 0, 0, 0, 0);
|
||||
|
@ -690,7 +690,7 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
while (1)
|
||||
{
|
||||
if(device->eth_rx == RT_NULL) break;
|
||||
|
||||
|
||||
p = device->eth_rx(&(device->parent));
|
||||
if (p != RT_NULL)
|
||||
{
|
||||
|
@ -713,9 +713,9 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* this function does not need,
|
||||
* use eth_system_device_init_private()
|
||||
* call by lwip_system_init().
|
||||
/* this function does not need,
|
||||
* use eth_system_device_init_private()
|
||||
* call by lwip_system_init().
|
||||
*/
|
||||
int eth_system_device_init(void)
|
||||
{
|
||||
|
@ -862,22 +862,22 @@ void list_if(void)
|
|||
ip6_addr_t *addr;
|
||||
int addr_state;
|
||||
int i;
|
||||
|
||||
|
||||
addr = (ip6_addr_t *)&netif->ip6_addr[0];
|
||||
addr_state = netif->ip6_addr_state[0];
|
||||
|
||||
rt_kprintf("\nipv6 link-local: %s state:%02X %s\n", ip6addr_ntoa(addr),
|
||||
|
||||
rt_kprintf("\nipv6 link-local: %s state:%02X %s\n", ip6addr_ntoa(addr),
|
||||
addr_state, ip6_addr_isvalid(addr_state)?"VALID":"INVALID");
|
||||
|
||||
|
||||
for(i=1; i<LWIP_IPV6_NUM_ADDRESSES; i++)
|
||||
{
|
||||
addr = (ip6_addr_t *)&netif->ip6_addr[i];
|
||||
addr_state = netif->ip6_addr_state[i];
|
||||
|
||||
rt_kprintf("ipv6[%d] address: %s state:%02X %s\n", i, ip6addr_ntoa(addr),
|
||||
|
||||
rt_kprintf("ipv6[%d] address: %s state:%02X %s\n", i, ip6addr_ntoa(addr),
|
||||
addr_state, ip6_addr_isvalid(addr_state)?"VALID":"INVALID");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
rt_kprintf("\r\n");
|
||||
#endif /* LWIP_IPV6 */
|
||||
|
|
|
@ -538,6 +538,13 @@
|
|||
#define LWIP_TCP_KEEPALIVE 1
|
||||
#endif
|
||||
|
||||
/**
|
||||
* LWIP_NETIF_HOSTNAME==1: Support netif hostname
|
||||
*/
|
||||
#ifndef LWIP_NETIF_HOSTNAME
|
||||
#define LWIP_NETIF_HOSTNAME 1
|
||||
#endif
|
||||
|
||||
/**
|
||||
* LWIP_NETIF_API==1: Support netif api (in netifapi.c)
|
||||
*/
|
||||
|
|
|
@ -174,7 +174,7 @@ static int lwip_netdev_set_dhcp(struct netdev *netif, rt_bool_t is_enabled)
|
|||
extern int lwip_ping_recv(int s, int *ttl);
|
||||
extern err_t lwip_ping_send(int s, ip_addr_t *addr, int size);
|
||||
|
||||
int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
||||
int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
||||
uint32_t timeout, struct netdev_ping_resp *ping_resp)
|
||||
{
|
||||
int s, ttl, recv_len, result = 0;
|
||||
|
@ -189,7 +189,7 @@ int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
|||
struct addrinfo hint, *res = RT_NULL;
|
||||
struct sockaddr_in *h = RT_NULL;
|
||||
struct in_addr ina;
|
||||
|
||||
|
||||
RT_ASSERT(netif);
|
||||
RT_ASSERT(host);
|
||||
RT_ASSERT(ping_resp);
|
||||
|
@ -208,7 +208,7 @@ int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
|
|||
return -RT_ERROR;
|
||||
}
|
||||
rt_memcpy(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
|
||||
|
||||
|
||||
/* new a socket */
|
||||
if ((s = lwip_socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP)) < 0)
|
||||
{
|
||||
|
@ -276,7 +276,7 @@ const struct netdev_ops lwip_netdev_ops =
|
|||
lwip_netdev_set_addr_info,
|
||||
#ifdef RT_LWIP_DNS
|
||||
lwip_netdev_set_dns_server,
|
||||
#else
|
||||
#else
|
||||
NULL,
|
||||
#endif /* RT_LWIP_DNS */
|
||||
|
||||
|
@ -315,7 +315,7 @@ static int netdev_add(struct netif *lwip_netif)
|
|||
{
|
||||
return -ERR_IF;
|
||||
}
|
||||
|
||||
|
||||
#ifdef SAL_USING_LWIP
|
||||
extern int sal_lwip_netdev_set_pf_info(struct netdev *netdev);
|
||||
/* set the lwIP network interface device protocol family information */
|
||||
|
@ -324,7 +324,7 @@ static int netdev_add(struct netif *lwip_netif)
|
|||
|
||||
rt_strncpy(name, lwip_netif->name, LWIP_NETIF_NAME_LEN);
|
||||
result = netdev_register(netdev, name, (void *)lwip_netif);
|
||||
|
||||
|
||||
/* Update netdev info after registered */
|
||||
netdev->flags = lwip_netif->flags;
|
||||
netdev->mtu = lwip_netif->mtu;
|
||||
|
@ -367,7 +367,7 @@ static int netdev_flags_sync(struct netif *lwip_netif)
|
|||
{
|
||||
return -ERR_IF;
|
||||
}
|
||||
|
||||
|
||||
netdev->mtu = lwip_netif->mtu;
|
||||
netdev->flags |= lwip_netif->flags;
|
||||
|
||||
|
@ -430,7 +430,7 @@ static err_t eth_netif_device_init(struct netif *netif)
|
|||
/* copy device flags to netif flags */
|
||||
netif->flags = (ethif->flags & 0xff);
|
||||
netif->mtu = ETHERNET_MTU;
|
||||
|
||||
|
||||
/* set output */
|
||||
netif->output = etharp_output;
|
||||
|
||||
|
@ -518,13 +518,15 @@ rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_
|
|||
|
||||
/* set linkoutput */
|
||||
netif->linkoutput = ethernetif_linkoutput;
|
||||
|
||||
|
||||
/* get hardware MAC address */
|
||||
rt_device_control(&(dev->parent), NIOCTL_GADDR, netif->hwaddr);
|
||||
|
||||
#if LWIP_NETIF_HOSTNAME
|
||||
/* Initialize interface hostname */
|
||||
netif->hostname = "rtthread";
|
||||
hostname = (char *)netif + sizeof(struct netif);
|
||||
rt_sprintf(hostname, "rtthread_%02x%02x", name[0], name[1]);
|
||||
netif->hostname = hostname;
|
||||
#endif /* LWIP_NETIF_HOSTNAME */
|
||||
|
||||
/* if tcp thread has been started up, we add this netif to the system */
|
||||
|
@ -536,7 +538,7 @@ rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_
|
|||
ipaddr.addr = inet_addr(RT_LWIP_IPADDR);
|
||||
gw.addr = inet_addr(RT_LWIP_GWADDR);
|
||||
netmask.addr = inet_addr(RT_LWIP_MSKADDR);
|
||||
#else
|
||||
#else
|
||||
IP4_ADDR(&ipaddr, 0, 0, 0, 0);
|
||||
IP4_ADDR(&gw, 0, 0, 0, 0);
|
||||
IP4_ADDR(&netmask, 0, 0, 0, 0);
|
||||
|
@ -688,7 +690,7 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
while (1)
|
||||
{
|
||||
if(device->eth_rx == RT_NULL) break;
|
||||
|
||||
|
||||
p = device->eth_rx(&(device->parent));
|
||||
if (p != RT_NULL)
|
||||
{
|
||||
|
@ -711,9 +713,9 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* this function does not need,
|
||||
* use eth_system_device_init_private()
|
||||
* call by lwip_system_init().
|
||||
/* this function does not need,
|
||||
* use eth_system_device_init_private()
|
||||
* call by lwip_system_init().
|
||||
*/
|
||||
int eth_system_device_init(void)
|
||||
{
|
||||
|
@ -860,22 +862,22 @@ void list_if(void)
|
|||
ip6_addr_t *addr;
|
||||
int addr_state;
|
||||
int i;
|
||||
|
||||
|
||||
addr = (ip6_addr_t *)&netif->ip6_addr[0];
|
||||
addr_state = netif->ip6_addr_state[0];
|
||||
|
||||
rt_kprintf("\nipv6 link-local: %s state:%02X %s\n", ip6addr_ntoa(addr),
|
||||
|
||||
rt_kprintf("\nipv6 link-local: %s state:%02X %s\n", ip6addr_ntoa(addr),
|
||||
addr_state, ip6_addr_isvalid(addr_state)?"VALID":"INVALID");
|
||||
|
||||
|
||||
for(i=1; i<LWIP_IPV6_NUM_ADDRESSES; i++)
|
||||
{
|
||||
addr = (ip6_addr_t *)&netif->ip6_addr[i];
|
||||
addr_state = netif->ip6_addr_state[i];
|
||||
|
||||
rt_kprintf("ipv6[%d] address: %s state:%02X %s\n", i, ip6addr_ntoa(addr),
|
||||
|
||||
rt_kprintf("ipv6[%d] address: %s state:%02X %s\n", i, ip6addr_ntoa(addr),
|
||||
addr_state, ip6_addr_isvalid(addr_state)?"VALID":"INVALID");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
rt_kprintf("\r\n");
|
||||
#endif /* LWIP_IPV6 */
|
||||
|
|
Loading…
Reference in New Issue