Link Here
|
|
|
1 |
--- dbmail-message.c |
2 |
+++ dbmail-message.c |
3 |
@@ -885,9 +885,13 @@ static int _header_get_id(const struct D |
4 |
u64_t tmp; |
5 |
gpointer cacheid; |
6 |
gchar *safe_header; |
7 |
+ gchar *tmpheader; |
8 |
|
9 |
- if (! (safe_header = dm_strnesc(header,CACHE_WIDTH_NAME))) |
10 |
+ // rfc822 headernames are case-insensitive |
11 |
+ if (! (tmpheader = dm_strnesc(header,CACHE_WIDTH_NAME))) |
12 |
return -1; |
13 |
+ safe_header = g_ascii_strdown(tmpheader,-1); |
14 |
+ g_free(tmpheader); |
15 |
|
16 |
cacheid = g_hash_table_lookup(self->header_dict, (gconstpointer)safe_header); |
17 |
if (cacheid) { |
18 |
@@ -897,7 +901,7 @@ static int _header_get_id(const struct D |
19 |
} |
20 |
|
21 |
GString *q = g_string_new(""); |
22 |
- g_string_printf(q, "SELECT id FROM %sheadername WHERE headername='%s'", DBPFX, safe_header); |
23 |
+ g_string_printf(q, "SELECT id FROM %sheadername WHERE lower(headername)='%s'", DBPFX, safe_header); |
24 |
if (db_query(q->str) == -1) { |
25 |
g_string_free(q,TRUE); |
26 |
g_free(safe_header); |