diff options
| author | Andrey Hristov <andrey@php.net> | 2008-02-04 17:55:06 +0000 |
|---|---|---|
| committer | Andrey Hristov <andrey@php.net> | 2008-02-04 17:55:06 +0000 |
| commit | 2b6e11b5558c6ef5f187fe7845bc0ef6a2ba9ed9 (patch) | |
| tree | 898df107d93ccbfb054813eb2f749caffd4ea188 /ext/mysqlnd/mysqlnd.c | |
| parent | 2d5e8a1e558794e68c23216a41bf2396513ce77b (diff) | |
| download | php-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.c | 27 |
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; } |
