File: operserv.h

package info (click to toggle)
hybserv 1.9.2-4.1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 2,852 kB
  • ctags: 1,854
  • sloc: ansic: 37,037; sh: 3,178; makefile: 337
file content (100 lines) | stat: -rw-r--r-- 3,347 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/*
 * operserv.h
 * Hybserv2 Services by Hybserv2 team
 *
 * $Id: operserv.h 1431 2006-03-15 10:19:19Z kreator $
 */

#ifndef INCLUDED_operserv_h
#define INCLUDED_operserv_h

#include "stdinc.h"
#include "config.h"
#include "conf.h"

/* OperServ usermodes */
#define OPERUMODE_INIT  (1 << 0)  /* umodes not initialized yet */
#define OPERUMODE_B     (1 << 1)  /* +b */
#define OPERUMODE_C     (1 << 2)  /* +c */
#define OPERUMODE_CAPC  (1 << 3)  /* +C */
#define OPERUMODE_E     (1 << 4)  /* +e */
#define OPERUMODE_CAPE  (1 << 5)  /* +E */
#define OPERUMODE_J     (1 << 6)  /* +j */
#define OPERUMODE_K     (1 << 7)  /* +k */
#define OPERUMODE_L     (1 << 8)  /* +l */
#define OPERUMODE_M     (1 << 9)  /* +m */
#define OPERUMODE_N     (1 << 10) /* +n */
#define OPERUMODE_O     (1 << 11) /* +o */
#define OPERUMODE_P     (1 << 12) /* +p */
#define OPERUMODE_CAPO  (1 << 13) /* +O */
#define OPERUMODE_S     (1 << 14) /* +s */
#define OPERUMODE_CAPS  (1 << 15) /* +S */
#define OPERUMODE_T     (1 << 16) /* +t */
#define OPERUMODE_Y     (1 << 17) /* +y */
#define OPERUMODE_D     (1 << 18) /* +d */

/* OperServ Flag macros */
#define IsServicesAdmin(x) ((x) ? (x)->flags & PRIV_SADMIN : 0)
#define IsAdmin(x)         ((x) ? (x)->flags & PRIV_ADMIN : 0)
#define IsOper(x)          ((x) ? (x)->flags & PRIV_OPER : 0)
#define IsProtected(x)     ((x) ? (x)->flags & PRIV_EXCEPTION : 0)
#define IsFriend(x)        ((x) ? (x)->flags & PRIV_FRIEND : 0)
#define CanJupe(x)         ((x) ? (x)->flags & PRIV_JUPE : 0)
#define CanGline(x)        ((x) ? (x)->flags & PRIV_GLINE : 0)
#define CanChat(x)         ((x) ? (x)->flags & PRIV_CHAT : 0)

#define ONEKIL  (1024.0)
#define ONEMEG  (1024.0 * 1024.0)
#define ONEGIG  (1024.0 * 1024.0 * 1024.0)
#define ONETER  (1024.0 * 1024.0 * 1024.0 * 1024.0)
#define GMKBs(x)  (((x) > ONETER) ? "Terabytes" : (((x) > ONEGIG) ? "Gigabytes" : (((x) > ONEMEG) ? "Megabytes" : (((x) > ONEKIL) ? "Kilobytes" : "Bytes"))))
#define GMKBv(x)  (((x) > ONETER) ? (float)((x) / ONETER) : (((x) > ONEGIG) ? (float)((x) / ONEGIG) : (((x) > ONEMEG) ? (float)((x) / ONEMEG) : (((x) > ONEKIL) ? (float)((x) / ONEKIL) : (float)(x)))))

struct Channel;
struct Luser;

struct OperCommand
{
	char *cmd; /* holds command */
	void (*func)(); /* function to call depending on 'cmd' */
	int dcconly; /* dcc chat command only? 1 if yes, 0 if not */
	char flag; /* flag needed to use the command */
};

struct Ignore
{
	struct Ignore *next, *prev;
	time_t expire;   /* 0 if permanent ignore */
	char *hostmask;  /* hostmask to ignore */
};

/* Information for fuckover processes */
struct Process
{
	struct Process *next;
	pid_t pid;      /* process-id */
	char *who;      /* who started it */
	char *target;   /* target of fuckover */
};

void os_process(char *, char *, int);
void os_join(struct Channel *);
void os_join_name(char *);
void os_join_ts_minus_1(struct Channel *);
void os_part(struct Channel *);
void CheckFuckoverTarget(struct Luser *, char *);
char *modestr(int, char);
struct Ignore *OnIgnoreList(char *);
void AddIgnore(char *, time_t);
int DelIgnore(char *);
void ExpireIgnores(time_t);
void o_Wallops(char *format, ...);
#if defined AUTO_ROUTING && defined SPLIT_INFO
void ReconnectCheck(time_t);
#endif

extern struct Ignore *IgnoreList;
extern char **myargv;
extern int control_pipe;

#endif /* INCLUDED_operserv_h */