target/iscsi: Keep local_ip as the actual sockaddr
authorAndy Grover <agrover@redhat.com>
Mon, 24 Aug 2015 17:26:04 +0000 (10:26 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Thu, 27 Aug 2015 06:27:16 +0000 (23:27 -0700)
This is a more natural format that lets us format it with the appropriate
printk specifier as needed.

This also lets us handle v4-mapped ipv6 addresses a little more nicely, by
storing the addr as an actual v4 sockaddr in conn->local_sockaddr.

Finally, we no longer need to maintain variables for port, since this is
contained in sockaddr. Remove iscsi_np.np_port and iscsi_conn.local_port.

Signed-off-by: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/infiniband/ulp/isert/ib_isert.c
drivers/target/iscsi/iscsi_target.c
drivers/target/iscsi/iscsi_target_configfs.c
drivers/target/iscsi/iscsi_target_login.c
drivers/target/iscsi/iscsi_target_tpg.c
include/target/iscsi/iscsi_target_core.h

index 7717009..9e7094c 100644 (file)
@@ -3218,9 +3218,7 @@ isert_set_conn_info(struct iscsi_np *np, struct iscsi_conn *conn,
                conn->login_port = ntohs(sock_in6->sin6_port);
 
                sock_in6 = (struct sockaddr_in6 *)&cm_route->addr.src_addr;
-               snprintf(conn->local_ip, sizeof(conn->local_ip), "%pI6c",
-                        &sock_in6->sin6_addr.in6_u);
-               conn->local_port = ntohs(sock_in6->sin6_port);
+               memcpy(&conn->local_sockaddr , &sock_in6, sizeof(sock_in6));
        } else {
                sock_in = (struct sockaddr_in *)&cm_route->addr.dst_addr;
                sprintf(conn->login_ip, "%pI4",
@@ -3228,9 +3226,7 @@ isert_set_conn_info(struct iscsi_np *np, struct iscsi_conn *conn,
                conn->login_port = ntohs(sock_in->sin_port);
 
                sock_in = (struct sockaddr_in *)&cm_route->addr.src_addr;
-               sprintf(conn->local_ip, "%pI4",
-                       &sock_in->sin_addr.s_addr);
-               conn->local_port = ntohs(sock_in->sin_port);
+               memcpy(&conn->local_sockaddr , &sock_in, sizeof(sock_in));
        }
 }
 
Simple merge