Raw sockets: Various fixes for closing, free connections, TX from Daniel Lazo Sitzer
This commit is contained in:
parent
04e564c9c3
commit
28c4cf6d5a
21
net/socket.c
21
net/socket.c
|
@ -164,13 +164,26 @@ int psock_socket(int domain, int type, int protocol, FAR struct socket *psock)
|
||||||
#ifdef CONFIG_NET_PKT
|
#ifdef CONFIG_NET_PKT
|
||||||
case SOCK_RAW:
|
case SOCK_RAW:
|
||||||
{
|
{
|
||||||
|
/* Allocate the packet socket connection structure and save
|
||||||
|
* in the new socket instance.
|
||||||
|
*/
|
||||||
|
|
||||||
struct uip_pkt_conn *conn = uip_pktalloc();
|
struct uip_pkt_conn *conn = uip_pktalloc();
|
||||||
if (conn)
|
if (!conn)
|
||||||
{
|
{
|
||||||
DEBUGASSERT(conn->crefs == 0);
|
/* Failed to reserve a connection structure */
|
||||||
psock->s_conn = conn;
|
|
||||||
conn->crefs = 1;
|
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;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -85,7 +85,7 @@ static int uip_pollpktconnections(struct uip_driver_s *dev,
|
||||||
|
|
||||||
/* Call back into the driver */
|
/* Call back into the driver */
|
||||||
|
|
||||||
callback(dev);
|
bstop = callback(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
return bstop;
|
return bstop;
|
||||||
|
|
Loading…
Reference in New Issue