client/server: don't reset ipv6 expectations
authorJens Axboe <axboe@kernel.dk>
Sat, 25 Jan 2014 02:56:56 +0000 (18:56 -0800)
committerJens Axboe <axboe@kernel.dk>
Sat, 25 Jan 2014 02:56:56 +0000 (18:56 -0800)
fio_server_parse_host() no longer falls back to ipv4, so just
pass in the actual value, not a reference.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
client.c
server.c
server.h

index 7975ce606c4c978a48ecbe304c1317213e6725f6..467d093982c8ff1f6fdd2cb7d6781e8c76934c8b 100644 (file)
--- a/client.c
+++ b/client.c
@@ -238,7 +238,7 @@ struct fio_client *fio_client_add_explicit(struct client_ops *ops,
                int ipv6;
 
                ipv6 = type == Fio_client_ipv6;
-               if (fio_server_parse_host(hostname, &ipv6,
+               if (fio_server_parse_host(hostname, ipv6,
                                                &client->addr.sin_addr,
                                                &client->addr6.sin6_addr))
                        goto err;
index 9bfae7959eee3b5979da1ee69af7f398cf8263a8..b6961fd58d9281030d9afea117571eb9f6796a60 100644 (file)
--- a/server.c
+++ b/server.c
@@ -1392,13 +1392,13 @@ static int fio_init_server_connection(void)
        return sk;
 }
 
-int fio_server_parse_host(const char *host, int *ipv6, struct in_addr *inp,
+int fio_server_parse_host(const char *host, int ipv6, struct in_addr *inp,
                          struct in6_addr *inp6)
 
 {
        int ret = 0;
 
-       if (*ipv6)
+       if (ipv6)
                ret = inet_pton(AF_INET6, host, inp6);
        else
                ret = inet_pton(AF_INET, host, inp);
@@ -1407,7 +1407,7 @@ int fio_server_parse_host(const char *host, int *ipv6, struct in_addr *inp,
                struct addrinfo hints, *res;
 
                memset(&hints, 0, sizeof(hints));
-               hints.ai_family = *ipv6 ? AF_INET6 : AF_INET;
+               hints.ai_family = ipv6 ? AF_INET6 : AF_INET;
                hints.ai_socktype = SOCK_STREAM;
 
                ret = getaddrinfo(host, NULL, &hints, &res);
@@ -1417,7 +1417,7 @@ int fio_server_parse_host(const char *host, int *ipv6, struct in_addr *inp,
                        return 1;
                }
 
-               if (*ipv6)
+               if (ipv6)
                        memcpy(inp6, &((struct sockaddr_in6 *) res->ai_addr)->sin6_addr, sizeof(*inp6));
                else
                        memcpy(inp, &((struct sockaddr_in *) res->ai_addr)->sin_addr, sizeof(*inp));
@@ -1508,7 +1508,7 @@ int fio_server_parse_string(const char *str, char **ptr, int *is_sock,
 
        *ptr = strdup(host);
 
-       if (fio_server_parse_host(*ptr, ipv6, inp, inp6)) {
+       if (fio_server_parse_host(*ptr, *ipv6, inp, inp6)) {
                free(*ptr);
                *ptr = NULL;
                return 1;
index 57e15d72ff1829c8f18d992e84f525168618d4ac..adb190a9c15c59723ef6c6bc1169ee60f03e6adf 100644 (file)
--- a/server.h
+++ b/server.h
@@ -156,7 +156,7 @@ extern int fio_net_send_cmd(int, uint16_t, const void *, off_t, uint64_t *, stru
 extern int fio_net_send_simple_cmd(int, uint16_t, uint64_t, struct flist_head *);
 extern void fio_server_set_arg(const char *);
 extern int fio_server_parse_string(const char *, char **, int *, int *, struct in_addr *, struct in6_addr *, int *);
-extern int fio_server_parse_host(const char *, int *, struct in_addr *, struct in6_addr *);
+extern int fio_server_parse_host(const char *, int, struct in_addr *, struct in6_addr *);
 extern const char *fio_server_op(unsigned int);
 extern void fio_server_got_signal(int);