+#ifdef HTTP_HAVE_PERSISTENT_HANDLES
+ {
+ phpstr s;
+ HashTable *ht;
+ HashPosition pos1, pos2;
+ HashKey key1 = initHashKey(0), key2 = initHashKey(0);
+ zval **val1, **val2;
+
+ if ((ht = http_persistent_handle_statall()) && zend_hash_num_elements(ht)) {
+ phpstr_init(&s);
+
+ FOREACH_HASH_KEYVAL(pos1, ht, key1, val1) {
+ phpstr_append(&s, key1.str, key1.len-1);
+ phpstr_appends(&s, " (");
+ if (zend_hash_num_elements(Z_ARRVAL_PP(val1))) {
+ FOREACH_KEYVAL(pos2, *val1, key2, val2) {
+ phpstr_append(&s, key2.str, key2.len-1);
+ phpstr_appendf(&s, ":%ld, ", Z_LVAL_PP(val2));
+ }
+ PHPSTR_LEN(&s) -= 2;
+ } else {
+ phpstr_appends(&s, "0");
+ }
+ phpstr_appends(&s, "), ");
+ }
+ zend_hash_destroy(ht);
+ FREE_HASHTABLE(ht);
+
+ PHPSTR_LEN(&s) -= 2; /* get rid of last ", " */
+ phpstr_fix(&s);
+
+ php_info_print_table_row(2, "Persistent Handles", PHPSTR_VAL(&s));
+ phpstr_dtor(&s);
+ } else {
+ php_info_print_table_row(2, "Persistent Handles", "none");
+ }
+ }
+#else
+ php_info_print_table_row(2, "Persistent Handles", "disabled");
+#endif