@@ -1265,6 +1265,59 @@ static void register_mdns_undelegate_host(void)
1265
1265
ESP_ERROR_CHECK ( esp_console_cmd_register (& cmd_undelegate_host ) );
1266
1266
}
1267
1267
1268
+ static struct {
1269
+ struct arg_str * service ;
1270
+ struct arg_str * proto ;
1271
+ struct arg_str * sub ;
1272
+ struct arg_str * instance ;
1273
+ struct arg_str * host ;
1274
+ struct arg_end * end ;
1275
+ } mdns_service_subtype_args ;
1276
+
1277
+ static int cmd_mdns_service_subtype (int argc , char * * argv )
1278
+ {
1279
+ int nerrors = arg_parse (argc , argv , (void * * ) & mdns_service_subtype_args );
1280
+ if (nerrors != 0 ) {
1281
+ arg_print_errors (stderr , mdns_service_subtype_args .end , argv [0 ]);
1282
+ return 1 ;
1283
+ }
1284
+
1285
+ if (!mdns_service_subtype_args .service -> sval [0 ] || !mdns_service_subtype_args .proto -> sval [0 ] || !mdns_service_subtype_args .sub -> sval [0 ]) {
1286
+ printf ("ERROR: Bad arguments!\n" );
1287
+ return 1 ;
1288
+ }
1289
+ const char * instance = NULL ;
1290
+ if (mdns_service_subtype_args .instance -> count && mdns_service_subtype_args .instance -> sval [0 ]) {
1291
+ instance = mdns_service_subtype_args .instance -> sval [0 ];
1292
+ }
1293
+ const char * host = NULL ;
1294
+ if (mdns_service_subtype_args .host -> count && mdns_service_subtype_args .host -> sval [0 ]) {
1295
+ host = mdns_service_subtype_args .host -> sval [0 ];
1296
+ }
1297
+ ESP_ERROR_CHECK ( mdns_service_subtype_add_for_host (instance , mdns_service_subtype_args .service -> sval [0 ], mdns_service_subtype_args .proto -> sval [0 ], host , mdns_service_subtype_args .sub -> sval [0 ]) );
1298
+ return 0 ;
1299
+ }
1300
+
1301
+ static void register_mdns_service_subtype_set (void )
1302
+ {
1303
+ mdns_service_subtype_args .service = arg_str1 (NULL , NULL , "<service>" , "MDNS Service" );
1304
+ mdns_service_subtype_args .proto = arg_str1 (NULL , NULL , "<proto>" , "IP Protocol" );
1305
+ mdns_service_subtype_args .sub = arg_str1 (NULL , NULL , "<sub>" , "Subtype" );
1306
+ mdns_service_subtype_args .instance = arg_str0 ("i" , "instance" , "<instance>" , "Instance name" );
1307
+ mdns_service_subtype_args .host = arg_str0 ("h" , "host" , "<hostname>" , "Service for this (delegated) host" );
1308
+ mdns_service_subtype_args .end = arg_end (5 );
1309
+
1310
+ const esp_console_cmd_t cmd_service_sub = {
1311
+ .command = "mdns_service_subtype" ,
1312
+ .help = "Adds subtype for service" ,
1313
+ .hint = NULL ,
1314
+ .func = & cmd_mdns_service_subtype ,
1315
+ .argtable = & mdns_service_subtype_args
1316
+ };
1317
+
1318
+ ESP_ERROR_CHECK ( esp_console_cmd_register (& cmd_service_sub ) );
1319
+ }
1320
+
1268
1321
void mdns_console_register (void )
1269
1322
{
1270
1323
register_mdns_init ();
@@ -1283,6 +1336,7 @@ void mdns_console_register(void)
1283
1336
register_mdns_lookup_service ();
1284
1337
register_mdns_delegate_host ();
1285
1338
register_mdns_undelegate_host ();
1339
+ register_mdns_service_subtype_set ();
1286
1340
1287
1341
#ifdef CONFIG_LWIP_IPV4
1288
1342
register_mdns_query_a ();
0 commit comments