X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=php_http_message.c;h=04e87060445a5d19b5af91d39242d91c8d030450;hb=287edcbfb698ff402588f7057dae0bc994d6e8e4;hp=34d9ed87e4802fa695bded66cbb95d1aef687470;hpb=5913db177b07398233cb00d2357aba595eab8371;p=m6w6%2Fext-http 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;