| 246 | } |
| 247 | |
| 248 | static apr_status_t store_table(apr_table_t *table, unsigned char *buffer, |
| 249 | apr_size_t buffer_len, apr_size_t *slider) |
| 250 | { |
| 251 | int i, len; |
| 252 | apr_table_entry_t *elts; |
| 253 | |
| 254 | elts = (apr_table_entry_t *) apr_table_elts(table)->elts; |
| 255 | for (i = 0; i < apr_table_elts(table)->nelts; ++i) { |
| 256 | if (elts[i].key != NULL) { |
| 257 | apr_size_t key_len = strlen(elts[i].key); |
| 258 | apr_size_t val_len = strlen(elts[i].val); |
| 259 | if (key_len + val_len + 5 >= buffer_len - *slider) { |
| 260 | return APR_EOF; |
| 261 | } |
| 262 | len = apr_snprintf(buffer ? (char *) buffer + *slider : NULL, |
| 263 | buffer ? buffer_len - *slider : 0, "%s: %s" CRLF, |
| 264 | elts[i].key, elts[i].val); |
| 265 | *slider += len; |
| 266 | } |
| 267 | } |
| 268 | if (3 >= buffer_len - *slider) { |
| 269 | return APR_EOF; |
| 270 | } |
| 271 | if (buffer) { |
| 272 | memcpy(buffer + *slider, CRLF, sizeof(CRLF) - 1); |
| 273 | } |
| 274 | *slider += sizeof(CRLF) - 1; |
| 275 | |
| 276 | return APR_SUCCESS; |
| 277 | } |
| 278 | |
| 279 | static const char* regen_key(apr_pool_t *p, apr_table_t *headers, |
| 280 | apr_array_header_t *varray, const char *oldkey, |
no outgoing calls
no test coverage detected