mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-10 13:04:23 -04:00
Merge remote-tracking branch 'origin/patches-2.0'
This commit is contained in:
commit
d7c0ffa1c0
11
evutil.c
11
evutil.c
@ -1138,7 +1138,7 @@ apply_numeric_port_hack(int port, struct evutil_addrinfo **ai)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static int
|
||||||
apply_socktype_protocol_hack(struct evutil_addrinfo *ai)
|
apply_socktype_protocol_hack(struct evutil_addrinfo *ai)
|
||||||
{
|
{
|
||||||
struct evutil_addrinfo *ai_new;
|
struct evutil_addrinfo *ai_new;
|
||||||
@ -1147,6 +1147,8 @@ apply_socktype_protocol_hack(struct evutil_addrinfo *ai)
|
|||||||
if (ai->ai_socktype || ai->ai_protocol)
|
if (ai->ai_socktype || ai->ai_protocol)
|
||||||
continue;
|
continue;
|
||||||
ai_new = mm_malloc(sizeof(*ai_new));
|
ai_new = mm_malloc(sizeof(*ai_new));
|
||||||
|
if (!ai_new)
|
||||||
|
return -1;
|
||||||
memcpy(ai_new, ai, sizeof(*ai_new));
|
memcpy(ai_new, ai, sizeof(*ai_new));
|
||||||
ai->ai_socktype = SOCK_STREAM;
|
ai->ai_socktype = SOCK_STREAM;
|
||||||
ai->ai_protocol = IPPROTO_TCP;
|
ai->ai_protocol = IPPROTO_TCP;
|
||||||
@ -1156,6 +1158,7 @@ apply_socktype_protocol_hack(struct evutil_addrinfo *ai)
|
|||||||
ai_new->ai_next = ai->ai_next;
|
ai_new->ai_next = ai->ai_next;
|
||||||
ai->ai_next = ai_new;
|
ai->ai_next = ai_new;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1246,7 +1249,11 @@ evutil_getaddrinfo(const char *nodename, const char *servname,
|
|||||||
apply_numeric_port_hack(portnum, res);
|
apply_numeric_port_hack(portnum, res);
|
||||||
|
|
||||||
if (need_socktype_protocol_hack()) {
|
if (need_socktype_protocol_hack()) {
|
||||||
apply_socktype_protocol_hack(*res);
|
if (apply_socktype_protocol_hack(*res) < 0) {
|
||||||
|
evutil_freeaddrinfo(*res);
|
||||||
|
*res = NULL;
|
||||||
|
return EVUTIL_EAI_MEMORY;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
#else
|
#else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user