X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-pq;a=blobdiff_plain;f=src%2Fphp_pqconn.c;h=19ea6f05ebcaebd0abb059d475c7bad802f29128;hp=70e2c82944d9638f1e1edfcd6e5eb5768a92d306;hb=HEAD;hpb=7b61c6f8eb76dc00a5e456ebcaaa2166644ef8ae diff --git a/src/php_pqconn.c b/src/php_pqconn.c index 70e2c82..19ea6f0 100644 --- a/src/php_pqconn.c +++ b/src/php_pqconn.c @@ -495,35 +495,29 @@ static void php_pqconn_object_write_def_auto_conv(void *o, zval *value) static void php_pqconn_object_read_lib_version(void *o, zval *return_value) { char ver[16]; - int v = PQlibVersion(); - if (v < 100000) { - slprintf(ver, sizeof(ver), "%d.%d.%d", v/10000, v/100%100, v%100); - } else { - slprintf(ver, sizeof(ver), "%d.%d", v/10000, v%100); - } + php_pq_version_to_string(PQlibVersion(), ver, sizeof(ver)); RETVAL_STRING(ver); } #endif +#ifdef HAVE_PQPROTOCOLVERSION static void php_pqconn_object_read_protocol_version(void *o, zval *return_value) { php_pqconn_object_t *obj = o; RETVAL_LONG(PQprotocolVersion(obj->intern->conn)); } +#endif +#ifdef HAVE_PQSERVERVERSION static void php_pqconn_object_read_server_version(void *o, zval *return_value) { php_pqconn_object_t *obj = o; char ver[16]; - int v = PQserverVersion(obj->intern->conn); - if (v < 100000) { - slprintf(ver, sizeof(ver), "%d.%d.%d", v/10000, v/100%100, v%100); - } else { - slprintf(ver, sizeof(ver), "%d.%d", v/10000, v%100); - } + php_pq_version_to_string(PQserverVersion(obj->intern->conn), ver, sizeof(ver)); RETVAL_STRING(ver); } +#endif static ZEND_RESULT_CODE php_pqconn_update_socket(zval *zobj, php_pqconn_object_t *obj) { @@ -2166,18 +2160,22 @@ PHP_MINIT_FUNCTION(pqconn) ph.write = NULL; #ifdef HAVE_PQLIBVERSION - zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("libraryVersion"), ZEND_ACC_PUBLIC); + zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("libraryVersion"), ZEND_ACC_PUBLIC|ZEND_ACC_READONLY); ph.read = php_pqconn_object_read_lib_version; zend_hash_str_add_mem(&php_pqconn_object_prophandlers, ZEND_STRL("libraryVersion"), (void *) &ph, sizeof(ph)); #endif - zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("protocolVersion"), ZEND_ACC_PUBLIC); +#ifdef HAVE_PQPROTOCOLVERSION + zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("protocolVersion"), ZEND_ACC_PUBLIC|ZEND_ACC_READONLY); ph.read = php_pqconn_object_read_protocol_version; zend_hash_str_add_mem(&php_pqconn_object_prophandlers, ZEND_STRL("protocolVersion"), (void *) &ph, sizeof(ph)); +#endif - zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("serverVersion"), ZEND_ACC_PUBLIC); +#ifdef HAVE_PQSERVERVERSION + zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("serverVersion"), ZEND_ACC_PUBLIC|ZEND_ACC_READONLY); ph.read = php_pqconn_object_read_server_version; zend_hash_str_add_mem(&php_pqconn_object_prophandlers, ZEND_STRL("serverVersion"), (void *) &ph, sizeof(ph)); +#endif zend_declare_class_constant_long(php_pqconn_class_entry, ZEND_STRL("OK"), CONNECTION_OK); zend_declare_class_constant_long(php_pqconn_class_entry, ZEND_STRL("BAD"), CONNECTION_BAD);