blob: c491f72b44d1c9d47010a29b1cf54dec3702e264 [file] [log] [blame] [raw]
ngx_int_t
ndk_copy_chain_to_str (ngx_pool_t *pool, ngx_chain_t *in, ngx_str_t *str)
{
ngx_chain_t *cl;
size_t len;
u_char *p;
ngx_buf_t *b;
len = 0;
for (cl = in; cl; cl = cl->next)
len += ngx_buf_size (cl->buf);
ndk_palloc_re (p, pool, len + 1);
str->data = p;
str->len = len;
for (cl = in; cl; cl = cl->next) {
b = cl->buf;
if (ngx_buf_in_memory (b)) {
p = ngx_cpymem (p, b->pos, b->last - b->pos);
}
}
*p = '\0';
return NGX_OK;
}
char *
ndk_copy_chain_to_charp (ngx_pool_t *pool, ngx_chain_t *in)
{
ngx_str_t str;
if (ndk_copy_chain_to_str (pool, in, &str) != NGX_OK)
return NULL;
return (char *) str.data;
}