40 static bool EmailMatch(
char *,
char *);
41 static bool IPv4AddrMatch(
char *,
char *);
58 memset(rBuf, 0,
sizeof(rBuf));
67 char *argvA[32], *argvB[32], *argvC[32];
68 int argcA, argcB, argcC;
72 for (i = 0; i < argcA && !match; i++) {
76 for (k = 0; k < argcC && !match; k++) {
77 if (EmailMatch(to, argvC[k])) {
78 strlcpy(rBuf, argvB[1],
sizeof(rBuf));
93 char *argvA[32], *argvB[32], *argvC[32];
94 int argcA, argcB, argcC;
98 for (i = 0; i < argcA && !match; i++) {
102 for (k = 0; k < argcC && !match; k++) {
103 if (EmailMatch(to, argvC[k])) {
104 strlcpy(rBuf, argvB[1],
sizeof(rBuf));
115 printf(
"* Match %-9s : %s\n", match ?
"found" :
"not found", rBuf);
171 EmailMatch(email, target)
182 if (email == NULL || target == NULL)
190 tEmail = strdup(email);
191 if (tEmail == NULL) {
195 for (i = 0; i < argc; i++) {
202 char *domKey, *userKey;
209 snprintf(buf,
sizeof (buf),
"*@%s", domKey);
214 snprintf(buf,
sizeof (buf),
"%s@*", userKey);
221 for (i = 0; i < argcT; i++) {
225 lKey =
zeStrJoin(
".", argcT - i, &argvT[i]);
227 snprintf(buf,
sizeof (buf),
"%s@%s", userKey, lKey);
234 snprintf(buf,
sizeof (buf),
"%s@%s",
"*", lKey);
bool AccessLookupConnect()
char * zeStrJoin(char *, int, char **)
bool PolicyLookupEmailAddr(char *prefix, char *key, char *buf, size_t size)
int zeStr2Tokens(char *, int, char **, char *)
bool PolicyLookupIPv4Addr(char *prefix, char *key, char *buf, size_t size)
int AccessLookup(char *addr, char *from, char *to)
#define STRCASEEQUAL(a, b)