net/udp: Remove some conditional logic that was true if there is only a single network device, but not true in the multi-device context.
This commit is contained in:
parent
5ab4eb4f30
commit
055a3ef844
@ -70,36 +70,16 @@
|
|||||||
# define NEED_IPDOMAIN_SUPPORT 1
|
# define NEED_IPDOMAIN_SUPPORT 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Timeouts on sendto() do not make sense. Each polling cycle from the
|
|
||||||
* driver is an opportunity to send a packet. If the driver is not polling,
|
|
||||||
* then the network is not up (and there are no polling cycles to drive
|
|
||||||
* the timeout).
|
|
||||||
*
|
|
||||||
* There is a remote possibility that if there is a lot of other network
|
|
||||||
* traffic that a UDP sendto could get delayed, but I would not expect this
|
|
||||||
* generate a timeout.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#undef CONFIG_NET_SENDTO_TIMEOUT
|
|
||||||
|
|
||||||
/* If supported, the sendto timeout function would depend on socket options
|
|
||||||
* and a system clock.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef CONFIG_NET_SOCKOPTS
|
|
||||||
# undef CONFIG_NET_SENDTO_TIMEOUT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Private Types
|
* Private Types
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
struct sendto_s
|
struct sendto_s
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_NET_SENDTO_TIMEOUT) || defined(NEED_IPDOMAIN_SUPPORT)
|
#if defined(CONFIG_NET_SOCKOPTS) || defined(NEED_IPDOMAIN_SUPPORT)
|
||||||
FAR struct socket *st_sock; /* Points to the parent socket structure */
|
FAR struct socket *st_sock; /* Points to the parent socket structure */
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_NET_SENDTO_TIMEOUT
|
#ifdef CONFIG_NET_SOCKOPTS
|
||||||
systime_t st_time; /* Last send time for determining timeout */
|
systime_t st_time; /* Last send time for determining timeout */
|
||||||
#endif
|
#endif
|
||||||
FAR struct devif_callback_s *st_cb; /* Reference to callback instance */
|
FAR struct devif_callback_s *st_cb; /* Reference to callback instance */
|
||||||
@ -130,7 +110,7 @@ struct sendto_s
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_NET_SENDTO_TIMEOUT
|
#ifdef CONFIG_NET_SOCKOPTS
|
||||||
static inline int send_timeout(FAR struct sendto_s *pstate)
|
static inline int send_timeout(FAR struct sendto_s *pstate)
|
||||||
{
|
{
|
||||||
FAR struct socket *psock;
|
FAR struct socket *psock;
|
||||||
@ -151,7 +131,7 @@ static inline int send_timeout(FAR struct sendto_s *pstate)
|
|||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_NET_SENDTO_TIMEOUT */
|
#endif /* CONFIG_NET_SOCKOPTS */
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: sendto_ipselect
|
* Name: sendto_ipselect
|
||||||
@ -254,7 +234,7 @@ static uint16_t sendto_eventhandler(FAR struct net_driver_s *dev,
|
|||||||
* polling cycle and check again.
|
* polling cycle and check again.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_NET_SENDTO_TIMEOUT
|
#ifdef CONFIG_NET_SOCKOPTS
|
||||||
if (send_timeout(pstate))
|
if (send_timeout(pstate))
|
||||||
{
|
{
|
||||||
/* Yes.. report the timeout */
|
/* Yes.. report the timeout */
|
||||||
@ -263,7 +243,7 @@ static uint16_t sendto_eventhandler(FAR struct net_driver_s *dev,
|
|||||||
pstate->st_sndlen = -ETIMEDOUT;
|
pstate->st_sndlen = -ETIMEDOUT;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* CONFIG_NET_SENDTO_TIMEOUT */
|
#endif /* CONFIG_NET_SOCKOPTS */
|
||||||
{
|
{
|
||||||
/* No timeout. Just wait for the next polling cycle */
|
/* No timeout. Just wait for the next polling cycle */
|
||||||
|
|
||||||
@ -403,7 +383,7 @@ ssize_t psock_udp_sendto(FAR struct socket *psock, FAR const void *buf,
|
|||||||
state.st_buflen = len;
|
state.st_buflen = len;
|
||||||
state.st_buffer = buf;
|
state.st_buffer = buf;
|
||||||
|
|
||||||
#if defined(CONFIG_NET_SENDTO_TIMEOUT) || defined(NEED_IPDOMAIN_SUPPORT)
|
#if defined(CONFIG_NET_SOCKOPTS) || defined(NEED_IPDOMAIN_SUPPORT)
|
||||||
/* Save the reference to the socket structure if it will be needed for
|
/* Save the reference to the socket structure if it will be needed for
|
||||||
* asynchronous processing.
|
* asynchronous processing.
|
||||||
*/
|
*/
|
||||||
@ -411,7 +391,7 @@ ssize_t psock_udp_sendto(FAR struct socket *psock, FAR const void *buf,
|
|||||||
state.st_sock = psock;
|
state.st_sock = psock;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_NET_SENDTO_TIMEOUT
|
#ifdef CONFIG_NET_SOCKOPTS
|
||||||
/* Set the initial time for calculating timeouts */
|
/* Set the initial time for calculating timeouts */
|
||||||
|
|
||||||
state.st_time = clock_systimer();
|
state.st_time = clock_systimer();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user