1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#if defined(_X360)
char * inet_ntoa(IN_ADDR in_addr)
{
static char buffer[16];
sprintf(buffer, "%d.%d.%d.%d", in_addr.S_un.S_un_b.s_b1, in_addr.S_un.S_un_b.s_b2,
in_addr.S_un.S_un_b.s_b3, in_addr.S_un.S_un_b.s_b4);
return buffer;
}
struct hostent * gethostbyname(const char* name)
{
XNDNS *pxndns;
static HOSTENT host;
HOSTENT *rvalue;
if(XNetDnsLookup(name, NULL, &pxndns) != 0)
return NULL;
while (pxndns->iStatus == WSAEINPROGRESS)
{
msleep(5);
}
if ((pxndns->iStatus == 0) && (pxndns->cina > 0))
{
static char * ipPtrs[2];
static IN_ADDR ip;
host.h_name = (char*)name;
host.h_aliases = NULL;
host.h_addrtype = AF_INET;
host.h_length = (gsi_u16)sizeof(IN_ADDR);
host.h_addr_list = (gsi_i8 **)ipPtrs;
ip = pxndns->aina[0];
ipPtrs[0] = (char *)&ip;
ipPtrs[1] = NULL;
rvalue = &host;
}
else
{
rvalue = NULL;
}
XNetDnsRelease(pxndns);
return rvalue;
}
#endif
|