Changes in uspace/app/netspeed/netspeed.c [26de91a:9e59c3b8] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/netspeed/netspeed.c
r26de91a r9e59c3b8 36 36 */ 37 37 38 #include <assert.h>39 #include <inet/dnsr.h>40 #include <net/in.h>41 #include <net/inet.h>42 #include <net/socket.h>43 38 #include <stdio.h> 44 39 #include <stdlib.h> … … 46 41 #include <str_error.h> 47 42 #include <task.h> 43 44 #include <net/in.h> 45 #include <net/inet.h> 46 #include <net/socket.h> 48 47 49 48 #define NAME "netspeed" … … 115 114 } 116 115 117 static int client(sock_type_t sock_type, const char * host, unsigned port,116 static int client(sock_type_t sock_type, const char *address, unsigned port, 118 117 unsigned long count, char *buf, size_t bufsize) 119 118 { 120 inet_addr_t iaddr; 121 struct sockaddr *saddr; 122 socklen_t saddrlen; 123 124 int rc = inet_addr_parse(host, &iaddr); 125 if (rc != EOK) { 126 dnsr_hostinfo_t *hinfo = NULL; 127 rc = dnsr_name2host(host, &hinfo, ip_any); 128 if (rc != EOK) { 129 fprintf(stderr, "Error resolving host '%s'.\n", host); 130 return ENOENT; 131 } 132 133 iaddr = hinfo->addr; 134 } 135 136 rc = inet_addr_sockaddr(&iaddr, port, &saddr, &saddrlen); 137 if (rc != EOK) { 138 assert(rc == ENOMEM); 139 fprintf(stderr, "Out of memory.\n"); 140 return ENOMEM; 141 } 142 143 int conn_sd = socket(saddr->sa_family, sock_type, 0); 119 struct sockaddr_in addr; 120 121 addr.sin_family = AF_INET; 122 addr.sin_port = htons(port); 123 124 int rc = inet_pton(AF_INET, address, (void *) &addr.sin_addr.s_addr); 125 if (rc != EOK) { 126 fprintf(stderr, "inet_pton failed: %s\n", str_error(rc)); 127 return rc; 128 } 129 130 int conn_sd = socket(PF_INET, sock_type, 0); 144 131 if (conn_sd < 0) { 145 132 fprintf(stderr, "socket failed: %s\n", str_error(rc)); … … 148 135 149 136 if (sock_type == SOCK_STREAM) { 150 rc = connect(conn_sd, saddr, saddrlen);137 rc = connect(conn_sd, (struct sockaddr *) &addr, sizeof(addr)); 151 138 if (rc != EOK) { 152 139 fprintf(stderr, "connect failed: %s\n", str_error(rc)); … … 164 151 rc = send(conn_sd, buf, bufsize, 0); 165 152 } else { 166 rc = sendto(conn_sd, buf, bufsize, 0, saddr, saddrlen); 153 rc = sendto(conn_sd, buf, bufsize, 0, 154 (struct sockaddr *) &addr, sizeof(addr)); 167 155 } 168 156 if (rc != EOK) { … … 173 161 174 162 closesocket(conn_sd); 175 free(saddr);176 163 return rc; 177 164 } … … 180 167 { 181 168 fprintf(stderr, "Usage: netspeed <tcp|udp> server [port] <buffer size>\n"); 182 fprintf(stderr, " netspeed <tcp|udp> client < host> <port> <count> <buffer size>\n");169 fprintf(stderr, " netspeed <tcp|udp> client <ip> <port> <count> <buffer size>\n"); 183 170 } 184 171
Note:
See TracChangeset
for help on using the changeset viewer.