mnd_pefree(conn->passwd, pers);
conn->passwd = NULL;
}
+ if (conn->connect_or_select_db) {
+ DBG_INF("Freeing connect_or_select_db");
+ mnd_pefree(conn->connect_or_select_db, pers);
+ conn->connect_or_select_db = NULL;
+ }
if (conn->unix_socket) {
DBG_INF("Freeing unix_socket");
mnd_pefree(conn->unix_socket, pers);
} else {
conn->scheme = transport;
}
+ conn->scheme_len = strlen(conn->scheme);
DBG_INF(conn->scheme);
conn->net.stream = php_stream_xport_create(conn->scheme, transport_len, streams_options, streams_flags,
hashed_details,
CONN_SET_STATE(conn, CONN_READY);
conn->user = pestrdup(user, conn->persistent);
+ conn->user_len = strlen(conn->user);
conn->passwd = pestrndup(passwd, passwd_len, conn->persistent);
+ conn->passwd_len = passwd_len;
conn->port = port;
+ conn->connect_or_select_db = pestrndup(db, db_len, conn->persistent);
+ conn->connect_or_select_db_len = db_len;
if (!unix_socket) {
char *p;
conn->host = pestrdup(host, conn->persistent);
+ conn->host_len = strlen(conn->host);
spprintf(&p, 0, "%s via TCP/IP", conn->host);
if (conn->persistent) {
conn->host_info = pestrdup(p, 1);
}
} else {
conn->unix_socket = pestrdup(socket, conn->persistent);
+ conn->unix_socket_len = strlen(conn->unix_socket);
conn->host_info = pestrdup("Localhost via UNIX socket", conn->persistent);
}
conn->client_flag = auth_packet->client_flags;
a protocol of giving back -1. Thus we have to follow it :(
*/
SET_ERROR_AFF_ROWS(conn);
-
+ if (ret == PASS) {
+ if (conn->connect_or_select_db) {
+ pefree(conn->connect_or_select_db, conn->persistent);
+ }
+ conn->connect_or_select_db = pestrndup(db, db_len, conn->persistent);
+ }
DBG_RETURN(ret);
}
/* }}} */
/* Information related */
char *host;
+ unsigned int host_len;
char *unix_socket;
+ unsigned int unix_socket_len;
char *user;
+ unsigned int user_len;
char *passwd;
- unsigned int *passwd_len;
+ unsigned int passwd_len;
char *scheme;
+ unsigned int scheme_len;
uint64_t thread_id;
char *server_version;
char *host_info;
unsigned char *scramble;
const MYSQLND_CHARSET *charset;
const MYSQLND_CHARSET *greet_charset;
+ char *connect_or_select_db;
+ unsigned int connect_or_select_db_len;
MYSQLND_INFILE infile;
unsigned int protocol_version;
unsigned long max_packet_size;