[cli] return OT_ERROR_INVALID_ARGS for invalid arguments (#4639)

- Remove argument parsing failure from semantic of OT_ERROR_PARSE.

- Add OT_ERROR_INVALID_COMMAND to indicate invalid CLI command error.

- return OT_ERROR_INVALID_ARGS for invalid CLI arguments.
This commit is contained in:
kangping
2020-03-19 10:51:42 -07:00
committed by GitHub
parent db765d9370
commit 133ec09b80
14 changed files with 92 additions and 91 deletions
+1 -1
View File
@@ -396,7 +396,7 @@ const struct PlatformDiagCommand sCommands[] = {
otError otPlatDiagProcess(otInstance *aInstance, int argc, char *argv[], char *aOutput, size_t aOutputMaxLen)
{
otError error = OT_ERROR_NOT_IMPLEMENTED;
otError error = OT_ERROR_INVALID_COMMAND;
size_t i;
for (i = 0; i < otARRAY_LENGTH(sCommands); i++)
+6 -1
View File
@@ -88,7 +88,7 @@ typedef enum otError
OT_ERROR_BUSY = 5,
/**
* Failed to parse message or arguments.
* Failed to parse message.
*/
OT_ERROR_PARSE = 6,
@@ -223,6 +223,11 @@ typedef enum otError
*/
OT_ERROR_LINK_MARGIN_LOW = 34,
/**
* Input (CLI) command is invalid.
*/
OT_ERROR_INVALID_COMMAND = 35,
/**
* The number of defined errors.
*/
+1 -1
View File
@@ -67,7 +67,7 @@ extern "C" {
*
* @retval OT_ERROR_INVALID_ARGS The command is supported but invalid arguments provided.
* @retval OT_ERROR_NONE The command is successfully process.
* @retval OT_ERROR_NOT_IMPLEMENTED The command is not supported.
* @retval OT_ERROR_INVALID_COMMAND The command is not valid or not supported.
*
*/
otError otPlatDiagProcess(otInstance *aInstance, int argc, char *argv[], char *aOutput, size_t aOutputMaxLen);
+52 -59
View File
@@ -361,14 +361,14 @@ otError Interpreter::ParseLong(char *aString, long &aLong)
{
char *endptr;
aLong = strtol(aString, &endptr, 0);
return (*endptr == '\0') ? OT_ERROR_NONE : OT_ERROR_PARSE;
return (*endptr == '\0') ? OT_ERROR_NONE : OT_ERROR_INVALID_ARGS;
}
otError Interpreter::ParseUnsignedLong(char *aString, unsigned long &aUnsignedLong)
{
char *endptr;
aUnsignedLong = strtoul(aString, &endptr, 0);
return (*endptr == '\0') ? OT_ERROR_NONE : OT_ERROR_PARSE;
return (*endptr == '\0') ? OT_ERROR_NONE : OT_ERROR_INVALID_ARGS;
}
otError Interpreter::ParsePingInterval(const char *aString, uint32_t &aInterval)
@@ -400,14 +400,14 @@ otError Interpreter::ParsePingInterval(const char *aString, uint32_t &aInterval)
else if (*aString == '.')
{
// Accept only one dot character.
VerifyOrExit(factor == msFactor, error = OT_ERROR_PARSE);
VerifyOrExit(factor == msFactor, error = OT_ERROR_INVALID_ARGS);
// Start analyzing hundreds of milliseconds.
factor /= 10;
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
aString++;
@@ -999,7 +999,7 @@ void Interpreter::ProcessDelayTimerMin(int argc, char *argv[])
}
else
{
error = OT_ERROR_INVALID_ARGS;
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
exit:
@@ -1078,7 +1078,7 @@ void Interpreter::ProcessDns(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
ExitNow(error = OT_ERROR_INVALID_COMMAND);
}
exit:
@@ -1174,7 +1174,7 @@ void Interpreter::ProcessExtAddress(int argc, char *argv[])
{
otExtAddress extAddress;
VerifyOrExit(Hex2Bin(argv[0], extAddress.m8, sizeof(otExtAddress)) >= 0, error = OT_ERROR_PARSE);
VerifyOrExit(Hex2Bin(argv[0], extAddress.m8, sizeof(otExtAddress)) >= 0, error = OT_ERROR_INVALID_ARGS);
error = otLinkSetExtendedAddress(mInstance, &extAddress);
}
@@ -1222,7 +1222,7 @@ void Interpreter::ProcessExtPanId(int argc, char *argv[])
{
otExtendedPanId extPanId;
VerifyOrExit(Hex2Bin(argv[0], extPanId.m8, sizeof(extPanId)) >= 0, error = OT_ERROR_PARSE);
VerifyOrExit(Hex2Bin(argv[0], extPanId.m8, sizeof(extPanId)) >= 0, error = OT_ERROR_INVALID_ARGS);
error = otThreadSetExtendedPanId(mInstance, &extPanId);
}
@@ -1343,7 +1343,7 @@ void Interpreter::ProcessIpAddr(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
ExitNow(error = OT_ERROR_INVALID_COMMAND);
}
}
@@ -1442,7 +1442,7 @@ void Interpreter::ProcessIpMulticastAddr(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
ExitNow(error = OT_ERROR_INVALID_COMMAND);
}
}
@@ -1570,7 +1570,7 @@ void Interpreter::ProcessPskc(int argc, char *argv[])
{
otPskc pskc;
VerifyOrExit(Hex2Bin(argv[0], pskc.m8, sizeof(pskc)) == OT_PSKC_MAX_SIZE, error = OT_ERROR_PARSE);
VerifyOrExit(Hex2Bin(argv[0], pskc.m8, sizeof(pskc)) == OT_PSKC_MAX_SIZE, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otThreadSetPskc(mInstance, &pskc));
}
@@ -1598,7 +1598,7 @@ void Interpreter::ProcessMasterKey(int argc, char *argv[])
{
otMasterKey key;
VerifyOrExit(Hex2Bin(argv[0], key.m8, sizeof(key.m8)) == OT_MASTER_KEY_SIZE, error = OT_ERROR_PARSE);
VerifyOrExit(Hex2Bin(argv[0], key.m8, sizeof(key.m8)) == OT_MASTER_KEY_SIZE, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otThreadSetMasterKey(mInstance, &key));
}
@@ -1662,7 +1662,7 @@ void Interpreter::ProcessMode(int argc, char *argv[])
break;
default:
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
@@ -1797,7 +1797,7 @@ void Interpreter::ProcessService(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
ExitNow(error = OT_ERROR_INVALID_COMMAND);
}
exit:
@@ -2264,14 +2264,12 @@ otError Interpreter::ProcessPrefixAdd(int argc, char *argv[])
otError error = OT_ERROR_NONE;
otBorderRouterConfig config;
int argcur = 0;
char * prefixLengthStr;
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
memset(&config, 0, sizeof(otBorderRouterConfig));
char *prefixLengthStr;
char *endptr;
if ((prefixLengthStr = strchr(argv[argcur], '/')) == NULL)
{
ExitNow();
@@ -2281,11 +2279,11 @@ otError Interpreter::ProcessPrefixAdd(int argc, char *argv[])
SuccessOrExit(error = otIp6AddressFromString(argv[argcur], &config.mPrefix.mPrefix));
config.mPrefix.mLength = static_cast<uint8_t>(strtol(prefixLengthStr, &endptr, 0));
if (*endptr != '\0')
{
ExitNow(error = OT_ERROR_PARSE);
unsigned long length;
SuccessOrExit(error = ParseUnsignedLong(prefixLengthStr, length));
config.mPrefix.mLength = static_cast<uint8_t>(length);
}
argcur++;
@@ -2339,7 +2337,7 @@ otError Interpreter::ProcessPrefixAdd(int argc, char *argv[])
break;
default:
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
}
@@ -2358,14 +2356,12 @@ otError Interpreter::ProcessPrefixRemove(int argc, char *argv[])
otError error = OT_ERROR_NONE;
struct otIp6Prefix prefix;
int argcur = 0;
char * prefixLengthStr;
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
memset(&prefix, 0, sizeof(otIp6Prefix));
char *prefixLengthStr;
char *endptr;
if ((prefixLengthStr = strchr(argv[argcur], '/')) == NULL)
{
ExitNow();
@@ -2375,11 +2371,11 @@ otError Interpreter::ProcessPrefixRemove(int argc, char *argv[])
SuccessOrExit(error = otIp6AddressFromString(argv[argcur], &prefix.mPrefix));
prefix.mLength = static_cast<uint8_t>(strtol(prefixLengthStr, &endptr, 0));
if (*endptr != '\0')
{
ExitNow(error = OT_ERROR_PARSE);
unsigned long length;
SuccessOrExit(error = ParseUnsignedLong(prefixLengthStr, length));
prefix.mLength = static_cast<uint8_t>(length);
}
error = otBorderRouterRemoveOnMeshPrefix(mInstance, &prefix);
@@ -2472,7 +2468,7 @@ void Interpreter::ProcessPrefix(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
ExitNow(error = OT_ERROR_INVALID_COMMAND);
}
exit:
@@ -2532,12 +2528,10 @@ otError Interpreter::ProcessRouteAdd(int argc, char *argv[])
otError error = OT_ERROR_NONE;
otExternalRouteConfig config;
int argcur = 0;
char * prefixLengthStr;
memset(&config, 0, sizeof(otExternalRouteConfig));
char *prefixLengthStr;
char *endptr;
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
if ((prefixLengthStr = strchr(argv[argcur], '/')) == NULL)
@@ -2549,11 +2543,11 @@ otError Interpreter::ProcessRouteAdd(int argc, char *argv[])
SuccessOrExit(error = otIp6AddressFromString(argv[argcur], &config.mPrefix.mPrefix));
config.mPrefix.mLength = static_cast<uint8_t>(strtol(prefixLengthStr, &endptr, 0));
if (*endptr != '\0')
{
ExitNow(error = OT_ERROR_PARSE);
unsigned long length;
SuccessOrExit(error = ParseUnsignedLong(prefixLengthStr, length));
config.mPrefix.mLength = static_cast<uint8_t>(length);
}
argcur++;
@@ -2578,7 +2572,7 @@ otError Interpreter::ProcessRouteAdd(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
@@ -2593,10 +2587,9 @@ otError Interpreter::ProcessRouteRemove(int argc, char *argv[])
otError error = OT_ERROR_NONE;
struct otIp6Prefix prefix;
int argcur = 0;
char * prefixLengthStr;
memset(&prefix, 0, sizeof(struct otIp6Prefix));
char *prefixLengthStr;
char *endptr;
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
@@ -2609,11 +2602,11 @@ otError Interpreter::ProcessRouteRemove(int argc, char *argv[])
SuccessOrExit(error = otIp6AddressFromString(argv[argcur], &prefix.mPrefix));
prefix.mLength = static_cast<uint8_t>(strtol(prefixLengthStr, &endptr, 0));
if (*endptr != '\0')
{
ExitNow(error = OT_ERROR_PARSE);
unsigned long length;
SuccessOrExit(error = ParseUnsignedLong(prefixLengthStr, length));
prefix.mLength = static_cast<uint8_t>(length);
}
error = otBorderRouterRemoveRoute(mInstance, &prefix);
@@ -2676,7 +2669,7 @@ void Interpreter::ProcessRoute(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
ExitNow(error = OT_ERROR_INVALID_COMMAND);
}
exit:
@@ -3030,7 +3023,7 @@ void Interpreter::ProcessSntp(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
ExitNow(error = OT_ERROR_INVALID_COMMAND);
}
exit:
@@ -3156,7 +3149,7 @@ void Interpreter::ProcessThread(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
ExitNow(error = OT_ERROR_INVALID_COMMAND);
}
exit:
@@ -3274,7 +3267,7 @@ void Interpreter::ProcessMacFilter(int argc, char *argv[])
}
else
{
error = OT_ERROR_INVALID_ARGS;
error = OT_ERROR_INVALID_COMMAND;
}
}
@@ -3400,7 +3393,7 @@ otError Interpreter::ProcessMacFilterAddress(int argc, char *argv[])
{
VerifyOrExit(argc >= 2, error = OT_ERROR_INVALID_ARGS);
VerifyOrExit(Hex2Bin(argv[1], extAddr.m8, OT_EXT_ADDRESS_SIZE) == OT_EXT_ADDRESS_SIZE,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
error = otLinkFilterAddAddress(mInstance, &extAddr);
@@ -3419,7 +3412,7 @@ otError Interpreter::ProcessMacFilterAddress(int argc, char *argv[])
{
VerifyOrExit(argc == 2, error = OT_ERROR_INVALID_ARGS);
VerifyOrExit(Hex2Bin(argv[1], extAddr.m8, OT_EXT_ADDRESS_SIZE) == OT_EXT_ADDRESS_SIZE,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otLinkFilterRemoveAddress(mInstance, &extAddr));
}
else if (strcmp(argv[0], "clear") == 0)
@@ -3429,7 +3422,7 @@ otError Interpreter::ProcessMacFilterAddress(int argc, char *argv[])
}
else
{
error = OT_ERROR_INVALID_ARGS;
error = OT_ERROR_INVALID_COMMAND;
}
}
@@ -3481,7 +3474,7 @@ otError Interpreter::ProcessMacFilterRss(int argc, char *argv[])
VerifyOrExit(argc == 3, error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = ParseLong(argv[2], value));
linkquality = static_cast<uint8_t>(value);
VerifyOrExit(linkquality <= 3, error = OT_ERROR_PARSE);
VerifyOrExit(linkquality <= 3, error = OT_ERROR_INVALID_ARGS);
rss = otLinkConvertLinkQualityToRss(mInstance, linkquality);
if (strcmp(argv[1], "*") == 0)
@@ -3491,7 +3484,7 @@ otError Interpreter::ProcessMacFilterRss(int argc, char *argv[])
else
{
VerifyOrExit(Hex2Bin(argv[1], extAddr.m8, OT_EXT_ADDRESS_SIZE) == OT_EXT_ADDRESS_SIZE,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otLinkFilterAddRssIn(mInstance, &extAddr, rss));
}
@@ -3509,7 +3502,7 @@ otError Interpreter::ProcessMacFilterRss(int argc, char *argv[])
else
{
VerifyOrExit(Hex2Bin(argv[1], extAddr.m8, OT_EXT_ADDRESS_SIZE) == OT_EXT_ADDRESS_SIZE,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otLinkFilterAddRssIn(mInstance, &extAddr, rss));
}
@@ -3525,7 +3518,7 @@ otError Interpreter::ProcessMacFilterRss(int argc, char *argv[])
else
{
VerifyOrExit(Hex2Bin(argv[1], extAddr.m8, OT_EXT_ADDRESS_SIZE) == OT_EXT_ADDRESS_SIZE,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
SuccessOrExit(error = otLinkFilterRemoveRssIn(mInstance, &extAddr));
}
@@ -3536,7 +3529,7 @@ otError Interpreter::ProcessMacFilterRss(int argc, char *argv[])
}
else
{
error = OT_ERROR_INVALID_ARGS;
error = OT_ERROR_INVALID_COMMAND;
}
}
@@ -3558,7 +3551,7 @@ void Interpreter::ProcessMac(int argc, char *argv[])
}
else
{
error = OT_ERROR_INVALID_ARGS;
error = OT_ERROR_INVALID_COMMAND;
}
exit:
@@ -3676,7 +3669,7 @@ void Interpreter::ProcessLine(char *aBuf, uint16_t aBufLength, Server &aServer)
if (i == mUserCommandsLength)
{
AppendResult(OT_ERROR_PARSE);
AppendResult(OT_ERROR_INVALID_COMMAND);
}
}
@@ -3719,7 +3712,7 @@ void Interpreter::ProcessNetworkDiagnostic(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_INVALID_ARGS);
ExitNow(error = OT_ERROR_INVALID_COMMAND);
}
exit:
+5 -5
View File
@@ -126,8 +126,8 @@ public:
* @param[in] aString A pointer to the ASCII string.
* @param[out] aLong A reference to where the parsed long is placed.
*
* @retval OT_ERROR_NONE Successfully parsed the ASCII string.
* @retval OT_ERROR_PARSE Could not parse the ASCII string.
* @retval OT_ERROR_NONE Successfully parsed the ASCII string.
* @retval OT_ERROR_INVALID_ARGS @p aString is not a valid long integer.
*
*/
static otError ParseLong(char *aString, long &aLong);
@@ -138,8 +138,8 @@ public:
* @param[in] aString A pointer to the ASCII string.
* @param[out] aUnsignedLong A reference to where the parsed unsigned long is placed.
*
* @retval OT_ERROR_NONE Successfully parsed the ASCII string.
* @retval OT_ERROR_PARSE Could not parse the ASCII string.
* @retval OT_ERROR_NONE Successfully parsed the ASCII string.
* @retval OT_ERROR_INVALID_ARGS @p aString is not a valid unsigned long integer.
*
*/
static otError ParseUnsignedLong(char *aString, unsigned long &aUnsignedLong);
@@ -153,8 +153,8 @@ public:
* @param[in] aAllowTruncate TRUE if @p aBinLength may be less than what is required
* to convert @p aHex to binary representation, FALSE otherwise.
*
* @returns The number of bytes in the binary representation, or -1 if @p aHex is not a valid hex string
*
* @returns The number of bytes in the binary representation.
*/
static int Hex2Bin(const char *aHex, uint8_t *aBin, uint16_t aBinLength, bool aAllowTruncate = false);
+1 -1
View File
@@ -512,7 +512,7 @@ exit:
otError Coap::Process(int argc, char *argv[])
{
otError error = OT_ERROR_PARSE;
otError error = OT_ERROR_INVALID_COMMAND;
if (argc < 1)
{
+2 -2
View File
@@ -220,7 +220,7 @@ otError CoapSecure::ProcessRequest(int argc, char *argv[])
}
else
{
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
// Destination IPv6 address
@@ -389,7 +389,7 @@ otError CoapSecure::ProcessX509(int argc, char *argv[])
otError CoapSecure::Process(int argc, char *argv[])
{
otError error = OT_ERROR_PARSE;
otError error = OT_ERROR_INVALID_COMMAND;
if (argc < 1)
{
+6 -5
View File
@@ -126,7 +126,8 @@ otError Commissioner::ProcessJoiner(int argc, char *argv[])
}
else
{
VerifyOrExit(Interpreter::Hex2Bin(argv[2], addr.m8, sizeof(addr)) == sizeof(addr), error = OT_ERROR_PARSE);
VerifyOrExit(Interpreter::Hex2Bin(argv[2], addr.m8, sizeof(addr)) == sizeof(addr),
error = OT_ERROR_INVALID_ARGS);
addrPtr = &addr;
}
@@ -191,7 +192,7 @@ otError Commissioner::ProcessMgmtGet(int argc, char *argv[])
VerifyOrExit(static_cast<size_t>(value) <= (sizeof(tlvs) - static_cast<size_t>(length)),
error = OT_ERROR_NO_BUFS);
VerifyOrExit(Interpreter::Hex2Bin(argv[index], tlvs + length, static_cast<uint16_t>(value)) >= 0,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
length += value;
}
else
@@ -244,7 +245,7 @@ otError Commissioner::ProcessMgmtSet(int argc, char *argv[])
VerifyOrExit(static_cast<size_t>(length) <= OT_STEERING_DATA_MAX_LENGTH, error = OT_ERROR_NO_BUFS);
VerifyOrExit(Interpreter::Hex2Bin(argv[index], dataset.mSteeringData.m8, static_cast<uint16_t>(length)) >=
0,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
dataset.mSteeringData.mLength = static_cast<uint8_t>(length);
length = 0;
}
@@ -261,7 +262,7 @@ otError Commissioner::ProcessMgmtSet(int argc, char *argv[])
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,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
}
else
{
@@ -387,7 +388,7 @@ otError Commissioner::ProcessStop(int argc, char *argv[])
otError Commissioner::Process(int argc, char *argv[])
{
otError error = OT_ERROR_INVALID_ARGS;
otError error = OT_ERROR_INVALID_COMMAND;
if (argc < 1)
{
+12 -11
View File
@@ -184,7 +184,7 @@ otError Dataset::Print(otOperationalDataset &aDataset)
otError Dataset::Process(int argc, char *argv[])
{
otError error = OT_ERROR_PARSE;
otError error = OT_ERROR_INVALID_COMMAND;
if (argc == 0)
{
@@ -370,7 +370,7 @@ otError Dataset::ProcessExtPanId(int argc, char *argv[])
uint8_t extPanId[OT_EXT_PAN_ID_SIZE];
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
VerifyOrExit(Interpreter::Hex2Bin(argv[0], extPanId, sizeof(extPanId)) >= 0, error = OT_ERROR_PARSE);
VerifyOrExit(Interpreter::Hex2Bin(argv[0], extPanId, sizeof(extPanId)) >= 0, error = OT_ERROR_INVALID_ARGS);
memcpy(sDataset.mExtendedPanId.m8, extPanId, sizeof(sDataset.mExtendedPanId));
sDataset.mComponents.mIsExtendedPanIdPresent = true;
@@ -385,7 +385,8 @@ otError Dataset::ProcessMasterKey(int argc, char *argv[])
uint8_t key[OT_MASTER_KEY_SIZE];
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
VerifyOrExit((Interpreter::Hex2Bin(argv[0], key, sizeof(key))) == OT_MASTER_KEY_SIZE, error = OT_ERROR_PARSE);
VerifyOrExit((Interpreter::Hex2Bin(argv[0], key, sizeof(key))) == OT_MASTER_KEY_SIZE,
error = OT_ERROR_INVALID_ARGS);
memcpy(sDataset.mMasterKey.m8, key, sizeof(sDataset.mMasterKey));
sDataset.mComponents.mIsMasterKeyPresent = true;
@@ -415,7 +416,7 @@ otError Dataset::ProcessNetworkName(int argc, char *argv[])
size_t length;
VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS);
VerifyOrExit((length = strlen(argv[0])) <= OT_NETWORK_NAME_MAX_SIZE, error = OT_ERROR_PARSE);
VerifyOrExit((length = strlen(argv[0])) <= OT_NETWORK_NAME_MAX_SIZE, error = OT_ERROR_INVALID_ARGS);
memset(&sDataset.mNetworkName, 0, sizeof(sDataset.mNetworkName));
memcpy(sDataset.mNetworkName.m8, argv[0], length);
@@ -488,7 +489,7 @@ otError Dataset::ProcessMgmtSetCommand(int argc, char *argv[])
dataset.mComponents.mIsMasterKeyPresent = true;
VerifyOrExit((length = Interpreter::Hex2Bin(argv[index], dataset.mMasterKey.m8,
sizeof(dataset.mMasterKey.m8))) == OT_MASTER_KEY_SIZE,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
length = 0;
}
else if (strcmp(argv[index], "networkname") == 0)
@@ -496,7 +497,7 @@ otError Dataset::ProcessMgmtSetCommand(int argc, char *argv[])
VerifyOrExit(++index < argc, error = OT_ERROR_INVALID_ARGS);
dataset.mComponents.mIsNetworkNamePresent = true;
VerifyOrExit((length = static_cast<int>(strlen(argv[index]))) <= OT_NETWORK_NAME_MAX_SIZE,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
memset(&dataset.mNetworkName, 0, sizeof(sDataset.mNetworkName));
memcpy(dataset.mNetworkName.m8, argv[index], static_cast<size_t>(length));
length = 0;
@@ -507,7 +508,7 @@ otError Dataset::ProcessMgmtSetCommand(int argc, char *argv[])
dataset.mComponents.mIsExtendedPanIdPresent = true;
VerifyOrExit(
Interpreter::Hex2Bin(argv[index], dataset.mExtendedPanId.m8, sizeof(dataset.mExtendedPanId.m8)) >= 0,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
}
else if (strcmp(argv[index], "localprefix") == 0)
{
@@ -550,7 +551,7 @@ otError Dataset::ProcessMgmtSetCommand(int argc, char *argv[])
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,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
}
else
{
@@ -638,7 +639,7 @@ otError Dataset::ProcessMgmtGetCommand(int argc, char *argv[])
VerifyOrExit(static_cast<size_t>(value) <= (sizeof(tlvs) - static_cast<size_t>(length)),
error = OT_ERROR_NO_BUFS);
VerifyOrExit(Interpreter::Hex2Bin(argv[index], tlvs + length, static_cast<uint16_t>(value)) >= 0,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
length += value;
}
else if (strcmp(argv[index], "address") == 0)
@@ -683,7 +684,7 @@ otError Dataset::ProcessPskc(int argc, char *argv[])
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,
error = OT_ERROR_PARSE);
error = OT_ERROR_INVALID_ARGS);
sDataset.mComponents.mIsPskcPresent = true;
@@ -729,7 +730,7 @@ otError Dataset::ProcessSecurityPolicy(int argc, char *argv[])
break;
default:
ExitNow(error = OT_ERROR_PARSE);
ExitNow(error = OT_ERROR_INVALID_ARGS);
}
}
}
+1 -1
View File
@@ -107,7 +107,7 @@ otError Joiner::ProcessStop(int argc, char *argv[])
otError Joiner::Process(int argc, char *argv[])
{
otError error = OT_ERROR_INVALID_ARGS;
otError error = OT_ERROR_INVALID_COMMAND;
if (argc < 1)
{
+1 -1
View File
@@ -260,7 +260,7 @@ exit:
otError UdpExample::Process(int argc, char *argv[])
{
otError error = OT_ERROR_PARSE;
otError error = OT_ERROR_INVALID_COMMAND;
if (argc < 1)
{
+1
View File
@@ -192,6 +192,7 @@ static const char *const sThreadErrorStrings[OT_NUM_ERRORS] = {
"NonLowpanDataFrame", // OT_ERROR_NOT_LOWPAN_DATA_FRAME = 32
"ReservedError33", // otError 33 is reserved
"LinkMarginLow", // OT_ERROR_LINK_MARGIN_LOW = 34
"InvalidCommand", // OT_ERROR_INVALID_COMMAND = 35
};
const char *otThreadErrorToString(otError aError)
+2 -2
View File
@@ -54,7 +54,7 @@ otError otPlatDiagProcess(otInstance *aInstance, int argc, char *argv[], char *a
OT_UNUSED_VARIABLE(aOutput);
OT_UNUSED_VARIABLE(aOutputMaxLen);
return OT_ERROR_NOT_IMPLEMENTED;
return OT_ERROR_INVALID_COMMAND;
}
namespace ot {
@@ -574,7 +574,7 @@ otError Diags::ProcessCmd(int aArgCount, char *aArgVector[], char *aOutput, size
exit:
// Add more platform specific diagnostics features here.
if (error == OT_ERROR_NOT_IMPLEMENTED && aArgCount > 1)
if (error == OT_ERROR_INVALID_COMMAND && aArgCount > 1)
{
snprintf(aOutput, aOutputMaxLen, "diag feature '%s' is not supported\r\n", aArgVector[0]);
}
+1 -1
View File
@@ -520,7 +520,7 @@ otError otPlatDiagProcess(otInstance *aInstance, int argc, char *argv[], char *a
OT_UNUSED_VARIABLE(aOutput);
OT_UNUSED_VARIABLE(aOutputMaxLen);
return OT_ERROR_INVALID_ARGS;
return OT_ERROR_INVALID_COMMAND;
}
void otPlatDiagModeSet(bool aMode)