summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/library/network.PPP.rst7
-rw-r--r--extmod/network_ppp_lwip.c11
-rw-r--r--ports/esp32/network_ppp.c9
3 files changed, 24 insertions, 3 deletions
diff --git a/docs/library/network.PPP.rst b/docs/library/network.PPP.rst
index 85f580ce5..17a8d1c1c 100644
--- a/docs/library/network.PPP.rst
+++ b/docs/library/network.PPP.rst
@@ -70,8 +70,11 @@ Methods
.. method:: PPP.config(config_parameters)
- Sets or gets parameters of the PPP interface. There are currently no parameter that
- can be set or retrieved.
+ Sets or gets parameters of the PPP interface. The only parameter that can be
+ retrieved and set is the underlying stream, using::
+
+ stream = PPP.config("stream")
+ PPP.config(stream=stream)
.. method:: PPP.ipconfig('param')
PPP.ipconfig(param=value, ...)
diff --git a/extmod/network_ppp_lwip.c b/extmod/network_ppp_lwip.c
index 2b77662a2..72d02602c 100644
--- a/extmod/network_ppp_lwip.c
+++ b/extmod/network_ppp_lwip.c
@@ -153,12 +153,17 @@ static mp_obj_t network_ppp_config(size_t n_args, const mp_obj_t *args, mp_map_t
if (n_args != 1 && kwargs->used != 0) {
mp_raise_TypeError(MP_ERROR_TEXT("either pos or kw args are allowed"));
}
- // network_ppp_obj_t *self = MP_OBJ_TO_PTR(args[0]);
+ network_ppp_obj_t *self = MP_OBJ_TO_PTR(args[0]);
if (kwargs->used != 0) {
for (size_t i = 0; i < kwargs->alloc; i++) {
if (mp_map_slot_is_filled(kwargs, i)) {
switch (mp_obj_str_get_qstr(kwargs->table[i].key)) {
+ case MP_QSTR_stream: {
+ mp_get_stream_raise(kwargs->table[i].value, MP_STREAM_OP_READ | MP_STREAM_OP_WRITE);
+ self->stream = kwargs->table[i].value;
+ break;
+ }
default:
break;
}
@@ -174,6 +179,10 @@ static mp_obj_t network_ppp_config(size_t n_args, const mp_obj_t *args, mp_map_t
mp_obj_t val = mp_const_none;
switch (mp_obj_str_get_qstr(args[1])) {
+ case MP_QSTR_stream: {
+ val = self->stream;
+ break;
+ }
default:
mp_raise_ValueError(MP_ERROR_TEXT("unknown config param"));
}
diff --git a/ports/esp32/network_ppp.c b/ports/esp32/network_ppp.c
index f2813f430..4f49efaf0 100644
--- a/ports/esp32/network_ppp.c
+++ b/ports/esp32/network_ppp.c
@@ -323,6 +323,11 @@ static mp_obj_t ppp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs
for (size_t i = 0; i < kwargs->alloc; i++) {
if (mp_map_slot_is_filled(kwargs, i)) {
switch (mp_obj_str_get_qstr(kwargs->table[i].key)) {
+ case MP_QSTR_stream: {
+ mp_get_stream_raise(kwargs->table[i].value, MP_STREAM_OP_READ | MP_STREAM_OP_WRITE);
+ self->stream = kwargs->table[i].value;
+ break;
+ }
default:
break;
}
@@ -338,6 +343,10 @@ static mp_obj_t ppp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs
mp_obj_t val = mp_const_none;
switch (mp_obj_str_get_qstr(args[1])) {
+ case MP_QSTR_stream: {
+ val = self->stream;
+ break;
+ }
case MP_QSTR_ifname: {
if (self->pcb != NULL) {
struct netif *pppif = ppp_netif(self->pcb);