File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sudo / common / regress / sudo_conf / conf_test.c
Revision 1.1.1.3 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 16:12:54 2014 UTC (10 years, 2 months ago) by misho
Branches: sudo, MAIN
CVS tags: v1_8_10p3_0, v1_8_10p3, HEAD
sudo v 1.8.10p3

    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"
   46: #include "sudo_util.h"
   47: 
   48: static void sudo_conf_dump(void);
   49: 
   50: __dso_public int main(int argc, char *argv[]);
   51: 
   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: {
   60:     initprogname(argc > 0 ? argv[0] : "conf_test");
   61:     if (argc != 2) {
   62: 	fprintf(stderr, "usage: %s conf_file\n", getprogname());
   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
   91:     TAILQ_FOREACH(info, plugins, entries) {
   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>