| 319 | } |
| 320 | |
| 321 | static void tokens_to_array(apr_pool_t *p, const char *data, |
| 322 | apr_array_header_t *arr) |
| 323 | { |
| 324 | char *token; |
| 325 | |
| 326 | while ((token = ap_get_list_item(p, &data)) != NULL) { |
| 327 | *((const char **) apr_array_push(arr)) = token; |
| 328 | } |
| 329 | |
| 330 | /* Sort it so that "Vary: A, B" and "Vary: B, A" are stored the same. */ |
| 331 | qsort((void *) arr->elts, arr->nelts, |
| 332 | sizeof(char *), array_alphasort); |
| 333 | } |
| 334 | |
| 335 | /* |
| 336 | * Hook and mod_cache callback functions |
no test coverage detected