X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_message.c;h=04e87060445a5d19b5af91d39242d91c8d030450;hp=34d9ed87e4802fa695bded66cbb95d1aef687470;hb=b340a8fa0aacc9727d54bb3957eb6902bc350004;hpb=22f2117f08acf0fcf84d70a54ef168ff1627fc69 diff --git a/php_http_message.c b/php_http_message.c index 34d9ed8..04e8706 100644 --- a/php_http_message.c +++ b/php_http_message.c @@ -462,6 +462,24 @@ PHP_HTTP_API php_http_message_t *php_http_message_reverse(php_http_message_t *ms return msg; } +PHP_HTTP_API php_http_message_t *php_http_message_zip(php_http_message_t *one, php_http_message_t *two) +{ + php_http_message_t *dst = php_http_message_copy(one, NULL), *src = php_http_message_copy(two, NULL), *tmp_dst, *tmp_src, *ret = dst; + + while(dst && src) { + tmp_dst = dst->parent; + tmp_src = src->parent; + dst->parent = src; + if (tmp_dst) { + src->parent = tmp_dst; + } + src = tmp_src; + dst = tmp_dst; + } + + return ret; +} + PHP_HTTP_API php_http_message_t *php_http_message_copy_ex(php_http_message_t *from, php_http_message_t *to, zend_bool parents) { php_http_message_t *temp, *copy = NULL;