int write_sol_config(lmc_data_t *mc) { ipmi_sol_t *sol; persist_t *p; sol = ipmi_mc_get_sol(mc); p = alloc_persist("sol.mc%2.2x", ipmi_mc_get_ipmb(mc)); if (!p) return ENOMEM; sol = ipmi_mc_get_sol(mc); add_persist_int(p, sol->solparm.enabled, "enabled"); add_persist_int(p, sol->solparm.bitrate_nonv, "bitrate"); write_persist(p); free_persist(p); return 0; }
int write_persist_users(sys_data_t *sys) { unsigned int i, j; for (i = 0; i < IPMI_MAX_MCS; i++) { lmc_data_t *mc = sys->ipmb_addrs[i]; user_t *users; persist_t *p; if (!mc || !ipmi_mc_users_changed(mc)) continue; p = alloc_persist("users.mc%2.2x", ipmi_mc_get_ipmb(mc)); if (!p) return ENOMEM; users = ipmi_mc_get_users(mc); for (j = 0; j <= MAX_USERS; j++) { add_persist_int(p, users[j].valid, "%d.valid", j); add_persist_int(p, users[j].link_auth, "%d.link_auth", j); add_persist_int(p, users[j].cb_only, "%d.cb_only", j); add_persist_data(p, users[j].username, sizeof(users[j].username), "%d.username", j); add_persist_data(p, users[j].pw, sizeof(users[j].pw), "%d.passwd", j); add_persist_int(p, users[j].privilege, "%d.privilege", j); add_persist_int(p, users[j].max_sessions, "%d.max_sessions", j); add_persist_int(p, users[j].allowed_auths, "%d.allowed_auths", j); } write_persist(p); free_persist(p); } return 0; }