summaryrefslogtreecommitdiff
path: root/include/account.h
blob: 0217753adc6402e3c7cab671f6b7607c868134f3 (plain)
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

/* NickServ nickname structures. */

/** XXX: this really needs to die with fire and be merged with metadata into NickCore or something.
 */
class NickRequest
{
 public:
	NickRequest()
	{
		next = prev = NULL;
		nick = passcode = email = NULL;
		*password = 0;
		requested = lastmail = 0;
	}
	NickRequest *next, *prev;
	char *nick;
	char *passcode;
	char password[PASSMAX];
	char *email;
	time_t requested;
	time_t lastmail;			/* Unsaved */
};

class NickCore;

class NickAlias
{
 public:
	NickAlias()
	{
		next = prev = NULL;
		nick = last_quit = last_realname = last_usermask = NULL;
		time_registered = last_seen = 0;
		status = 0;
		nc = NULL;
		u = NULL;
	}

	NickAlias *next, *prev;
	char *nick;				/* Nickname */
	char *last_quit;			/* Last quit message */
	char *last_realname;			/* Last realname */
	char *last_usermask;			/* Last usermask */
	time_t time_registered;			/* When the nick was registered */
	time_t last_seen;			/* When it was seen online for the last time */
	uint16 status;				/* See NS_* below */
	NickCore *nc;				/* I'm an alias of this */

	/* Not saved */
	User *u;				/* Current online user that has me */
};

class NickCore : public Extensible
{
 public:
	NickCore()
	{
		next = prev = NULL;
		display = email = greet = url = NULL;
		pass[0] = '\0';
		icq = flags = 0;
		language = accesscount = channelcount = 0;
		lastmail = 0;
	}

	NickCore *next, *prev;

	char *display;				/* How the nick is displayed */
	char pass[PASSMAX];				/* Password of the nicks */
	char *email;				/* E-mail associated to the nick */
	char *greet;				/* Greet associated to the nick */
	uint32 icq;				/* ICQ # associated to the nick */
	char *url;				/* URL associated to the nick */
	uint32 flags;				/* See NI_* below */
	uint16 language;			/* Language selected by nickname owner (LANG_*) */
	uint16 accesscount;			/* # of entries */
	char **access;				/* Array of strings */
	MemoInfo memos;
	uint16 channelcount;			/* Number of channels currently registered */

	/* Unsaved data */
	time_t lastmail;			/* Last time this nick record got a mail */
	SList aliases;				/* List of aliases */
};