SocketFlags_Partial = 0x8000
} MonoSocketFlags;
-/*
- Keep this in sync with SocketAsyncResult in
- ./System.Net.Sockets/Socket.cs and ProcessAsyncReader
- in System.Diagnostics/Process.cs.
-*/
-typedef struct _MonoSocketAsyncResult {
- MonoObject obj;
- MonoObject *socket;
- HANDLE handle;
- MonoObject *state;
- MonoDelegate *callback;
- MonoWaitHandle *wait_handle;
- MonoException *delayed_exc;
- MonoObject *ep;
- MonoArray *buffer;
- gint offset;
- gint size;
- gint socket_flags;
- MonoObject *accept_reuse_socket;
- MonoArray *addresses;
- gint port;
- MonoObject *buffers;
- MonoBoolean reusesocket;
- MonoObject *acc_socket;
- gint total;
- MonoBoolean completed_synch;
- MonoBoolean completed;
- MonoBoolean blocking;
- gint error;
- gint operation;
- MonoAsyncResult *ares;
- gint32 end_called;
-} MonoSocketAsyncResult;
-
typedef struct
{
MonoObject obj;
extern void ves_icall_System_Net_Sockets_Socket_Disconnect_internal(SOCKET sock, MonoBoolean reuse, gint32 *error);
extern gboolean ves_icall_System_Net_Sockets_Socket_SendFile_internal (SOCKET sock, MonoString *filename, MonoArray *pre_buffer, MonoArray *post_buffer, gint flags);
void icall_cancel_blocking_socket_operation (MonoThread *thread);
+extern gboolean ves_icall_System_Net_Sockets_Socket_SupportPortReuse (MonoProtocolType proto);
extern void mono_network_init(void);
extern void mono_network_cleanup(void);