projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
- move the chunked decoder to the encoding_api
[m6w6/ext-http]
/
http_send_api.c
diff --git
a/http_send_api.c
b/http_send_api.c
index 49c0aeda06407d0153eabd6f4fbcb3b19b72024b..0c4306f86afd130eac668d076423f58cdc3f7ed8 100644
(file)
--- a/
http_send_api.c
+++ b/
http_send_api.c
@@
-156,8
+156,8
@@
PHP_HTTP_API STATUS _http_send_header_ex(const char *name, size_t name_len, cons
char *header = emalloc(header_len + 1);
header[header_len] = '\0';
char *header = emalloc(header_len + 1);
header[header_len] = '\0';
- snprintf(header, header_len, "%s: %s", name, value);
- ret = http_send_header_string_ex(header, replace);
+
header_len =
snprintf(header, header_len, "%s: %s", name, value);
+ ret = http_send_header_string_ex(header,
header_len,
replace);
if (sent_header) {
*sent_header = header;
} else {
if (sent_header) {
*sent_header = header;
} else {
@@
-168,10
+168,10
@@
PHP_HTTP_API STATUS _http_send_header_ex(const char *name, size_t name_len, cons
/* }}} */
/* {{{ STATUS http_send_status_header(int, char *) */
/* }}} */
/* {{{ STATUS http_send_status_header(int, char *) */
-PHP_HTTP_API STATUS _http_send_status_header_ex(int status, const char *header, zend_bool replace TSRMLS_DC)
+PHP_HTTP_API STATUS _http_send_status_header_ex(int status, const char *header,
size_t header_len,
zend_bool replace TSRMLS_DC)
{
STATUS ret;
{
STATUS ret;
- sapi_header_line h = {(char *) header, header
? strlen(header) : 0
, status};
+ sapi_header_line h = {(char *) header, header
_len
, status};
if (SUCCESS != (ret = sapi_header_op(replace ? SAPI_HEADER_REPLACE : SAPI_HEADER_ADD, &h TSRMLS_CC))) {
http_error_ex(HE_WARNING, HTTP_E_HEADER, "Could not send header: %s (%d)", header, status);
}
if (SUCCESS != (ret = sapi_header_op(replace ? SAPI_HEADER_REPLACE : SAPI_HEADER_ADD, &h TSRMLS_CC))) {
http_error_ex(HE_WARNING, HTTP_E_HEADER, "Could not send header: %s (%d)", header, status);
}
@@
-211,12
+211,10
@@
PHP_HTTP_API STATUS _http_send_etag_ex(const char *etag, size_t etag_len, char *
}
/* remember */
}
/* remember */
- STR_FREE(HTTP_G(send).unquoted_etag);
- HTTP_G(send).unquoted_etag = estrdup(etag);
+ STR_SET(HTTP_G(send).unquoted_etag, estrndup(etag, etag_len));
- etag_header = ecalloc(1, sizeof("ETag: \"\"") + etag_len);
- sprintf(etag_header, "ETag: \"%s\"", etag);
- status = http_send_header_string(etag_header);
+ etag_len = spprintf(&etag_header, 0, "ETag: \"%s\"", etag);
+ status = http_send_header_string_ex(etag_header, etag_len, 1);
if (sent_header) {
*sent_header = etag_header;
if (sent_header) {
*sent_header = etag_header;
@@
-231,10
+229,7
@@
PHP_HTTP_API STATUS _http_send_etag_ex(const char *etag, size_t etag_len, char *
/* {{{ STATUS http_send_content_type(char *, size_t) */
PHP_HTTP_API STATUS _http_send_content_type(const char *content_type, size_t ct_len TSRMLS_DC)
{
/* {{{ STATUS http_send_content_type(char *, size_t) */
PHP_HTTP_API STATUS _http_send_content_type(const char *content_type, size_t ct_len TSRMLS_DC)
{
- if (!strchr(content_type, '/')) {
- http_error_ex(HE_WARNING, HTTP_E_INVALID_PARAM, "Content-Type '%s' doesn't seem to consist of a primary and a secondary part", content_type);
- return FAILURE;
- }
+ HTTP_CHECK_CONTENT_TYPE(content_type, return FAILURE);
/* remember for multiple ranges */
STR_FREE(HTTP_G(send).content_type);
/* remember for multiple ranges */
STR_FREE(HTTP_G(send).content_type);
@@
-388,7
+383,7
@@
PHP_HTTP_API STATUS _http_send_ex(const void *data_ptr, size_t data_size, http_s
if (etag = http_etag(data_ptr, data_size, data_mode)) {
char *sent_header = NULL;
if (etag = http_etag(data_ptr, data_size, data_mode)) {
char *sent_header = NULL;
- http_send_etag_ex(etag,
32
, &sent_header);
+ http_send_etag_ex(etag,
strlen(etag)
, &sent_header);
if (http_match_etag("HTTP_IF_NONE_MATCH", etag)) {
return http_exit_ex(304, sent_header, NULL, 0);
} else {
if (http_match_etag("HTTP_IF_NONE_MATCH", etag)) {
return http_exit_ex(304, sent_header, NULL, 0);
} else {