| @@ -21,27 +21,27 @@ | | | @@ -21,27 +21,27 @@ |
21 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | 21 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
22 | * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE | | 22 | * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE |
23 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | 23 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | | 24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
25 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | | 25 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
26 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | 26 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | 27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
28 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | | 28 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
29 | * SUCH DAMAGE. | | 29 | * SUCH DAMAGE. |
30 | * | | 30 | * |
31 | * $FreeBSD: head/usr.sbin/ip6addrctl/ip6addrctl.c 281143 2015-04-06 09:42:23Z glebius $ | | 31 | * $FreeBSD: head/usr.sbin/ip6addrctl/ip6addrctl.c 281143 2015-04-06 09:42:23Z glebius $ |
32 | */ | | 32 | */ |
33 | #include <sys/cdefs.h> | | 33 | #include <sys/cdefs.h> |
34 | __RCSID("$NetBSD: ip6addrctl.c,v 1.1 2015/12/12 23:35:56 christos Exp $"); | | 34 | __RCSID("$NetBSD: ip6addrctl.c,v 1.2 2015/12/27 12:42:52 joerg Exp $"); |
35 | | | 35 | |
36 | #include <sys/types.h> | | 36 | #include <sys/types.h> |
37 | #include <sys/socket.h> | | 37 | #include <sys/socket.h> |
38 | #include <sys/queue.h> | | 38 | #include <sys/queue.h> |
39 | #include <sys/param.h> | | 39 | #include <sys/param.h> |
40 | #include <sys/ioctl.h> | | 40 | #include <sys/ioctl.h> |
41 | #include <sys/sysctl.h> | | 41 | #include <sys/sysctl.h> |
42 | | | 42 | |
43 | #include <net/if.h> | | 43 | #include <net/if.h> |
44 | | | 44 | |
45 | #include <netinet/in.h> | | 45 | #include <netinet/in.h> |
46 | #include <netinet6/in6_var.h> | | 46 | #include <netinet6/in6_var.h> |
47 | | | 47 | |
| @@ -52,27 +52,27 @@ __RCSID("$NetBSD: ip6addrctl.c,v 1.1 201 | | | @@ -52,27 +52,27 @@ __RCSID("$NetBSD: ip6addrctl.c,v 1.1 201 |
52 | #include <limits.h> | | 52 | #include <limits.h> |
53 | #include <string.h> | | 53 | #include <string.h> |
54 | #include <err.h> | | 54 | #include <err.h> |
55 | | | 55 | |
56 | static char *configfile; | | 56 | static char *configfile; |
57 | | | 57 | |
58 | struct policyqueue { | | 58 | struct policyqueue { |
59 | TAILQ_ENTRY(policyqueue) pc_entry; | | 59 | TAILQ_ENTRY(policyqueue) pc_entry; |
60 | struct in6_addrpolicy pc_policy; | | 60 | struct in6_addrpolicy pc_policy; |
61 | }; | | 61 | }; |
62 | TAILQ_HEAD(policyhead, policyqueue); | | 62 | TAILQ_HEAD(policyhead, policyqueue); |
63 | static struct policyhead policyhead; | | 63 | static struct policyhead policyhead; |
64 | | | 64 | |
65 | static void usage(void); | | 65 | static void usage(void) __dead; |
66 | static void get_policy(void); | | 66 | static void get_policy(void); |
67 | static void dump_policy(void); | | 67 | static void dump_policy(void); |
68 | static int mask2plen(struct sockaddr_in6 *); | | 68 | static int mask2plen(struct sockaddr_in6 *); |
69 | static int parse_prefix(const char *, struct in6_addrpolicy *); | | 69 | static int parse_prefix(const char *, struct in6_addrpolicy *); |
70 | static void make_policy_fromfile(char *); | | 70 | static void make_policy_fromfile(char *); |
71 | static void plen2mask(struct sockaddr_in6 *, int); | | 71 | static void plen2mask(struct sockaddr_in6 *, int); |
72 | static void set_policy(void); | | 72 | static void set_policy(void); |
73 | static void add_policy(char *, char *, char *); | | 73 | static void add_policy(char *, char *, char *); |
74 | static void delete_policy(char *); | | 74 | static void delete_policy(char *); |
75 | static void flush_policy(void); | | 75 | static void flush_policy(void); |
76 | | | 76 | |
77 | int | | 77 | int |
78 | main(int argc, char *argv[]) | | 78 | main(int argc, char *argv[]) |