1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-08 04:23:13 +02:00

Add oper class parser and structs

This commit is contained in:
Travis McArthur
2015-05-30 18:29:57 -04:00
parent 547b2d69d0
commit d4bb75cd39
3 changed files with 164 additions and 0 deletions
+54
View File
@@ -89,6 +89,7 @@ typedef struct _configitem_files ConfigItem_files;
typedef struct _configitem_admin ConfigItem_admin;
typedef struct _configitem_class ConfigItem_class;
typedef struct _configitem_oper ConfigItem_oper;
typedef struct _configitem_operclass ConfigItem_operclass;
typedef struct _configitem_oper_from ConfigItem_oper_from;
typedef struct _configitem_drpass ConfigItem_drpass;
typedef struct _configitem_ulines ConfigItem_ulines;
@@ -148,6 +149,16 @@ typedef struct PendingNet aPendingNet;
typedef unsigned int u_int32_t; /* XXX Hope this works! */
#endif
typedef enum OperClassEntryType { OPERCLASSENTRY_ALLOW=1, OPERCLASSENTRY_DENY=2} OperClassEntryType;
typedef enum OperPermission { OPER_ALLOW=1, OPER_DENY=2} OperPermission;
typedef struct _operClass OperClass;
typedef struct _operClassACL OperClassACL;
typedef struct _operClassACLEntry OperClassACLEntry;
typedef struct _operClassACLEntryVar OperClassACLEntryVar;
typedef struct _operClassCheckParams OperClassCheckParams;
#ifndef VMSP
#include "class.h"
#include "dbuf.h" /* THIS REALLY SHOULDN'T BE HERE!!! --msa */
@@ -1181,6 +1192,49 @@ struct _configitem_allow {
#endif /* INET6 */
};
struct _operClassACLEntryVar
{
OperClassACLEntryVar *prev,*next;
char* name;
char* value;
};
struct _operClassACLEntry
{
OperClassACLEntry *prev,*next;
OperClassACLEntryVar *variables;
OperClassEntryType type;
};
struct _operClassACL
{
OperClassACL *prev,*next;
char *name;
OperClassACLEntry *entries;
OperClassACL *acls;
};
struct _operClass
{
char *ISA;
char *name;
OperClassACL *acls;
};
struct _operClassCheckParams
{
char *action;
aClient *sptr;
aClient *victim;
aChannel *channel;
void *extra;
};
struct _configitem_operclass {
ConfigItem *prev, *next;
OperClass *classStruct;
};
struct _configitem_oper {
ConfigItem *prev, *next;
ConfigFlag flag;