Raw sockets: Various fixes for closing, free connections, TX from Daniel Lazo Sitzer

This commit is contained in:
Gregory Nutt 2014-06-18 09:47:08 -06:00
parent 04e564c9c3
commit 28c4cf6d5a
2 changed files with 18 additions and 5 deletions

View File

@ -164,14 +164,27 @@ int psock_socket(int domain, int type, int protocol, FAR struct socket *psock)
#ifdef CONFIG_NET_PKT
case SOCK_RAW:
{
/* Allocate the packet socket connection structure and save
* in the new socket instance.
*/
struct uip_pkt_conn *conn = uip_pktalloc();
if (conn)
if (!conn)
{
/* Failed to reserve a connection structure */
goto errout;
}
/* Set the reference count on the connection structure. This
* reference count will be increment only if the socket is
* dup'ed
*/
DEBUGASSERT(conn->crefs == 0);
psock->s_conn = conn;
conn->crefs = 1;
}
}
break;
#endif

View File

@ -85,7 +85,7 @@ static int uip_pollpktconnections(struct uip_driver_s *dev,
/* Call back into the driver */
callback(dev);
bstop = callback(dev);
}
return bstop;