1/* $FreeBSD: head/contrib/pf/pfctl/pfctl.c 126355 2004-02-28 17:32:53Z mlaier $ */ |
2/* $OpenBSD: pfctl.c,v 1.188 2003/08/29 21:47:36 cedric Exp $ */ 3 4/* 5 * Copyright (c) 2001 Daniel Hartmeier 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions --- 22 unchanged lines hidden (view full) --- 32 */ 33 34#include <sys/types.h> 35#include <sys/ioctl.h> 36#include <sys/socket.h> 37 38#include <net/if.h> 39#include <netinet/in.h> |
40#if defined(__FreeBSD__) 41#include <inttypes.h> 42#include <net/route.h> 43#else 44#define PRIu64 "llu" 45#endif |
46#include <net/pfvar.h> 47#include <arpa/inet.h> 48#include <altq/altq.h> 49 50#include <err.h> 51#include <errno.h> 52#include <fcntl.h> 53#include <limits.h> --- 142 unchanged lines hidden (view full) --- 196} 197 198int 199pfctl_enable(int dev, int opts) 200{ 201 if (ioctl(dev, DIOCSTART)) { 202 if (errno == EEXIST) 203 errx(1, "pf already enabled"); |
204#if defined(__FreeBSD__) 205 else if (errno == ESRCH) 206 errx(1, "pfil registeration failed"); 207#endif |
208 else 209 err(1, "DIOCSTART"); 210 } 211 if ((opts & PF_OPT_QUIET) == 0) 212 fprintf(stderr, "pf enabled\n"); 213 214 if (altqsupport && ioctl(dev, DIOCSTARTALTQ)) 215 if (errno != EEXIST) --- 333 unchanged lines hidden (view full) --- 549 printf("%u ", rule->skip[i].nr); 550 } 551 printf("]\n"); 552 553 printf(" [ queue: qname=%s qid=%u pqname=%s pqid=%u ]\n", 554 rule->qname, rule->qid, rule->pqname, rule->pqid); 555 } 556 if (opts & PF_OPT_VERBOSE) |
557 printf(" [ Evaluations: %-8"PRIu64" Packets: %-8"PRIu64" " 558 "Bytes: %-10"PRIu64" States: %-6u]\n", |
559 rule->evaluations, rule->packets, 560 rule->bytes, rule->states); 561} 562 563int 564pfctl_show_rules(int dev, int opts, int format, char *anchorname, 565 char *rulesetname) 566{ --- 47 unchanged lines hidden (view full) --- 614 if (pfctl_get_pool(dev, &pr.rule.rpool, 615 nr, pr.ticket, PF_SCRUB, anchorname, rulesetname) != 0) 616 return (-1); 617 618 switch (format) { 619 case 1: 620 if (pr.rule.label[0]) { 621 printf("%s ", pr.rule.label); |
622 printf("%"PRIu64" %"PRIu64" %"PRIu64"\n", |
623 pr.rule.evaluations, pr.rule.packets, 624 pr.rule.bytes); 625 } 626 break; 627 default: 628 print_rule(&pr.rule, rule_numbers); 629 pfctl_print_rule_counters(&pr.rule, opts); 630 } --- 15 unchanged lines hidden (view full) --- 646 if (pfctl_get_pool(dev, &pr.rule.rpool, 647 nr, pr.ticket, PF_PASS, anchorname, rulesetname) != 0) 648 return (-1); 649 650 switch (format) { 651 case 1: 652 if (pr.rule.label[0]) { 653 printf("%s ", pr.rule.label); |
654 printf("%"PRIu64" %"PRIu64" %"PRIu64"\n", |
655 pr.rule.evaluations, pr.rule.packets, 656 pr.rule.bytes); 657 } 658 break; 659 default: 660 print_rule(&pr.rule, rule_numbers); 661 pfctl_print_rule_counters(&pr.rule, opts); 662 } --- 565 unchanged lines hidden (view full) --- 1228 if ((opts & PF_OPT_QUIET) == 0) 1229 fprintf(stderr, "pf: rule counters cleared\n"); 1230 return (0); 1231} 1232 1233int 1234pfctl_test_altqsupport(int dev, int opts) 1235{ |
1236#if defined(__FreeBSD__) && !defined(ENABLE_ALTQ) 1237 return (0); 1238#else |
1239 struct pfioc_altq pa; 1240 1241 if (ioctl(dev, DIOCGETALTQS, &pa)) { 1242 if (errno == ENODEV) { 1243 if (!(opts & PF_OPT_QUIET)) 1244 fprintf(stderr, "No ALTQ support in kernel\n" 1245 "ALTQ related functions disabled\n"); 1246 return (0); 1247 } else 1248 err(1, "DIOCGETALTQS"); 1249 } 1250 return (1); |
1251#endif |
1252} 1253 1254int 1255pfctl_show_anchors(int dev, int opts, char *anchorname) 1256{ 1257 u_int32_t nr, mnr; 1258 1259 if (!*anchorname) { --- 226 unchanged lines hidden (view full) --- 1486 dev = open("/dev/pf", mode); 1487 if (dev == -1) 1488 err(1, "/dev/pf"); 1489 altqsupport = pfctl_test_altqsupport(dev, opts); 1490 } else { 1491 /* turn off options */ 1492 opts &= ~ (PF_OPT_DISABLE | PF_OPT_ENABLE); 1493 clearopt = showopt = debugopt = NULL; |
1494#if defined(__FreeBSD__) && !defined(ENABLE_ALTQ) 1495 altqsupport = 0; 1496#else |
1497 altqsupport = 1; |
1498#endif |
1499 } 1500 1501 if (opts & PF_OPT_DISABLE) 1502 if (pfctl_disable(dev, opts)) 1503 error = 1; 1504 1505 if (showopt != NULL) { 1506 switch (*showopt) { --- 139 unchanged lines hidden --- |