1: # include <ctype.h>
2: # include "sendmail.h"
3:
4: SCCSID(@(#)trace.c 4.1 7/25/83);
5:
6: /*
7: ** TtSETUP -- set up for trace package.
8: **
9: ** Parameters:
10: ** vect -- pointer to trace vector.
11: ** size -- number of flags in trace vector.
12: ** defflags -- flags to set if no value given.
13: **
14: ** Returns:
15: ** none
16: **
17: ** Side Effects:
18: ** environment is set up.
19: */
20:
21: u_char *tTvect;
22: int tTsize;
23: static char *DefFlags;
24:
25: tTsetup(vect, size, defflags)
26: u_char *vect;
27: int size;
28: char *defflags;
29: {
30: tTvect = vect;
31: tTsize = size;
32: DefFlags = defflags;
33: }
34: /*
35: ** TtFLAG -- process an external trace flag description.
36: **
37: ** Parameters:
38: ** s -- the trace flag.
39: **
40: ** Returns:
41: ** none.
42: **
43: ** Side Effects:
44: ** sets/clears trace flags.
45: */
46:
47: tTflag(s)
48: register char *s;
49: {
50: int first, last;
51: register int i;
52:
53: if (*s == '\0')
54: s = DefFlags;
55:
56: for (;;)
57: {
58: /* find first flag to set */
59: i = 0;
60: while (isdigit(*s))
61: i = i * 10 + (*s++ - '0');
62: first = i;
63:
64: /* find last flag to set */
65: if (*s == '-')
66: {
67: i = 0;
68: while (isdigit(*++s))
69: i = i * 10 + (*s - '0');
70: }
71: last = i;
72:
73: /* find the level to set it to */
74: i = 1;
75: if (*s == '.')
76: {
77: i = 0;
78: while (isdigit(*++s))
79: i = i * 10 + (*s - '0');
80: }
81:
82: /* clean up args */
83: if (first >= tTsize)
84: first = tTsize - 1;
85: if (last >= tTsize)
86: last = tTsize - 1;
87:
88: /* set the flags */
89: while (first <= last)
90: tTvect[first++] = i;
91:
92: /* more arguments? */
93: if (*s++ == '\0')
94: return;
95: }
96: }
Defined functions
Defined variables