71 #include <amxc/amxc_macros.h>
72 #include <amxc/amxc_string.h>
73 #include <amxc/amxc_variant.h>
108 SAH_TRACEZ_ERROR(
ME,
"Failed to determine if password is in hex");
112 const size_t len = strlen(password);
115 SAH_TRACEZ_ERROR(
ME,
"hex password does not have even number of chars");
118 for(i = 0; i < len; i++) {
119 if(!isxdigit(password[i])) {
120 SAH_TRACEZ_ERROR(
ME,
"hex password has non-hexadecimal digit");
128 SAH_TRACEZ_ERROR(
ME,
"Failed to get PON mode");
141 SAH_TRACEZ_ERROR(
ME,
"Length of password = %zd != %zd [mode='%s', hex=1]",
145 }
else if(len > maxlen) {
146 SAH_TRACEZ_ERROR(
ME,
"Length of password = %zd > %zd [mode='%s', hex=0]",
169 const char*
const password) {
174 if(strlen(password) != 0) {
176 SAH_TRACEZ_ERROR(
ME,
"%s: failed to determine if password is in "
190 const char*
const password,
bool hex) {
192 amxc_string_t ani_auth_path;
195 amxc_string_init(&ani_auth_path, 0);
196 amxc_var_init(&args);
199 const char*
const ani_auth_path_cstr = amxc_string_get(&ani_auth_path, 0);
201 const int rc = amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
202 when_false_trace(0 == rc, exit, ERROR,
"Failed to set type to htable");
204 amxc_var_t*
const path_var = amxc_var_add_key(cstring_t, &args,
"path", ani_auth_path_cstr);
205 when_null_trace(path_var, exit, ERROR,
"Failed to add 'path' to 'args'");
207 amxc_var_t*
const params = amxc_var_add_key(amxc_htable_t, &args,
"parameters", NULL);
208 when_null_trace(params, exit, ERROR,
"Failed to add 'parameters' to 'args'");
210 amxc_var_t*
const password_var = amxc_var_add_key(cstring_t, params,
"Password", password);
211 when_null_trace(password_var, exit, ERROR,
"Failed to add Password to 'parameters'");
214 amxc_var_t*
const hex_var = amxc_var_add_key(
bool, params,
"HexadecimalPassword", hex);
215 when_null_trace(hex_var, exit, ERROR,
"Failed to add HexadecimalPassword to 'parameters'");
221 amxc_string_clean(&ani_auth_path);
222 amxc_var_clean(&args);
243 SAH_TRACEZ_ERROR(
ME,
"ani='%s': failed to get password", ani_path);
246 when_true(strlen(password) == 0, exit);
void ani_append_tc_authentication(const char *const ani_path, amxc_string_t *const ani_auth_path)
bool dm_is_hex_password(const char *const ani_path, bool *is_hex)
int dm_change_object(const amxc_var_t *const args)
bool dm_get_ani_pon_mode(const char *const ani_path, pon_mode_t *pon_mode)
void passwd_restore_password(const char *const ani_path)
bool passwd_check_password(const char *const ani_path, const char *const password)
void passwd_set_password(const char *const ani_path, const char *const password)
static void update_password_in_dm(const char *const ani_path, const char *const password, bool hex)
#define MAX_PASSWORD_LEN_PLUS_ONE
#define MAX_XPON_PASSWORD_LEN
#define MAX_GPON_PASSWORD_LEN
void pon_ctrl_set_password(const char *const ani_path, const char *const password, bool hex)
enum _pon_mode pon_mode_t
const char * pon_mode_to_string(pon_mode_t mode)
bool upgr_persistency_get_password(const char *const ani_path, char *const password, bool *hex)
void upgr_persistency_set_password(const char *const ani_path, const char *const password, bool hex)
#define SAH_TRACEZ_DEBUG(zone, format,...)