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