Patch: Elm ME+ 2.5 PLalpha51 -> Elm ME+ 2.5 PLalpha52 [2/7] (4/4)
From
Kari Hurtta@21:1/5 to
All on Mon Jun 8 19:46:06 2020
[continued from previous message]
! value, whitelisted_name,domain));
! ok = 1;
! } else {
! const char * reserved_name =
! is_special_use_domain(domain);
!
! if (reserved_name) {
!
! DPRINT(Debug,14,
! (&Debug,
! "add_message_id_hdr: %s, domain %s is reserved on %s\n",
! value, reserved_name,domain));
!
! lib_error(CATGETS(elm_msg_cat, MeSet,
! MeHeaderIDReservedDomain,
! "Reserved domain %s is unsupported on id %s on header field %s."),
! reserved_name,value,hdr_name);
!
! ret = 0;
! } else
! ok = 1;
! }
! }
!
! if (ok) {
!
! if (headers->message_id)
! free_message_id(& (headers->message_id));
!
! headers->message_id = newid;
! newid = NULL;
! ret = 1;
! }
!
! }
!
! if (newid)
! free_message_id(& newid);
!
! } else {
! ret = 0;
! DPRINT(Debug,14, (&Debug,
! "add_message_id_hdr: No id, header name %s, value=%s\n",
! hdr_name,value));
!
! }
! } else {
! ret = 1;
! if (replace && headers->message_id)
! free_message_id(& (headers->message_id));
! DPRINT(Debug,14, (&Debug,
! "add_message_id_hd: No id (whitespace only), header name %s, value=%s\n",
! hdr_name,value));
}
+
+ DPRINT(Debug,14, (&Debug,
+ "add_message_id_hdr=%d: header name %s, value=%s\n",
+ ret,hdr_name,value));
+
+ return ret;
+ }
+
+ static int add_common_references_hdr P_((struct references ** ref_p,
+ header_ptr X,
+ const char *value,
+ int demime,
+ charset_t defcharset,
+ int replace));
+ static int add_common_references_hdr(ref_p,X,value,demime,defcharset,replace) + struct references ** ref_p;
+ header_ptr X;
+ const char *value;
+ int demime;
+ charset_t defcharset;
+ int replace;
+ {
+ int ret = 0;
+ const char * hdr_name = give_header_name(X);
+
+ if (not_whitespace(value)) {
+
+ /* parse_header_references() may return NULL if no message-id's found */
+
+ struct references * newref = parse_header_references(hdr_name,value,demime,defcharset,NULL);
+
+ if (newref) {
+
+ /* Append does not make sense, so always replace */
+
+ if (*ref_p)
+ free_references(ref_p);
+ *ref_p = newref; newref = NULL;
+ ret = 1;
+
+ } else {
+ ret = 0;
+
+ DPRINT(Debug,14, (&Debug,
+ "add_common_references_hdr: No ids, header name %s, value=%s\n",
+ hdr_name,value));
+
+ }
+ } else {
+ ret = 1;
+
+ if (replace && *ref_p)
+ free_references(ref_p);
! DPRINT(Debug,14, (&Debug,
! "add_common_references_hdr: No ids (whitespace only), header name %s, value=%s\n",
! hdr_name,value));
!
! }
!
! DPRINT(Debug,14, (&Debug,
! "add_common_references_hdr=%d: header name %s, value=%s\n",
! ret,hdr_name,value));
!
!
! return ret;
}
+
+
+ #ifdef ANSI_C
+ hdr_add_to_mailing_hdr add_in_reply_to_hdr;
+ #endif
+ int add_in_reply_to_hdr(headers,X,value,demime,defcharset,replace)
+ struct mailing_headers * headers;
+ header_ptr X;
+ const char *value;
+ int demime;
+ charset_t defcharset;
+ int replace;
+ {
+ int ret = add_common_references_hdr(&(headers->in_reply_to),X,
+ value,demime,defcharset,replace);
+
+ DPRINT(Debug,14, (&Debug, "add_in_reply_to_hdr=%d; value=%s\n",
+ ret,value));
+
+ return ret;
+ }
+
+ #ifdef ANSI_C
+ hdr_add_to_mailing_hdr add_references_hdr;
+ #endif
+ int add_references_hdr(headers,X,value,demime,defcharset,replace)
+ struct mailing_headers * headers;
+ header_ptr X;
+ const char *value;
+ int demime;
+ charset_t defcharset;
+ int replace;
+ {
+ int ret = add_common_references_hdr(&(headers->references),X,
+ value,demime,defcharset,replace);
+
+ DPRINT(Debug,14, (&Debug, "add_references_hdr=%d; value=%s\n",
+ ret,value));
+
+ return ret;
+ }
+
+
void dump_expanded_address(debuglevel,text,expanded)
int debuglevel;
const char *text;
***************
*** 938,945 ****
addr_list_item_count(expanded.addrs) : 0;
int glen = expanded.addrs ?
addr_list_group_count(expanded.addrs) : 0;
!
!
DPRINT(Debug,debuglevel,
(&Debug,
"%s: %d surfaces, %d addresses, %d groups\n",
--- 1428,1434 ----
addr_list_item_count(expanded.addrs) : 0;
int glen = expanded.addrs ?
addr_list_group_count(expanded.addrs) : 0;
!
DPRINT(Debug,debuglevel,
(&Debug,
"%s: %d surfaces, %d addresses, %d groups\n",
***************
*** 1093,1099 ****
DPRINT(Debug,8,(&Debug, "eval_backquote: %s\n",
buffer));
-
for (ptr = buffer; (*ptr || result) && !quitflag; ptr++) {
if ('`' == *ptr || !*ptr) {
--- 1582,1587 ----
***************
*** 1353,1383 ****
fclose(F);
}
! /* Returns domain name if matches to valid-domains */
! const char * is_whitelisted_valid_domain(mail_domain_name)
! const char * mail_domain_name;
{
- /* Pointer to internal list, do NOT free */
- const char ** whitelist =
- give_dt_path_as_elems(&valid_domains,
- "valid-domains");
-
const char * p;
int i;
if (!whitelist)
return NULL;
/* These mail domains are valid without verifying */