projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
- create another copy of the header zval
[m6w6/ext-http]
/
http_api.c
diff --git
a/http_api.c
b/http_api.c
index 0bb6cf22a9b6ae65a7f089cf902f64a406d2d44d..a5ecb12ec66fbdae50e81974a144c526ddb841b0 100644
(file)
--- a/
http_api.c
+++ b/
http_api.c
@@
-21,7
+21,6
@@
#include "SAPI.h"
#include "php_output.h"
#include "ext/standard/url.h"
#include "SAPI.h"
#include "php_output.h"
#include "ext/standard/url.h"
-#include "ext/standard/head.h"
#include "php_http_api.h"
#include "php_http_send_api.h"
#include "php_http_api.h"
#include "php_http_send_api.h"
@@
-56,7
+55,7
@@
PHP_HTTP_API long _http_support(long feature)
#ifdef HTTP_HAVE_MAGIC
support |= HTTP_SUPPORT_MAGICMIME;
#endif
#ifdef HTTP_HAVE_MAGIC
support |= HTTP_SUPPORT_MAGICMIME;
#endif
-#if
defined(HTTP_HAVE_ZLIB) || defined(HAVE_ZLIB)
+#if
def HTTP_HAVE_ZLIB
support |= HTTP_SUPPORT_ENCODINGS;
#endif
support |= HTTP_SUPPORT_ENCODINGS;
#endif
@@
-211,6
+210,8
@@
void _http_log_ex(char *file, const char *ident, const char *message TSRMLS_DC)
struct tm nowtm;
char datetime[128];
struct tm nowtm;
char datetime[128];
+ HTTP_CHECK_OPEN_BASEDIR(file, return);
+
time(&now);
strftime(datetime, sizeof(datetime), "%Y-%m-%d %H:%M:%S", php_localtime_r(&now, &nowtm));
time(&now);
strftime(datetime, sizeof(datetime), "%Y-%m-%d %H:%M:%S", php_localtime_r(&now, &nowtm));
@@
-248,7
+249,7
@@
STATUS _http_exit_ex(int status, char *header, char *body, zend_bool send_header
}
php_end_ob_buffers(0 TSRMLS_CC);
}
php_end_ob_buffers(0 TSRMLS_CC);
- if (
php_header(TSRMLS_C
) && body) {
+ if (
(SUCCESS == sapi_send_headers(TSRMLS_C)
) && body) {
PHPWRITE(body, strlen(body));
}
PHPWRITE(body, strlen(body));
}
@@
-283,7
+284,7
@@
STATUS _http_check_method_ex(const char *method, const char *methods)
if ( (found = strstr(methods, method)) &&
(found == method || !isalpha(found[-1])) &&
if ( (found = strstr(methods, method)) &&
(found == method || !isalpha(found[-1])) &&
- (
!isalpha(found[strlen(method) + 1
]))) {
+ (
strlen(found) >= strlen(method) && !isalpha(found[strlen(method)
]))) {
return SUCCESS;
}
return FAILURE;
return SUCCESS;
}
return FAILURE;
@@
-296,10
+297,10
@@
PHP_HTTP_API zval *_http_get_server_var_ex(const char *key, size_t key_size, zen
zval **hsv;
zval **var;
zval **hsv;
zval **var;
- if (
SUCCESS != zend_hash_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **) &hsv
)) {
+ if (
(SUCCESS != zend_hash_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **) &hsv)) || (Z_TYPE_PP(hsv) != IS_ARRAY
)) {
return NULL;
}
return NULL;
}
- if (
SUCCESS != zend_hash_find(Z_ARRVAL_PP(hsv), (char *) key, key_size, (void **) &var
)) {
+ if (
(SUCCESS != zend_hash_find(Z_ARRVAL_PP(hsv), (char *) key, key_size, (void **) &var)) || (Z_TYPE_PP(var) != IS_STRING
)) {
return NULL;
}
if (check && !(Z_STRVAL_PP(var) && Z_STRLEN_PP(var))) {
return NULL;
}
if (check && !(Z_STRVAL_PP(var) && Z_STRLEN_PP(var))) {