@@ -266,6 +266,42 @@ static mp_obj_t ppp_ifconfig(size_t n_args, const mp_obj_t *args) {
266
266
}
267
267
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (ppp_ifconfig_obj , 1 , 2 , ppp_ifconfig );
268
268
269
+ static mp_obj_t ppp_ipconfig (size_t n_args , const mp_obj_t * args , mp_map_t * kwargs ) {
270
+ if (kwargs -> used == 0 ) {
271
+ ppp_if_obj_t * self = MP_OBJ_TO_PTR (args [0 ]);
272
+ if (self -> pcb == NULL ) {
273
+ mp_raise_ValueError (MP_ERROR_TEXT ("PPP not active" ));
274
+ }
275
+ struct netif * netif = ppp_netif (self -> pcb );
276
+ // Get config value
277
+ if (n_args != 2 ) {
278
+ mp_raise_TypeError (MP_ERROR_TEXT ("must query one param" ));
279
+ }
280
+
281
+ switch (mp_obj_str_get_qstr (args [1 ])) {
282
+ case MP_QSTR_addr4 : {
283
+ mp_obj_t tuple [2 ] = {
284
+ netutils_format_ipv4_addr ((uint8_t * )& netif -> ip_addr , NETUTILS_BIG ),
285
+ netutils_format_ipv4_addr ((uint8_t * )& netif -> netmask , NETUTILS_BIG ),
286
+ };
287
+ return mp_obj_new_tuple (2 , tuple );
288
+ }
289
+ case MP_QSTR_gw4 : {
290
+ return netutils_format_ipv4_addr ((uint8_t * )& netif -> gw , NETUTILS_BIG );
291
+ }
292
+ default : {
293
+ mp_raise_ValueError (MP_ERROR_TEXT ("unexpected key" ));
294
+ break ;
295
+ }
296
+ }
297
+ return mp_const_none ;
298
+ } else {
299
+ mp_raise_TypeError (MP_ERROR_TEXT ("setting properties not supported" ));
300
+ }
301
+ return mp_const_none ;
302
+ }
303
+ static MP_DEFINE_CONST_FUN_OBJ_KW (ppp_ipconfig_obj , 1 , ppp_ipconfig ) ;
304
+
269
305
static mp_obj_t ppp_status (mp_obj_t self_in ) {
270
306
return mp_const_none ;
271
307
}
@@ -328,6 +364,7 @@ static const mp_rom_map_elem_t ppp_if_locals_dict_table[] = {
328
364
{ MP_ROM_QSTR (MP_QSTR_status ), MP_ROM_PTR (& ppp_status_obj ) },
329
365
{ MP_ROM_QSTR (MP_QSTR_config ), MP_ROM_PTR (& ppp_config_obj ) },
330
366
{ MP_ROM_QSTR (MP_QSTR_ifconfig ), MP_ROM_PTR (& ppp_ifconfig_obj ) },
367
+ { MP_ROM_QSTR (MP_QSTR_ipconfig ), MP_ROM_PTR (& ppp_ipconfig_obj ) },
331
368
{ MP_ROM_QSTR (MP_QSTR___del__ ), MP_ROM_PTR (& ppp_delete_obj ) },
332
369
{ MP_ROM_QSTR (MP_QSTR_AUTH_NONE ), MP_ROM_INT (PPPAUTHTYPE_NONE ) },
333
370
{ MP_ROM_QSTR (MP_QSTR_AUTH_PAP ), MP_ROM_INT (PPPAUTHTYPE_PAP ) },
0 commit comments