]> git.tdb.fi Git - libs/net.git/blobdiff - source/resolve.cpp
Add back get_port functions to InetAddr and Inet6Addr
[libs/net.git] / source / resolve.cpp
index 076fea065dee3960abc755d03e816d9fbcac909a..6e17a1abb38a1318bfacf8e4b2fa8adf09a58583 100644 (file)
@@ -38,7 +38,14 @@ SockAddr *resolve(const string &s, Family family)
                        host = s;
        }
 
-       addrinfo hints = { 0, family_to_sys(family), 0, 0, 0, 0, 0, 0 };
+       unsigned flags = 0;
+       if(host=="*")
+       {
+               flags = AI_PASSIVE;
+               host = string();
+       }
+
+       addrinfo hints = { flags, family_to_sys(family), 0, 0, 0, 0, 0, 0 };
        addrinfo *res;
        const char *chost = (host.empty() ? 0 : host.c_str());
        const char *cserv = (serv.empty() ? 0 : serv.c_str());
@@ -50,7 +57,7 @@ SockAddr *resolve(const string &s, Family family)
                const char *sptr = reinterpret_cast<const char *>(res->ai_addr);
                char *dptr = reinterpret_cast<char *>(&sa.addr);
                copy(sptr, sptr+res->ai_addrlen, dptr);
-               SockAddr *addr = SockAddr::from_sys(sa);
+               SockAddr *addr = SockAddr::new_from_sys(sa);
                freeaddrinfo(res);
                return addr;
        }