mono_field_set_value (sockaddr_obj, domain->sockaddr_data_length_field, &buffer_size);
return sockaddr_obj;
+ }
#ifdef HAVE_STRUCT_SOCKADDR_IN6
- } else if (saddr->sa_family == AF_INET6) {
+ else if (saddr->sa_family == AF_INET6) {
struct sockaddr_in6 *sa_in = (struct sockaddr_in6 *)saddr;
int i;
int buffer_size = 28;
size = 0;
if (family == AF_INET) {
size = sizeof (struct sockaddr_in);
+ }
#ifdef HAVE_STRUCT_SOCKADDR_IN6
- } else if (family == AF_INET6) {
+ else if (family == AF_INET6) {
size = sizeof (struct sockaddr_in6);
}
#endif
*sa_size = sizeof (struct sockaddr_in);
return (struct sockaddr *)sa;
+ }
#ifdef HAVE_STRUCT_SOCKADDR_IN6
- } else if (family == AF_INET6) {
+ else if (family == AF_INET6) {
struct sockaddr_in6 *sa;
int i;
guint16 port;
#endif
ret = mono_w32socket_setsockopt (sock, system_level, system_name, &mreq6, sizeof (mreq6));
-
- } else
+
+ break; // Don't check sol_ip
+ }
#endif
if (system_level == sol_ip) {
#ifdef HAVE_STRUCT_IP_MREQN
if (inet_pton (AF_INET, address, &saddr.sin_addr ) == 1) {
family = AF_INET;
saddr.sin_family = AF_INET;
+ }
#ifdef HAVE_STRUCT_SOCKADDR_IN6
- } else if (inet_pton (AF_INET6, address, &saddr6.sin6_addr) == 1) {
+ else if (inet_pton (AF_INET6, address, &saddr6.sin6_addr) == 1) {
family = AF_INET6;
saddr6.sin6_family = AF_INET6;
+ }
#endif
- } else {
+ else {
g_free (address);
return FALSE;
}