[io-layer] Extract socket (#4241)
[mono.git] / mono / metadata / appdomain.c
index 9e23de19060bbe376ad6d1abdc979c476ddaa32a..74323ab37b36e9a6fc94a85a049c4c2910d3ce3e 100644 (file)
@@ -43,7 +43,6 @@
 #include <mono/metadata/exception-internals.h>
 #include <mono/metadata/threads.h>
 #include <mono/metadata/threadpool.h>
-#include <mono/metadata/socket-io.h>
 #include <mono/metadata/tabledefs.h>
 #include <mono/metadata/gc-internals.h>
 #include <mono/metadata/mono-gc.h>
@@ -60,6 +59,7 @@
 #include <mono/metadata/profiler-private.h>
 #include <mono/metadata/reflection-internals.h>
 #include <mono/metadata/abi-details.h>
+#include <mono/metadata/w32socket.h>
 #include <mono/utils/mono-uri.h>
 #include <mono/utils/mono-logger-internals.h>
 #include <mono/utils/mono-path.h>
@@ -1815,6 +1815,11 @@ mono_domain_from_appdomain (MonoAppDomain *appdomain)
 {
        if (appdomain == NULL)
                return NULL;
+
+       if (mono_object_is_transparent_proxy (&appdomain->mbr.obj)) {
+               MonoTransparentProxy *tp = (MonoTransparentProxy*)appdomain;
+               return mono_domain_get_by_id (tp->rp->target_domain_id);
+       }
        
        return appdomain->data;
 }