|
@@ -59,6 +59,32 @@ enet_time_set (enet_uint32 newTimeBase)
|
|
timeBase = (enet_uint32) timeGetTime () - newTimeBase;
|
|
timeBase = (enet_uint32) timeGetTime () - newTimeBase;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+int
|
|
|
|
+enet_address_set_host_ip (ENetAddress * address, const char * name)
|
|
|
|
+{
|
|
|
|
+ enet_uint8 vals [4] = { 0, 0, 0, 0 };
|
|
|
|
+ int i;
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < 4; ++ i)
|
|
|
|
+ {
|
|
|
|
+ const char * next = name + 1;
|
|
|
|
+ if (* name != '0')
|
|
|
|
+ {
|
|
|
|
+ long val = strtol (name, (char **) & next, 10);
|
|
|
|
+ if (val < 0 || val > 255 || next == name || next - name > 3)
|
|
|
|
+ return -1;
|
|
|
|
+ vals [i] = (enet_uint8) val;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (* next != (i < 3 ? '.' : '\0'))
|
|
|
|
+ return -1;
|
|
|
|
+ name = next + 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ memcpy (& address -> host, vals, sizeof (enet_uint32));
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
int
|
|
int
|
|
enet_address_set_host (ENetAddress * address, const char * name)
|
|
enet_address_set_host (ENetAddress * address, const char * name)
|
|
{
|
|
{
|
|
@@ -67,13 +93,7 @@ enet_address_set_host (ENetAddress * address, const char * name)
|
|
hostEntry = gethostbyname (name);
|
|
hostEntry = gethostbyname (name);
|
|
if (hostEntry == NULL ||
|
|
if (hostEntry == NULL ||
|
|
hostEntry -> h_addrtype != AF_INET)
|
|
hostEntry -> h_addrtype != AF_INET)
|
|
- {
|
|
+ return enet_address_set_host_ip (address, name);
|
|
- unsigned long host = inet_addr (name);
|
|
|
|
- if (host == INADDR_NONE)
|
|
|
|
- return -1;
|
|
|
|
- address -> host = host;
|
|
|
|
- return 0;
|
|
|
|
- }
|
|
|
|
|
|
|
|
address -> host = * (enet_uint32 *) hostEntry -> h_addr_list [0];
|
|
address -> host = * (enet_uint32 *) hostEntry -> h_addr_list [0];
|
|
|
|
|