Lines Matching +full:a +full:- +full:hlm

7  * Added redirect stuff and a variety of bug fixes. (mcn@EnGarde.com)
55 #define bzero(a,b) memset(a,0,b) argument
81 fprintf(stderr, "Usage: %s [-CFhlnrRsv] [-f filename]\n", name); in usage()
94 fd = -1; in main()
105 while ((c = getopt(argc, argv, "CdFf:hlm:M:N:nO:prRsv")) != -1) in main()
164 (void) fprintf(stderr, "%s: -p must be used with -r\n", in main()
177 if (((fd = open(IPNAT_NAME, mode)) == -1) && in main()
178 ((fd = open(IPNAT_NAME, O_RDONLY)) == -1)) { in main()
188 if (checkrev(IPL_NAME) == -1) { in main()
200 if (ioctl(fd, SIOCGNATS, &obj) == -1) { in main()
207 if (openkmem(kernel, core) == -1) in main()
228 * Read NAT statistic information in using a symbol table and memory file
247 if (nlist(kernel, nat_nlist) == -1) { in natstat_dead()
258 nsp->ns_side[0].ns_table = tables[0]; in natstat_dead()
259 nsp->ns_side[1].ns_table = tables[1]; in natstat_dead()
261 kmemcpy((char *)&nsp->ns_list, nat_nlist[1].n_value, in natstat_dead()
262 sizeof(nsp->ns_list)); in natstat_dead()
263 kmemcpy((char *)&nsp->ns_maptable, nat_nlist[2].n_value, in natstat_dead()
264 sizeof(nsp->ns_maptable)); in natstat_dead()
265 kmemcpy((char *)&nsp->ns_nattab_sz, nat_nlist[3].n_value, in natstat_dead()
266 sizeof(nsp->ns_nattab_sz)); in natstat_dead()
267 kmemcpy((char *)&nsp->ns_rultab_sz, nat_nlist[4].n_value, in natstat_dead()
268 sizeof(nsp->ns_rultab_sz)); in natstat_dead()
269 kmemcpy((char *)&nsp->ns_rdrtab_sz, nat_nlist[5].n_value, in natstat_dead()
270 sizeof(nsp->ns_rdrtab_sz)); in natstat_dead()
271 kmemcpy((char *)&nsp->ns_hostmap_sz, nat_nlist[6].n_value, in natstat_dead()
272 sizeof(nsp->ns_hostmap_sz)); in natstat_dead()
273 kmemcpy((char *)&nsp->ns_instances, nat_nlist[7].n_value, in natstat_dead()
274 sizeof(nsp->ns_instances)); in natstat_dead()
297 if (ioctl(fd, SIOCMATCHFLUSH, &obj) == -1) { in flushtable()
299 n = -1; in flushtable()
303 } else if (ioctl(fd, SIOCIPFFL, &n) == -1) { in flushtable()
305 n = -1; in flushtable()
314 if (!(opts & OPT_DONOTHING) && ioctl(fd, SIOCIPFFL, &n) == -1) in flushtable()
334 while (nsp->ns_list) { in dostats_dead()
335 if (kmemcpy((char *)&ipn, (long)nsp->ns_list, in dostats_dead()
343 nsp->ns_list = ipn.in_next; in dostats_dead()
359 for (np = nsp->ns_instances; np; np = nat.nat_next) { in dostats_dead()
372 printactivenat(&nat, opts, nsp->ns_ticks); in dostats_dead()
398 sz = sizeof(*buckets) * nsp->ns_nattab_sz; in dotable()
425 if (kmemcpy((char *)buckets, (u_long)nsp->ns_nattab_sz, sz)) { in dotable()
431 minlen = nsp->ns_side[which].ns_inuse; in dotable()
436 for (i = 0; i < nsp->ns_nattab_sz; i++) { in dotable()
449 ((float)used / nsp->ns_nattab_sz) * 100.0, side); in dotable()
466 printnatside("in", &nsp->ns_side[0]); in dostats()
469 printnatside("out", &nsp->ns_side[1]); in dostats()
472 printf("%lu\tlog successes\n", nsp->ns_side[0].ns_log); in dostats()
473 printf("%lu\tlog failures\n", nsp->ns_side[1].ns_log); in dostats()
475 nsp->ns_side[0].ns_added, in dostats()
476 nsp->ns_side[1].ns_added); in dostats()
477 printf("%u\tactive\n", nsp->ns_active); in dostats()
478 printf("%lu\ttransparent adds\n", nsp->ns_addtrpnt); in dostats()
479 printf("%lu\tdivert build\n", nsp->ns_divert_build); in dostats()
480 printf("%lu\texpired\n", nsp->ns_expire); in dostats()
481 printf("%lu\tflush all\n", nsp->ns_flush_all); in dostats()
482 printf("%lu\tflush closing\n", nsp->ns_flush_closing); in dostats()
483 printf("%lu\tflush queue\n", nsp->ns_flush_queue); in dostats()
484 printf("%lu\tflush state\n", nsp->ns_flush_state); in dostats()
485 printf("%lu\tflush timeout\n", nsp->ns_flush_timeout); in dostats()
486 printf("%lu\thostmap new\n", nsp->ns_hm_new); in dostats()
487 printf("%lu\thostmap fails\n", nsp->ns_hm_newfail); in dostats()
488 printf("%lu\thostmap add\n", nsp->ns_hm_addref); in dostats()
489 printf("%lu\thostmap NULL rule\n", nsp->ns_hm_nullnp); in dostats()
490 printf("%lu\tlog ok\n", nsp->ns_log_ok); in dostats()
491 printf("%lu\tlog fail\n", nsp->ns_log_fail); in dostats()
492 printf("%u\torphan count\n", nsp->ns_orphans); in dostats()
493 printf("%u\trule count\n", nsp->ns_rules); in dostats()
494 printf("%u\tmap rules\n", nsp->ns_rules_map); in dostats()
495 printf("%u\trdr rules\n", nsp->ns_rules_rdr); in dostats()
496 printf("%u\twilds\n", nsp->ns_wilds); in dostats()
498 printf("list %p\n", nsp->ns_list); in dostats()
539 while (nsp->ns_list) { in dostats_live()
540 if (ioctl(fd, SIOCGENITER, &obj) == -1) in dostats_live()
543 printf("%lu ", ipn->in_hits); in dostats_live()
545 nsp->ns_list = ipn->in_next; in dostats_live()
569 while (nsp->ns_instances != NULL) { in dostats_live()
570 if (ioctl(fd, SIOCGENITER, &obj) == -1) in dostats_live()
582 printactivenat(&nat, opts, nsp->ns_ticks); in dostats_live()
593 nsp->ns_instances = nat.nat_next; in dostats_live()
616 nsp->ns_hostmap_sz); in showhostmap_dead()
617 if (kmemcpy((char *)maptable, (u_long)nsp->ns_maptable, in showhostmap_dead()
618 sizeof(hostmap_t *) * nsp->ns_hostmap_sz)) { in showhostmap_dead()
623 for (hv = 0; hv < nsp->ns_hostmap_sz; hv++) { in showhostmap_dead()
663 while (nsp->ns_maplist != NULL) { in showhostmap_live()
664 if (ioctl(fd, SIOCGENITER, &obj) == -1) in showhostmap_live()
667 nsp->ns_maplist = hm.hm_next; in showhostmap_live()
687 if (e->ipfe_cmd == IPF_EXP_END) in nat_matcharray()
689 n -= e->ipfe_size; in nat_matcharray()
691 p = e->ipfe_cmd >> 16; in nat_matcharray()
692 if ((p != 0) && (p != nat->nat_pr[1])) in nat_matcharray()
695 switch (e->ipfe_cmd) in nat_matcharray()
698 for (i = 0; !rv && i < e->ipfe_narg; i++) { in nat_matcharray()
699 rv |= (nat->nat_pr[1] == e->ipfe_arg0[i]); in nat_matcharray()
704 if (nat->nat_v[0] != 4) in nat_matcharray()
706 for (i = 0; !rv && i < e->ipfe_narg; i++) { in nat_matcharray()
707 rv |= ((nat->nat_osrcaddr & in nat_matcharray()
708 e->ipfe_arg0[i * 2 + 1]) == in nat_matcharray()
709 e->ipfe_arg0[i * 2]) || in nat_matcharray()
710 ((nat->nat_nsrcaddr & in nat_matcharray()
711 e->ipfe_arg0[i * 2 + 1]) == in nat_matcharray()
712 e->ipfe_arg0[i * 2]); in nat_matcharray()
717 if (nat->nat_v[0] != 4) in nat_matcharray()
719 for (i = 0; !rv && i < e->ipfe_narg; i++) { in nat_matcharray()
720 rv |= ((nat->nat_odstaddr & in nat_matcharray()
721 e->ipfe_arg0[i * 2 + 1]) == in nat_matcharray()
722 e->ipfe_arg0[i * 2]) || in nat_matcharray()
723 ((nat->nat_ndstaddr & in nat_matcharray()
724 e->ipfe_arg0[i * 2 + 1]) == in nat_matcharray()
725 e->ipfe_arg0[i * 2]); in nat_matcharray()
730 if (nat->nat_v[0] != 4) in nat_matcharray()
732 for (i = 0; !rv && i < e->ipfe_narg; i++) { in nat_matcharray()
733 rv |= ((nat->nat_osrcaddr & in nat_matcharray()
734 e->ipfe_arg0[i * 2 + 1]) == in nat_matcharray()
735 e->ipfe_arg0[i * 2]) || in nat_matcharray()
736 ((nat->nat_nsrcaddr & in nat_matcharray()
737 e->ipfe_arg0[i * 2 + 1]) == in nat_matcharray()
738 e->ipfe_arg0[i * 2]) || in nat_matcharray()
739 ((nat->nat_odstaddr & in nat_matcharray()
740 e->ipfe_arg0[i * 2 + 1]) == in nat_matcharray()
741 e->ipfe_arg0[i * 2]) || in nat_matcharray()
742 ((nat->nat_ndstaddr & in nat_matcharray()
743 e->ipfe_arg0[i * 2 + 1]) == in nat_matcharray()
744 e->ipfe_arg0[i * 2]); in nat_matcharray()
750 if (nat->nat_v[0] != 6) in nat_matcharray()
752 for (i = 0; !rv && i < e->ipfe_narg; i++) { in nat_matcharray()
753 rv |= IP6_MASKEQ(&nat->nat_osrc6, in nat_matcharray()
754 &e->ipfe_arg0[i * 8 + 4], in nat_matcharray()
755 &e->ipfe_arg0[i * 8]) || in nat_matcharray()
756 IP6_MASKEQ(&nat->nat_nsrc6, in nat_matcharray()
757 &e->ipfe_arg0[i * 8 + 4], in nat_matcharray()
758 &e->ipfe_arg0[i * 8]); in nat_matcharray()
763 if (nat->nat_v[0] != 6) in nat_matcharray()
765 for (i = 0; !rv && i < e->ipfe_narg; i++) { in nat_matcharray()
766 rv |= IP6_MASKEQ(&nat->nat_odst6, in nat_matcharray()
767 &e->ipfe_arg0[i * 8 + 4], in nat_matcharray()
768 &e->ipfe_arg0[i * 8]) || in nat_matcharray()
769 IP6_MASKEQ(&nat->nat_ndst6, in nat_matcharray()
770 &e->ipfe_arg0[i * 8 + 4], in nat_matcharray()
771 &e->ipfe_arg0[i * 8]); in nat_matcharray()
776 if (nat->nat_v[0] != 6) in nat_matcharray()
778 for (i = 0; !rv && i < e->ipfe_narg; i++) { in nat_matcharray()
779 rv |= IP6_MASKEQ(&nat->nat_osrc6, in nat_matcharray()
780 &e->ipfe_arg0[i * 8 + 4], in nat_matcharray()
781 &e->ipfe_arg0[i * 8]) || in nat_matcharray()
782 IP6_MASKEQ(&nat->nat_nsrc6, in nat_matcharray()
783 &e->ipfe_arg0[i * 8 + 4], in nat_matcharray()
784 &e->ipfe_arg0[i * 8]) || in nat_matcharray()
785 IP6_MASKEQ(&nat->nat_odst6, in nat_matcharray()
786 &e->ipfe_arg0[i * 8 + 4], in nat_matcharray()
787 &e->ipfe_arg0[i * 8]) || in nat_matcharray()
788 IP6_MASKEQ(&nat->nat_ndst6, in nat_matcharray()
789 &e->ipfe_arg0[i * 8 + 4], in nat_matcharray()
790 &e->ipfe_arg0[i * 8]); in nat_matcharray()
797 for (i = 0; !rv && i < e->ipfe_narg; i++) { in nat_matcharray()
798 rv |= (nat->nat_osport == e->ipfe_arg0[i]) || in nat_matcharray()
799 (nat->nat_nsport == e->ipfe_arg0[i]) || in nat_matcharray()
800 (nat->nat_odport == e->ipfe_arg0[i]) || in nat_matcharray()
801 (nat->nat_ndport == e->ipfe_arg0[i]); in nat_matcharray()
807 for (i = 0; !rv && i < e->ipfe_narg; i++) { in nat_matcharray()
808 rv |= (nat->nat_osport == e->ipfe_arg0[i]) || in nat_matcharray()
809 (nat->nat_nsport == e->ipfe_arg0[i]); in nat_matcharray()
815 for (i = 0; !rv && i < e->ipfe_narg; i++) { in nat_matcharray()
816 rv |= (nat->nat_odport == e->ipfe_arg0[i]) || in nat_matcharray()
817 (nat->nat_ndport == e->ipfe_arg0[i]); in nat_matcharray()
821 rv ^= e->ipfe_not; in nat_matcharray()