Lines Matching refs:pat

353 static void check_daemon(pat)
354 char *pat;
356 if (pat[0] == '@') {
357 tcpd_warn("%s: daemon name begins with \"@\"", pat);
358 } else if (pat[0] == '/') {
359 tcpd_warn("%s: daemon name begins with \"/\"", pat);
360 } else if (pat[0] == '.') {
361 tcpd_warn("%s: daemon name begins with dot", pat);
362 } else if (pat[strlen(pat) - 1] == '.') {
363 tcpd_warn("%s: daemon name ends in dot", pat);
364 } else if (STR_EQ(pat, "ALL") || STR_EQ(pat, unknown)) {
366 } else if (STR_EQ(pat, "FAIL")) { /* obsolete */
369 } else if (reserved_name(pat)) {
370 tcpd_warn("%s: daemon name may be reserved word", pat);
372 switch (inet_get(pat)) {
374 tcpd_warn("%s: no such process name in %s", pat, inetcf);
375 inet_set(pat, WR_YES); /* shut up next time */
378 tcpd_warn("%s: service possibly not wrapped", pat);
379 inet_set(pat, WR_YES);
387 static void check_user(pat)
388 char *pat;
390 if (pat[0] == '@') { /* @netgroup */
391 tcpd_warn("%s: user name begins with \"@\"", pat);
392 } else if (pat[0] == '/') {
393 tcpd_warn("%s: user name begins with \"/\"", pat);
394 } else if (pat[0] == '.') {
395 tcpd_warn("%s: user name begins with dot", pat);
396 } else if (pat[strlen(pat) - 1] == '.') {
397 tcpd_warn("%s: user name ends in dot", pat);
398 } else if (STR_EQ(pat, "ALL") || STR_EQ(pat, unknown)
399 || STR_EQ(pat, "KNOWN")) {
401 } else if (STR_EQ(pat, "FAIL")) { /* obsolete */
404 } else if (reserved_name(pat)) {
405 tcpd_warn("%s: user name may be reserved word", pat);
410 static int is_inet6_addr(pat)
411 char *pat;
417 if (*pat != '[')
419 len = strlen(pat);
420 if ((ch = pat[len - 1]) != ']')
422 pat[len - 1] = '\0';
427 if ((ret = getaddrinfo(pat + 1, NULL, &hints, &res)) == 0)
429 pat[len - 1] = ch;
436 static int check_host(pat)
437 char *pat;
447 if (pat[0] == '@') { /* @netgroup */
456 setnetgrent(pat + 1);
458 tcpd_warn("%s: unknown or empty netgroup", pat + 1);
464 } else if (pat[0] == '/') { /* /path/name */
465 if ((fp = fopen(pat, "r")) != 0) {
467 tcpd_context.file = pat;
477 tcpd_warn("open %s: %m", pat);
479 } else if (mask = split_at(pat, '/')) { /* network/netmask */
483 if ((dot_quad_addr(pat) == INADDR_NONE
485 && (!is_inet6_addr(pat)
488 if (dot_quad_addr(pat) == INADDR_NONE
491 tcpd_warn("%s/%s: bad net/mask pattern", pat, mask);
492 } else if (STR_EQ(pat, "FAIL")) { /* obsolete */
495 } else if (reserved_name(pat)) { /* other reserved */
498 } else if (is_inet6_addr(pat)) { /* IPv6 address */
501 } else if (NOT_INADDR(pat)) { /* internet name */
502 if (pat[strlen(pat) - 1] == '.') {
503 tcpd_warn("%s: domain or host name ends in dot", pat);
504 } else if (pat[0] != '.') {
505 addr_count = check_dns(pat);
508 if (STR_EQ(pat, "0.0.0.0") || STR_EQ(pat, "255.255.255.255")) {
510 } else if (pat[0] == '.') {
511 tcpd_warn("%s: network number begins with dot", pat);
512 } else if (pat[strlen(pat) - 1] != '.') {
513 check_dns(pat);
521 static int reserved_name(pat)
522 char *pat;
524 return (STR_EQ(pat, unknown)
525 || STR_EQ(pat, "KNOWN")
526 || STR_EQ(pat, paranoid)
527 || STR_EQ(pat, "ALL")
528 || STR_EQ(pat, "LOCAL"));