Changes in uspace/app/nettest3/nettest3.c [9d58539:26de91a] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/nettest3/nettest3.c
r9d58539 r26de91a 37 37 #include <async.h> 38 38 #include <stdio.h> 39 #include <stdlib.h> 39 40 #include <str.h> 40 41 42 #include <inet/dnsr.h> 41 43 #include <net/in.h> 42 44 #include <net/in6.h> … … 51 53 static char buf[BUF_SIZE]; 52 54 53 static struct sockaddr_in addr; 55 static struct sockaddr *address; 56 static socklen_t addrlen; 54 57 55 58 static uint16_t port; … … 60 63 int fd; 61 64 char *endptr; 65 dnsr_hostinfo_t *hinfo; 66 inet_addr_t addr; 67 char *addr_s; 62 68 63 69 port = 7; 64 70 65 data = (char *) "Hello World!";71 data = (char *) "Hello World!"; 66 72 size = str_size(data); 67 73 68 74 /* Connect to local IP address by default */ 69 addr.sin_family = AF_INET; 70 addr.sin_port = htons(port); 71 addr.sin_addr.s_addr = htonl(0x7f000001); 75 inet_addr(&addr, 127, 0, 0, 1); 72 76 73 77 if (argc >= 2) { 74 78 printf("parsing address '%s'\n", argv[1]); 75 rc = inet_ pton(AF_INET, argv[1], (uint8_t *)&addr.sin_addr.s_addr);79 rc = inet_addr_parse(argv[1], &addr); 76 80 if (rc != EOK) { 77 fprintf(stderr, "Error parsing address\n"); 78 return 1; 81 /* Try interpreting as a host name */ 82 rc = dnsr_name2host(argv[1], &hinfo, ip_v4); 83 if (rc != EOK) { 84 printf("Error resolving host '%s'.\n", argv[1]); 85 return rc; 86 } 87 88 addr = hinfo->addr; 79 89 } 80 printf("result: rc=%d, family=%d, addr=%x\n", rc, 81 addr.sin_family, addr.sin_addr.s_addr); 90 rc = inet_addr_format(&addr, &addr_s); 91 if (rc != EOK) { 92 assert(rc == ENOMEM); 93 printf("Out of memory.\n"); 94 return rc; 95 } 96 printf("result: rc=%d, ver=%d, addr=%s\n", rc, 97 addr.version, addr_s); 98 free(addr_s); 82 99 } 83 100 84 101 if (argc >= 3) { 85 102 printf("parsing port '%s'\n", argv[2]); 86 addr.sin_port = htons(strtoul(argv[2], &endptr, 10));103 port = htons(strtoul(argv[2], &endptr, 10)); 87 104 if (*endptr != '\0') { 88 105 fprintf(stderr, "Error parsing port\n"); … … 91 108 } 92 109 110 rc = inet_addr_sockaddr(&hinfo->addr, port, &address, &addrlen); 111 if (rc != EOK) { 112 printf("Out of memory.\n"); 113 return rc; 114 } 115 93 116 printf("socket()\n"); 94 fd = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP);117 fd = socket(address->sa_family, SOCK_STREAM, IPPROTO_TCP); 95 118 printf(" -> %d\n", fd); 96 119 if (fd < 0) … … 98 121 99 122 printf("connect()\n"); 100 rc = connect(fd, (struct sockaddr *)&addr, sizeof(addr));123 rc = connect(fd, address, addrlen); 101 124 printf(" -> %d\n", rc); 102 125 if (rc != 0) … … 115 138 } while (rc > 0); 116 139 117 async_usleep(1000 *1000);140 async_usleep(1000 * 1000); 118 141 119 142 printf("closesocket()\n"); … … 121 144 printf(" -> %d\n", rc); 122 145 146 free(address); 147 123 148 return 0; 124 149 } 125 150 126 127 151 /** @} 128 152 */
Note:
See TracChangeset
for help on using the changeset viewer.