projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Merge branch 'master' into phpng
[m6w6/ext-http]
/
php_http_message_body.c
diff --git
a/php_http_message_body.c
b/php_http_message_body.c
index 6c677bd6f4af5aafdb5a7a1b4ffb7cc494094554..d629ae53ad5d137eca73be4c5fc7f51ce538e916 100644
(file)
--- a/
php_http_message_body.c
+++ b/
php_http_message_body.c
@@
-37,7
+37,7
@@
php_http_message_body_t *php_http_message_body_init(php_http_message_body_t **bo
if (body_ptr && *body_ptr) {
body = *body_ptr;
if (body_ptr && *body_ptr) {
body = *body_ptr;
-
++body->refcount
;
+
php_http_message_body_addref(body)
;
return body;
}
return body;
}
@@
-93,7
+93,6
@@
void php_http_message_body_free(php_http_message_body_t **body_ptr)
php_http_message_body_t *body = *body_ptr;
if (!--body->refcount) {
php_http_message_body_t *body = *body_ptr;
if (!--body->refcount) {
- /* NOFIXME: shows leakinfo in DEBUG mode */
zend_list_delete(body->res);
PTR_FREE(body->boundary);
efree(body);
zend_list_delete(body->res);
PTR_FREE(body->boundary);
efree(body);
@@
-113,7
+112,7
@@
const char *php_http_message_body_boundary(php_http_message_body_t *body)
if (!body->boundary) {
union { double dbl; int num[2]; } data;
if (!body->boundary) {
union { double dbl; int num[2]; } data;
- data.dbl = php_combined_lcg(
TSRMLS_C
);
+ data.dbl = php_combined_lcg();
spprintf(&body->boundary, 0, "%x.%x", data.num[0], data.num[1]);
}
return body->boundary;
spprintf(&body->boundary, 0, "%x.%x", data.num[0], data.num[1]);
}
return body->boundary;
@@
-121,24
+120,28
@@
const char *php_http_message_body_boundary(php_http_message_body_t *body)
char *php_http_message_body_etag(php_http_message_body_t *body)
{
char *php_http_message_body_etag(php_http_message_body_t *body)
{
- const php_stream_statbuf *ssb = php_http_message_body_stat(body);
+ php_http_etag_t *etag;
+ php_stream *s = php_http_message_body_stream(body);
/* real file or temp buffer ? */
/* real file or temp buffer ? */
- if (s
sb->sb.st_mtime
) {
-
char *etag
;
+ if (s
->ops != &php_stream_temp_ops && s->ops != &php_stream_memory_ops
) {
+
php_stream_stat(php_http_message_body_stream(body), &body->ssb)
;
- spprintf(&etag, 0, "%lx-%lx-%lx", ssb->sb.st_ino, ssb->sb.st_mtime, ssb->sb.st_size);
- return etag;
- } else {
- php_http_etag_t *etag = php_http_etag_init(PHP_HTTP_G->env.etag_mode);
+ if (body->ssb.sb.st_mtime) {
+ char *etag;
- if (etag) {
- php_http_message_body_to_callback(body, (php_http_pass_callback_t) php_http_etag_update, etag, 0, 0);
- return php_http_etag_finish(etag);
- } else {
- return NULL;
+ spprintf(&etag, 0, "%lx-%lx-%lx", body->ssb.sb.st_ino, body->ssb.sb.st_mtime, body->ssb.sb.st_size);
+ return etag;
}
}
}
}
+
+ /* content based */
+ if ((etag = php_http_etag_init(PHP_HTTP_G->env.etag_mode))) {
+ php_http_message_body_to_callback(body, (php_http_pass_callback_t) php_http_etag_update, etag, 0, 0);
+ return php_http_etag_finish(etag);
+ }
+
+ return NULL;
}
zend_string *php_http_message_body_to_string(php_http_message_body_t *body, off_t offset, size_t forlen)
}
zend_string *php_http_message_body_to_string(php_http_message_body_t *body, off_t offset, size_t forlen)
@@
-212,7
+215,7
@@
size_t php_http_message_body_append(php_http_message_body_t *body, const char *b
written = php_stream_write(s, buf, len);
if (written != len) {
written = php_stream_write(s, buf, len);
if (written != len) {
- php_error_docref(NULL
TSRMLS_CC
, E_WARNING, "Failed to append %zu bytes to body; wrote %zu", len, written);
+ php_error_docref(NULL, E_WARNING, "Failed to append %zu bytes to body; wrote %zu", len, written);
}
return len;
}
return len;
@@
-554,7
+557,7
@@
php_http_message_body_object_t *php_http_message_body_object_new_ex(zend_class_e
{
php_http_message_body_object_t *o;
{
php_http_message_body_object_t *o;
- o = ecalloc(1, sizeof(
php_http_message_body_object_t) + (ce->default_properties_count - 1) * sizeof(zval
));
+ o = ecalloc(1, sizeof(
*o) + zend_object_properties_size(ce
));
zend_object_std_init(&o->zo, php_http_message_body_class_entry);
object_properties_init(&o->zo, ce);
zend_object_std_init(&o->zo, php_http_message_body_class_entry);
object_properties_init(&o->zo, ce);
@@
-584,7
+587,7
@@
void php_http_message_body_object_free(zend_object *object)
php_http_message_body_object_t *obj = PHP_HTTP_OBJ(object, NULL);
php_http_message_body_free(&obj->body);
php_http_message_body_object_t *obj = PHP_HTTP_OBJ(object, NULL);
php_http_message_body_free(&obj->body);
- zend_object_std_dtor(object
TSRMLS_CC
);
+ zend_object_std_dtor(object);
}
#define PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj) \
}
#define PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj) \
@@
-690,7
+693,7
@@
PHP_METHOD(HttpMessageBody, toCallback)
php_http_message_body_to_callback(obj->body, php_http_pass_fcall_callback, &fcd, offset, forlen);
zend_fcall_info_args_clear(&fcd.fci, 1);
zval_ptr_dtor(&fcd.fcz);
php_http_message_body_to_callback(obj->body, php_http_pass_fcall_callback, &fcd, offset, forlen);
zend_fcall_info_args_clear(&fcd.fci, 1);
zval_ptr_dtor(&fcd.fcz);
- RETURN_ZVAL
_FAST(getThis()
);
+ RETURN_ZVAL
(getThis(), 1, 0
);
}
}
}
}
@@
-739,7
+742,7
@@
PHP_METHOD(HttpMessageBody, append)
php_http_expect(len == php_http_message_body_append(obj->body, str, len), runtime, return);
php_http_expect(len == php_http_message_body_append(obj->body, str, len), runtime, return);
- RETURN_ZVAL
_FAST(getThis()
);
+ RETURN_ZVAL
(getThis(), 1, 0
);
}
ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessageBody_addForm, 0, 0, 0)
}
ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessageBody_addForm, 0, 0, 0)
@@
-758,7
+761,7
@@
PHP_METHOD(HttpMessageBody, addForm)
php_http_expect(SUCCESS == php_http_message_body_add_form(obj->body, fields, files), runtime, return);
php_http_expect(SUCCESS == php_http_message_body_add_form(obj->body, fields, files), runtime, return);
- RETURN_ZVAL
_FAST(getThis()
);
+ RETURN_ZVAL
(getThis(), 1, 0
);
}
ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessageBody_addPart, 0, 0, 1)
}
ZEND_BEGIN_ARG_INFO_EX(ai_HttpMessageBody_addPart, 0, 0, 1)
@@
-783,7
+786,7
@@
PHP_METHOD(HttpMessageBody, addPart)
zend_restore_error_handling(&zeh);
if (!EG(exception)) {
zend_restore_error_handling(&zeh);
if (!EG(exception)) {
- RETURN_ZVAL
_FAST(getThis()
);
+ RETURN_ZVAL
(getThis(), 1, 0
);
}
}
}
}
@@
-813,7
+816,7
@@
PHP_METHOD(HttpMessageBody, stat)
char *field_str = NULL;
size_t field_len = 0;
char *field_str = NULL;
size_t field_len = 0;
- if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS()
TSRMLS_CC
, "|s", &field_str, &field_len)) {
+ if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "|s", &field_str, &field_len)) {
php_http_message_body_object_t *obj = PHP_HTTP_OBJ(NULL, getThis());
const php_stream_statbuf *sb;
php_http_message_body_object_t *obj = PHP_HTTP_OBJ(NULL, getThis());
const php_stream_statbuf *sb;