debugging enhancement to sendmail
jeff at voder.UUCP
jeff at voder.UUCP
Thu Dec 11 12:02:39 AEST 1986
Index: usr.lib/sendmail/src/util.c 4.3BSD
Description:
When using the detailed debugging options (i.e. -d21.99)
the debugging output from sendmail is cryptic. The patch
below converts the internal form of macro substitutions, etc.
into a human readable format.
Repeat-By:
/usr/lib/sendmail -d21.99 any_old_address
Observe output like:
Version 5.51
rewrite: ruleset 3 input: "jeff"
-----trying rule: "<" ">"
ap="jeff", rp="<"
----- rule fails
-----trying rule: "^P" "<" "^Q" ">" "^P"
ap="jeff", rp="^P"
ap="jeff", rp="<"
ap=<null>, rp="<"
----- rule fails
-----trying rule: "^Q" "at" "^Q"
ap="jeff", rp="^Q"
Fix:
Make the changes below, run '/usr/lib/sendmail -d21.99 any_old_address'
and observe output like:
Version 5.51
rewrite: ruleset 3 input: "jeff"
-----trying rule: "<" ">"
ap="jeff", rp="<"
----- rule fails
-----trying rule: "$*" "<" "$+" ">" "$*"
ap="jeff", rp="$*"
ap="jeff", rp="<"
ap=<null>, rp="<"
----- rule fails
-----trying rule: "$+" "at" "$+"
ap="jeff", rp="$+"
RCS file: RCS/util.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -c -r1.1 -r1.2
*** /tmp/,RCSt1017772 Wed Dec 10 18:00:30 1986
--- /tmp/,RCSt2017772 Wed Dec 10 18:00:34 1986
***************
*** 277,283 ****
}
if (c < 040 || c >= 0177)
{
! (void) putchar('^');
c ^= 0100;
}
(void) putchar(c);
--- 277,345 ----
}
if (c < 040 || c >= 0177)
{
! switch (c) {
! case MATCHZANY: /* match zero or more tokens */
! fputs("$*", stdout);
! continue;
! break;
! case MATCHANY: /* match one or more tokens */
! fputs("$+", stdout);
! continue;
! break;
! case MATCHONE: /* match exactly one token */
! fputs("$-", stdout);
! continue;
! break;
! case MATCHCLASS:/* match one token in a class */
! fputs("$=", stdout);
! continue;
! break;
! case MATCHNCLASS:/* match anything not in class */
! fputs("$~", stdout);
! continue;
! break;
! case MATCHREPL: /* replacement on RHS for above */
! fputs("$", stdout);
! continue;
! break;
! case CANONNET: /* canonical net, next token */
! fputs("$#", stdout);
! continue;
! break;
! case CANONHOST: /* canonical host, next token */
! fputs("$@", stdout);
! continue;
! break;
! case CANONUSER: /* canonical user, next N tokens */
! fputs("$:", stdout);
! continue;
! break;
! case CALLSUBR: /* call another rewriting set */
! fputs("$>", stdout);
! continue;
! break;
! case CONDIF: /* conditional if-then */
! fputs("$?", stdout);
! continue;
! break;
! case CONDELSE: /* conditional else */
! fputs("$|", stdout);
! continue;
! break;
! case CONDFI: /* conditional fi */
! fputs("$.", stdout);
! continue;
! break;
! case HOSTBEGIN: /* hostname lookup begin */
! fputs("$[", stdout);
! continue;
! break;
! case HOSTEND: /* hostname lookup end */
! fputs("$]", stdout);
! continue;
! break;
! }
! putchar('^');
c ^= 0100;
}
(void) putchar(c);
--
Jeff Gilliam {ucbvax,pyramid,nsc}!voder!jeff
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list