OpenDNSSEC-enforcer  2.1.3
kc_helper.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2012 Nominet UK. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
17  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
19  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
21  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
22  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
23  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25 
26 #ifndef KC_HELPER_H
27 #define KC_HELPER_H
28 
29 #ifdef LOG_DAEMON
30 #define DEFAULT_LOG_FACILITY LOG_DAEMON
31 #define DEFAULT_LOG_FACILITY_STRING "LOG_DAEMON"
32 #else
33 #define DEFAULT_LOG_FACILITY LOG_USER
34 #define DEFAULT_LOG_FACILITY_STRING "LOG_USER"
35 #endif /* LOG_DAEMON */
36 
37 #include <libxml/xpath.h>
38 
39 #define KC_NAME_LENGTH 256
40 
41 typedef struct {
42  char *name;
43  char *module;
44  char *TokenLabel;
45 } KC_REPO;
46 
47 int check_conf(const char *conf, char **kasp, char **zonelist,
48  char ***repo_listout, int *repo_countout, int verbose);
49 int check_kasp(const char *kasp, char **repo_list, int repo_count, int verbose,
50  char ***policy_names_out, int *policy_count_out);
51 int check_zonelist(const char *zonelist, int verbose, char **policy_names,
52  int policy_count);
53 
54 void log_init(int facility, const char *program_name);
55 void log_switch(int facility, const char *program_name);
56 void dual_log(const char *format, ...);
57 
58 int check_rng(const char *filename, const char *rngfilename, int verbose);
59 
60 int check_file(const char *filename, const char *log_string);
61 int check_file_from_xpath(xmlXPathContextPtr xpath_ctx, const char *log_string, const xmlChar *file_xexpr);
62 
63 int check_path(const char *pathname, const char *log_string);
64 int check_path_from_xpath(xmlXPathContextPtr xpath_ctx, const char *log_string, const xmlChar *path_xexpr);
65 
66 int check_user_group(xmlXPathContextPtr xpath_ctx, const xmlChar *user_xexpr, const xmlChar *group_xexpr);
67 
68 int check_time_def(const char *time_expr, const char *location, const char *field, const char *filename, int* interval);
69 int check_time_def_from_xpath(xmlXPathContextPtr xpath_ctx, const xmlChar *time_xexpr, const char *location, const char *field, const char *filename);
70 
71 /* if repo_list NULL, will skip the check to see all repositories in kasp are available in conf */
72 int check_policy(xmlNode *curNode, const char *policy_name, char **repo_list, int repo_count, const char *kasp);
73 
74 int DtXMLIntervalSeconds(const char* text, int* interval);
75 int StrStrtoi(const char* string, int* value);
76 int StrStrtol(const char* string, long* value);
77 char* StrStrdup(const char* string);
78 void StrTrimR(char *text);
79 char* StrTrimL(char* text);
80 void* MemCalloc(size_t nmemb, size_t size);
81 
82 #endif /* KC_HELPER_H */
int check_time_def_from_xpath(xmlXPathContextPtr xpath_ctx, const xmlChar *time_xexpr, const char *location, const char *field, const char *filename)
Definition: kc_helper.c:385
void dual_log(const char *format,...)
Definition: kc_helper.c:59
int StrStrtoi(const char *string, int *value)
Definition: kc_helper.c:1159
int check_rng(const char *filename, const char *rngfilename, int verbose)
Definition: kc_helper.c:88
char * name
Definition: kc_helper.h:42
const char * policy_name(const policy_t *policy)
Definition: policy.c:813
int check_conf(const char *conf, char **kasp, char **zonelist, char ***repo_listout, int *repo_countout, int verbose)
Definition: kc_helper.c:1386
int check_user_group(xmlXPathContextPtr xpath_ctx, const xmlChar *user_xexpr, const xmlChar *group_xexpr)
Definition: kc_helper.c:298
int check_path_from_xpath(xmlXPathContextPtr xpath_ctx, const char *log_string, const xmlChar *path_xexpr)
Definition: kc_helper.c:272
char * StrTrimL(char *text)
Definition: kc_helper.c:1353
int check_file_from_xpath(xmlXPathContextPtr xpath_ctx, const char *log_string, const xmlChar *file_xexpr)
Definition: kc_helper.c:216
int check_file(const char *filename, const char *log_string)
Definition: kc_helper.c:192
void StrTrimR(char *text)
Definition: kc_helper.c:1315
char * StrStrdup(const char *string)
Definition: kc_helper.c:1257
int check_kasp(const char *kasp, char **repo_list, int repo_count, int verbose, char ***policy_names_out, int *policy_count_out)
Definition: kc_helper.c:1740
int check_zonelist(const char *zonelist, int verbose, char **policy_names, int policy_count)
Definition: kc_helper.c:1664
void log_init(int facility, const char *program_name)
Definition: kc_helper.c:51
void * MemCalloc(size_t nmemb, size_t size)
Definition: kc_helper.c:1364
int check_policy(xmlNode *curNode, const char *policy_name, char **repo_list, int repo_count, const char *kasp)
Definition: kc_helper.c:408
char * TokenLabel
Definition: kc_helper.h:44
int DtXMLIntervalSeconds(const char *text, int *interval)
Definition: kc_helper.c:1023
int check_path(const char *pathname, const char *log_string)
Definition: kc_helper.c:249
char * module
Definition: kc_helper.h:43
int StrStrtol(const char *string, long *value)
Definition: kc_helper.c:1203
int check_time_def(const char *time_expr, const char *location, const char *field, const char *filename, int *interval)
Definition: kc_helper.c:348
void log_switch(int facility, const char *program_name)