2 * Copyright (c) 2013 Todd C. Miller <Todd.Miller@courtesan.com>
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.
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.
19 #include <sys/types.h>
28 #endif /* STDC_HEADERS */
30 # if defined(HAVE_MEMORY_H) && !defined(STDC_HEADERS)
34 #endif /* HAVE_STRING_H */
37 #endif /* HAVE_STRINGS_H */
41 # include "compat/stdbool.h"
45 #include "sudo_conf.h"
47 static void sudo_conf_dump(void);
50 * Simple test driver for sudo_conf().
51 * Parses the given configuration file and dumps the resulting
52 * sudo_conf_data struct to the standard output.
55 main(int argc, char *argv[])
58 fprintf(stderr, "usage: conf_test conf_file\n");
61 sudo_conf_read(argv[1]);
70 struct plugin_info_list *plugins = sudo_conf_plugins();
71 struct plugin_info *info;
73 printf("Set disable_coredump %s\n",
74 sudo_conf_disable_coredump() ? "true" : "false");
75 printf("Set group_source %s\n",
76 sudo_conf_group_source() == GROUP_SOURCE_ADAPTIVE ? "adaptive" :
77 sudo_conf_group_source() == GROUP_SOURCE_STATIC ? "static" : "dynamic");
78 printf("Set max_groups %d\n", sudo_conf_max_groups());
79 if (sudo_conf_debug_flags() != NULL)
80 printf("Debug %s %s\n", getprogname(), sudo_conf_debug_flags());
81 if (sudo_conf_askpass_path() != NULL)
82 printf("Path askpass %s\n", sudo_conf_askpass_path());
83 #ifdef _PATH_SUDO_NOEXEC
84 if (sudo_conf_noexec_path() != NULL)
85 printf("Path noexec %s\n", sudo_conf_noexec_path());
87 tq_foreach_fwd(plugins, info) {
88 printf("Plugin %s %s", info->symbol_name, info->path);
91 for (op = info->options; *op != NULL; op++)
100 warning_set_locale(void)
107 warning_restore_locale(void)