static MonoObject*
create_object_from_sockaddr(struct sockaddr *saddr, int sa_size, gint32 *error)
{
+ MonoError merror;
MonoDomain *domain = mono_domain_get ();
MonoObject *sockaddr_obj;
MonoArray *data;
domain->sockaddr_class=mono_class_from_name (get_socket_assembly (), "System.Net", "SocketAddress");
g_assert (domain->sockaddr_class);
}
- sockaddr_obj=mono_object_new(domain, domain->sockaddr_class);
+ sockaddr_obj=mono_object_new_checked(domain, domain->sockaddr_class, &merror);
+ mono_error_raise_exception (&merror); /* FIXME don't raise here */
/* Locate the SocketAddress data buffer in the object */
if (!domain->sockaddr_data_field) {
void
ves_icall_System_Net_Sockets_Socket_Select_internal (MonoArray **sockets, gint32 timeout, gint32 *error)
{
+ MonoError monoerror;
MonoInternalThread *thread = mono_thread_internal_current ();
MonoObject *obj;
mono_pollfd *pfds;
sock_arr_class= ((MonoObject *)*sockets)->vtable->klass;
socks_size = ((uintptr_t)ret) + 3; /* space for the NULL delimiters */
- socks = mono_array_new_full (mono_domain_get (), sock_arr_class, &socks_size, NULL);
+ socks = mono_array_new_full_checked (mono_domain_get (), sock_arr_class, &socks_size, NULL, &monoerror);
+ mono_error_raise_exception (&monoerror);
mode = idx = 0;
for (i = 0; i < count && ret > 0; i++) {
# endif
socklen_t credsize = sizeof(cred);
#endif
+ MonoError merror;
MonoDomain *domain=mono_domain_get();
MonoObject *obj;
MonoClass *obj_class;
obj_class=mono_class_from_name(get_socket_assembly (),
"System.Net.Sockets",
"LingerOption");
- obj=mono_object_new(domain, obj_class);
-
+ obj=mono_object_new_checked(domain, obj_class, &merror);
+ mono_error_raise_exception (&merror); /* FIXME don't raise here */
+
/* Locate and set the fields "bool enabled" and "int
- * seconds"
+ * lingerTime"
*/
field=mono_class_get_field_from_name(obj_class, "enabled");
*(guint8 *)(((char *)obj)+field->offset)=linger.l_onoff;
- field=mono_class_get_field_from_name(obj_class, "seconds");
+ field=mono_class_get_field_from_name(obj_class, "lingerTime");
*(guint32 *)(((char *)obj)+field->offset)=linger.l_linger;
break;
obj_class = mono_class_from_name(mono_posix_image,
"Mono.Posix",
"PeerCredData");
- obj = mono_object_new(domain, obj_class);
+ obj = mono_object_new_checked(domain, obj_class, &merror);
+ mono_error_raise_exception (&merror); /* FIXME don't raise here */
cred_data = (MonoPeerCredData *)obj;
cred_data->pid = cred.pid;
cred_data->uid = cred.uid;
switch(name) {
case SocketOptionName_Linger:
- /* Dig out "bool enabled" and "int seconds"
+ /* Dig out "bool enabled" and "int lingerTime"
* fields
*/
field=mono_class_get_field_from_name(obj_val->vtable->klass, "enabled");
linger.l_onoff=*(guint8 *)(((char *)obj_val)+field->offset);
- field=mono_class_get_field_from_name(obj_val->vtable->klass, "seconds");
+ field=mono_class_get_field_from_name(obj_val->vtable->klass, "lingerTime");
linger.l_linger=*(guint32 *)(((char *)obj_val)+field->offset);
valsize=sizeof(linger);
/*
* Get group address
*/
- field = mono_class_get_field_from_name (obj_val->vtable->klass, "group");
+ field = mono_class_get_field_from_name (obj_val->vtable->klass, "m_Group");
address = *(MonoObject **)(((char *)obj_val) + field->offset);
if(address) {
mreq6.ipv6mr_multiaddr = ipaddress_to_struct_in6_addr (address);
}
- field=mono_class_get_field_from_name(obj_val->vtable->klass, "ifIndex");
+ field=mono_class_get_field_from_name(obj_val->vtable->klass, "m_Interface");
mreq6.ipv6mr_interface =*(guint64 *)(((char *)obj_val)+field->offset);
#if defined(__APPLE__) || defined(__FreeBSD__)
mreq.imr_multiaddr = ipaddress_to_struct_in_addr (address);
}
- field = mono_class_get_field_from_name (obj_val->vtable->klass, "local");
+ field = mono_class_get_field_from_name (obj_val->vtable->klass, "localAddress");
address = *(MonoObject **)(((char *)obj_val) + field->offset);
#ifdef HAVE_STRUCT_IP_MREQN
mreq.imr_address = ipaddress_to_struct_in_addr (address);
}
- field = mono_class_get_field_from_name(obj_val->vtable->klass, "iface_index");
+ field = mono_class_get_field_from_name(obj_val->vtable->klass, "ifIndex");
mreq.imr_ifindex = *(gint32 *)(((char *)obj_val)+field->offset);
#else
if(address) {