efree(obj);
}
+#define PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj) \
+ do { \
+ if (!obj->body) { \
+ obj->body = php_http_message_body_init(NULL, NULL TSRMLS_CC); \
+ } \
+ } while(0)
+
PHP_METHOD(HttpMessageBody, __construct)
{
php_http_message_body_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
obj->body = php_http_message_body_init(NULL, stream TSRMLS_CC);
}
}
- if (!obj->body) {
- obj->body = php_http_message_body_init(NULL, NULL TSRMLS_CC);
- }
+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj);
}
} end_error_handling();
}
char *str;
size_t len;
+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj);
+
php_http_message_body_to_string(obj->body, &str, &len, 0, 0);
if (str) {
RETURN_STRINGL(str, len, 0);
php_stream *stream;
php_http_message_body_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj);
+
php_stream_from_zval(stream, &zstream);
php_http_message_body_to_stream(obj->body, stream, offset, forlen);
RETURN_TRUE;
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "f|ll", &fcd.fci, &fcd.fcc, &offset, &forlen)) {
php_http_message_body_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj);
+
fcd.fcz = getThis();
Z_ADDREF_P(fcd.fcz);
TSRMLS_SET_CTX(fcd.ts);
if (SUCCESS == zend_parse_parameters_none()) {
php_http_message_body_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj);
+
zend_list_addref(obj->body->stream_id);
RETVAL_RESOURCE(obj->body->stream_id);
}
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &len)) {
php_http_message_body_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj);
+
RETURN_LONG(php_http_message_body_append(obj->body, str, len));
}
RETURN_FALSE;
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|h!h!", &fields, &files)) {
php_http_message_body_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj);
+
RETURN_SUCCESS(php_http_message_body_add_form(obj->body, fields, files));
}
RETURN_FALSE;
php_http_message_body_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
php_http_message_object_t *mobj = zend_object_store_get_object(zobj TSRMLS_CC);
+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj);
+
php_http_message_body_add_part(obj->body, mobj->message);
RETURN_TRUE;
}
{
if (SUCCESS == zend_parse_parameters_none()) {
php_http_message_body_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
- char *etag = php_http_message_body_etag(obj->body);
+ char *etag;
- if (etag) {
+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj);
+
+ if ((etag = php_http_message_body_etag(obj->body))) {
RETURN_STRING(etag, 0);
}
}
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &field_str, &field_len)) {
php_http_message_body_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
- const php_stream_statbuf *sb = php_http_message_body_stat(obj->body);
+ const php_stream_statbuf *sb;
+
+ PHP_HTTP_MESSAGE_BODY_OBJECT_INIT(obj);
- if (sb) {
+ if ((sb = php_http_message_body_stat(obj->body))) {
if (field_str && field_len) {
switch (*field_str) {
case 's':