mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-10-29 17:54:14 +08:00
cmd: report a rejected command as an error and keep it out of the history
run_cmd_body() answers POST /cmd with 400 when err_status is set, but only the tokenizer set it. Every "Error:", "Invalid ..." and "Unknown command" from the parsers went back as 200, so the web page reported the command as applied, and save_cmd put the rejected line into the command history, from where Save to flash wrote it into the startup config. Set ERR_INVALID_ARGUMENT on every path that rejects a command: the err: labels of the parsers, the parsers that print their own error, the stp parser and the unknown command fallback. Warnings that still apply the command, such as a full VLAN name table, are left alone. Record a command in the history only when it was accepted, and let execute_commands() report the first failure of a multi-line body, since cmd_tokenize() clears err_status again for every following line.
This commit is contained in:
1 parent
94992562fd
commit
13cc9db1ce
3 files changed
+56
-4
No files matched your search
@@ -54,6 +54,7 @@ extern __xdata uint8_t sbuf[SBUF_SIZE];
|
||||
#define ERR_OK 0
|
||||
#define ERR_TOO_MANY_ARGUMENTS 1
|
||||
#define ERR_CMD_TOO_LONG 2
|
||||
#define ERR_INVALID_ARGUMENT 3
|
||||
|
||||
// For RX data, a propriatary RTL FRAME is inserted. Instead of 0x0800 for IPv4,
|
||||
// the RTL_FRAME_TAG_ID is used as part of an 8-byte tag. When VLAN is activated,
|
||||
|
||||
Reference in new issue
Block a user