X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_api.c;h=c5c63f95cd129ac8a72d8fc310d413971e27c0fd;hp=eebfeb2ef80840c9f2f53bb46b3782413941dcea;hb=991da83d2e2f0ea005124a371a1eee49be826b18;hpb=ffc893b125c6cc9b385a68a357b08ba2cc4e91f6 diff --git a/http_api.c b/http_api.c index eebfeb2..c5c63f9 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); @@ -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)); } @@ -228,6 +230,8 @@ STATUS _http_exit_ex(int status, char *header, char *body, zend_bool send_header { case 301: http_log(HTTP_G(log).redirect, "301-REDIRECT", header); break; case 302: http_log(HTTP_G(log).redirect, "302-REDIRECT", header); break; + case 303: http_log(HTTP_G(log).redirect, "303-REDIRECT", header); break; + case 307: http_log(HTTP_G(log).redirect, "307-REDIRECT", header); break; case 304: http_log(HTTP_G(log).cache, "304-CACHE", header); break; case 405: http_log(HTTP_G(log).allowed_methods, "405-ALLOWED", header); break; default: http_log(NULL, header, body); break;