Changes in uspace/app/netspeed/netspeed.c [9e59c3b8:26de91a] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/netspeed/netspeed.c
r9e59c3b8 r26de91a 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> 38 43 #include <stdio.h> 39 44 #include <stdlib.h> … … 41 46 #include <str_error.h> 42 47 #include <task.h> 43 44 #include <net/in.h>45 #include <net/inet.h>46 #include <net/socket.h>47 48 48 49 #define NAME "netspeed" … … 114 115 } 115 116 116 static int client(sock_type_t sock_type, const char * address, unsigned port,117 static int client(sock_type_t sock_type, const char *host, unsigned port, 117 118 unsigned long count, char *buf, size_t bufsize) 118 119 { 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); 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); 131 144 if (conn_sd < 0) { 132 145 fprintf(stderr, "socket failed: %s\n", str_error(rc)); … … 135 148 136 149 if (sock_type == SOCK_STREAM) { 137 rc = connect(conn_sd, (struct sockaddr *) &addr, sizeof(addr));150 rc = connect(conn_sd, saddr, saddrlen); 138 151 if (rc != EOK) { 139 152 fprintf(stderr, "connect failed: %s\n", str_error(rc)); … … 151 164 rc = send(conn_sd, buf, bufsize, 0); 152 165 } else { 153 rc = sendto(conn_sd, buf, bufsize, 0, 154 (struct sockaddr *) &addr, sizeof(addr)); 166 rc = sendto(conn_sd, buf, bufsize, 0, saddr, saddrlen); 155 167 } 156 168 if (rc != EOK) { … … 161 173 162 174 closesocket(conn_sd); 175 free(saddr); 163 176 return rc; 164 177 } … … 167 180 { 168 181 fprintf(stderr, "Usage: netspeed <tcp|udp> server [port] <buffer size>\n"); 169 fprintf(stderr, " netspeed <tcp|udp> client < ip> <port> <count> <buffer size>\n");182 fprintf(stderr, " netspeed <tcp|udp> client <host> <port> <count> <buffer size>\n"); 170 183 } 171 184
Note:
See TracChangeset
for help on using the changeset viewer.