From: Andrey Hristov Date: Mon, 9 Aug 2010 17:01:57 +0000 (+0000) Subject: Lay foundations for named pipe support in mysqlnd X-Git-Tag: php-5.3.4RC1~378 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f8c26805091a68b3bbc50e0e30b17a1a45b58bb6;p=php Lay foundations for named pipe support in mysqlnd --- diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c index a192746bd5..9d4d219204 100644 --- a/ext/mysqlnd/mysqlnd.c +++ b/ext/mysqlnd/mysqlnd.c @@ -2116,10 +2116,17 @@ MYSQLND_METHOD(mysqlnd_conn, set_client_option)(MYSQLND * const conn, DBG_INF_FMT("charset=%s", conn->options.charset_name); break; } + case MYSQL_OPT_NAMED_PIPE: + conn->options.protocol = MYSQL_PROTOCOL_PIPE; + break; + case MYSQL_OPT_PROTOCOL: + if (*(unsigned int*) value < MYSQL_PROTOCOL_LAST) { + conn->options.protocol = *(unsigned int*) value; + } + break; #ifdef WHEN_SUPPORTED_BY_MYSQLI case MYSQL_SET_CHARSET_DIR: case MYSQL_OPT_RECONNECT: - case MYSQL_OPT_PROTOCOL: /* we don't need external character sets, all character sets are compiled in. For compatibility we just ignore this setting. Same for protocol, we don't support old protocol */ @@ -2131,7 +2138,6 @@ MYSQLND_METHOD(mysqlnd_conn, set_client_option)(MYSQLND * const conn, #endif #ifdef WHEN_SUPPORTED_BY_MYSQLI - case MYSQL_OPT_NAMED_PIPE: case MYSQL_SHARED_MEMORY_BASE_NAME: case MYSQL_OPT_USE_RESULT: case MYSQL_SECURE_AUTH: diff --git a/ext/mysqlnd/mysqlnd_enum_n_def.h b/ext/mysqlnd/mysqlnd_enum_n_def.h index 48993f7473..c3a094ca2a 100644 --- a/ext/mysqlnd/mysqlnd_enum_n_def.h +++ b/ext/mysqlnd/mysqlnd_enum_n_def.h @@ -168,6 +168,15 @@ typedef enum mysqlnd_option MYSQLND_OPT_SSL_PASSPHRASE = 209 } enum_mysqlnd_option; +typedef enum mysqlnd_protocol_type +{ + MYSQL_PROTOCOL_DEFAULT = 0, + MYSQL_PROTOCOL_TCP, /* all, supported */ + MYSQL_PROTOCOL_SOCKET, /* unix, supported */ + MYSQL_PROTOCOL_PIPE, /* win32, not-supported */ + MYSQL_PROTOCOL_MEMORY, /* win32, not-supported */ + MYSQL_PROTOCOL_LAST +} enum_mysqlnd_protocol_type; typedef enum mysqlnd_field_types { diff --git a/ext/mysqlnd/mysqlnd_structs.h b/ext/mysqlnd/mysqlnd_structs.h index 450047202a..4c3ffdb892 100644 --- a/ext/mysqlnd/mysqlnd_structs.h +++ b/ext/mysqlnd/mysqlnd_structs.h @@ -161,7 +161,7 @@ typedef struct st_mysqlnd_options char * unused3; char * unused4; char * unused5; - zend_bool unused6; + enum_mysqlnd_protocol_type protocol; char *charset_name; /* maximum allowed packet size for communication */