]> code.citadel.org Git - citadel.git/blobdiff - citadel/internet_addressing.c
Implemented RFC2919, the 'List-ID' field for mailing
[citadel.git] / citadel / internet_addressing.c
index 2cffe3d5b0c121d13f4c0cc2015a61e8cf8e6173..8661d70fa12cfae5f734e1affdb24dfd02d9530d 100644 (file)
@@ -600,6 +600,12 @@ int convert_field(struct CtdlMessage *msg, int beg, int end) {
                processed = 1;
        }
 
+       else if (!strcasecmp(key, "List-ID")) {
+               if (msg->cm_fields['L'] == NULL)
+                       msg->cm_fields['L'] = strdup(value);
+               processed = 1;
+       }
+
        else if (!strcasecmp(key, "To")) {
                if (msg->cm_fields['R'] == NULL)
                        msg->cm_fields['R'] = strdup(value);
@@ -1010,7 +1016,8 @@ char *harvest_collected_addresses(struct CtdlMessage *msg) {
                if (msg->cm_fields[field] != NULL) {
                        for (j=0; j<num_tokens(msg->cm_fields[field], ','); ++j) {
                                extract_token(addr, msg->cm_fields[field], j, ',', sizeof addr);
-                               utf8ify_rfc822_string(addr);
+                               if (strstr(addr, "=?") != NULL)
+                                       utf8ify_rfc822_string(addr);
                                process_rfc822_addr(addr, user, node, name);
                                h = CtdlHostAlias(node);
                                if ( (h != hostalias_localhost) && (h != hostalias_directory) ) {