Changeset 02a09ed in mainline for uspace/app
- Timestamp:
- 2013-06-28T20:20:03Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1d24ad3
- Parents:
- edf0d27
- Location:
- uspace/app
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/nettest1/nettest1.c
redf0d27 r02a09ed 59 59 #define NETTEST1_TEXT "Networking test 1 - sockets" 60 60 61 static int family = PF_INET;61 static uint16_t family = AF_INET; 62 62 static sock_type_t type = SOCK_DGRAM; 63 static char *data;64 63 static size_t size = 27; 65 static int verbose = 0; 64 static bool verbose = false; 65 static int sockets = 10; 66 static int messages = 10; 67 static uint16_t port = 7; 66 68 67 69 static struct sockaddr *address; 68 70 static socklen_t addrlen; 69 71 70 static int sockets; 71 static int messages; 72 static uint16_t port; 72 static char *data; 73 73 74 74 static void nettest1_print_help(void) … … 299 299 int main(int argc, char *argv[]) 300 300 { 301 struct sockaddr_in address_in;302 struct sockaddr_in6 address_in6;303 dnsr_hostinfo_t *hinfo;304 uint8_t *address_start;305 306 int *socket_ids;307 int index;308 struct timeval time_before;309 struct timeval time_after;310 311 int rc;312 313 sockets = 10;314 messages = 10;315 port = 7;316 317 301 /* 318 302 * Parse the command line arguments. Stop before the last argument 319 303 * if it does not start with dash ('-') 320 304 */ 321 for (index = 1; (index < argc - 1) || ((index == argc - 1) && (argv[index][0] == '-')); index++) { 305 int index; 306 int rc; 307 308 for (index = 1; (index < argc - 1) || ((index == argc - 1) && 309 (argv[index][0] == '-')); index++) { 322 310 /* Options should start with dash ('-') */ 323 311 if (argv[index][0] == '-') { … … 331 319 } 332 320 333 /* If not before the last argument containing the host */321 /* The last argument containing the host */ 334 322 if (index >= argc) { 335 printf(" Command line error: missing host name\n");323 printf("Host name missing.\n"); 336 324 nettest1_print_help(); 337 325 return EINVAL; 338 326 } 339 327 328 char *addr_s = argv[argc - 1]; 329 330 /* Interpret as address */ 331 inet_addr_t addr_addr; 332 rc = inet_addr_parse(addr_s, &addr_addr); 333 334 if (rc != EOK) { 335 /* Interpret as a host name */ 336 dnsr_hostinfo_t *hinfo = NULL; 337 rc = dnsr_name2host(addr_s, &hinfo); 338 339 if (rc != EOK) { 340 printf("Error resolving host '%s'.\n", addr_s); 341 return EINVAL; 342 } 343 344 addr_addr = hinfo->addr; 345 } 346 347 struct sockaddr_in addr; 348 struct sockaddr_in6 addr6; 349 uint16_t af = inet_addr_sockaddr_in(&addr_addr, &addr, &addr6); 350 351 if (af != family) { 352 printf("Address family does not match explicitly set family.\n"); 353 return EINVAL; 354 } 355 340 356 /* Prepare the address buffer */ 341 342 switch (family) { 343 case PF_INET: 344 address_in.sin_family = AF_INET; 345 address_in.sin_port = htons(port); 346 address = (struct sockaddr *) &address_in; 347 addrlen = sizeof(address_in); 348 address_start = (uint8_t *) &address_in.sin_addr.s_addr; 349 break; 350 case PF_INET6: 351 address_in6.sin6_family = AF_INET6; 352 address_in6.sin6_port = htons(port); 353 address = (struct sockaddr *) &address_in6; 354 addrlen = sizeof(address_in6); 355 address_start = (uint8_t *) &address_in6.sin6_addr.s6_addr; 357 358 switch (af) { 359 case AF_INET: 360 addr.sin_port = htons(port); 361 address = (struct sockaddr *) &addr; 362 addrlen = sizeof(addr); 363 break; 364 case AF_INET6: 365 addr6.sin6_port = htons(port); 366 address = (struct sockaddr *) &addr6; 367 addrlen = sizeof(addr6); 356 368 break; 357 369 default: 358 370 fprintf(stderr, "Address family is not supported\n"); 359 371 return EAFNOSUPPORT; 360 }361 362 /* Parse the last argument which should contain the host/address */363 rc = inet_pton(family, argv[argc - 1], address_start);364 if (rc != EOK) {365 /* Try interpreting as a host name */366 rc = dnsr_name2host(argv[argc - 1], &hinfo);367 if (rc != EOK) {368 printf("Error resolving host '%s'.\n", argv[argc - 1]);369 return rc;370 }371 372 rc = inet_addr_sockaddr_in(&hinfo->addr, &address_in);373 if (rc != EOK) {374 printf("Host '%s' not resolved as IPv4 address.\n", argv[argc - 1]);375 return rc;376 }377 372 } 378 373 … … 406 401 * null (\0). 407 402 */ 408 socket_ids = (int *) malloc(sizeof(int) * (sockets + 1));403 int *socket_ids = (int *) malloc(sizeof(int) * (sockets + 1)); 409 404 if (!socket_ids) { 410 405 fprintf(stderr, "Failed to allocate receive buffer.\n"); … … 417 412 printf("Starting tests\n"); 418 413 414 struct timeval time_before; 419 415 rc = gettimeofday(&time_before, NULL); 420 416 if (rc != EOK) { … … 428 424 nettest1_test(socket_ids, sockets, messages); 429 425 426 struct timeval time_after; 430 427 rc = gettimeofday(&time_after, NULL); 431 428 if (rc != EOK) { -
uspace/app/nettest2/nettest2.c
redf0d27 r02a09ed 60 60 #define NETTEST2_TEXT "Networking test 2 - transfer" 61 61 62 static size_t size;63 static bool verbose;64 static sock_type_t type;65 static int sockets;66 static int messages;67 static int family;68 static uint16_t port ;62 static uint16_t family = PF_INET; 63 static size_t size = 28; 64 static bool verbose = false; 65 static sock_type_t type = SOCK_DGRAM; 66 static int sockets = 10; 67 static int messages = 10; 68 static uint16_t port = 7; 69 69 70 70 static void nettest2_print_help(void) … … 234 234 int main(int argc, char *argv[]) 235 235 { 236 struct sockaddr *address;237 struct sockaddr_in address_in;238 struct sockaddr_in6 address_in6;239 dnsr_hostinfo_t *hinfo;240 socklen_t addrlen;241 uint8_t *address_start;242 243 int *socket_ids;244 char *data;245 236 int index; 246 struct timeval time_before;247 struct timeval time_after;248 249 237 int rc; 250 251 size = 28; 252 verbose = false; 253 type = SOCK_DGRAM; 254 sockets = 10; 255 messages = 10; 256 family = PF_INET; 257 port = 7; 258 238 259 239 /* 260 240 * Parse the command line arguments. … … 264 244 for (index = 1; (index < argc - 1) || ((index == argc - 1) && 265 245 (argv[index][0] == '-')); ++index) { 266 267 246 /* Options should start with dash ('-') */ 268 247 if (argv[index][0] == '-') { … … 276 255 } 277 256 278 /* If not before the last argument containing the host */257 /* The last argument containing the host */ 279 258 if (index >= argc) { 280 printf(" Command line error: missing host name\n");259 printf("Host name missing.\n"); 281 260 nettest2_print_help(); 282 261 return EINVAL; 283 262 } 284 263 264 char *addr_s = argv[argc - 1]; 265 266 /* Interpret as address */ 267 inet_addr_t addr_addr; 268 rc = inet_addr_parse(addr_s, &addr_addr); 269 270 if (rc != EOK) { 271 /* Interpret as a host name */ 272 dnsr_hostinfo_t *hinfo = NULL; 273 rc = dnsr_name2host(addr_s, &hinfo); 274 275 if (rc != EOK) { 276 printf("Error resolving host '%s'.\n", addr_s); 277 return EINVAL; 278 } 279 280 addr_addr = hinfo->addr; 281 } 282 283 struct sockaddr_in addr; 284 struct sockaddr_in6 addr6; 285 uint16_t af = inet_addr_sockaddr_in(&addr_addr, &addr, &addr6); 286 287 if (af != family) { 288 printf("Address family does not match explicitly set family.\n"); 289 return EINVAL; 290 } 291 285 292 /* Prepare the address buffer */ 286 287 switch (family) { 288 case PF_INET: 289 address_in.sin_family = AF_INET; 290 address_in.sin_port = htons(port); 291 address = (struct sockaddr *) &address_in; 292 addrlen = sizeof(address_in); 293 address_start = (uint8_t *) &address_in.sin_addr.s_addr; 294 break; 295 case PF_INET6: 296 address_in6.sin6_family = AF_INET6; 297 address_in6.sin6_port = htons(port); 298 address = (struct sockaddr *) &address_in6; 299 addrlen = sizeof(address_in6); 300 address_start = (uint8_t *) &address_in6.sin6_addr.s6_addr; 293 294 struct sockaddr *address; 295 socklen_t addrlen; 296 297 switch (af) { 298 case AF_INET: 299 addr.sin_port = htons(port); 300 address = (struct sockaddr *) &addr; 301 addrlen = sizeof(addr); 302 break; 303 case AF_INET6: 304 addr6.sin6_port = htons(port); 305 address = (struct sockaddr *) &addr6; 306 addrlen = sizeof(addr6); 301 307 break; 302 308 default: 303 309 fprintf(stderr, "Address family is not supported\n"); 304 310 return EAFNOSUPPORT; 305 }306 307 /* Parse the last argument which should contain the host/address */308 rc = inet_pton(family, argv[argc - 1], address_start);309 if (rc != EOK) {310 /* Try interpreting as a host name */311 rc = dnsr_name2host(argv[argc - 1], &hinfo);312 if (rc != EOK) {313 printf("Error resolving host '%s'.\n", argv[argc - 1]);314 return rc;315 }316 317 rc = inet_addr_sockaddr_in(&hinfo->addr, &address_in);318 if (rc != EOK) {319 printf("Host '%s' not resolved as IPv4 address.\n", argv[argc - 1]);320 return rc;321 }322 311 } 323 312 … … 333 322 * null character. 334 323 */ 335 data = (char *) malloc(size + 1);324 char *data = (char *) malloc(size + 1); 336 325 if (!data) { 337 326 fprintf(stderr, "Failed to allocate data buffer.\n"); … … 353 342 * Allocate count entries plus the terminating null (\0) 354 343 */ 355 socket_ids = (int *) malloc(sizeof(int) * (sockets + 1));344 int *socket_ids = (int *) malloc(sizeof(int) * (sockets + 1)); 356 345 if (!socket_ids) { 357 346 fprintf(stderr, "Failed to allocate receive buffer.\n"); 358 347 return ENOMEM; 359 348 } 349 360 350 socket_ids[sockets] = 0; 361 351 … … 377 367 printf("\n"); 378 368 369 struct timeval time_before; 379 370 rc = gettimeofday(&time_before, NULL); 380 371 if (rc != EOK) { … … 388 379 return rc; 389 380 381 struct timeval time_after; 390 382 rc = gettimeofday(&time_after, NULL); 391 383 if (rc != EOK) { -
uspace/app/nettest3/nettest3.c
redf0d27 r02a09ed 84 84 } 85 85 86 rc = inet_addr_sockaddr_in(&hinfo->addr, &addr);87 if ( rc != EOK) {86 uint16_t af = inet_addr_sockaddr_in(&hinfo->addr, &addr, NULL); 87 if (af != AF_INET) { 88 88 printf("Host '%s' not resolved as IPv4 address.\n", argv[1]); 89 89 return rc; -
uspace/app/nterm/conn.c
redf0d27 r02a09ed 75 75 int conn_open(const char *addr_s, const char *port_s) 76 76 { 77 struct sockaddr_in addr; 78 dnsr_hostinfo_t *hinfo = NULL; 79 int rc; 80 char *endptr; 81 82 addr.sin_family = AF_INET; 83 84 rc = inet_pton(addr.sin_family, addr_s, (uint8_t *)&addr.sin_addr); 77 int conn_fd = -1; 78 79 /* Interpret as address */ 80 inet_addr_t addr_addr; 81 int rc = inet_addr_parse(addr_s, &addr_addr); 82 85 83 if (rc != EOK) { 86 /* Try interpreting as a host name */ 84 /* Interpret as a host name */ 85 dnsr_hostinfo_t *hinfo = NULL; 87 86 rc = dnsr_name2host(addr_s, &hinfo); 87 88 88 if (rc != EOK) { 89 89 printf("Error resolving host '%s'.\n", addr_s); … … 91 91 } 92 92 93 rc = inet_addr_sockaddr_in(&hinfo->addr, &addr); 94 if (rc != EOK) { 95 printf("Host '%s' not resolved as IPv4 address.\n", addr_s); 96 return rc; 97 } 93 addr_addr = hinfo->addr; 98 94 } 99 100 addr.sin_port = htons(strtol(port_s, &endptr, 10)); 95 96 struct sockaddr_in addr; 97 struct sockaddr_in6 addr6; 98 uint16_t af = inet_addr_sockaddr_in(&addr_addr, &addr, &addr6); 99 100 char *endptr; 101 uint16_t port = strtol(port_s, &endptr, 10); 101 102 if (*endptr != '\0') { 102 103 printf("Invalid port number %s\n", port_s); … … 104 105 } 105 106 107 printf("Connecting to host %s port %u\n", addr_s, port); 108 106 109 conn_fd = socket(PF_INET, SOCK_STREAM, 0); 107 110 if (conn_fd < 0) 108 111 goto error; 109 112 110 printf("Connecting to host %s port %u\n", addr_s, ntohs(addr.sin_port)); 113 switch (af) { 114 case AF_INET: 115 addr.sin_port = htons(port); 116 rc = connect(conn_fd, (struct sockaddr *) &addr, sizeof(addr)); 117 break; 118 case AF_INET6: 119 addr6.sin6_port = htons(port); 120 rc = connect(conn_fd, (struct sockaddr *) &addr6, sizeof(addr6)); 121 break; 122 default: 123 printf("Unknown address family.\n"); 124 goto error; 125 } 111 126 112 rc = connect(conn_fd, (struct sockaddr *)&addr, sizeof(addr));113 127 if (rc != EOK) 114 128 goto error; -
uspace/app/ping/ping.c
redf0d27 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 uint32_t src;66 static uint32_t dest;66 static addr32_t src; 67 static addr32_t dest; 67 68 68 69 static bool ping_repeat = false; … … 84 85 { 85 86 inet_addr_t src_addr; 86 inet_addr_ unpack(sdu->src, &src_addr);87 inet_addr_set(sdu->src, &src_addr); 87 88 88 89 inet_addr_t dest_addr; 89 inet_addr_ unpack(sdu->dest, &dest_addr);90 inet_addr_set(sdu->dest, &dest_addr); 90 91 91 92 char *asrc; … … 220 221 } 221 222 222 rc = inet_addr_pack(&dest_addr, &dest);223 if ( rc != EOK) {223 uint16_t af = inet_addr_get(&dest_addr, &dest, NULL); 224 if (af != AF_INET) { 224 225 printf(NAME ": Destination '%s' is not an IPv4 address.\n", 225 226 argv[argi]); … … 235 236 236 237 inet_addr_t src_addr; 237 inet_addr_ unpack(src, &src_addr);238 inet_addr_set(src, &src_addr); 238 239 239 240 rc = inet_addr_format(&src_addr, &asrc);
Note:
See TracChangeset
for help on using the changeset viewer.