You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.3 KiB
52 lines
1.3 KiB
//
|
|
// Set telnet pw
|
|
//
|
|
|
|
#include <freertos/FreeRTOS.h>
|
|
#include <freertos/event_groups.h>
|
|
#include <esp_wifi.h>
|
|
#include <settings.h>
|
|
|
|
#include "console/cmd_common.h"
|
|
#include <console/cmddef.h>
|
|
#include <application.h>
|
|
#include <console/prefix_match.h>
|
|
|
|
static int cmd_clear(console_ctx_t *ctx, cmd_signature_t *reg)
|
|
{
|
|
EMPTY_CMD_SETUP("Clear access password");
|
|
console_printf("Access password cleared.\n");
|
|
gSettings.console_pw[0] = 0;
|
|
settings_persist(SETTINGS_console_pw);
|
|
return 0;
|
|
}
|
|
|
|
static int cmd_set(console_ctx_t *ctx, cmd_signature_t *reg)
|
|
{
|
|
static struct {
|
|
struct arg_str *pw;
|
|
struct arg_end *end;
|
|
} args;
|
|
|
|
if (reg) {
|
|
args.pw = arg_str1(NULL, NULL, "<password>", EXPENDABLE_STRING("New password"));
|
|
args.end = arg_end(1);
|
|
|
|
reg->argtable = &args;
|
|
reg->help = EXPENDABLE_STRING("Set access password");
|
|
return CONSOLE_OK;
|
|
}
|
|
|
|
strncpy(gSettings.console_pw, args.pw->sval[0], CONSOLE_PW_LEN - 1);
|
|
console_printf("Access pw set to: \"%.*s\"\n", CONSOLE_PW_LEN, args.pw->sval[0]);
|
|
settings_persist(SETTINGS_console_pw);
|
|
return 0;
|
|
}
|
|
|
|
void register_cmd_pw(void)
|
|
{
|
|
console_group_add("pw", "Access password");
|
|
|
|
console_cmd_register(cmd_set, "pw set");
|
|
console_cmd_register(cmd_clear, "pw clear");
|
|
}
|
|
|