From 205e60873e26bb542945dc2c48d7385af84ba120 Mon Sep 17 00:00:00 2001 From: markus schnalke Date: Wed, 21 Mar 2012 16:25:08 +0100 Subject: [PATCH] Made DUMB the default and removed the the #ifdefs. DUMB had been the default and forces MH to use a full RFC 822 address parser instead of guessing on addresses. --- acconfig.h | 7 ----- sbr/addrsbr.c | 82 +++++++-------------------------------------------------- 2 files changed, 10 insertions(+), 79 deletions(-) diff --git a/acconfig.h b/acconfig.h index 06fab56..3ab8a46 100644 --- a/acconfig.h +++ b/acconfig.h @@ -26,13 +26,6 @@ */ #define DBMPWD 1 -/* - * Directs nmh not to try and rewrite addresses - * to their official form. You probably don't - * want to change this without good reason. - */ -#define DUMB 1 - /***** END USER CONFIGURATION SECTION *****/ @TOP@ diff --git a/sbr/addrsbr.c b/sbr/addrsbr.c index 42742d2..a829c1d 100644 --- a/sbr/addrsbr.c +++ b/sbr/addrsbr.c @@ -17,48 +17,16 @@ ** addresses. The routines in sbr/addrsbr.c associate semantics with those ** addresses. ** -** If #ifdef DUMB is in effect, a full 822-style parser is called -** for syntax recongition. This breaks each address into its components. -** Note however that no semantics are assumed about the parts or their -** totality. This means that implicit hostnames aren't made explicit, -** and explicit hostnames aren't expanded to their "official" represenations. -** -** If DUMB is not in effect, then this module does some -** high-level thinking about what the addresses are. -** -** 1. for MMDF systems: -** -** string%@ -> string -** -** 2. for non-MMDF systems: -** -** string@host. -> host!string -** -** 3. for any system, an address interpreted relative to the local host: -** -** string@ -> string -** -** For cases (1) and (3) above, the leftmost host is extracted. If it's not -** present, the local host is used. If the tests above fail, the address is -** considered to be a real 822-style address. -** -** If an explicit host is not present, then MH checks for a bang to indicate -** an explicit UUCP-style address. If so, this is noted. If not, the host is -** defaulted, typically to the local host. The lack of an explict host is -** also noted. -** -** If an explicit 822-style host is present, then MH checks to see if it -** can expand this to the official name for the host. If the hostname is -** unknown, the address is so typed. +** A full 822-style parser is called for syntax recongition. This breaks +** each address into its components. Note however that no semantics are +** assumed about the parts or their totality. This means that implicit +** hostnames aren't made explicit, and explicit hostnames aren't expanded +** to their "official" represenations. ** ** To summarize, when we're all done, here's what MH knows about the address: -** -** DUMB - type: local, uucp, or network -** host: not locally defaulted, not explicitly expanded -** everything else -** -** other - type: local, uucp, network, unknown -** everything else +** type: local, uucp, or network +** host: not locally defaulted, not explicitly expanded +** everything else */ @@ -107,9 +75,6 @@ getm(char *str, char *dfhost, int dftype, int wanthost, char *eresult) { char *pp; struct mailname *mp; -#ifndef DUMB - char *dp; -#endif /* not DUMB */ if (err[0]) { if (eresult) @@ -177,13 +142,10 @@ getm(char *str, char *dfhost, int dftype, int wanthost, char *eresult) } else { mp->m_nohost = 1; mp->m_mbox = getcpy(mbox); -#ifdef DUMB if (route == NULL && dftype == LOCALHOST) { mp->m_host = NULL; mp->m_type = dftype; - } else -#endif /* DUMB */ - { + } else { mp->m_host = route ? NULL : getcpy(dfhost); mp->m_type = route ? NETHOST : dftype; } @@ -194,26 +156,8 @@ getm(char *str, char *dfhost, int dftype, int wanthost, char *eresult) if (wanthost == AD_NHST) mp->m_type = !mh_strcasecmp(LocalName(), mp->m_host) ? LOCALHOST : NETHOST; -#ifdef DUMB else mp->m_type = mh_strcasecmp(LocalName(), mp->m_host) ? NETHOST : LOCALHOST; -#else /* not DUMB */ - else - if (pp = OfficialName(mp->m_host)) { - got_real_host: ; - free (mp->m_host); - mp->m_host = getcpy(pp); - mp->m_type = mh_strcasecmp(LocalName(), mp->m_host) ? NETHOST : LOCALHOST; - } else { - if (dp = strchr(mp->m_host, '.')) { - *dp = NULL; - if (pp = OfficialName(mp->m_host)) - goto got_real_host; - *dp = '.'; - } - mp->m_type = BADHOST; - } -#endif /* not DUMB */ got_host: ; if (route) @@ -261,18 +205,12 @@ adrformat(struct mailname *mp) static char addr[BUFSIZ]; static char buffer[BUFSIZ]; -#ifdef DUMB if (mp->m_nohost) strncpy(addr, mp->m_mbox ? mp->m_mbox : "", sizeof(addr)); - else -#endif /* DUMB */ - -#ifndef BANG - if (mp->m_type != UUCPHOST) + else if (mp->m_type != UUCPHOST) snprintf(addr, sizeof(addr), mp->m_host ? "%s%s@%s" : "%s%s", empty(mp->m_path), empty(mp->m_mbox), mp->m_host); else -#endif /* not BANG */ snprintf(addr, sizeof(addr), "%s!%s", mp->m_host, mp->m_mbox); if (mp->m_pers || mp->m_path) { -- 1.7.10.4