projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[xbuild] Bump buildtools to get support for netstandard 1.6
[mono.git]
/
mono
/
utils
/
networking-posix.c
diff --git
a/mono/utils/networking-posix.c
b/mono/utils/networking-posix.c
index 58ab1378a90ab147b5794d7e8752e545cbf46053..ede69be85f35d83385d2d8acd2e6f5faf3fd44d2 100644
(file)
--- a/
mono/utils/networking-posix.c
+++ b/
mono/utils/networking-posix.c
@@
-7,7
+7,7
@@
* (C) 2015 Xamarin
*/
* (C) 2015 Xamarin
*/
-#include <
mono/utils/networkin
g.h>
+#include <
confi
g.h>
#include <glib.h>
#ifdef HAVE_NETDB_H
#include <glib.h>
#ifdef HAVE_NETDB_H
@@
-26,6
+26,9
@@
#include <ifaddrs.h>
#endif
#include <ifaddrs.h>
#endif
+#include <mono/utils/networking.h>
+#include <mono/utils/mono-threads-coop.h>
+
static void*
get_address_from_sockaddr (struct sockaddr *sa)
{
static void*
get_address_from_sockaddr (struct sockaddr *sa)
{
@@
-47,6
+50,7
@@
mono_get_address_info (const char *hostname, int port, int flags, MonoAddressInf
struct addrinfo hints, *res = NULL, *info;
MonoAddressEntry *cur = NULL, *prev = NULL;
MonoAddressInfo *addr_info;
struct addrinfo hints, *res = NULL, *info;
MonoAddressEntry *cur = NULL, *prev = NULL;
MonoAddressInfo *addr_info;
+ int ret;
memset (&hints, 0, sizeof (struct addrinfo));
*result = NULL;
memset (&hints, 0, sizeof (struct addrinfo));
*result = NULL;
@@
-68,7
+72,12
@@
mono_get_address_info (const char *hostname, int port, int flags, MonoAddressInf
hints.ai_flags = AI_ADDRCONFIG;
#endif
sprintf (service_name, "%d", port);
hints.ai_flags = AI_ADDRCONFIG;
#endif
sprintf (service_name, "%d", port);
- if (getaddrinfo (hostname, service_name, &hints, &info))
+
+ MONO_ENTER_GC_SAFE;
+ ret = getaddrinfo (hostname, service_name, &hints, &info);
+ MONO_EXIT_GC_SAFE;
+
+ if (ret)
return 1; /* FIXME propagate the error */
res = info;
return 1; /* FIXME propagate the error */
res = info;