+ if ((size = php_http_message_body_size(&msg->body))) {
+ MAKE_STD_ZVAL(h);
+ ZVAL_LONG(h, size);
+ zend_hash_update(&msg->hdrs, "Content-Length", sizeof("Content-Length"), &h, sizeof(zval *), NULL);
+
+ if (msg->body.boundary) {
+ char *str;
+ size_t len;
+
+ if (!(h = php_http_message_header(msg, ZEND_STRL("Content-Type"), 1))) {
+ len = spprintf(&str, 0, "multipart/form-data; boundary=\"%s\"", msg->body.boundary);
+ MAKE_STD_ZVAL(h);
+ ZVAL_STRINGL(h, str, len, 0);
+ zend_hash_update(&msg->hdrs, "Content-Type", sizeof("Content-Type"), &h, sizeof(zval *), NULL);
+ } else if (!php_http_match(Z_STRVAL_P(h), "boundary=", PHP_HTTP_MATCH_WORD)) {
+ zval_dtor(h);
+ Z_STRLEN_P(h) = spprintf(&Z_STRVAL_P(h), 0, "%s; boundary=\"%s\"", Z_STRVAL_P(h), msg->body.boundary);
+ zend_hash_update(&msg->hdrs, "Content-Type", sizeof("Content-Type"), &h, sizeof(zval *), NULL);
+ } else {
+ zval_ptr_dtor(&h);
+ }
+ }
+ }
+