]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/address_helper: use set_sockaddr
authorSage Weil <sage@redhat.com>
Wed, 11 May 2016 16:39:42 +0000 (12:39 -0400)
committerSage Weil <sage@redhat.com>
Wed, 11 May 2016 16:39:42 +0000 (12:39 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/common/address_helper.cc

index 35cb0f2b5d46ca33a3a5ecd5c16a9bd70b958cf8..4431cb6dd9442ee19af62abd0f0e737842e1c2f3 100644 (file)
@@ -41,23 +41,7 @@ int entity_addr_from_url(entity_addr_t *addr /* out */, const char *url)
                hints.ai_family = PF_UNSPEC;
                error = getaddrinfo(host.c_str(), NULL, &hints, &res);
                if (! error) {
-                       struct sockaddr_in *sin;
-                       struct sockaddr_in6 *sin6;
-                       addr->addr.ss_family = res->ai_family;
-                       switch(res->ai_family) {
-                       case AF_INET:
-                               sin = (struct sockaddr_in *) res->ai_addr;
-                               memcpy(&addr->addr4.sin_addr, &sin->sin_addr,
-                                      sizeof(sin->sin_addr));
-                               break;
-                       case AF_INET6:
-                               sin6 = (struct sockaddr_in6 *) res->ai_addr;
-                               memcpy(&addr->addr6.sin6_addr, &sin6->sin6_addr,
-                                      sizeof(sin6->sin6_addr));
-                               break;
-                       default:
-                               break;
-                       };
+                       addr->set_sockaddr((sockaddr*)res->ai_addr);
                        addr->set_port(std::atoi(port.c_str()));
                        freeaddrinfo(res);
                        return 0;