00001 /* 00002 * Copyright (c) Members of the EGEE Collaboration. 2004. 00003 * See http://eu-egee.org/partners/ for details on the copyright holders. 00004 * For license conditions see the license file or 00005 * http://eu-egee.org/license.html 00006 */ 00007 00008 /* 00009 * Copyright (c) 2003 EU DataGrid http://www.eu-datagrid.org/ 00010 * 00011 * $Id: pdl_policy.h,v 1.12 2004/12/07 08:41:11 venekamp Exp $ 00012 * 00013 * Copyright (c) 2003 by 00014 * G.M. Venekamp <venekamp@nikhef.nl> 00015 * NIKHEF Amsterdam, the Netherlands 00016 * 00017 * This software is distributed under a BSD-style open source 00018 * licence. For a complete description of the licence take a look 00019 * at: http://eu-datagrid.web.cern.ch/eu-datagrid/license.html 00020 * 00021 */ 00022 00023 00037 #ifndef _PDL_POLICY_H 00038 #define _PDL_POLICY_H 00039 00040 #include "pdl.h" 00041 #include "pdl_rule.h" 00042 00043 00048 typedef struct policy_s { 00049 const char* name; 00050 rule_t* rule; 00051 unsigned int lineno; 00052 struct policy_s* next; 00053 struct policy_s* prev; 00054 } policy_t; 00055 00056 00057 extern void add_policy(record_t* policy, rule_t* rules); 00058 extern void remove_policy(record_t* name); 00059 extern void show_policies(void); 00060 extern void cleanup_policies(void); 00061 extern void free_policies(void); 00062 extern void allow_rules(BOOL allow); 00063 extern BOOL check_policies_for_recursion(void); 00064 extern void reduce_policies(void); 00065 extern BOOL policies_have_been_reduced(void); 00066 00067 extern policy_t* find_policy(const char* name); 00068 extern policy_t* get_policies(void); 00069 00070 /* 00071 * Well, this is dirty indeed! It not the function itself that 00072 * is dirty, it's the fact that it is defined in pdl_main.c instead 00073 * of pdl_policy.c. It is the only way I got it compiling. 00074 */ 00075 extern const policy_t* get_current_policy(void); 00076 00077 #endif