X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Faddrsbr.c;h=a829c1db3295d0baaaff6cc5a33a31d5bd60ff22;hp=c1e937f0a97962a97e34f362e21f04a1144f22be;hb=205e60873e26bb542945dc2c48d7385af84ba120;hpb=33dc8211a72df0c27fa11220f3b27583cd1c7e49 diff --git a/sbr/addrsbr.c b/sbr/addrsbr.c index c1e937f..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 */ @@ -72,11 +40,8 @@ static char *note = NULL; static char err[BUFSIZ]; static char adr[BUFSIZ]; - -/* -** external prototypes -*/ -char *getusername(void); +/* static prototype */ +char *OfficialName(char *); char * @@ -110,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) @@ -180,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; } @@ -197,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) @@ -264,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) {