lib: futher simplification of setsockopt_ipv4_multicast()

* sockopt.c (setsockopt_ipv4_multicast): check for wrong optname with
  assert(), rather than return an error.
This commit is contained in:
Dmitrij Tejblum 2011-08-19 23:00:30 +04:00 committed by Denis Ovsienko
parent e0afa6f44a
commit ee7e75d38b

View File

@ -214,10 +214,7 @@ setsockopt_ipv4_multicast(int sock,
struct ip_mreqn mreqn; struct ip_mreqn mreqn;
int ret; int ret;
switch (optname) assert(optname == IP_ADD_MEMBERSHIP || optname == IP_DROP_MEMBERSHIP);
{
case IP_ADD_MEMBERSHIP:
case IP_DROP_MEMBERSHIP:
memset (&mreqn, 0, sizeof(mreqn)); memset (&mreqn, 0, sizeof(mreqn));
if (mcast_addr) if (mcast_addr)
@ -242,14 +239,6 @@ setsockopt_ipv4_multicast(int sock,
(void *)&mreqn, sizeof(mreqn)); (void *)&mreqn, sizeof(mreqn));
} }
return ret; return ret;
break;
default:
/* Can out and give an understandable error */
errno = EINVAL;
return -1;
break;
}
/* Example defines for another OS, boilerplate off other code in this /* Example defines for another OS, boilerplate off other code in this
function, AND handle optname as per other sections for consistency !! */ function, AND handle optname as per other sections for consistency !! */
@ -263,12 +252,10 @@ setsockopt_ipv4_multicast(int sock,
struct ip_mreq mreq; struct ip_mreq mreq;
int ret; int ret;
assert(optname == IP_ADD_MEMBERSHIP || optname == IP_DROP_MEMBERSHIP);
m.s_addr = htonl(ifindex); m.s_addr = htonl(ifindex);
switch (optname)
{
case IP_ADD_MEMBERSHIP:
case IP_DROP_MEMBERSHIP:
memset (&mreq, 0, sizeof(mreq)); memset (&mreq, 0, sizeof(mreq));
mreq.imr_multiaddr.s_addr = mcast_addr; mreq.imr_multiaddr.s_addr = mcast_addr;
mreq.imr_interface = m; mreq.imr_interface = m;
@ -289,14 +276,7 @@ setsockopt_ipv4_multicast(int sock,
(void *)&mreq, sizeof(mreq)); (void *)&mreq, sizeof(mreq));
} }
return ret; return ret;
break;
default:
/* Can out and give an understandable error */
errno = EINVAL;
return -1;
break;
}
#else #else
#error "Unsupported multicast API" #error "Unsupported multicast API"
#endif /* #if OS_TYPE */ #endif /* #if OS_TYPE */