Annotation of embedaddon/strongswan/src/swanctl/commands/load_all.c, revision 1.1.1.1
1.1 misho 1: /*
2: * Copyright (C) 2014 Martin Willi
3: * Copyright (C) 2014 revosec AG
4: *
5: * This program is free software; you can redistribute it and/or modify it
6: * under the terms of the GNU General Public License as published by the
7: * Free Software Foundation; either version 2 of the License, or (at your
8: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
9: *
10: * This program is distributed in the hope that it will be useful, but
11: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13: * for more details.
14: */
15:
16: #define _GNU_SOURCE
17: #include <stdio.h>
18: #include <errno.h>
19: #include <unistd.h>
20: #include <sys/stat.h>
21:
22: #include "command.h"
23: #include "swanctl.h"
24: #include "load_creds.h"
25: #include "load_authorities.h"
26: #include "load_pools.h"
27: #include "load_conns.h"
28:
29: static int load_all(vici_conn_t *conn)
30: {
31: bool clear = FALSE, noprompt = FALSE;
32: command_format_options_t format = COMMAND_FORMAT_NONE;
33: settings_t *cfg;
34: char *arg, *file = NULL;
35: int ret = 0;
36:
37: while (TRUE)
38: {
39: switch (command_getopt(&arg))
40: {
41: case 'h':
42: return command_usage(NULL);
43: case 'c':
44: clear = TRUE;
45: continue;
46: case 'n':
47: noprompt = TRUE;
48: continue;
49: case 'P':
50: format |= COMMAND_FORMAT_PRETTY;
51: /* fall through to raw */
52: case 'r':
53: format |= COMMAND_FORMAT_RAW;
54: continue;
55: case 'f':
56: file = arg;
57: continue;
58: case EOF:
59: break;
60: default:
61: return command_usage("invalid --load-all option");
62: }
63: break;
64: }
65:
66: cfg = load_swanctl_conf(file);
67: if (!cfg)
68: {
69: return EINVAL;
70: }
71:
72: if (ret == 0)
73: {
74: ret = load_creds_cfg(conn, format, cfg, clear, noprompt);
75: }
76: if (ret == 0)
77: {
78: ret = load_authorities_cfg(conn, format, cfg);
79: }
80: if (ret == 0)
81: {
82: ret = load_pools_cfg(conn, format, cfg);
83: }
84: if (ret == 0)
85: {
86: ret = load_conns_cfg(conn, format, cfg);
87: }
88:
89: cfg->destroy(cfg);
90:
91: return ret;
92: }
93:
94: /**
95: * Register the command.
96: */
97: static void __attribute__ ((constructor))reg()
98: {
99: command_register((command_t) {
100: load_all, 'q', "load-all",
101: "load credentials, authorities, pools and connections",
102: {"[--raw|--pretty] [--clear] [--noprompt]"},
103: {
104: {"help", 'h', 0, "show usage information"},
105: {"clear", 'c', 0, "clear previously loaded credentials"},
106: {"noprompt", 'n', 0, "do not prompt for passwords"},
107: {"raw", 'r', 0, "dump raw response message"},
108: {"pretty", 'P', 0, "dump raw response message in pretty print"},
109: {"file", 'f', 1, "custom path to swanctl.conf"},
110: }
111: });
112: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>