mirror of
https://github.com/micropython/micropython.git
synced 2026-01-04 19:20:22 +01:00
esp32/network_ppp: Restructure to match extmod/network_ppp_lwip.
The ESP32 PPP implementation predates the generic implementation in extmod. The new extmod implementation has a few advantages such as a better deinitialisation procedure (the ESP32 implemementation would not clean up properly and cause crashes if recreated) and using the UART IRQ functionality instead of running a task to read data from the UART. This change restructures the ESP implementation to be much closer to the new extmod version, while also bringing a few tiny improvements from the ESP32 version to the extmod version. The diff between extmod/network_ppp_lwip.c and ports/esp32/network_ppp.c is now a small set of easy to review ESP32 port-specific changes. Signed-off-by: Daniël van de Giessen <daniel@dvdgiessen.nl>
This commit is contained in:
committed by
Damien George
parent
2406582479
commit
3b1e22c669
@@ -24,6 +24,10 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
// This file is intended to closely match ports/esp32/network_ppp.c. Changes can
|
||||
// and should probably be applied to both files. Compare them directly by using:
|
||||
// git diff --no-index extmod/network_ppp_lwip.c ports/esp32/network_ppp.c
|
||||
|
||||
#include "py/runtime.h"
|
||||
#include "py/mphal.h"
|
||||
#include "py/stream.h"
|
||||
@@ -80,7 +84,6 @@ static void network_ppp_status_cb(ppp_pcb *pcb, int err_code, void *ctx) {
|
||||
break;
|
||||
case PPPERR_USER:
|
||||
if (self->state >= STATE_ERROR) {
|
||||
network_ppp_stream_uart_irq_disable(self);
|
||||
// Indicate that we are no longer connected and thus
|
||||
// only need to free the PPP PCB, not close it.
|
||||
self->state = STATE_ACTIVE;
|
||||
@@ -121,6 +124,7 @@ static mp_obj_t network_ppp___del__(mp_obj_t self_in) {
|
||||
self->state = STATE_INACTIVE;
|
||||
ppp_close(self->pcb, 1);
|
||||
}
|
||||
network_ppp_stream_uart_irq_disable(self);
|
||||
// Free PPP PCB and reset state.
|
||||
self->state = STATE_INACTIVE;
|
||||
ppp_free(self->pcb);
|
||||
@@ -295,7 +299,8 @@ static mp_obj_t network_ppp_connect(size_t n_args, const mp_obj_t *args, mp_map_
|
||||
ppp_set_auth(self->pcb, parsed_args[ARG_security].u_int, user_str, key_str);
|
||||
}
|
||||
|
||||
netif_set_default(self->pcb->netif);
|
||||
ppp_set_default(self->pcb);
|
||||
|
||||
ppp_set_usepeerdns(self->pcb, true);
|
||||
|
||||
if (ppp_connect(self->pcb, 0) != ERR_OK) {
|
||||
|
||||
Reference in New Issue
Block a user