X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fresolve.cpp;h=6e17a1abb38a1318bfacf8e4b2fa8adf09a58583;hb=22a091d02cb008dbc14c1809104487fdd62deade;hp=076fea065dee3960abc755d03e816d9fbcac909a;hpb=dbfb303f336037cf7ca4fca3d8bfe504c624b501;p=libs%2Fnet.git diff --git a/source/resolve.cpp b/source/resolve.cpp index 076fea0..6e17a1a 100644 --- a/source/resolve.cpp +++ b/source/resolve.cpp @@ -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(res->ai_addr); char *dptr = reinterpret_cast(&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; }