35 static int EnvDefinedNetClassEquiv(
char *);
42 #define SET_LABEL(s, sz, label) \ 44 if ((s) != NULL && (sz) > 0) \ 45 strlcpy((s), (label), (sz)); \ 72 ip += strlen(
"ipv6:");
81 memset(bClass, 0,
sizeof (bClass));
83 if (!found && name != NULL)
101 ret = EnvDefinedNetClassEquiv(bClass);
105 memset(bEquiv, 0,
sizeof (bEquiv));
106 found =
db_policy_check(
"NetClassEquiv", bClass, bEquiv,
sizeof (bEquiv));
112 STRNULL(name,
"-"), ret, bClass, bEquiv);
136 assert(
class != NULL);
138 if (strlen(
class) == 0)
141 tclass = strdup(
class);
142 if (tclass == NULL) {
148 for (i = 0; i < argc && code ==
NET_UNKNOWN; i++) {
149 if ((i == 0) && (label != NULL))
152 if (strcasecmp(argv[i],
"LOCAL") == 0)
155 if (strcasecmp(argv[i],
"DOMAIN") == 0)
158 if (strcasecmp(argv[i],
"FRIEND") == 0)
161 if (strcasecmp(argv[i],
"OTHER") == 0)
164 if (strcasecmp(argv[i],
"UNKNOWN") == 0)
184 #define KCLASS_INIT {FALSE, NET_UNKNOWN, NULL, 0} 186 #define FILL_KCLASS(kC, eStr, code) \ 189 char *env = getenv(eStr); \ 191 (kC)->buf = strdup(env); \ 192 if ((kC)->buf != NULL) { \ 193 (kC)->nb = zeStr2Tokens((kC)->buf, 32, (kC)->classes, ",+ "); \ 194 (kC)->netcode = (code); \ 202 #define CHECK_KCLASS(kC, class, code) \ 206 for (i = 0; i < (kC)->nb; i++) { \ 207 if (strcasecmp(class, (kC)->classes[i]) == 0) \ 208 code = (kC)->netcode; \ 215 EnvDefinedNetClassEquiv(
class)
227 if (
class == NULL || strlen(
class) == 0)
#define STRNCASEEQUAL(a, b, n)
int GetClientNetClass(char *ip, char *name, netclass_T *class, char *label, size_t sz)
int zeStr2Tokens(char *, int, char **, char *)
bool db_policy_check(char *prefix, char *key, char *bufout, size_t szbuf)
#define ZE_MessageInfo(level,...)
#define CHECK_KCLASS(kC, class, code)
#define ZE_LogSysError(...)
#define SET_LABEL(s, sz, label)
#define FILL_KCLASS(kC, eStr, code)
int DecodeNetClass(char *, char *, size_t)