X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-pq;a=blobdiff_plain;f=src%2Fphp_pqconn.c;h=dedd1f4c4a41701e59ce6ed05a820dbd9eeb7a8f;hp=2588d42f0fb09d9739f072bce180503b7630bb70;hb=6dc0521ba88d2dbf4ac0ca773b0726ebc2b998a7;hpb=280761d6fe87cb4ee24eb750398af80dfb96781f diff --git a/src/php_pqconn.c b/src/php_pqconn.c index 2588d42..dedd1f4 100644 --- a/src/php_pqconn.c +++ b/src/php_pqconn.c @@ -541,7 +541,12 @@ php_resource_factory_ops_t *php_pqconn_get_resource_factory_ops(void) static void php_pqconn_wakeup(php_persistent_handle_factory_t *f, void **handle TSRMLS_DC) { - // FIXME: ping server + PGresult *res = PQexec(*handle, ""); + PHP_PQclear(res); + + if (CONNECTION_OK != PQstatus(*handle)) { + PQreset(*handle); + } } static inline PGresult *unlisten(PGconn *conn, const char *channel_str, size_t channel_len TSRMLS_DC)