Commit 3742f6f9 authored by Sergei Golubchik's avatar Sergei Golubchik

cleanup: use only one callback in PAM plugin, not two

parent 3ab44581
......@@ -109,15 +109,10 @@ static int conv(int n, const struct pam_message **msg,
param->buf[0] = msg[i]->msg_style == PAM_PROMPT_ECHO_ON ? 2 : 4;
PAM_DEBUG((stderr, "PAM: conv: send(%.*s)\n",
(int)(param->ptr - param->buf - 1), param->buf));
if (write_packet(param, param->buf, param->ptr - param->buf - 1))
return PAM_CONV_ERR;
pkt_len = read_packet(param, &pkt);
pkt_len= roundtrip(param, param->buf, param->ptr - param->buf - 1, &pkt);
if (pkt_len < 0)
{
PAM_DEBUG((stderr, "PAM: conv: recv() ERROR\n"));
return PAM_CONV_ERR;
}
PAM_DEBUG((stderr, "PAM: conv: recv(%.*s)\n", pkt_len, pkt));
/* allocate and copy the reply to the response array */
if (!((*resp)[i].resp= strndup((char*) pkt, pkt_len)))
......
......@@ -26,22 +26,16 @@ struct param {
#include "auth_pam_tool.h"
static int write_packet(struct param *param __attribute__((unused)),
const unsigned char *buf, int buf_len)
static int roundtrip(struct param *param, const unsigned char *buf,
int buf_len, unsigned char **pkt)
{
unsigned char b= AP_CONV;
return write(1, &b, 1) < 1 ||
write_string(1, buf, buf_len);
}
static int read_packet(struct param *param, unsigned char **pkt)
{
if (write(1, &b, 1) < 1 || write_string(1, buf, buf_len))
return -1;
*pkt= (unsigned char *) param->buf;
return read_string(0, (char *) param->buf, (int) sizeof(param->buf)) - 1;
}
typedef struct st_mysql_server_auth_info
{
/**
......
......@@ -21,14 +21,11 @@ struct param {
MYSQL_PLUGIN_VIO *vio;
};
static int write_packet(struct param *param, const unsigned char *buf,
int buf_len)
{
return param->vio->write_packet(param->vio, buf, buf_len);
}
static int read_packet(struct param *param, unsigned char **pkt)
static int roundtrip(struct param *param, const unsigned char *buf,
int buf_len, unsigned char **pkt)
{
if (param->vio->write_packet(param->vio, buf, buf_len))
return -1;
return param->vio->read_packet(param->vio, pkt);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment