From: Michael Wallner Date: Sat, 13 Sep 2014 06:56:29 +0000 (+0200) Subject: ping server and eventually reset conn on wakeup X-Git-Tag: v0.5.0~26 X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-pq;a=commitdiff_plain;h=6dc0521ba88d2dbf4ac0ca773b0726ebc2b998a7;ds=sidebyside ping server and eventually reset conn on wakeup --- 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)