+ if (!strcmp(args[LM_TYPE], "STRING")) {
+ if (p = index(args[LM_MEMBER], '@')) {
+ char *host = canonicalize_hostname(strsave(++p));
+ mailhubs = GetTypeValues("mailhub");
+ for (elem = mailhubs; elem; elem = elem->q_forw) {
+ if (!strcasecmp(host, elem->q_data)) {
+ free(host);
+ host = strsave(args[LM_MEMBER]);
+ *(--p) = 0;
+ sprintf(temp_buf, "String \"%s\" should be USER or LIST \"%s\" because it is a local name.",
+ host, args[LM_MEMBER]);
+ Put_message(temp_buf);
+ free(args[LM_TYPE]);
+ free(host);
+ return(DM_NORMAL);
+ }
+ }
+ free(host);
+ } else if (!index(args[LM_MEMBER], '!')) {
+ Put_message("Member which is not a foreign mail address should not be type STRING.");
+ return(DM_NORMAL);
+ }
+ }
+