/[pdpsoft]/trunk/grid-mw-security/ees/include/common/pdl.h
ViewVC logotype

Contents of /trunk/grid-mw-security/ees/include/common/pdl.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1212 - (show annotations) (download) (as text)
Wed Dec 2 14:13:38 2009 UTC (12 years, 7 months ago) by aramv
File MIME type: text/x-csrc
File size: 3349 byte(s)
Working on stripping policies. Still some memleaks. :(
1 /*!
2
3 \file pdl.h
4 \brief Callback functions for parser of the evaluation manager
5 \author Aram Verstegen
6
7 This header contains some callback functions used for the PDL parser:
8 It contains the following functions:
9
10 -# pdl_init(const char*): Inilizes the parser
11 -# pdl_term(void): terminates the parser
12 -# set_modules_path(record_t*): sets the path to use for plug-ins (used by the parser)
13 -# get_pdl_path(void): returns the path read from the config file or empty string if none was parsed
14 -# add_policy(record_t*, rule_t*): adds a new policy
15 -# add_rule(record_t*, record_t*, record_t*): adds a new rule
16 -# remove_policy(record_t* policy): removes a policy
17 -# add_variable(record_t* name, record_t* value): adds a variable (plug-in) to the list
18 -# allow_rules(int):
19 -# allowed_policy_rule(const char* label):
20
21 -# concat_strings(record_t*, record_t*): concatenates two strings
22 -# concat_strings_with_space(record_t*, record_t*): concatenates two strings separated by a space
23 */
24
25 #ifndef PDL_H
26 #define PDL_H
27
28 #if HAVE_CONFIG_H
29 #include "config.h"
30 #endif
31 #if HAVE_STDIO_H
32 #include <stdio.h>
33 #endif
34 #if HAVE_STDLIB_H
35 #include <stdlib.h>
36 #endif
37 #include "plugin_manager.h"
38 #include "eef_polytypes.h"
39 #include "eef_log.h"
40
41 #define TRUE 1
42 #define FALSE 0
43
44 /* lifecycle functions */
45 EES_RC pdl_init(const char* config_file_name);
46 EES_RC pdl_term(policy_t* policies);
47 EES_RC add_prepared_plugins(void);
48
49 policy_t* get_policies(void);
50 policy_t** reduce_policy_tree(policy_t** policies, int number_of_policies, char* names_of_policies[]);
51 EES_RC link_rules_to_plugins(policy_t* policies);
52 void link_rule_to_plugin(policy_t *policy, rule_t *rule);
53
54 EES_RC clean_variables_list(void);
55 EES_RC clean_policies_list(policy_t* policies);
56 rule_t* clean_rules_list(rule_t*);
57
58 /* callback functions */
59 void set_pdl_path(record_t*);
60 void add_policy(record_t*, rule_t*);
61 rule_t * add_rule(record_t*, record_t*, record_t*);
62 const char * get_pdl_path(void);
63 void remove_policy(record_t* policy);
64 policy_t* remove_policy_by_name(policy_t* policies, char* policy);
65 void add_variable(record_t* name, record_t* value);
66 EES_RC allow_rules(int);
67 EES_RC allowed_policy_rule(const char* label);
68
69 /* convenience methods used by the lexer */
70 record_t * concat_strings(record_t*, record_t*);
71 record_t * concat_strings_with_space(record_t*, record_t*);
72 char ** _var_to_argv(char*, int*);
73 var_t* get_variable_by_name(char*);
74 rule_t* get_rule(rule_t* rule, const char* state);
75 rule_t* get_left_hand_rule(rule_t* temp_rule, const char* name);
76 rule_t* check_for_recursion(rule_t*, rule_t*);
77 void free_args(int argc, char** argv);
78 void link_dead_end_rules_in_policy(policy_t* policy);
79 void link_dead_end_rules(policy_t* policy, rule_t* rule);
80
81
82 /* Lex/Yacc stuff */
83 int yyerror(char*);
84 void set_yylval(record_t* r);
85
86 /* debug functions */
87 void print_policies(policy_t* policies);
88 void print_rules(policy_t* policy, rule_t* rules);
89
90 #endif

grid.support@nikhef.nl
ViewVC Help
Powered by ViewVC 1.1.28