diff options
| author | aozima <[email protected]> | 2014-06-14 21:54:15 +0800 |
|---|---|---|
| committer | aozima <[email protected]> | 2014-06-14 21:54:59 +0800 |
| commit | 9ab59cf1e055dc9e8b9217ea0923ad4e1b1c62d9 (patch) | |
| tree | c31e72a8e3069014ee16586f39d13f3393cc9aa0 /components/net | |
| parent | f296c582a54480395ea6a420673b6689d282e17f (diff) | |
used parameter: size.
Diffstat (limited to 'components/net')
| -rw-r--r-- | components/net/lwip-1.3.2/apps/ping.c | 9 | ||||
| -rw-r--r-- | components/net/lwip/apps/ping.c | 9 |
2 files changed, 12 insertions, 6 deletions
diff --git a/components/net/lwip-1.3.2/apps/ping.c b/components/net/lwip-1.3.2/apps/ping.c index 1360c932fa..45021e7112 100644 --- a/components/net/lwip-1.3.2/apps/ping.c +++ b/components/net/lwip-1.3.2/apps/ping.c @@ -64,12 +64,12 @@ static void ping_prepare_echo( struct icmp_echo_hdr *iecho, u16_t len) } /* Ping using the socket ip */ -static err_t ping_send(int s, struct ip_addr *addr) +static err_t ping_send(int s, struct ip_addr *addr, int size) { int err; struct icmp_echo_hdr *iecho; struct sockaddr_in to; - size_t ping_size = sizeof(struct icmp_echo_hdr) + PING_DATA_SIZE; + size_t ping_size = sizeof(struct icmp_echo_hdr) + size; LWIP_ASSERT("ping_size is too big", ping_size <= 0xffff); iecho = rt_malloc(ping_size); @@ -137,6 +137,9 @@ rt_err_t ping(char* target, rt_uint32_t time, rt_size_t size) } *addr; send_time = 0; + + if(size == 0) + size = PING_DATA_SIZE; if (inet_aton(target, (struct in_addr*)&ping_target) == 0) return -RT_ERROR; addr = (struct _ip_addr*)&ping_target; @@ -151,7 +154,7 @@ rt_err_t ping(char* target, rt_uint32_t time, rt_size_t size) while (1) { - if (ping_send(s, &ping_target) == ERR_OK) + if (ping_send(s, &ping_target, size) == ERR_OK) { rt_kprintf("ping: send %d.%d.%d.%d\n", addr->addr0, addr->addr1, addr->addr2, addr->addr3); ping_recv(s); diff --git a/components/net/lwip/apps/ping.c b/components/net/lwip/apps/ping.c index 1360c932fa..45021e7112 100644 --- a/components/net/lwip/apps/ping.c +++ b/components/net/lwip/apps/ping.c @@ -64,12 +64,12 @@ static void ping_prepare_echo( struct icmp_echo_hdr *iecho, u16_t len) } /* Ping using the socket ip */ -static err_t ping_send(int s, struct ip_addr *addr) +static err_t ping_send(int s, struct ip_addr *addr, int size) { int err; struct icmp_echo_hdr *iecho; struct sockaddr_in to; - size_t ping_size = sizeof(struct icmp_echo_hdr) + PING_DATA_SIZE; + size_t ping_size = sizeof(struct icmp_echo_hdr) + size; LWIP_ASSERT("ping_size is too big", ping_size <= 0xffff); iecho = rt_malloc(ping_size); @@ -137,6 +137,9 @@ rt_err_t ping(char* target, rt_uint32_t time, rt_size_t size) } *addr; send_time = 0; + + if(size == 0) + size = PING_DATA_SIZE; if (inet_aton(target, (struct in_addr*)&ping_target) == 0) return -RT_ERROR; addr = (struct _ip_addr*)&ping_target; @@ -151,7 +154,7 @@ rt_err_t ping(char* target, rt_uint32_t time, rt_size_t size) while (1) { - if (ping_send(s, &ping_target) == ERR_OK) + if (ping_send(s, &ping_target, size) == ERR_OK) { rt_kprintf("ping: send %d.%d.%d.%d\n", addr->addr0, addr->addr1, addr->addr2, addr->addr3); ping_recv(s); |
