@@ -1334,6 +1334,85 @@ static void register_mdns_service_subtype_set(void)
1334
1334
ESP_ERROR_CHECK ( esp_console_cmd_register (& cmd_service_sub ) );
1335
1335
}
1336
1336
1337
+ static struct {
1338
+ struct arg_str * service ;
1339
+ struct arg_str * proto ;
1340
+ struct arg_end * end ;
1341
+ } mdns_browse_args ;
1342
+
1343
+ static void mdns_browse_notifier (mdns_result_t * result )
1344
+ {
1345
+ if (result ) {
1346
+ mdns_print_results (result );
1347
+ }
1348
+ }
1349
+
1350
+ static int cmd_mdns_browse (int argc , char * * argv )
1351
+ {
1352
+ int nerrors = arg_parse (argc , argv , (void * * ) & mdns_browse_args );
1353
+ if (nerrors != 0 ) {
1354
+ arg_print_errors (stderr , mdns_browse_args .end , argv [0 ]);
1355
+ return 1 ;
1356
+ }
1357
+
1358
+ if (!mdns_browse_args .service -> sval [0 ] || !mdns_browse_args .proto -> sval [0 ]) {
1359
+ printf ("ERROR: Bad arguments!\n" );
1360
+ return 1 ;
1361
+ }
1362
+ mdns_browse_t * handle = mdns_browse_new (mdns_browse_args .service -> sval [0 ], mdns_browse_args .proto -> sval [0 ], mdns_browse_notifier );
1363
+ return handle ? 0 : 1 ;
1364
+ }
1365
+
1366
+ static void register_mdns_browse (void )
1367
+ {
1368
+ mdns_browse_args .service = arg_str1 (NULL , NULL , "<service>" , "MDNS Service" );
1369
+ mdns_browse_args .proto = arg_str1 (NULL , NULL , "<proto>" , "IP Protocol" );
1370
+ mdns_browse_args .end = arg_end (2 );
1371
+
1372
+ const esp_console_cmd_t cmd_browse = {
1373
+ .command = "mdns_browse" ,
1374
+ .help = "Start browsing" ,
1375
+ .hint = NULL ,
1376
+ .func = & cmd_mdns_browse ,
1377
+ .argtable = & mdns_browse_args
1378
+ };
1379
+
1380
+ ESP_ERROR_CHECK ( esp_console_cmd_register (& cmd_browse ) );
1381
+ }
1382
+
1383
+ static int cmd_mdns_browse_del (int argc , char * * argv )
1384
+ {
1385
+ int nerrors = arg_parse (argc , argv , (void * * ) & mdns_browse_args );
1386
+ if (nerrors != 0 ) {
1387
+ arg_print_errors (stderr , mdns_browse_args .end , argv [0 ]);
1388
+ return 1 ;
1389
+ }
1390
+
1391
+ if (!mdns_browse_args .service -> sval [0 ] || !mdns_browse_args .proto -> sval [0 ]) {
1392
+ printf ("ERROR: Bad arguments!\n" );
1393
+ return 1 ;
1394
+ }
1395
+ esp_err_t err = mdns_browse_delete (mdns_browse_args .service -> sval [0 ], mdns_browse_args .proto -> sval [0 ]);
1396
+ return err == ESP_OK ? 0 : 1 ;
1397
+ }
1398
+
1399
+ static void register_mdns_browse_del (void )
1400
+ {
1401
+ mdns_browse_args .service = arg_str1 (NULL , NULL , "<service>" , "MDNS Service" );
1402
+ mdns_browse_args .proto = arg_str1 (NULL , NULL , "<proto>" , "IP Protocol" );
1403
+ mdns_browse_args .end = arg_end (2 );
1404
+
1405
+ const esp_console_cmd_t cmd_browse_del = {
1406
+ .command = "mdns_browse_del" ,
1407
+ .help = "Stop browsing" ,
1408
+ .hint = NULL ,
1409
+ .func = & cmd_mdns_browse_del ,
1410
+ .argtable = & mdns_browse_args
1411
+ };
1412
+
1413
+ ESP_ERROR_CHECK ( esp_console_cmd_register (& cmd_browse_del ) );
1414
+ }
1415
+
1337
1416
void mdns_console_register (void )
1338
1417
{
1339
1418
register_mdns_init ();
@@ -1354,6 +1433,9 @@ void mdns_console_register(void)
1354
1433
register_mdns_undelegate_host ();
1355
1434
register_mdns_service_subtype_set ();
1356
1435
1436
+ register_mdns_browse ();
1437
+ register_mdns_browse_del ();
1438
+
1357
1439
#ifdef CONFIG_LWIP_IPV4
1358
1440
register_mdns_query_a ();
1359
1441
#endif
0 commit comments