#ifndef CONFIG_H
#define CONFIG_H
#include <stdio.h>
#include "list.h"
#include "libopm/src/opm_types.h"
int yylex(void);
extern char linebuf[512];
extern int linenum;
extern void yyerror(const char *);
extern void config_load(const char *);
/* structs to hold data */
struct IRCConf
{
char *nick;
char *username;
char *realname;
char *server;
int port;
char *password;
char *vhost;
char *nickserv;
char *oper;
char *mode;
char *away;
char *connregex;
char *kline;
list_t *channels; /* List of ChannelConf */
list_t *performs; /* List of char * */
};
struct ChannelConf
{
char *name;
char *key;
char *invite;
};
struct OptionsConf
{
int negcache;
unsigned int dns_fdlimit;
char *pidfile;
char *scanlog;
};
struct UserConf
{
list_t *masks; /* List of char * */
list_t *scanners; /* List of char * */
};
struct ScannerConf
{
char *name;
list_t *protocols;
char *vhost;
int fd;
char *target_ip;
int target_port;
int timeout;
int max_read;
list_t *target_string;
int target_string_created;
};
struct ProtocolConf
{
int type;
unsigned int port;
};
struct OpmConf
{
list_t *blacklists;
char *dnsbl_from;
char *dnsbl_to;
char *sendmail;
};
enum BlacklistType {
A_BITMASK = 1,
A_REPLY
};
struct BlacklistConf
{
char *name;
char *kline;
enum BlacklistType type;
int ban_unknown;
list_t *reply;
unsigned int stats_recv;
};
struct BlacklistReplyConf
{
char number;
char *type;
};
struct ExemptConf
{
list_t *masks;
};
/* Extern to actual config data declared in config.c */
extern struct IRCConf *IRCItem;
extern struct OptionsConf *OptionsItem;
extern struct OpmConf *OpmItem;
extern struct ExemptConf *ExemptItem;
extern list_t *UserItemList;
extern list_t *ScannerItemList;
#endif /* CONFIG_H */
syntax highlighted by Code2HTML, v. 0.9.1