+/* {{{ void HttpMessage::setHeaders(array headers)
+ *
+ * Sets new headers.
+ */
+PHP_METHOD(HttpMessage, setHeaders)
+{
+ zval *headers;
+ getObject(http_message_object, obj);
+
+ if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &headers)) {
+ return;
+ }
+
+ SET_PROP(obj, headers, headers);
+}
+/* }}} */
+
+/* {{{ void HttpMessage::addHeaders(array headers[, bool append = false])
+ *
+ * Add headers. If append is true, headers with the same name will be separated, else overwritten.
+ */
+PHP_METHOD(HttpMessage, addHeaders)
+{
+ zval *old_headers, *new_headers;
+ zend_bool append = 0;
+ getObject(http_message_object, obj);
+
+ if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|b", &new_headers, &append)) {
+ return;
+ }
+
+ old_headers = GET_PROP(obj, headers);
+ if (append) {
+ array_append(new_headers, old_headers);
+ } else {
+ array_merge(new_headers, old_headers);
+ }
+ SET_PROP(obj, headers, old_headers);
+}
+/* }}} */
+