summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd_wireprotocol.c
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2010-04-15 11:01:30 +0000
committerAndrey Hristov <andrey@php.net>2010-04-15 11:01:30 +0000
commitdd9fc198ce446f7edd95707524209baa9a74bfd6 (patch)
treedadb520eb0e0c213069bc8ccd32cc5cf010084cc /ext/mysqlnd/mysqlnd_wireprotocol.c
parent2404c4c84f431ec5b1106faa99056533739c3854 (diff)
downloadphp-git-dd9fc198ce446f7edd95707524209baa9a74bfd6.tar.gz
Fix for bug#49234 method not found ssl_set
Patch was tested and compiles on Windows. (Thanks Kalle)
Diffstat (limited to 'ext/mysqlnd/mysqlnd_wireprotocol.c')
-rw-r--r--ext/mysqlnd/mysqlnd_wireprotocol.c48
1 files changed, 25 insertions, 23 deletions
diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c
index 61036bc306..6145e32b3d 100644
--- a/ext/mysqlnd/mysqlnd_wireprotocol.c
+++ b/ext/mysqlnd/mysqlnd_wireprotocol.c
@@ -458,31 +458,33 @@ size_t php_mysqlnd_auth_write(void *_packet, MYSQLND *conn TSRMLS_DC)
memset(p, 0, 23); /* filler */
p+= 23;
- len= strlen(packet->user);
- memcpy(p, packet->user, len);
- p+= len;
- *p++ = '\0';
-
- /* copy scrambled pass*/
- if (packet->password && packet->password[0]) {
- /* In 4.1 we use CLIENT_SECURE_CONNECTION and thus the len of the buf should be passed */
- int1store(p, 20);
- p++;
- php_mysqlnd_scramble((zend_uchar*)p, packet->server_scramble_buf, (zend_uchar*)packet->password);
- p+= 20;
- } else {
- /* Zero length */
- int1store(p, 0);
- p++;
- }
+ if (!packet->send_half_packet) {
+ len = strlen(packet->user);
+ memcpy(p, packet->user, len);
+ p+= len;
+ *p++ = '\0';
+
+ /* copy scrambled pass*/
+ if (packet->password && packet->password[0]) {
+ /* In 4.1 we use CLIENT_SECURE_CONNECTION and thus the len of the buf should be passed */
+ int1store(p, 20);
+ p++;
+ php_mysqlnd_scramble((zend_uchar*)p, packet->server_scramble_buf, (zend_uchar*)packet->password);
+ p+= 20;
+ } else {
+ /* Zero length */
+ int1store(p, 0);
+ p++;
+ }
- if (packet->db) {
- memcpy(p, packet->db, packet->db_len);
- p+= packet->db_len;
- *p++= '\0';
+ if (packet->db) {
+ memcpy(p, packet->db, packet->db_len);
+ p+= packet->db_len;
+ *p++= '\0';
+ }
+ /* Handle CLIENT_CONNECT_WITH_DB */
+ /* no \0 for no DB */
}
- /* Handle CLIENT_CONNECT_WITH_DB */
- /* no \0 for no DB */
DBG_RETURN(conn->net->m.send(conn, buffer, p - buffer - MYSQLND_HEADER_SIZE TSRMLS_CC));
}