message->headers = g_hash_table_new_full (strcase_hash,
strcase_equal,
free,
- free);
+ g_free);
message->parsing_started = 0;
message->parsing_finished = 0;
is_received = (strcmp(header_desired,"received") == 0);
if (! initialized) {
- g_mime_init (0);
+ g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS);
initialized = 1;
}
/* we treat the Received: header special - we want to concat ALL of
* the Received: headers we encounter.
* for everything else we return the first instance of a header */
- if (is_received) {
+ if (strcasecmp(header, "received") == 0) {
if (header_sofar == NULL) {
/* first Received: header we encountered; just add it */
g_hash_table_insert (message->headers, header, decoded_value);
/* we need to add the header to those we already collected */
newhdr = strlen(decoded_value);
hdrsofar = strlen(header_sofar);
- combined_header = xmalloc(hdrsofar + newhdr + 2);
+ combined_header = g_malloc(hdrsofar + newhdr + 2);
strncpy(combined_header,header_sofar,hdrsofar);
*(combined_header+hdrsofar) = ' ';
strncpy(combined_header+hdrsofar+1,decoded_value,newhdr+1);
- free (decoded_value);
+ g_free (decoded_value);
g_hash_table_insert (message->headers, header, combined_header);
}
} else {
g_hash_table_insert (message->headers, header, decoded_value);
} else {
free (header);
- free (decoded_value);
+ g_free (decoded_value);
decoded_value = header_sofar;
}
}