[cli] return error if the command's argument is not supported (#2620)

This commit is contained in:
Shu Chen
2018-03-20 15:54:38 +00:00
committed by Jonathan Hui
parent f27b64dc59
commit 449d3e7f11
4 changed files with 123 additions and 89 deletions
+87 -53
View File
@@ -489,7 +489,7 @@ void Interpreter::ProcessChild(int argc, char *argv[])
long value;
bool isTable;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
isTable = (strcmp(argv[0], "table") == 0);
@@ -892,7 +892,7 @@ void Interpreter::ProcessEui64(int argc, char *argv[])
otError error = OT_ERROR_NONE;
otExtAddress extAddress;
VerifyOrExit(argc == 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc == 0, error = OT_ERROR_INVALID_ARGS);
otLinkGetFactoryAssignedIeeeEui64(mInstance, &extAddress);
OutputBytes(extAddress.m8, OT_EXT_ADDRESS_SIZE);
@@ -941,15 +941,9 @@ void Interpreter::ProcessLogFilename(int argc, char *argv[])
{
otError error = OT_ERROR_NONE;
if (argc == 1)
{
error = otPlatDebugUart_logfile(argv[0]);
SuccessOrExit(error);
}
else
{
error = OT_ERROR_PARSE;
}
VerifyOrExit(argc == 1, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otPlatDebugUart_logfile(argv[0]));
exit:
AppendResult(error);
@@ -1009,6 +1003,10 @@ void Interpreter::ProcessIfconfig(int argc, char *argv[])
{
SuccessOrExit(error = otIp6SetEnabled(mInstance, false));
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
AppendResult(error);
@@ -1019,7 +1017,7 @@ otError Interpreter::ProcessIpAddrAdd(int argc, char *argv[])
otError error;
otNetifAddress aAddress;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otIp6AddressFromString(argv[0], &aAddress.mAddress));
aAddress.mPrefixLength = 64;
@@ -1036,7 +1034,7 @@ otError Interpreter::ProcessIpAddrDel(int argc, char *argv[])
otError error;
struct otIp6Address address;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otIp6AddressFromString(argv[0], &address));
error = otIp6RemoveUnicastAddress(mInstance, &address);
@@ -1072,6 +1070,10 @@ void Interpreter::ProcessIpAddr(int argc, char *argv[])
{
SuccessOrExit(error = ProcessIpAddrDel(argc - 1, argv + 1));
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
exit:
@@ -1084,7 +1086,7 @@ otError Interpreter::ProcessIpMulticastAddrAdd(int argc, char *argv[])
otError error;
struct otIp6Address address;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otIp6AddressFromString(argv[0], &address));
error = otIp6SubscribeMulticastAddress(mInstance, &address);
@@ -1098,7 +1100,7 @@ otError Interpreter::ProcessIpMulticastAddrDel(int argc, char *argv[])
otError error;
struct otIp6Address address;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otIp6AddressFromString(argv[0], &address));
error = otIp6UnsubscribeMulticastAddress(mInstance, &address);
@@ -1134,7 +1136,7 @@ otError Interpreter::ProcessMulticastPromiscuous(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
@@ -1171,6 +1173,10 @@ void Interpreter::ProcessIpMulticastAddr(int argc, char *argv[])
{
SuccessOrExit(error = ProcessMulticastPromiscuous(argc - 1, argv + 1));
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
exit:
@@ -1183,7 +1189,7 @@ void Interpreter::ProcessKeySequence(int argc, char *argv[])
otError error = OT_ERROR_NONE;
long value;
VerifyOrExit(argc == 1 || argc == 2, error = OT_ERROR_PARSE);
VerifyOrExit(argc == 1 || argc == 2, error = OT_ERROR_INVALID_ARGS);
if (strcmp(argv[0], "counter") == 0)
{
@@ -1209,6 +1215,10 @@ void Interpreter::ProcessKeySequence(int argc, char *argv[])
otThreadSetKeySwitchGuardTime(mInstance, static_cast<uint32_t>(value));
}
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
AppendResult(error);
@@ -1404,7 +1414,7 @@ void Interpreter::ProcessNeighbor(int argc, char *argv[])
bool isTable;
otNeighborInfoIterator iterator = OT_NEIGHBOR_INFO_ITERATOR_INIT;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
isTable = (strcmp(argv[0], "table") == 0);
@@ -1448,7 +1458,7 @@ void Interpreter::ProcessNeighbor(int argc, char *argv[])
}
else
{
error = OT_ERROR_PARSE;
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
@@ -1478,14 +1488,14 @@ void Interpreter::ProcessService(int argc, char *argv[])
{
otError error = OT_ERROR_NONE;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
if (strcmp(argv[0], "add") == 0)
{
otServiceConfig cfg;
long enterpriseNumber = 0;
VerifyOrExit(argc > 3, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 3, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = ParseLong(argv[1], enterpriseNumber));
@@ -1502,7 +1512,7 @@ void Interpreter::ProcessService(int argc, char *argv[])
{
long enterpriseNumber = 0;
VerifyOrExit(argc > 2, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 2, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = ParseLong(argv[1], enterpriseNumber));
@@ -1510,6 +1520,10 @@ void Interpreter::ProcessService(int argc, char *argv[])
reinterpret_cast<uint8_t *>(argv[2]),
static_cast<uint8_t>(strlen(argv[2]))));
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
AppendResult(error);
@@ -1683,7 +1697,7 @@ void Interpreter::ProcessPing(int argc, char *argv[])
uint8_t index = 1;
long value;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
if (strcmp(argv[0], "stop") == 0)
{
@@ -1729,7 +1743,7 @@ void Interpreter::ProcessPing(int argc, char *argv[])
break;
default:
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
index++;
@@ -1824,6 +1838,10 @@ void Interpreter::ProcessPromiscuous(int argc, char *argv[])
otLinkSetPcapCallback(mInstance, NULL, NULL);
SuccessOrExit(error = otLinkSetPromiscuous(mInstance, false));
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
exit:
@@ -2111,7 +2129,7 @@ void Interpreter::ProcessPrefix(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
@@ -2125,7 +2143,7 @@ void Interpreter::ProcessReleaseRouterId(int argc, char *argv[])
otError error = OT_ERROR_NONE;
long value;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = ParseLong(argv[0], value));
SuccessOrExit(error = otThreadReleaseRouterId(mInstance, static_cast<uint8_t>(value)));
@@ -2162,7 +2180,7 @@ otError Interpreter::ProcessRouteAdd(int argc, char *argv[])
char *prefixLengthStr;
char *endptr;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
if ((prefixLengthStr = strchr(argv[argcur], '/')) == NULL)
{
@@ -2222,7 +2240,7 @@ otError Interpreter::ProcessRouteRemove(int argc, char *argv[])
char *prefixLengthStr;
char *endptr;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
if ((prefixLengthStr = strchr(argv[argcur], '/')) == NULL)
{
@@ -2300,7 +2318,7 @@ void Interpreter::ProcessRoute(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
@@ -2316,7 +2334,7 @@ void Interpreter::ProcessRouter(int argc, char *argv[])
long value;
bool isTable;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
isTable = (strcmp(argv[0], "table") == 0);
@@ -2443,7 +2461,7 @@ void Interpreter::ProcessRouterRole(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
@@ -2622,7 +2640,7 @@ void Interpreter::ProcessState(int argc, char *argv[])
#endif // OPENTHREAD_FTD
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
@@ -2632,9 +2650,9 @@ exit:
void Interpreter::ProcessThread(int argc, char *argv[])
{
otError error = OT_ERROR_PARSE;
otError error = OT_ERROR_NONE;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
if (strcmp(argv[0], "start") == 0)
{
@@ -2644,6 +2662,10 @@ void Interpreter::ProcessThread(int argc, char *argv[])
{
SuccessOrExit(error = otThreadSetEnabled(mInstance, false));
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
OT_UNUSED_VARIABLE(argc);
@@ -2698,7 +2720,7 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
{
otError error = OT_ERROR_NONE;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
if (strcmp(argv[0], "start") == 0)
{
@@ -2713,7 +2735,7 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
otExtAddress addr;
const otExtAddress *addrPtr;
VerifyOrExit(argc > 2, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 2, error = OT_ERROR_INVALID_ARGS);
if (strcmp(argv[2], "*") == 0)
{
@@ -2727,7 +2749,7 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
if (strcmp(argv[1], "add") == 0)
{
VerifyOrExit(argc > 3, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 3, error = OT_ERROR_INVALID_ARGS);
// Timeout parameter is optional - if not specified, use default value.
unsigned long timeout = kDefaultJoinerTimeout;
@@ -2754,7 +2776,7 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
long period;
otIp6Address address;
VerifyOrExit(argc > 4, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 4, error = OT_ERROR_INVALID_ARGS);
// mask
SuccessOrExit(error = ParseLong(argv[1], mask));
@@ -2780,7 +2802,7 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
long scanDuration;
otIp6Address address;
VerifyOrExit(argc > 5, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 5, error = OT_ERROR_INVALID_ARGS);
// mask
SuccessOrExit(error = ParseLong(argv[1], mask));
@@ -2808,7 +2830,7 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
long mask;
otIp6Address address;
VerifyOrExit(argc > 3, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 3, error = OT_ERROR_INVALID_ARGS);
// panid
SuccessOrExit(error = ParseLong(argv[1], panid));
@@ -2851,7 +2873,7 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
}
else if (strcmp(argv[index], "binary") == 0)
{
VerifyOrExit(++index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(++index < argc, error = OT_ERROR_INVALID_ARGS);
value = static_cast<long>(strlen(argv[index]) + 1) / 2;
VerifyOrExit(static_cast<size_t>(value) <= (sizeof(tlvs) - static_cast<size_t>(length)),
error = OT_ERROR_NO_BUFS);
@@ -2861,7 +2883,7 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
@@ -2874,7 +2896,7 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
long value;
int length = 0;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
memset(&dataset, 0, sizeof(dataset));
@@ -2884,21 +2906,21 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
if (strcmp(argv[index], "locator") == 0)
{
VerifyOrExit(++index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(++index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsLocatorSet = true;
SuccessOrExit(error = Interpreter::ParseLong(argv[index], value));
dataset.mLocator = static_cast<uint16_t>(value);
}
else if (strcmp(argv[index], "sessionid") == 0)
{
VerifyOrExit(++index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(++index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsSessionIdSet = true;
SuccessOrExit(error = Interpreter::ParseLong(argv[index], value));
dataset.mSessionId = static_cast<uint16_t>(value);
}
else if (strcmp(argv[index], "steeringdata") == 0)
{
VerifyOrExit(++index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(++index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsSteeringDataSet = true;
length = static_cast<int>((strlen(argv[index]) + 1) / 2);
VerifyOrExit(static_cast<size_t>(length) <= OT_STEERING_DATA_MAX_LENGTH, error = OT_ERROR_NO_BUFS);
@@ -2910,14 +2932,14 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
}
else if (strcmp(argv[index], "joinerudpport") == 0)
{
VerifyOrExit(++index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(++index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsJoinerUdpPortSet = true;
SuccessOrExit(error = Interpreter::ParseLong(argv[index], value));
dataset.mJoinerUdpPort = static_cast<uint16_t>(value);
}
else if (strcmp(argv[index], "binary") == 0)
{
VerifyOrExit(++index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(++index < argc, error = OT_ERROR_INVALID_ARGS);
length = static_cast<int>((strlen(argv[index]) + 1) / 2);
VerifyOrExit(static_cast<size_t>(length) <= sizeof(tlvs), error = OT_ERROR_NO_BUFS);
VerifyOrExit(Interpreter::Hex2Bin(argv[index], tlvs, static_cast<uint16_t>(length)) >= 0,
@@ -2925,7 +2947,7 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
@@ -2935,6 +2957,10 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
{
mServer->OutputFormat("%d\r\n", otCommissionerGetSessionId(mInstance));
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
AppendResult(error);
@@ -2978,12 +3004,12 @@ void Interpreter::ProcessJoiner(int argc, char *argv[])
{
otError error = OT_ERROR_NONE;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
if (strcmp(argv[0], "start") == 0)
{
const char *provisioningUrl;
VerifyOrExit(argc > 1, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 1, error = OT_ERROR_INVALID_ARGS);
provisioningUrl = (argc > 2) ? argv[2] : NULL;
otJoinerStart(mInstance, argv[1], provisioningUrl, PACKAGE_NAME, OPENTHREAD_CONFIG_PLATFORM_INFO,
PACKAGE_VERSION, NULL, &Interpreter::s_HandleJoinerCallback, this);
@@ -2992,6 +3018,10 @@ void Interpreter::ProcessJoiner(int argc, char *argv[])
{
otJoinerStop(mInstance);
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
AppendResult(error);
@@ -3002,7 +3032,7 @@ void Interpreter::ProcessJoinerId(int argc, char *argv[])
otError error = OT_ERROR_NONE;
otExtAddress joinerId;
VerifyOrExit(argc == 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc == 0, error = OT_ERROR_INVALID_ARGS);
otJoinerGetId(mInstance, &joinerId);
OutputBytes(joinerId.m8, sizeof(joinerId));
@@ -3496,7 +3526,7 @@ void Interpreter::ProcessNetworkDiagnostic(int argc, char *argv[])
uint8_t argvIndex = 0;
// Include operation, address and type tlv list.
VerifyOrExit(argc > 2, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 2, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otIp6AddressFromString(argv[1], &address));
@@ -3519,6 +3549,10 @@ void Interpreter::ProcessNetworkDiagnostic(int argc, char *argv[])
{
otThreadSendDiagnosticReset(mInstance, &address, tlvTypes, count);
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
AppendResult(error);
+1 -1
View File
@@ -243,7 +243,7 @@ otError Coap::ProcessRequest(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
// Destination IPv6 address
+32 -32
View File
@@ -259,7 +259,7 @@ otError Dataset::ProcessActiveTimestamp(otInstance *aInstance, int argc, char *a
otError error = OT_ERROR_NONE;
long value;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = Interpreter::ParseLong(argv[0], value));
sDataset.mActiveTimestamp = static_cast<uint64_t>(value);
sDataset.mIsActiveTimestampSet = true;
@@ -275,7 +275,7 @@ otError Dataset::ProcessChannel(otInstance *aInstance, int argc, char *argv[])
otError error = OT_ERROR_NONE;
long value;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = Interpreter::ParseLong(argv[0], value));
sDataset.mChannel = static_cast<uint16_t>(value);
sDataset.mIsChannelSet = true;
@@ -291,7 +291,7 @@ otError Dataset::ProcessChannelMask(otInstance *aInstance, int argc, char *argv[
otError error = OT_ERROR_NONE;
long value;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = Interpreter::ParseLong(argv[0], value));
sDataset.mChannelMaskPage0 = static_cast<uint32_t>(value);
sDataset.mIsChannelMaskPage0Set = true;
@@ -326,7 +326,7 @@ otError Dataset::ProcessCommit(otInstance *aInstance, int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
OT_UNUSED_VARIABLE(aInstance);
@@ -340,7 +340,7 @@ otError Dataset::ProcessDelay(otInstance *aInstance, int argc, char *argv[])
otError error = OT_ERROR_NONE;
long value;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = Interpreter::ParseLong(argv[0], value));
sDataset.mDelay = static_cast<uint32_t>(value);
sDataset.mIsDelaySet = true;
@@ -356,7 +356,7 @@ otError Dataset::ProcessExtPanId(otInstance *aInstance, int argc, char *argv[])
otError error = OT_ERROR_NONE;
uint8_t extPanId[OT_EXT_PAN_ID_SIZE];
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
VerifyOrExit(Interpreter::Hex2Bin(argv[0], extPanId, sizeof(extPanId)) >= 0, error = OT_ERROR_PARSE);
memcpy(sDataset.mExtendedPanId.m8, extPanId, sizeof(sDataset.mExtendedPanId));
@@ -373,7 +373,7 @@ otError Dataset::ProcessMasterKey(otInstance *aInstance, int argc, char *argv[])
otError error = OT_ERROR_NONE;
uint8_t key[OT_MASTER_KEY_SIZE];
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
VerifyOrExit((Interpreter::Hex2Bin(argv[0], key, sizeof(key))) == OT_MASTER_KEY_SIZE, error = OT_ERROR_PARSE);
memcpy(sDataset.mMasterKey.m8, key, sizeof(sDataset.mMasterKey));
@@ -390,7 +390,7 @@ otError Dataset::ProcessMeshLocalPrefix(otInstance *aInstance, int argc, char *a
otError error = OT_ERROR_NONE;
otIp6Address prefix;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otIp6AddressFromString(argv[0], &prefix));
memcpy(sDataset.mMeshLocalPrefix.m8, prefix.mFields.m8, sizeof(sDataset.mMeshLocalPrefix.m8));
@@ -407,7 +407,7 @@ otError Dataset::ProcessNetworkName(otInstance *aInstance, int argc, char *argv[
otError error = OT_ERROR_NONE;
size_t length;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
VerifyOrExit((length = strlen(argv[0])) <= OT_NETWORK_NAME_MAX_SIZE, error = OT_ERROR_PARSE);
memset(&sDataset.mNetworkName, 0, sizeof(sDataset.mNetworkName));
@@ -425,7 +425,7 @@ otError Dataset::ProcessPanId(otInstance *aInstance, int argc, char *argv[])
otError error = OT_ERROR_NONE;
long value;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = Interpreter::ParseLong(argv[0], value));
sDataset.mPanId = static_cast<otPanId>(value);
sDataset.mIsPanIdSet = true;
@@ -441,7 +441,7 @@ otError Dataset::ProcessPendingTimestamp(otInstance *aInstance, int argc, char *
otError error = OT_ERROR_NONE;
long value;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = Interpreter::ParseLong(argv[0], value));
sDataset.mPendingTimestamp = static_cast<uint64_t>(value);
sDataset.mIsPendingTimestampSet = true;
@@ -461,7 +461,7 @@ otError Dataset::ProcessMgmtSetCommand(otInstance *aInstance, int argc, char *ar
int length = 0;
otIp6Address prefix;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
memset(&dataset, 0, sizeof(dataset));
@@ -469,21 +469,21 @@ otError Dataset::ProcessMgmtSetCommand(otInstance *aInstance, int argc, char *ar
{
if (strcmp(argv[index], "activetimestamp") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsActiveTimestampSet = true;
SuccessOrExit(error = Interpreter::ParseLong(argv[++index], value));
dataset.mActiveTimestamp = static_cast<uint64_t>(value);
}
else if (strcmp(argv[index], "pendingtimestamp") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsPendingTimestampSet = true;
SuccessOrExit(error = Interpreter::ParseLong(argv[++index], value));
dataset.mPendingTimestamp = static_cast<uint64_t>(value);
}
else if (strcmp(argv[index], "masterkey") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsMasterKeySet = true;
VerifyOrExit((length = Interpreter::Hex2Bin(argv[++index], dataset.mMasterKey.m8,
sizeof(dataset.mMasterKey.m8))) == OT_MASTER_KEY_SIZE,
@@ -492,7 +492,7 @@ otError Dataset::ProcessMgmtSetCommand(otInstance *aInstance, int argc, char *ar
}
else if (strcmp(argv[index], "networkname") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsNetworkNameSet = true;
VerifyOrExit((length = static_cast<int>(strlen(argv[++index]))) <= OT_NETWORK_NAME_MAX_SIZE,
error = OT_ERROR_PARSE);
@@ -502,7 +502,7 @@ otError Dataset::ProcessMgmtSetCommand(otInstance *aInstance, int argc, char *ar
}
else if (strcmp(argv[index], "extpanid") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsExtendedPanIdSet = true;
VerifyOrExit(
Interpreter::Hex2Bin(argv[++index], dataset.mExtendedPanId.m8, sizeof(dataset.mExtendedPanId.m8)) >= 0,
@@ -510,42 +510,42 @@ otError Dataset::ProcessMgmtSetCommand(otInstance *aInstance, int argc, char *ar
}
else if (strcmp(argv[index], "localprefix") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsMeshLocalPrefixSet = true;
SuccessOrExit(error = otIp6AddressFromString(argv[++index], &prefix));
memcpy(dataset.mMeshLocalPrefix.m8, prefix.mFields.m8, sizeof(dataset.mMeshLocalPrefix.m8));
}
else if (strcmp(argv[index], "delaytimer") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsDelaySet = true;
SuccessOrExit(error = Interpreter::ParseLong(argv[++index], value));
dataset.mDelay = static_cast<uint32_t>(value);
}
else if (strcmp(argv[index], "panid") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsPanIdSet = true;
SuccessOrExit(error = Interpreter::ParseLong(argv[++index], value));
dataset.mPanId = static_cast<otPanId>(value);
}
else if (strcmp(argv[index], "channel") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsChannelSet = true;
SuccessOrExit(error = Interpreter::ParseLong(argv[++index], value));
dataset.mChannel = static_cast<uint16_t>(value);
}
else if (strcmp(argv[index], "channelmask") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mIsChannelMaskPage0Set = true;
SuccessOrExit(error = Interpreter::ParseLong(argv[++index], value));
dataset.mChannelMaskPage0 = static_cast<uint32_t>(value);
}
else if (strcmp(argv[index], "binary") == 0)
{
VerifyOrExit((index + 1) < argc, error = OT_ERROR_PARSE);
VerifyOrExit((index + 1) < argc, error = OT_ERROR_INVALID_ARGS);
length = static_cast<int>((strlen(argv[++index]) + 1) / 2);
VerifyOrExit(static_cast<size_t>(length) <= sizeof(tlvs), error = OT_ERROR_NO_BUFS);
VerifyOrExit(Interpreter::Hex2Bin(argv[index], tlvs, static_cast<uint16_t>(length)) >= 0,
@@ -553,7 +553,7 @@ otError Dataset::ProcessMgmtSetCommand(otInstance *aInstance, int argc, char *ar
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
@@ -567,7 +567,7 @@ otError Dataset::ProcessMgmtSetCommand(otInstance *aInstance, int argc, char *ar
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
OT_UNUSED_VARIABLE(aInstance);
@@ -586,7 +586,7 @@ otError Dataset::ProcessMgmtGetCommand(otInstance *aInstance, int argc, char *ar
bool destAddrSpecified = false;
otIp6Address address;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
memset(&dataset, 0, sizeof(dataset));
@@ -632,7 +632,7 @@ otError Dataset::ProcessMgmtGetCommand(otInstance *aInstance, int argc, char *ar
}
else if (strcmp(argv[index], "binary") == 0)
{
VerifyOrExit((index + 1) < argc, error = OT_ERROR_PARSE);
VerifyOrExit((index + 1) < argc, error = OT_ERROR_INVALID_ARGS);
value = static_cast<long>(strlen(argv[++index]) + 1) / 2;
VerifyOrExit(static_cast<size_t>(value) <= (sizeof(tlvs) - static_cast<size_t>(length)),
error = OT_ERROR_NO_BUFS);
@@ -642,13 +642,13 @@ otError Dataset::ProcessMgmtGetCommand(otInstance *aInstance, int argc, char *ar
}
else if (strcmp(argv[index], "address") == 0)
{
VerifyOrExit(index < argc, error = OT_ERROR_PARSE);
VerifyOrExit(index < argc, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otIp6AddressFromString(argv[++index], &address));
destAddrSpecified = true;
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
@@ -664,7 +664,7 @@ otError Dataset::ProcessMgmtGetCommand(otInstance *aInstance, int argc, char *ar
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
OT_UNUSED_VARIABLE(aInstance);
@@ -678,7 +678,7 @@ otError Dataset::ProcessPSKc(otInstance *aInstance, int argc, char *argv[])
otError error = OT_ERROR_NONE;
uint16_t length;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
length = static_cast<uint16_t>((strlen(argv[0]) + 1) / 2);
VerifyOrExit(length <= OT_PSKC_MAX_SIZE, error = OT_ERROR_NO_BUFS);
VerifyOrExit(Interpreter::Hex2Bin(argv[0], sDataset.mPSKc.m8 + OT_PSKC_MAX_SIZE - length, length) == length,
@@ -696,7 +696,7 @@ otError Dataset::ProcessSecurityPolicy(otInstance *aInstance, int argc, char *ar
otError error = OT_ERROR_NONE;
long value;
VerifyOrExit(argc > 0, error = OT_ERROR_PARSE);
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = Interpreter::ParseLong(argv[0], value));
sDataset.mSecurityPolicy.mRotationTime = static_cast<uint16_t>(value);
+3 -3
View File
@@ -73,7 +73,7 @@ otError UdpExample::ProcessBind(int argc, char *argv[])
otSockAddr sockaddr;
long value;
VerifyOrExit(argc == 2, error = OT_ERROR_PARSE);
VerifyOrExit(argc == 2, error = OT_ERROR_INVALID_ARGS);
memset(&sockaddr, 0, sizeof(sockaddr));
@@ -98,7 +98,7 @@ otError UdpExample::ProcessConnect(int argc, char *argv[])
otSockAddr sockaddr;
long value;
VerifyOrExit(argc == 2, error = OT_ERROR_PARSE);
VerifyOrExit(argc == 2, error = OT_ERROR_INVALID_ARGS);
memset(&sockaddr, 0, sizeof(sockaddr));
@@ -142,7 +142,7 @@ otError UdpExample::ProcessSend(int argc, char *argv[])
memset(&messageInfo, 0, sizeof(messageInfo));
VerifyOrExit(argc == 1 || argc == 3, error = OT_ERROR_PARSE);
VerifyOrExit(argc == 1 || argc == 3, error = OT_ERROR_INVALID_ARGS);
if (argc == 3)
{