+#define RETVAL_RESPONSE_OR_BODY(request) \
+ { \
+ zval **bodyonly; \
+ \
+ /* check if only the body should be returned */ \
+ if (options && (SUCCESS == zend_hash_find(Z_ARRVAL_P(options), "bodyonly", sizeof("bodyonly"), (void **) &bodyonly)) && zval_is_true(*bodyonly)) { \
+ http_message *msg = http_message_parse(PHPSTR_VAL(&request.conv.response), PHPSTR_LEN(&request.conv.response)); \
+ \
+ if (msg) { \
+ RETVAL_STRINGL(PHPSTR_VAL(&msg->body), PHPSTR_LEN(&msg->body), 1); \
+ http_message_free(&msg); \
+ } \
+ } else { \
+ RETVAL_STRINGL(request.conv.response.data, request.conv.response.used, 1); \
+ } \
+ }
+