mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-12-26 12:13:47 +00:00
tcpip_thread: TCPIP_MSG_INPKT: free input pbufs if the input function returns an error
This simply wasn't the case until 6LoWPAN. However, since tcpip_input is like this, we should stay with that pattern. Adapted documentation in netif.h Signed-off-by: goldsimon <goldsimon@gmx.de>
This commit is contained in:
parent
3a8af612b3
commit
d9770d2c5f
@ -171,7 +171,9 @@ tcpip_thread_handle_msg(struct tcpip_msg *msg)
|
|||||||
#if !LWIP_TCPIP_CORE_LOCKING_INPUT
|
#if !LWIP_TCPIP_CORE_LOCKING_INPUT
|
||||||
case TCPIP_MSG_INPKT:
|
case TCPIP_MSG_INPKT:
|
||||||
LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: PACKET %p\n", (void *)msg));
|
LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: PACKET %p\n", (void *)msg));
|
||||||
msg->msg.inp.input_fn(msg->msg.inp.p, msg->msg.inp.netif);
|
if (msg->msg.inp.input_fn(msg->msg.inp.p, msg->msg.inp.netif) != ERR_OK) {
|
||||||
|
pbuf_free(msg->msg.inp.p);
|
||||||
|
}
|
||||||
memp_free(MEMP_TCPIP_MSG_INPKT, msg);
|
memp_free(MEMP_TCPIP_MSG_INPKT, msg);
|
||||||
break;
|
break;
|
||||||
#endif /* !LWIP_TCPIP_CORE_LOCKING_INPUT */
|
#endif /* !LWIP_TCPIP_CORE_LOCKING_INPUT */
|
||||||
|
@ -171,6 +171,9 @@ typedef err_t (*netif_init_fn)(struct netif *netif);
|
|||||||
*
|
*
|
||||||
* @param p The received packet, copied into a pbuf
|
* @param p The received packet, copied into a pbuf
|
||||||
* @param inp The netif which received the packet
|
* @param inp The netif which received the packet
|
||||||
|
* @return ERR_OK if the packet was handled
|
||||||
|
* != ERR_OK is the packet was NOT handled, in this case, the caller has
|
||||||
|
* to free the pbuf
|
||||||
*/
|
*/
|
||||||
typedef err_t (*netif_input_fn)(struct pbuf *p, struct netif *inp);
|
typedef err_t (*netif_input_fn)(struct pbuf *p, struct netif *inp);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user