ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/src/vendor/serf/dist/buckets/buckets.c
(Generate patch)

Comparing vendor/serf/dist/buckets/buckets.c (file contents):
Revision 6917 by laffer1, Mon Nov 3 01:37:33 2014 UTC vs.
Revision 6918 by laffer1, Mon Nov 3 01:59:24 2014 UTC

# Line 17 | Line 17
17  
18   #include "serf.h"
19   #include "serf_bucket_util.h"
20 + #include "serf_private.h"
21  
21
22   serf_bucket_t *serf_bucket_create(
23      const serf_bucket_type_t *type,
24      serf_bucket_alloc_t *allocator,
# Line 155 | Line 155 | char *serf_bstrdup(serf_bucket_alloc_t *allocator,
155      return newstr;
156   }
157  
158 + char *serf_bstrcatv(serf_bucket_alloc_t *allocator, struct iovec *vec,
159 +                    int vecs, apr_size_t *bytes_written)
160 + {
161 +    int i;
162 +    apr_size_t new_len = 0;
163 +    char *c, *newstr;
164 +
165 +    for (i = 0; i < vecs; i++) {
166 +        new_len += vec[i].iov_len;
167 +    }
168 +
169 +    /* It's up to the caller to free this memory later. */
170 +    newstr = serf_bucket_mem_alloc(allocator, new_len);
171 +
172 +    c = newstr;
173 +    for (i = 0; i < vecs; i++) {
174 +        memcpy(c, vec[i].iov_base, vec[i].iov_len);
175 +        c += vec[i].iov_len;
176 +    }
177 +
178 +    if (bytes_written) {
179 +        *bytes_written = c - newstr;
180 +    }
181 +
182 +    return newstr;
183 + }
184  
185   /* ==================================================================== */
186  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines