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());
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;
}