mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-08-25 07:33:11 +00:00
PPP, merged ppp_link_set_callbacks() into ppp_new()
This commit is contained in:
parent
46204a9f86
commit
c15b357889
@ -387,10 +387,8 @@ int ppp_init(void);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Create a new PPP control block */
|
/* Create a new PPP control block */
|
||||||
ppp_pcb *ppp_new(struct netif *pppif, ppp_link_status_cb_fn link_status_cb, void *ctx_cb);
|
ppp_pcb *ppp_new(struct netif *pppif, const struct link_callbacks *callbacks, void *link_ctx_cb,
|
||||||
|
ppp_link_status_cb_fn link_status_cb, void *ctx_cb);
|
||||||
/* Set link callback functions */
|
|
||||||
void ppp_link_set_callbacks(ppp_pcb *pcb, const struct link_callbacks *callbacks, void *ctx);
|
|
||||||
|
|
||||||
/* Set a PPP PCB to its initial state */
|
/* Set a PPP PCB to its initial state */
|
||||||
void ppp_clear(ppp_pcb *pcb);
|
void ppp_clear(ppp_pcb *pcb);
|
||||||
|
@ -567,7 +567,7 @@ int ppp_init(void) {
|
|||||||
* Return a new PPP connection control block pointer
|
* Return a new PPP connection control block pointer
|
||||||
* on success or a null pointer on failure.
|
* on success or a null pointer on failure.
|
||||||
*/
|
*/
|
||||||
ppp_pcb *ppp_new(struct netif *pppif, ppp_link_status_cb_fn link_status_cb, void *ctx_cb) {
|
ppp_pcb *ppp_new(struct netif *pppif, const struct link_callbacks *callbacks, void *link_ctx_cb, ppp_link_status_cb_fn link_status_cb, void *ctx_cb) {
|
||||||
ppp_pcb *pcb;
|
ppp_pcb *pcb;
|
||||||
|
|
||||||
/* PPP is single-threaded: without a callback,
|
/* PPP is single-threaded: without a callback,
|
||||||
@ -637,17 +637,14 @@ ppp_pcb *ppp_new(struct netif *pppif, ppp_link_status_cb_fn link_status_cb, void
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pcb->link_cb = callbacks;
|
||||||
|
pcb->link_ctx_cb = link_ctx_cb;
|
||||||
pcb->link_status_cb = link_status_cb;
|
pcb->link_status_cb = link_status_cb;
|
||||||
pcb->ctx_cb = ctx_cb;
|
pcb->ctx_cb = ctx_cb;
|
||||||
new_phase(pcb, PPP_PHASE_DEAD);
|
new_phase(pcb, PPP_PHASE_DEAD);
|
||||||
return pcb;
|
return pcb;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ppp_link_set_callbacks(ppp_pcb *pcb, const struct link_callbacks *callbacks, void *ctx) {
|
|
||||||
pcb->link_cb = callbacks;
|
|
||||||
pcb->link_ctx_cb = ctx;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set a PPP PCB to its initial state */
|
/* Set a PPP PCB to its initial state */
|
||||||
void ppp_clear(ppp_pcb *pcb) {
|
void ppp_clear(ppp_pcb *pcb) {
|
||||||
const struct protent *protp;
|
const struct protent *protp;
|
||||||
|
@ -179,12 +179,11 @@ ppp_pcb *pppoe_create(struct netif *pppif,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ppp = ppp_new(pppif, link_status_cb, ctx_cb);
|
ppp = ppp_new(pppif, &pppoe_callbacks, sc, link_status_cb, ctx_cb);
|
||||||
if (ppp == NULL) {
|
if (ppp == NULL) {
|
||||||
memp_free(MEMP_PPPOE_IF, sc);
|
memp_free(MEMP_PPPOE_IF, sc);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
ppp_link_set_callbacks(ppp, &pppoe_callbacks, sc);
|
|
||||||
|
|
||||||
memset(sc, 0, sizeof(struct pppoe_softc));
|
memset(sc, 0, sizeof(struct pppoe_softc));
|
||||||
/* changed to real address later */
|
/* changed to real address later */
|
||||||
|
@ -129,11 +129,10 @@ ppp_pcb *pppol2tp_create(struct netif *pppif,
|
|||||||
goto memp_malloc_l2tp_failed;
|
goto memp_malloc_l2tp_failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
ppp = ppp_new(pppif, link_status_cb, ctx_cb);
|
ppp = ppp_new(pppif, &pppol2tp_callbacks, l2tp, link_status_cb, ctx_cb);
|
||||||
if (ppp == NULL) {
|
if (ppp == NULL) {
|
||||||
goto ppp_new_failed;
|
goto ppp_new_failed;
|
||||||
}
|
}
|
||||||
ppp_link_set_callbacks(ppp, &pppol2tp_callbacks, l2tp);
|
|
||||||
|
|
||||||
#if LWIP_IPV6
|
#if LWIP_IPV6
|
||||||
if (IP_IS_V6_VAL(*ipaddr)) {
|
if (IP_IS_V6_VAL(*ipaddr)) {
|
||||||
|
@ -178,12 +178,11 @@ ppp_pcb *pppos_create(struct netif *pppif, pppos_output_cb_fn output_cb,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ppp = ppp_new(pppif, link_status_cb, ctx_cb);
|
ppp = ppp_new(pppif, &pppos_callbacks, pppos, link_status_cb, ctx_cb);
|
||||||
if (ppp == NULL) {
|
if (ppp == NULL) {
|
||||||
memp_free(MEMP_PPPOS_PCB, pppos);
|
memp_free(MEMP_PPPOS_PCB, pppos);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
ppp_link_set_callbacks(ppp, &pppos_callbacks, pppos);
|
|
||||||
|
|
||||||
pppos->ppp = ppp;
|
pppos->ppp = ppp;
|
||||||
pppos->output_cb = output_cb;
|
pppos->output_cb = output_cb;
|
||||||
|
Loading…
Reference in New Issue
Block a user