Lines Matching refs:pat

76 static void check_daemon(char *pat);
77 static void check_user(char *pat);
78 static int check_host(char *pat);
79 static int reserved_name(char *pat);
350 static void check_daemon(pat)
351 char *pat;
353 if (pat[0] == '@') {
354 tcpd_warn("%s: daemon name begins with \"@\"", pat);
355 } else if (pat[0] == '/') {
356 tcpd_warn("%s: daemon name begins with \"/\"", pat);
357 } else if (pat[0] == '.') {
358 tcpd_warn("%s: daemon name begins with dot", pat);
359 } else if (pat[strlen(pat) - 1] == '.') {
360 tcpd_warn("%s: daemon name ends in dot", pat);
361 } else if (STR_EQ(pat, "ALL") || STR_EQ(pat, unknown)) {
363 } else if (STR_EQ(pat, "FAIL")) { /* obsolete */
366 } else if (reserved_name(pat)) {
367 tcpd_warn("%s: daemon name may be reserved word", pat);
369 switch (inet_get(pat)) {
371 tcpd_warn("%s: no such process name in %s", pat, inetcf);
372 inet_set(pat, WR_YES); /* shut up next time */
375 tcpd_warn("%s: service possibly not wrapped", pat);
376 inet_set(pat, WR_YES);
384 static void check_user(pat)
385 char *pat;
387 if (pat[0] == '@') { /* @netgroup */
388 tcpd_warn("%s: user name begins with \"@\"", pat);
389 } else if (pat[0] == '/') {
390 tcpd_warn("%s: user name begins with \"/\"", pat);
391 } else if (pat[0] == '.') {
392 tcpd_warn("%s: user name begins with dot", pat);
393 } else if (pat[strlen(pat) - 1] == '.') {
394 tcpd_warn("%s: user name ends in dot", pat);
395 } else if (STR_EQ(pat, "ALL") || STR_EQ(pat, unknown)
396 || STR_EQ(pat, "KNOWN")) {
398 } else if (STR_EQ(pat, "FAIL")) { /* obsolete */
401 } else if (reserved_name(pat)) {
402 tcpd_warn("%s: user name may be reserved word", pat);
407 static int is_inet6_addr(pat)
408 char *pat;
414 if (*pat != '[')
416 len = strlen(pat);
417 if ((ch = pat[len - 1]) != ']')
419 pat[len - 1] = '\0';
424 if ((ret = getaddrinfo(pat + 1, NULL, &hints, &res)) == 0)
426 pat[len - 1] = ch;
433 static int check_host(pat)
434 char *pat;
444 if (pat[0] == '@') { /* @netgroup */
453 setnetgrent(pat + 1);
455 tcpd_warn("%s: unknown or empty netgroup", pat + 1);
461 } else if (pat[0] == '/') { /* /path/name */
462 if ((fp = fopen(pat, "r")) != 0) {
464 tcpd_context.file = pat;
474 tcpd_warn("open %s: %m", pat);
476 } else if (mask = split_at(pat, '/')) { /* network/netmask */
480 if ((dot_quad_addr(pat) == INADDR_NONE
482 && (!is_inet6_addr(pat)
485 if (dot_quad_addr(pat) == INADDR_NONE
488 tcpd_warn("%s/%s: bad net/mask pattern", pat, mask);
489 } else if (STR_EQ(pat, "FAIL")) { /* obsolete */
492 } else if (reserved_name(pat)) { /* other reserved */
495 } else if (is_inet6_addr(pat)) { /* IPv6 address */
498 } else if (NOT_INADDR(pat)) { /* internet name */
499 if (pat[strlen(pat) - 1] == '.') {
500 tcpd_warn("%s: domain or host name ends in dot", pat);
501 } else if (pat[0] != '.') {
502 addr_count = check_dns(pat);
505 if (STR_EQ(pat, "0.0.0.0") || STR_EQ(pat, "255.255.255.255")) {
507 } else if (pat[0] == '.') {
508 tcpd_warn("%s: network number begins with dot", pat);
509 } else if (pat[strlen(pat) - 1] != '.') {
510 check_dns(pat);
518 static int reserved_name(pat)
519 char *pat;
521 return (STR_EQ(pat, unknown)
522 || STR_EQ(pat, "KNOWN")
523 || STR_EQ(pat, paranoid)
524 || STR_EQ(pat, "ALL")
525 || STR_EQ(pat, "LOCAL"));