overhaul status of SMTP reply codes
[unix-history] / usr / src / usr.sbin / sendmail / src / parseaddr.c
index 1f70fe3..656967b 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)parseaddr.c        6.18 (Berkeley) %G%";
+static char sccsid[] = "@(#)parseaddr.c        6.19 (Berkeley) %G%";
 #endif /* not lint */
 
 #include "sendmail.h"
 #endif /* not lint */
 
 #include "sendmail.h"
@@ -131,7 +131,7 @@ parseaddr(addr, a, copyf, delim, e)
        if ((pvp[0][0] & 0377) != CANONNET)
        {
                setstat(EX_USAGE);
        if ((pvp[0][0] & 0377) != CANONNET)
        {
                setstat(EX_USAGE);
-               usrerr("cannot resolve name");
+               syserr("554 cannot resolve name");
                return (NULL);
        }
 
                return (NULL);
        }
 
@@ -182,7 +182,7 @@ invalidaddr(addr)
                if ((*addr & 0340) != 0200)
                        continue;
                setstat(EX_USAGE);
                if ((*addr & 0340) != 0200)
                        continue;
                setstat(EX_USAGE);
-               usrerr("Address contained invalid control characters");
+               usrerr("553 Address contained invalid control characters");
                return TRUE;
        }
        return FALSE;
                return TRUE;
        }
        return FALSE;
@@ -413,7 +413,7 @@ prescan(addr, delim, pvpbuf)
                                /* see if there is room */
                                if (q >= &pvpbuf[PSBUFSIZE - 5])
                                {
                                /* see if there is room */
                                if (q >= &pvpbuf[PSBUFSIZE - 5])
                                {
-                                       usrerr("Address too long");
+                                       usrerr("553 Address too long");
                                        DelimChar = p;
                                        return (NULL);
                                }
                                        DelimChar = p;
                                        return (NULL);
                                }
@@ -429,18 +429,18 @@ prescan(addr, delim, pvpbuf)
                                /* diagnose and patch up bad syntax */
                                if (state == QST)
                                {
                                /* diagnose and patch up bad syntax */
                                if (state == QST)
                                {
-                                       usrerr("Unbalanced '\"'");
+                                       usrerr("553 Unbalanced '\"'");
                                        c = '"';
                                }
                                else if (cmntcnt > 0)
                                {
                                        c = '"';
                                }
                                else if (cmntcnt > 0)
                                {
-                                       usrerr("Unbalanced '('");
+                                       usrerr("553 Unbalanced '('");
                                        c = ')';
                                }
                                else if (anglecnt > 0)
                                {
                                        c = '>';
                                        c = ')';
                                }
                                else if (anglecnt > 0)
                                {
                                        c = '>';
-                                       usrerr("Unbalanced '<'");
+                                       usrerr("553 Unbalanced '<'");
                                }
                                else
                                        break;
                                }
                                else
                                        break;
@@ -488,7 +488,7 @@ prescan(addr, delim, pvpbuf)
                        {
                                if (cmntcnt <= 0)
                                {
                        {
                                if (cmntcnt <= 0)
                                {
-                                       usrerr("Unbalanced ')'");
+                                       usrerr("553 Unbalanced ')'");
                                        DelimChar = p;
                                        return (NULL);
                                }
                                        DelimChar = p;
                                        return (NULL);
                                }
@@ -503,7 +503,7 @@ prescan(addr, delim, pvpbuf)
                        {
                                if (anglecnt <= 0)
                                {
                        {
                                if (anglecnt <= 0)
                                {
-                                       usrerr("Unbalanced '>'");
+                                       usrerr("553 Unbalanced '>'");
                                        DelimChar = p;
                                        return (NULL);
                                }
                                        DelimChar = p;
                                        return (NULL);
                                }
@@ -555,7 +555,7 @@ prescan(addr, delim, pvpbuf)
                        }
                        if (avp >= &av[MAXATOM])
                        {
                        }
                        if (avp >= &av[MAXATOM])
                        {
-                               syserr("prescan: too many tokens");
+                               syserr("553 prescan: too many tokens");
                                DelimChar = p;
                                return (NULL);
                        }
                                DelimChar = p;
                                return (NULL);
                        }
@@ -718,7 +718,7 @@ _rewrite(pvp, ruleset)
        }
        if (ruleset < 0 || ruleset >= MAXRWSETS)
        {
        }
        if (ruleset < 0 || ruleset >= MAXRWSETS)
        {
-               syserr("rewrite: illegal ruleset number %d", ruleset);
+               syserr("554 rewrite: illegal ruleset number %d", ruleset);
                return;
        }
        if (pvp == NULL)
                return;
        }
        if (pvp == NULL)
@@ -802,7 +802,7 @@ _rewrite(pvp, ruleset)
                        }
                        if (++loopcount > 100)
                        {
                        }
                        if (++loopcount > 100)
                        {
-                               syserr("Infinite loop in ruleset %d", ruleset);
+                               syserr("554 Infinite loop in ruleset %d", ruleset);
                                printf("workspace: ");
                                printav(pvp);
                                break;
                                printf("workspace: ");
                                printav(pvp);
                                break;
@@ -1249,7 +1249,7 @@ backup:
                        }
                        map = stab(mapname, ST_MAP, ST_FIND);
                        if (map == NULL)
                        }
                        map = stab(mapname, ST_MAP, ST_FIND);
                        if (map == NULL)
-                               syserr("rewrite: map %s not found", mapname);
+                               syserr("554 rewrite: map %s not found", mapname);
 
                        /* extract the match part */
                        key_rvp = ++rvp;
 
                        /* extract the match part */
                        key_rvp = ++rvp;
@@ -1487,7 +1487,7 @@ buildaddr(tv, a)
        /* figure out what net/mailer to use */
        if (*tv == NULL || **tv != CANONNET)
        {
        /* figure out what net/mailer to use */
        if (*tv == NULL || **tv != CANONNET)
        {
-               syserr("buildaddr: no net");
+               syserr("554 buildaddr: no net");
                return (NULL);
        }
        tv++;
                return (NULL);
        }
        tv++;
@@ -1518,7 +1518,7 @@ buildaddr(tv, a)
                        (void) strcat(buf, *tv);
                }
                if ((**tv & 0377) != CANONUSER)
                        (void) strcat(buf, *tv);
                }
                if ((**tv & 0377) != CANONUSER)
-                       syserr("buildaddr: error: no user");
+                       syserr("554 buildaddr: error: no user");
                cataddr(++tv, buf, sizeof buf, ' ');
                stripquotes(buf);
 #ifdef LOG
                cataddr(++tv, buf, sizeof buf, ' ');
                stripquotes(buf);
 #ifdef LOG
@@ -1537,7 +1537,7 @@ buildaddr(tv, a)
        }
        if (m == NULL)
        {
        }
        if (m == NULL)
        {
-               syserr("buildaddr: unknown mailer %s", *tv);
+               syserr("554 buildaddr: unknown mailer %s", *tv);
                return (NULL);
        }
        a->q_mailer = m;
                return (NULL);
        }
        a->q_mailer = m;
@@ -1547,7 +1547,7 @@ buildaddr(tv, a)
        {
                if (!bitnset(M_LOCAL, m->m_flags))
                {
        {
                if (!bitnset(M_LOCAL, m->m_flags))
                {
-                       syserr("buildaddr: no host");
+                       syserr("554 buildaddr: no host");
                        return (NULL);
                }
                a->q_host = NULL;
                        return (NULL);
                }
                a->q_host = NULL;
@@ -1567,7 +1567,7 @@ buildaddr(tv, a)
        /* figure out the user */
        if (*tv == NULL || (**tv & 0377) != CANONUSER)
        {
        /* figure out the user */
        if (*tv == NULL || (**tv & 0377) != CANONUSER)
        {
-               syserr("buildaddr: no user");
+               syserr("554 buildaddr: no user");
                return (NULL);
        }
        tv++;
                return (NULL);
        }
        tv++;