Lines 1102-1107
Link Here
|
1102 |
apr_table_entry_t **last; |
1102 |
apr_table_entry_t **last; |
1103 |
int i; |
1103 |
int i; |
1104 |
int dups_found; |
1104 |
int dups_found; |
|
|
1105 |
apr_uint32_t cookie_checksum; |
1105 |
|
1106 |
|
1106 |
if (flags == APR_OVERLAP_TABLES_ADD) { |
1107 |
if (flags == APR_OVERLAP_TABLES_ADD) { |
1107 |
return; |
1108 |
return; |
Lines 1131-1136
Link Here
|
1131 |
*/ |
1132 |
*/ |
1132 |
sort_array = table_mergesort(t->a.pool, sort_array, t->a.nelts); |
1133 |
sort_array = table_mergesort(t->a.pool, sort_array, t->a.nelts); |
1133 |
|
1134 |
|
|
|
1135 |
COMPUTE_KEY_CHECKSUM("Cookie", cookie_checksum); |
1136 |
|
1134 |
/* Process any duplicate keys */ |
1137 |
/* Process any duplicate keys */ |
1135 |
dups_found = 0; |
1138 |
dups_found = 0; |
1136 |
sort_next = sort_array; |
1139 |
sort_next = sort_array; |
Lines 1154-1159
Link Here
|
1154 |
apr_table_entry_t **next = last; |
1157 |
apr_table_entry_t **next = last; |
1155 |
char *new_val; |
1158 |
char *new_val; |
1156 |
char *val_dst; |
1159 |
char *val_dst; |
|
|
1160 |
char separator = ','; |
1161 |
if ((*last)->key_checksum == cookie_checksum |
1162 |
&& !strcasecmp((*last)->key, "Cookie")) { |
1163 |
separator = ';'; |
1164 |
} |
1157 |
do { |
1165 |
do { |
1158 |
len += strlen((*next)->val); |
1166 |
len += strlen((*next)->val); |
1159 |
len += 2; /* for ", " or trailing null */ |
1167 |
len += 2; /* for ", " or trailing null */ |
Lines 1170-1176
Link Here
|
1170 |
break; |
1178 |
break; |
1171 |
} |
1179 |
} |
1172 |
else { |
1180 |
else { |
1173 |
*val_dst++ = ','; |
1181 |
*val_dst++ = separator; |
1174 |
*val_dst++ = ' '; |
1182 |
*val_dst++ = ' '; |
1175 |
} |
1183 |
} |
1176 |
} |
1184 |
} |