summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd.c
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2008-02-04 17:55:06 +0000
committerAndrey Hristov <andrey@php.net>2008-02-04 17:55:06 +0000
commit2b6e11b5558c6ef5f187fe7845bc0ef6a2ba9ed9 (patch)
tree898df107d93ccbfb054813eb2f749caffd4ea188 /ext/mysqlnd/mysqlnd.c
parent2d5e8a1e558794e68c23216a41bf2396513ce77b (diff)
downloadphp-git-2b6e11b5558c6ef5f187fe7845bc0ef6a2ba9ed9.tar.gz
Simplify unique string generation and plug a leak.
Diffstat (limited to 'ext/mysqlnd/mysqlnd.c')
-rw-r--r--ext/mysqlnd/mysqlnd.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c
index d1703a252a..e40de9fa66 100644
--- a/ext/mysqlnd/mysqlnd.c
+++ b/ext/mysqlnd/mysqlnd.c
@@ -28,8 +28,6 @@
#include "mysqlnd_charset.h"
#include "mysqlnd_debug.h"
#include "mysqlnd_block_alloc.h"
-#include "ext/standard/basic_functions.h"
-#include "ext/standard/php_lcg.h"
/* the server doesn't support 4byte utf8, but let's make it forward compatible */
#define MYSQLND_MAX_ALLOWED_USER_LEN 256 /* 64 char * 4byte */
@@ -544,15 +542,6 @@ PHPAPI MYSQLND *mysqlnd_connect(MYSQLND *conn,
}
DBG_INF_FMT("transport=%p", transport);
- if (conn->persistent) {
- struct timeval tv;
- gettimeofday(&tv, NULL);
- /* We should generate something unique */
- hashed_details_len = spprintf(&hashed_details, 0, "%s@%s@%s@%ld@%ld@%0.8F",
- transport, user, db, tv.tv_sec, (long int)tv.tv_usec,
- php_combined_lcg(TSRMLS_C) * 10);
- DBG_INF_FMT("hashed_details=%s", hashed_details);
- }
PACKET_INIT_ALLOCA(greet_packet, PROT_GREET_PACKET);
PACKET_INIT(auth_packet, PROT_AUTH_PACKET, php_mysql_packet_auth *);
@@ -563,6 +552,19 @@ PHPAPI MYSQLND *mysqlnd_connect(MYSQLND *conn,
self_alloced = TRUE;
}
+ if (conn->persistent) {
+#if 0
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ /* We should generate something unique */
+ hashed_details_len = spprintf(&hashed_details, 0, "%s@%s@%s@%ld@%ld@%0.8F",
+ transport, user, db, tv.tv_sec, (long int)tv.tv_usec,
+ php_combined_lcg(TSRMLS_C) * 10);
+#endif
+ hashed_details_len = spprintf(&hashed_details, 0, "%p", conn);
+ DBG_INF_FMT("hashed_details=%s", hashed_details);
+ }
+
CONN_SET_STATE(conn, CONN_ALLOCED);
conn->net.packet_no = 0;
@@ -584,6 +586,9 @@ PHPAPI MYSQLND *mysqlnd_connect(MYSQLND *conn,
DBG_INF_FMT("stream=%p", conn->net.stream);
if (errstr || !conn->net.stream) {
+ if (hashed_details) {
+ mnd_efree(hashed_details);
+ }
goto err;
}