-struct pdb_get_trust_credentials_state {
- char *cur_pw;
- char *prev_pw;
- bool next_is_prev;
-};
-
-static int pdb_get_trust_credentials_destructor(struct pdb_get_trust_credentials_state *state)
-{
- SAFE_FREE(state->cur_pw);
- SAFE_FREE(state->prev_pw);
- return 0;
-}
-
-static const char *pdb_get_trust_credentials_cb(struct cli_credentials *creds)
-{
- struct pdb_get_trust_credentials_state *state =
- cli_credentials_callback_data(creds,
- struct pdb_get_trust_credentials_state);
-
- /*
- * This toggles between current and previous password
- *
- * The code cli_credentials code enforced the 3 tries
- * rule above us.
- */
- if (!state->next_is_prev) {
- state->next_is_prev = true;
- return state->cur_pw;
- } else {
- state->next_is_prev = false;
- return state->prev_pw;
- }
-}
-