#endif
#include <msp/core/systemerror.h>
#include <msp/strings/format.h>
+#include "sockaddr_private.h"
#include "socket.h"
#include "resolve.h"
int err = getaddrinfo(chost, cserv, &hints, &res);
if(err==0)
{
- SockAddr *addr = SockAddr::create(*res->ai_addr);
+ SockAddr::SysAddr sa;
+ sa.size = res->ai_addrlen;
+ 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);
freeaddrinfo(res);
return addr;
}