Annotation of embedaddon/sudo/common/regress/sudo_conf/conf_test.c, revision 1.1.1.3
1.1 misho 1: /*
2: * Copyright (c) 2013 Todd C. Miller <Todd.Miller@courtesan.com>
3: *
4: * Permission to use, copy, modify, and distribute this software for any
5: * purpose with or without fee is hereby granted, provided that the above
6: * copyright notice and this permission notice appear in all copies.
7: *
8: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14: * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15: */
16:
17: #include <config.h>
18:
19: #include <sys/types.h>
20: #include <stdio.h>
21: #ifdef STDC_HEADERS
22: # include <stdlib.h>
23: # include <stddef.h>
24: #else
25: # ifdef HAVE_STDLIB_H
26: # include <stdlib.h>
27: # endif
28: #endif /* STDC_HEADERS */
29: #ifdef HAVE_STRING_H
30: # if defined(HAVE_MEMORY_H) && !defined(STDC_HEADERS)
31: # include <memory.h>
32: # endif
33: # include <string.h>
34: #endif /* HAVE_STRING_H */
35: #ifdef HAVE_STRINGS_H
36: # include <strings.h>
37: #endif /* HAVE_STRINGS_H */
38: #ifdef HAVE_STDBOOL_H
39: # include <stdbool.h>
40: #else
41: # include "compat/stdbool.h"
42: #endif
43:
44: #include "missing.h"
45: #include "sudo_conf.h"
1.1.1.3 ! misho 46: #include "sudo_util.h"
1.1 misho 47:
48: static void sudo_conf_dump(void);
49:
1.1.1.2 misho 50: __dso_public int main(int argc, char *argv[]);
51:
1.1 misho 52: /*
53: * Simple test driver for sudo_conf().
54: * Parses the given configuration file and dumps the resulting
55: * sudo_conf_data struct to the standard output.
56: */
57: int
58: main(int argc, char *argv[])
59: {
1.1.1.3 ! misho 60: initprogname(argc > 0 ? argv[0] : "conf_test");
1.1 misho 61: if (argc != 2) {
1.1.1.3 ! misho 62: fprintf(stderr, "usage: %s conf_file\n", getprogname());
1.1 misho 63: exit(1);
64: }
65: sudo_conf_read(argv[1]);
66: sudo_conf_dump();
67:
68: exit(0);
69: }
70:
71: static void
72: sudo_conf_dump(void)
73: {
74: struct plugin_info_list *plugins = sudo_conf_plugins();
75: struct plugin_info *info;
76:
77: printf("Set disable_coredump %s\n",
78: sudo_conf_disable_coredump() ? "true" : "false");
79: printf("Set group_source %s\n",
80: sudo_conf_group_source() == GROUP_SOURCE_ADAPTIVE ? "adaptive" :
81: sudo_conf_group_source() == GROUP_SOURCE_STATIC ? "static" : "dynamic");
82: printf("Set max_groups %d\n", sudo_conf_max_groups());
83: if (sudo_conf_debug_flags() != NULL)
84: printf("Debug %s %s\n", getprogname(), sudo_conf_debug_flags());
85: if (sudo_conf_askpass_path() != NULL)
86: printf("Path askpass %s\n", sudo_conf_askpass_path());
87: #ifdef _PATH_SUDO_NOEXEC
88: if (sudo_conf_noexec_path() != NULL)
89: printf("Path noexec %s\n", sudo_conf_noexec_path());
90: #endif
1.1.1.3 ! misho 91: TAILQ_FOREACH(info, plugins, entries) {
1.1 misho 92: printf("Plugin %s %s", info->symbol_name, info->path);
93: if (info->options) {
94: char * const * op;
95: for (op = info->options; *op != NULL; op++)
96: printf(" %s", *op);
97: }
98: putchar('\n');
99: }
100: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>