Пример #1
0
static sw_error_t
cmd_parse_sw(char **cmd_str, a_uint32_t * arg_val)
{
    char *tmp_str;
    a_uint32_t arg_index = 0;
    a_uint32_t api_id = arg_val[0];

    tmp_str = cmd_str[arg_index];
    while (tmp_str)
    {
        arg_index++;
        cmd_strtol(tmp_str, &arg_val[arg_index]);
        tmp_str = cmd_str[arg_index];
    }

    /*args number check */
    if ( (arg_index == 0 && ( api_id == SW_CMD_VLAN_SHOW ||
                              api_id == SW_CMD_FDB_SHOW ||
                              api_id == SW_CMD_RESV_FDB_SHOW ||
                              api_id == SW_CMD_HOST_SHOW ||
                              api_id == SW_CMD_NAT_SHOW ||
                              api_id == SW_CMD_NAPT_SHOW ||
                              api_id == SW_CMD_INTFMAC_SHOW ||
                              api_id == SW_CMD_PUBADDR_SHOW )) ||
            ( arg_index == 1 && api_id == SW_CMD_SET_DEVID) )
        return SW_OK;

    return SW_BAD_PARAM;
}
Пример #2
0
static int cmd_wpas_parse_int(const char *value, int min, int max, int *dst)
{
	int val;
	char *end;

	val = cmd_strtol(value, &end, 0);
	if (*end) {
		CMD_ERR("Invalid number '%s'", value);
		return -1;
	}

	if (val < min || val > max) {
		CMD_ERR("out of range value %d (%s), range is [%d, %d]\n",
			 val, value, min, max);
		return -1;
	}

	*dst = val;
	return 0;
}