#include <ws2tcpip.h>
#else
#include <sys/socket.h>
+#ifdef HAVE_SYS_IOCTL_H
#include <sys/ioctl.h>
+#endif
#include <netinet/in.h>
#include <netinet/tcp.h>
+#ifdef HAVE_NETDB_H
#include <netdb.h>
+#endif
#include <arpa/inet.h>
#endif
#ifdef HAVE_UNISTD_H
gint32 sock_proto;
gint32 sock_type;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
sock_family=convert_family(family);
void ves_icall_System_Net_Sockets_Socket_Close_internal(SOCKET sock,
gint32 *error)
{
- MONO_ARCH_SAVE_REGS;
-
LOGDEBUG (g_message ("%s: closing 0x%x", __func__, sock));
*error = 0;
gint32 ves_icall_System_Net_Sockets_SocketException_WSAGetLastError_internal(void)
{
- MONO_ARCH_SAVE_REGS;
-
LOGDEBUG (g_message("%s: returning %d", __func__, WSAGetLastError()));
return(WSAGetLastError());
int ret;
int amount;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
/* FIXME: this might require amount to be unsigned long. */
{
int ret;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
/*
{
SOCKET newsock;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
#ifdef HOST_WIN32
{
{
int ret;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
ret = _wapi_listen (sock, backlog);
int ret;
MonoObject *result;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
salen = get_sockaddr_size (convert_family (af));
int ret;
MonoObject *result;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
salen = get_sockaddr_size (convert_family (af));
socklen_t sa_size;
int ret;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
sa=create_sockaddr_from_object(sockaddr, &sa_size, error);
int ret;
time_t start;
-
- MONO_ARCH_SAVE_REGS;
-
pfds = g_new0 (mono_pollfd, 1);
pfds[0].fd = GPOINTER_TO_INT (sock);
pfds[0].events = (mode == SelectModeRead) ? MONO_POLLIN :
socklen_t sa_size;
int ret;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
sa=create_sockaddr_from_object(sockaddr, &sa_size, error);
LPFN_TRANSMITFILE _wapi_transmitfile = NULL;
gboolean bret;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
LOGDEBUG (g_message("%s: disconnecting from socket %p (reuse %d)", __func__, sock, reuse));
gint32 alen;
int recvflags=0;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
alen = mono_array_length (buffer);
WSABUF *wsabufs;
DWORD recvflags = 0;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
wsabufs = mono_array_addr (buffers, WSABUF, 0);
struct sockaddr *sa;
socklen_t sa_size;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
alen = mono_array_length (buffer);
gint32 alen;
int sendflags=0;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
alen = mono_array_length (buffer);
WSABUF *wsabufs;
DWORD sendflags = 0;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
wsabufs = mono_array_addr (buffers, WSABUF, 0);
struct sockaddr *sa;
socklen_t sa_size;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
alen = mono_array_length (buffer);
time_t start;
uintptr_t socks_size;
- MONO_ARCH_SAVE_REGS;
-
/* *sockets -> READ, null, WRITE, null, ERROR, null */
count = mono_array_length (*sockets);
nfds = count - 3; /* NULL separators */
MonoClass *obj_class;
MonoClassField *field;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
#if !defined(SO_EXCLUSIVEADDRUSE) && defined(SO_REUSEADDR)
guchar *buf;
socklen_t valsize;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
ret=convert_sockopt_level_and_name(level, name, &system_level,
sol_ipv6 = mono_networking_get_ipv6_protocol ();
sol_ip = mono_networking_get_ip_protocol ();
- MONO_ARCH_SAVE_REGS;
-
ret=convert_sockopt_level_and_name(level, name, &system_level,
&system_name);
{
int ret;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
/* Currently, the values for how (recv=0, send=1, both=2) match
gint i_len, o_len;
gint ret;
- MONO_ARCH_SAVE_REGS;
-
*error = 0;
if ((guint32)code == FIONBIO) {
MonoAddressInfo *info = NULL;
char *hostname;
- MONO_ARCH_SAVE_REGS;
-
hostname=mono_string_to_utf8 (host);
if (*hostname == '\0') {
add_local_ips = TRUE;
gchar hostname[256];
int ret;
- MONO_ARCH_SAVE_REGS;
-
ret = gethostname (hostname, sizeof (hostname));
if(ret==-1) {
return(FALSE);
gint32 error;
TRANSMIT_FILE_BUFFERS buffers;
- MONO_ARCH_SAVE_REGS;
-
if (filename == NULL)
return FALSE;
void mono_network_init(void)
{
- WSADATA wsadata;
- int err;
-
- err=WSAStartup(MAKEWORD(2,0), &wsadata);
- if(err!=0) {
- g_error("%s: Couldn't initialise networking", __func__);
- exit(-1);
- }
-
- LOGDEBUG (g_message("%s: Using socket library: %s", __func__, wsadata.szDescription));
- LOGDEBUG (g_message("%s: Socket system status: %s", __func__, wsadata.szSystemStatus));
+ mono_networking_init ();
}
void mono_network_cleanup(void)
{
- WSACleanup();
+ _wapi_cleanup_networking ();
+ mono_networking_shutdown ();
}
void