Разговор PAM с несколькими сообщениями

Я помогаю создать подключаемый модуль доступа. Наш модуль изначально реализовал PAM-диалог только с одним сообщением, и он работал нормально. Затем нам нужно было добавить второе сообщение к беседе, и мы подумали, что будет достаточно просто увеличить num_msg на единицу и передать необходимые указатели.

Однако с помощью приведенного ниже кода PAM теперь возвращает ошибку после того, как пользователь ответит на первое приглашение. (Ошибка, как ни странно, ошибка сеанса pam, хотя она не указана в качестве типа ответа для функции conv.)

Разделение приглашений на два разных объекта разговора работает нормально, но я хотел бы иметь возможность добавить несколько приглашений в один разговор. Поиск в Google показывает, что с несколькими сообщениями в одном разговоре можно ожидать плохого поведения, хотя я не смог найти ничего конкретного. Есть мысли о том, что здесь происходит или чего мне не хватает?

pam_message first_message;
first_message.msg = const_cast<char *> ("First prompt: ");
first.msg_style = PAM_PROMPT_ECHO_OFF;
pam_message second_message;
second_message.msg = const_cast<char *> ("Second prompt: ");
second_message.msg_style = PAM_PROMPT_ECHO_OFF;

std::vector<const pam_message *> messages;
messages.push_back (&first_message);
messages.push_back (&second_message);
std::vector<pam_response *> responses (2);

int conv_result = conv->conv (2, messages.data(), responses.data(),
conv->appdata_ptr);

4

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]