X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_send_api.c;h=d8bc1a0e57f7a0d1277c72b21080f0f7e9940252;hp=319c7d6285a8c9da350e12a509c0bf8844a3f06f;hb=ad5f896b03adaa073134a00108a9cdf00720673a;hpb=b6e5882dda739c665464331514ea7a54f568d814 diff --git a/http_send_api.c b/http_send_api.c index 319c7d6..d8bc1a0 100644 --- a/http_send_api.c +++ b/http_send_api.c @@ -34,12 +34,24 @@ static inline void _http_flush(void *nothing, const char *data, size_t data_len /* we really only need to flush when throttling is enabled, because we push the data as fast as possible anyway if not */ if (HTTP_G->send.throttle_delay >= HTTP_DIFFSEC) { +#if PHP_VERSION_ID < 50399 if (OG(ob_nesting_level)) { php_end_ob_buffer(1, 1 TSRMLS_CC); } if (!OG(implicit_flush)) { sapi_flush(TSRMLS_C); } +#else + int ob_level; + + if ((php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_GET_LEVEL, &ob_level TSRMLS_CC) == SUCCESS) && ob_level > 0) { + php_output_discard(TSRMLS_C); + } + + if (php_output_get_status(TSRMLS_C) & PHP_OUTPUT_IMPLICITFLUSH) { + sapi_flush(TSRMLS_C); + } +#endif http_sleep(HTTP_G->send.throttle_delay); } }