Skip to content

Commit 446ca8b

Browse files
authored
Allow specifying vendor/product ID in hex format (#34172)
1 parent e5acdc9 commit 446ca8b

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

examples/platform/linux/Options.cpp

+10-11
Original file line numberDiff line numberDiff line change
@@ -352,27 +352,28 @@ bool HandleOption(const char * aProgram, OptionSet * aOptions, int aIdentifier,
352352
break;
353353

354354
case kDeviceOption_Version:
355-
LinuxDeviceOptions::GetInstance().payload.version = static_cast<uint8_t>(atoi(aValue));
355+
LinuxDeviceOptions::GetInstance().payload.version = static_cast<uint8_t>(strtoul(aValue, nullptr, 0));
356356
break;
357357

358358
case kDeviceOption_VendorID:
359-
LinuxDeviceOptions::GetInstance().payload.vendorID = static_cast<uint16_t>(atoi(aValue));
359+
LinuxDeviceOptions::GetInstance().payload.vendorID = static_cast<uint16_t>(strtoul(aValue, nullptr, 0));
360360
break;
361361

362362
case kDeviceOption_ProductID:
363-
LinuxDeviceOptions::GetInstance().payload.productID = static_cast<uint16_t>(atoi(aValue));
363+
LinuxDeviceOptions::GetInstance().payload.productID = static_cast<uint16_t>(strtoul(aValue, nullptr, 0));
364364
break;
365365

366366
case kDeviceOption_CustomFlow:
367-
LinuxDeviceOptions::GetInstance().payload.commissioningFlow = static_cast<CommissioningFlow>(atoi(aValue));
367+
LinuxDeviceOptions::GetInstance().payload.commissioningFlow = static_cast<CommissioningFlow>(strtoul(aValue, nullptr, 0));
368368
break;
369369

370370
case kDeviceOption_Capabilities:
371-
LinuxDeviceOptions::GetInstance().payload.rendezvousInformation.Emplace().SetRaw(static_cast<uint8_t>(atoi(aValue)));
371+
LinuxDeviceOptions::GetInstance().payload.rendezvousInformation.Emplace().SetRaw(
372+
static_cast<uint8_t>(strtoul(aValue, nullptr, 0)));
372373
break;
373374

374375
case kDeviceOption_Discriminator: {
375-
uint16_t value = static_cast<uint16_t>(atoi(aValue));
376+
uint16_t value = static_cast<uint16_t>(strtoul(aValue, nullptr, 0));
376377
if (value >= 4096)
377378
{
378379
PrintArgError("%s: invalid value specified for discriminator: %s\n", aProgram, aValue);
@@ -386,7 +387,7 @@ bool HandleOption(const char * aProgram, OptionSet * aOptions, int aIdentifier,
386387
}
387388

388389
case kDeviceOption_Passcode:
389-
LinuxDeviceOptions::GetInstance().payload.setUpPINCode = static_cast<uint32_t>(atoi(aValue));
390+
LinuxDeviceOptions::GetInstance().payload.setUpPINCode = static_cast<uint32_t>(strtoul(aValue, nullptr, 0));
390391
break;
391392

392393
case kDeviceOption_Spake2pSaltBase64: {
@@ -476,11 +477,9 @@ bool HandleOption(const char * aProgram, OptionSet * aOptions, int aIdentifier,
476477
case kDeviceOption_SecuredCommissionerPort:
477478
LinuxDeviceOptions::GetInstance().securedCommissionerPort = static_cast<uint16_t>(atoi(aValue));
478479
break;
479-
case kCommissionerOption_FabricID: {
480-
char * eptr;
481-
LinuxDeviceOptions::GetInstance().commissionerFabricId = (chip::FabricId) strtoull(aValue, &eptr, 0);
480+
case kCommissionerOption_FabricID:
481+
LinuxDeviceOptions::GetInstance().commissionerFabricId = static_cast<chip::FabricId>(strtoull(aValue, nullptr, 0));
482482
break;
483-
}
484483
#endif
485484

486485
case kDeviceOption_Command:

0 commit comments

Comments
 (0)