PPP, PPPoS, improved tcpip input path, fixed bug #44565

New input type TCPIP_MSG_INPKT_PPPOS. Removed the netif input pointer usage
which was actually broken by design.

Fixed bug #44565.
This commit is contained in:
Sylvain Rochet
2015-03-19 21:04:21 +01:00
parent 4ed34d2c6f
commit 0e919d25e9
4 changed files with 68 additions and 15 deletions

View File

@@ -143,6 +143,10 @@ err_t tcpip_apimsg(struct api_msg *apimsg);
err_t tcpip_input(struct pbuf *p, struct netif *inp);
#if PPPOS_SUPPORT && !PPP_INPROC_MULTITHREADED
err_t tcpip_pppos_input(struct pbuf *p, struct netif *inp);
#endif /* PPPOS_SUPPORT && !PPP_INPROC_MULTITHREADED */
#if LWIP_NETIF_API
err_t tcpip_netifapi(struct netifapi_msg *netifapimsg);
#if LWIP_TCPIP_CORE_LOCKING
@@ -178,6 +182,9 @@ enum tcpip_msg_type {
TCPIP_MSG_API,
#endif /* LWIP_NETCONN || LWIP_SOCKET */
TCPIP_MSG_INPKT,
#if PPPOS_SUPPORT && !PPP_INPROC_MULTITHREADED
TCPIP_MSG_INPKT_PPPOS,
#endif /* PPPOS_SUPPORT && !PPP_INPROC_MULTITHREADED */
#if LWIP_NETIF_API
TCPIP_MSG_NETIFAPI,
#endif /* LWIP_NETIF_API */

View File

@@ -112,5 +112,14 @@ err_t pppos_input_tcpip(ppp_pcb *ppp, u8_t *s, int l);
/* PPP over Serial: this is the input function to be called for received data. */
void pppos_input(ppp_pcb *ppp, u8_t* data, int len);
/*
* Functions called from lwIP
* DO NOT CALL FROM lwIP USER APPLICATION.
*/
#if !NO_SYS && !PPP_INPROC_MULTITHREADED
err_t pppos_input_sys(struct pbuf *p, struct netif *inp);
#endif /* !NO_SYS && !PPP_INPROC_MULTITHREADED */
#endif /* PPPOS_H */
#endif /* PPP_SUPPORT && PPPOL2TP_SUPPORT */