PHP_ME(HttpMessage, setRaw, NULL, ZEND_ACC_PUBLIC)
PHP_ME(HttpMessage, getBody, NULL, ZEND_ACC_PUBLIC)
PHP_ME(HttpMessage, getHeaders, NULL, ZEND_ACC_PUBLIC)
+ PHP_ME(HttpMessage, setHeaders, NULL, ZEND_ACC_PUBLIC)
+ PHP_ME(HttpMessage, addHeaders, NULL, ZEND_ACC_PUBLIC)
PHP_ME(HttpMessage, getType, NULL, ZEND_ACC_PUBLIC)
+ PHP_ME(HttpMessage, setType, NULL, ZEND_ACC_PUBLIC)
PHP_ME(HttpMessage, getResponseCode, NULL, ZEND_ACC_PUBLIC)
+ PHP_ME(HttpMessage, setResponseCode, NULL, ZEND_ACC_PUBLIC)
PHP_ME(HttpMessage, getRequestMethod, NULL, ZEND_ACC_PUBLIC)
+ PHP_ME(HttpMessage, setRequestMethod, NULL, ZEND_ACC_PUBLIC)
PHP_ME(HttpMessage, getRequestUri, NULL, ZEND_ACC_PUBLIC)
+ PHP_ME(HttpMessage, setRequestUri, NULL, ZEND_ACC_PUBLIC)
PHP_ME(HttpMessage, getHttpVersion, NULL, ZEND_ACC_PUBLIC)
+ PHP_ME(HttpMessage, setHttpVersion, NULL, ZEND_ACC_PUBLIC)
PHP_ME(HttpMessage, toString, NULL, ZEND_ACC_PUBLIC)
ZEND_MALIAS(HttpMessage, __toString, toString, NULL, ZEND_ACC_PUBLIC)
if (msg->len) {
RETVAL_STRINGL(msg->raw, msg->len, 1);
} else {
- RETVAL_STRINGL(empty_string, 0, 1);
+ RETVAL_STRINGL("", 0, 1);
}
} else {
RETVAL_NULL();
switch (zend_get_hash_value(Z_STRVAL_P(member), strlen(Z_STRVAL_P(member)) + 1))
{
case HTTP_MSG_PROPHASH_TYPE:
- msg->type = Z_LVAL_P(value);
+ if (Z_LVAL_P(value) != msg->type) {
+ if (msg->type == HTTP_MSG_REQUEST) {
+ if (msg->info.request.method) {
+ efree(msg->info.request.method);
+ }
+ if (msg->info.request.URI) {
+ efree(msg->info.request.URI);
+ }
+ }
+ msg->type = Z_LVAL_P(value);
+ if (msg->type == HTTP_MSG_REQUEST) {
+ msg->info.request.method = NULL;
+ msg->info.request.URI = NULL;
+ }
+ }
+
break;
case HTTP_MSG_PROPHASH_HTTP_VERSION:
}
break;
- case HTTP_MSG_PROPHASH_RESPONSE_STATUS:
+ case HTTP_MSG_PROPHASH_RESPONSE_CODE:
if (msg->type == HTTP_MSG_RESPONSE) {
msg->info.response.code = Z_LVAL_P(value);
}
break;
}
+ zval_dtor(value);
+ FREE_ZVAL(value);
}
static HashTable *_http_message_object_get_props(zval *object TSRMLS_DC)
int m_prop_len; \
Z_ARRVAL(array) = OBJ_PROP(obj); \
zend_mangle_property_name(&m_prop_name, &m_prop_len, "*", 1, name, lenof(name), 1); \
- add_assoc_stringl_ex(&array, m_prop_name, sizeof(name)+4, val, len, val != empty_string); \
+ add_assoc_stringl_ex(&array, m_prop_name, sizeof(name)+4, val, len, 1); \
}
zend_hash_clean(OBJ_PROP(obj));
case HTTP_MSG_RESPONSE:
ASSOC_PROP(obj, double, "httpVersion", msg->info.response.http_version);
ASSOC_PROP(obj, long, "responseCode", msg->info.response.code);
- ASSOC_STRING(obj, "requestMethod", empty_string);
- ASSOC_STRING(obj, "requestUri", empty_string);
+ ASSOC_STRING(obj, "requestMethod", "");
+ ASSOC_STRING(obj, "requestUri", "");
break;
case HTTP_MSG_NONE:
default:
ASSOC_PROP(obj, double, "httpVersion", 0.0);
ASSOC_PROP(obj, long, "responseCode", 0);
- ASSOC_STRING(obj, "requestMethod", empty_string);
- ASSOC_STRING(obj, "requestUri", empty_string);
+ ASSOC_STRING(obj, "requestMethod", "");
+ ASSOC_STRING(obj, "requestUri", "");
break;
}