]> granicus.if.org Git - php/commitdiff
Lay foundations for named pipe support in mysqlnd
authorAndrey Hristov <andrey@php.net>
Mon, 9 Aug 2010 17:01:57 +0000 (17:01 +0000)
committerAndrey Hristov <andrey@php.net>
Mon, 9 Aug 2010 17:01:57 +0000 (17:01 +0000)
ext/mysqlnd/mysqlnd.c
ext/mysqlnd/mysqlnd_enum_n_def.h
ext/mysqlnd/mysqlnd_structs.h

index a192746bd51cd84e6721190a1546aedcdb00d152..9d4d2192045f490ad972819661ac41e40463a25c 100644 (file)
@@ -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:
index 48993f747348b0835f713d288c957068c52394ed..c3a094ca2a4b4f6df15d4e60b663a66b0d7eb684 100644 (file)
@@ -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
 {
index 450047202ab8b80c37bd7d2377943433295f5b6d..4c3ffdb89246bc9f0f73fd36c26beff3eb5dc6c6 100644 (file)
@@ -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 */