Changes in uspace/app/ping/ping.c [02a09ed:959d2ec] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/ping/ping.c
r02a09ed r959d2ec 37 37 #include <errno.h> 38 38 #include <fibril_synch.h> 39 #include <net/socket_codes.h>40 39 #include <inet/dnsr.h> 41 40 #include <inet/addr.h> … … 64 63 }; 65 64 66 static addr32_t src;67 static addr32_t dest;65 static inet_addr_t src_addr; 66 static inet_addr_t dest_addr; 68 67 69 68 static bool ping_repeat = false; … … 84 83 static int ping_ev_recv(inetping_sdu_t *sdu) 85 84 { 86 inet_addr_t src_addr; 87 inet_addr_set(sdu->src, &src_addr); 88 89 inet_addr_t dest_addr; 90 inet_addr_set(sdu->dest, &dest_addr); 91 92 char *asrc; 93 int rc = inet_addr_format(&src_addr, &asrc); 85 char *asrc, *adest; 86 int rc; 87 88 rc = inet_addr_format(&sdu->src, &asrc); 94 89 if (rc != EOK) 95 90 return ENOMEM; 96 97 char *adest; 98 rc = inet_addr_format(&dest_addr, &adest); 91 92 rc = inet_addr_format(&sdu->dest, &adest); 99 93 if (rc != EOK) { 100 94 free(asrc); 101 95 return ENOMEM; 102 96 } 103 104 97 printf("Received ICMP echo reply: from %s to %s, seq. no %u, " 105 98 "payload size %zu\n", asrc, adest, sdu->seq_no, sdu->size); 106 107 if (!ping_repeat) 99 100 if (!ping_repeat) { 108 101 ping_signal_done(); 109 102 } 103 110 104 free(asrc); 111 105 free(adest); … … 118 112 int rc; 119 113 120 sdu.src = src ;121 sdu.dest = dest ;114 sdu.src = src_addr; 115 sdu.dest = dest_addr; 122 116 sdu.seq_no = seq_no; 123 117 sdu.data = (void *) "foo"; … … 208 202 209 203 /* Parse destination address */ 210 inet_addr_t dest_addr;211 204 rc = inet_addr_parse(argv[argi], &dest_addr); 212 205 if (rc != EOK) { … … 217 210 goto error; 218 211 } 219 212 220 213 dest_addr = hinfo->addr; 221 214 } 222 223 uint16_t af = inet_addr_get(&dest_addr, &dest, NULL); 224 if (af != AF_INET) { 225 printf(NAME ": Destination '%s' is not an IPv4 address.\n", 226 argv[argi]); 227 goto error; 228 } 229 215 230 216 /* Determine source address */ 231 rc = inetping_get_srcaddr( dest, &src);217 rc = inetping_get_srcaddr(&dest_addr, &src_addr); 232 218 if (rc != EOK) { 233 219 printf(NAME ": Failed determining source address.\n"); 234 220 goto error; 235 221 } 236 237 inet_addr_t src_addr; 238 inet_addr_set(src, &src_addr); 239 222 240 223 rc = inet_addr_format(&src_addr, &asrc); 241 224 if (rc != EOK) { … … 243 226 goto error; 244 227 } 245 228 246 229 rc = inet_addr_format(&dest_addr, &adest); 247 230 if (rc != EOK) { … … 249 232 goto error; 250 233 } 251 234 252 235 if (hinfo != NULL) { 253 236 rc = asprintf(&sdest, "%s (%s)", hinfo->cname, adest); … … 304 287 dnsr_hostinfo_destroy(hinfo); 305 288 return 0; 306 307 289 error: 308 290 free(asrc);
Note:
See TracChangeset
for help on using the changeset viewer.