/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to plugin-helpers/mandos-client-iprouteadddel.c

  • Committer: Teddy Hogeborn
  • Date: 2019-08-05 21:14:05 UTC
  • Revision ID: teddy@recompile.se-20190805211405-9m6hecekaihpttz9
Override lintian warnings about upgrading from old versions

There are some really things which are imperative that we fix in case
someone were to upgrade from a really old version.  We want to keep
these fixes in the postinst maintainer scripts, even though lintian
complains about such old upgrades not being supported by Debian in
general.  We prefer the code being there, for the sake of the users.

* debian/mandos-client.lintian-overrides
  (maintainer-script-supports-ancient-package-version): New.
  debian/mandos.lintian-overrides
  (maintainer-script-supports-ancient-package-version): - '' -

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
/* 
3
3
 * iprouteadddel - Add or delete direct route to a local IP address
4
4
 * 
5
 
 * Copyright © 2015-2018, 2021-2022 Teddy Hogeborn
6
 
 * Copyright © 2015-2018, 2021-2022 Björn Påhlsson
 
5
 * Copyright © 2015-2018 Teddy Hogeborn
 
6
 * Copyright © 2015-2018 Björn Påhlsson
7
7
 * 
8
8
 * This file is part of Mandos.
9
9
 * 
25
25
 
26
26
#define _GNU_SOURCE             /* program_invocation_short_name */
27
27
#include <stdbool.h>            /* bool, false, true */
28
 
#include <argp.h>               /* argp_program_version,
29
 
                                   argp_program_bug_address,
30
 
                                   struct argp_option,
31
 
                                   struct argp_state, ARGP_KEY_ARG,
 
28
#include <stdio.h>              /* fprintf(), stderr, FILE, vfprintf */
 
29
#include <errno.h>              /* program_invocation_short_name,
 
30
                                   errno, perror(), EINVAL, ENOMEM */
 
31
#include <stdarg.h>             /* va_list, va_start */
 
32
#include <stdlib.h>             /* EXIT_SUCCESS */
 
33
#include <argp.h>               /* struct argp_option, error_t, struct
 
34
                                   argp_state, ARGP_KEY_ARG,
32
35
                                   argp_usage(), ARGP_KEY_END,
33
36
                                   ARGP_ERR_UNKNOWN, struct argp,
34
 
                                   argp_parse(), ARGP_IN_ORDER */
35
 
#include <errno.h>              /* errno,
36
 
                                   program_invocation_short_name,
37
 
                                   error_t, EINVAL, ENOMEM */
38
 
#include <stdio.h>              /* fprintf(), stderr, perror(), FILE,
39
 
                                   vfprintf() */
40
 
#include <stdarg.h>             /* va_list, va_start(), vfprintf() */
41
 
#include <stdlib.h>             /* EXIT_SUCCESS */
 
37
                                   argp_parse() */
 
38
#include <sysexits.h>           /* EX_USAGE, EX_OSERR */
 
39
#include <netinet/ip.h>         /* sa_family_t, AF_INET6, AF_INET */
 
40
#include <inttypes.h>           /* PRIdMAX, intmax_t */
 
41
 
42
42
#include <netlink/netlink.h>    /* struct nl_addr, nl_addr_parse(),
43
43
                                   nl_geterror(),
44
 
                                   nl_addr_get_family(), NLM_F_EXCL,
 
44
                                   nl_addr_get_family(),
45
45
                                   nl_addr_put() */
46
 
#include <stddef.h>             /* NULL */
47
 
#include <netlink/route/route.h>/* struct rtnl_route,
48
 
                                   struct rtnl_nexthop, NETLINK_ROUTE,
49
 
                                   rtnl_route_alloc(),
50
 
                                   rtnl_route_set_family(),
51
 
                                   rtnl_route_set_protocol(),
52
 
                                   RTPROT_BOOT,
53
 
                                   rtnl_route_set_scope(),
54
 
                                   RT_SCOPE_LINK,
55
 
                                   rtnl_route_set_type(), RTN_UNICAST,
56
 
                                   rtnl_route_set_dst(),
57
 
                                   rtnl_route_set_table(),
58
 
                                   RT_TABLE_MAIN,
59
 
                                   rtnl_route_nh_alloc(),
60
 
                                   rtnl_route_nh_set_ifindex(),
61
 
                                   rtnl_route_add_nexthop(),
62
 
                                   rtnl_route_add(),
63
 
                                   rtnl_route_delete(),
64
 
                                   rtnl_route_put(),
65
 
                                   rtnl_route_nh_free() */
 
46
#include <netlink/route/route.h> /* struct rtnl_route,
 
47
                                    struct rtnl_nexthop,
 
48
                                    rtnl_route_alloc(),
 
49
                                    rtnl_route_set_family(),
 
50
                                    rtnl_route_set_protocol(),
 
51
                                    RTPROT_BOOT,
 
52
                                    rtnl_route_set_scope(),
 
53
                                    RT_SCOPE_LINK,
 
54
                                    rtnl_route_set_type(),
 
55
                                    RTN_UNICAST,
 
56
                                    rtnl_route_set_dst(),
 
57
                                    rtnl_route_set_table(),
 
58
                                    RT_TABLE_MAIN,
 
59
                                    rtnl_route_nh_alloc(),
 
60
                                    rtnl_route_nh_set_ifindex(),
 
61
                                    rtnl_route_add_nexthop(),
 
62
                                    rtnl_route_add(),
 
63
                                    rtnl_route_delete(),
 
64
                                    rtnl_route_put(),
 
65
                                    rtnl_route_nh_free() */
66
66
#include <netlink/socket.h>     /* struct nl_sock, nl_socket_alloc(),
67
67
                                   nl_connect(), nl_socket_free() */
68
 
#include <strings.h>            /* strcasecmp() */
69
 
#include <sys/socket.h>         /* AF_UNSPEC, AF_INET6, AF_INET */
70
 
#include <sysexits.h>           /* EX_USAGE, EX_OSERR */
71
 
#include <netlink/route/link.h> /* struct rtnl_link,
72
 
                                   rtnl_link_get_kernel(),
 
68
#include <netlink/route/link.h> /* rtnl_link_get_kernel(),
73
69
                                   rtnl_link_get_ifindex(),
74
70
                                   rtnl_link_put() */
75
 
#include <netinet/in.h>         /* sa_family_t */
76
 
#include <inttypes.h>           /* PRIdMAX, intmax_t */
77
 
#include <stdint.h>             /* uint8_t */
78
 
 
79
71
 
80
72
bool debug = false;
81
73
const char *argp_program_version = "mandos-client-iprouteadddel " VERSION;
93
85
__attribute__((format (gnu_printf, 2, 3), nonnull))
94
86
int fprintf_plus(FILE *stream, const char *format, ...){
95
87
  va_list ap;
96
 
  va_start(ap, format);
 
88
  va_start (ap, format);
97
89
  
98
90
  fprintf(stream, "Mandos plugin helper %s: ",
99
91
          program_invocation_short_name);