X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_api.c;h=9943cd8f49cf55a516ff9bb3f49edd16b017bcef;hp=71112618763859b1e68722515dc34acf2ec29a20;hb=39feb7a7e30bb4b393a6f76aa2f35d4e9275523e;hpb=9c12b0d0fd94e5c026cc4d7e899cee0b61859d4f diff --git a/http_api.c b/http_api.c index 7111261..9943cd8 100644 --- a/http_api.c +++ b/http_api.c @@ -22,6 +22,7 @@ #include "SAPI.h" #include "ext/standard/url.h" +#include "ext/standard/head.h" #include "php_http.h" #include "php_http_std_defs.h" @@ -175,6 +176,7 @@ void _http_error_ex(long type TSRMLS_DC, long code, const char *format, ...) vspprintf(&message, 0, format, args); zend_throw_exception(http_exception_get_for_code(code), message, code TSRMLS_CC); + efree(message); } else #endif php_verror(NULL, "", type, format, args TSRMLS_CC); @@ -193,7 +195,7 @@ void _http_log_ex(char *file, const char *ident, const char *message TSRMLS_DC) strftime(datetime, sizeof(datetime), "%Y-%m-%d %H:%M:%S", php_localtime_r(&now, &nowtm)); #define HTTP_LOG_WRITE(file, type, msg) \ - if (file && strlen(file)) { \ + if (file && *file) { \ php_stream *log = php_stream_open_wrapper(file, "ab", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL); \ \ if (log) { \ @@ -220,7 +222,7 @@ STATUS _http_exit_ex(int status, char *header, char *body, zend_bool send_header } } - if (body) { + if (php_header(TSRMLS_C) && body) { PHPWRITE(body, strlen(body)); }