X-Git-Url: https://git.distorted.org.uk/~mdw/become/blobdiff_plain/03f996bd8a0d6391518979cdab3dbe38cba0bf83..af4f4d6a77aceba8e2d6f58d15e894df320e7c24:/src/rule.h diff --git a/src/rule.h b/src/rule.h index 8ce7ea2..1c5c02f 100644 --- a/src/rule.h +++ b/src/rule.h @@ -1,10 +1,10 @@ /* -*-c-*- * - * $Id: rule.h,v 1.2 1997/08/04 10:24:25 mdw Exp $ + * $Id: rule.h,v 1.7 2004/04/08 01:36:20 mdw Exp $ * * Managing rule sets * - * (c) 1997 EBI + * (c) 1998 EBI */ /*----- Licensing notice --------------------------------------------------* @@ -26,17 +26,6 @@ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*----- Revision history --------------------------------------------------* - * - * $Log: rule.h,v $ - * Revision 1.2 1997/08/04 10:24:25 mdw - * Sources placed under CVS control. - * - * Revision 1.1 1997/07/21 13:47:45 mdw - * Initial revision - * - */ - #ifndef RULE_H #define RULE_H @@ -59,6 +48,18 @@ # include "class.h" #endif +/*----- Type definitions --------------------------------------------------*/ + +/* --- Rule block --- */ + +typedef struct rule { + struct rule *next; /* Next rule in the list */ + class_node *host; /* Hosts this rule applies to */ + class_node *from; /* From users in this class */ + class_node *to; /* To users in this class */ + class_node *cmd; /* To run commands in this class */ +} rule; + /*----- Functions provided ------------------------------------------------*/ /* --- @rule_init@ --- * @@ -72,31 +73,42 @@ extern void rule_init(void); -/* --- @rule_reinit@ --- * +/* --- @rule_end@ --- * * * Arguments: --- * * Returns: --- * - * Use: Reinitialises the rule database. + * Use: Empties the rule database. + */ + +extern void rule_end(void); + +/* --- @rule_list@ --- * + * + * Arguments: --- + * + * Returns: The list of rules. + * + * Use: Returns the address of the first node in the rule list. */ -extern void rule_reinit(void); +extern rule *rule_list(void); /* --- @rule_add@ --- * * - * Arguments: @classdef *host@ = class of hosts this rule applies to - * @classdef *from@ = class of users allowed to change - * @classdef *to@ = class of users allowed to be changed to - * @classdef *cmd@ = class of commands allowed + * Arguments: @class_node *host@ = class of hosts this rule applies to + * @class_node *from@ = class of users allowed to change + * @class_node *to@ = class of users allowed to be changed to + * @class_node *cmd@ = class of commands allowed * * Returns: --- * * Use: Registers another rule. */ -extern void rule_add(classdef */*host*/, classdef */*from*/, - classdef */*to*/, classdef */*cmd*/); +extern void rule_add(class_node */*host*/, class_node */*from*/, + class_node */*to*/, class_node */*cmd*/); /* --- @rule_check@ --- * *