]>
Commit | Line | Data |
---|---|---|
01250ca8 P |
1 | #include "../control/control.h" |
2 | #include "../nick/nick.h" | |
3 | #include "../channel/channel.h" | |
4 | #include "jupe.h" | |
5 | ||
6 | int ju_addjupe(void *source, int cargc, char **cargv) { | |
7 | nick *np = (nick*)source; | |
8 | int result, duration; | |
9 | ||
10 | if (cargc < 3) { | |
11 | controlreply(np, "Syntax: addjupe <servername> <duration> <reason>"); | |
12 | ||
13 | return CMD_OK; | |
14 | } | |
15 | ||
16 | if (jupe_find(cargv[0]) != NULL) { | |
17 | controlreply(np, "There is already a jupe for that server."); | |
18 | ||
19 | return CMD_OK; | |
20 | } | |
21 | ||
22 | duration = durationtolong(cargv[1]); | |
23 | ||
24 | if (duration > JUPE_MAX_EXPIRE) { | |
25 | controlreply(np, "A jupe's maximum duration is %s. Could not create jupe.", longtoduration(JUPE_MAX_EXPIRE)); | |
26 | ||
27 | return CMD_OK; | |
28 | } | |
29 | ||
30 | result = jupe_add(cargv[0], cargv[2], duration, JUPE_ACTIVE); | |
31 | ||
32 | if (result) | |
33 | controlreply(np, "Done."); | |
34 | else | |
35 | controlreply(np, "Jupe could not be created."); | |
36 | ||
37 | return CMD_OK; | |
38 | } | |
39 | ||
40 | int ju_activatejupe(void *source, int cargc, char **cargv) { | |
41 | nick *np = (nick*)source; | |
42 | jupe_t *jupe; | |
43 | ||
44 | if (cargc < 1) { | |
45 | controlreply(np, "Syntax: activatejupe <servername>"); | |
46 | ||
47 | return CMD_OK; | |
48 | } | |
49 | ||
50 | jupe = jupe_find(cargv[0]); | |
51 | ||
52 | if (jupe == NULL) { | |
53 | controlreply(np, "There is no such jupe."); | |
54 | ||
55 | return CMD_OK; | |
56 | } | |
57 | ||
58 | if (jupe->ju_flags & JUPE_ACTIVE) { | |
59 | controlreply(np, "This jupe is already activated."); | |
60 | ||
61 | return CMD_OK; | |
62 | } | |
63 | ||
64 | jupe_activate(jupe); | |
65 | ||
66 | controlreply(np, "Done."); | |
67 | ||
68 | return CMD_OK; | |
69 | } | |
70 | ||
71 | int ju_deactivatejupe(void *source, int cargc, char **cargv) { | |
72 | nick *np = (nick*)source; | |
73 | jupe_t *jupe; | |
74 | ||
75 | if (cargc < 1) { | |
76 | controlreply(np, "Syntax: deactivatejupe <servername>"); | |
77 | ||
78 | return CMD_OK; | |
79 | } | |
80 | ||
81 | jupe = jupe_find(cargv[0]); | |
82 | ||
83 | if (jupe == NULL) { | |
84 | controlreply(np, "There is no such jupe."); | |
85 | ||
86 | return CMD_OK; | |
87 | } | |
88 | ||
89 | if ((jupe->ju_flags & JUPE_ACTIVE) == 0) { | |
90 | controlreply(np, "This jupe is already deactivated."); | |
91 | ||
92 | return CMD_OK; | |
93 | } | |
94 | ||
95 | jupe_deactivate(jupe); | |
96 | ||
97 | controlreply(np, "Done."); | |
98 | ||
99 | return CMD_OK; | |
100 | } | |
101 | ||
102 | int ju_jupelist(void *source, int cargc, char **cargv) { | |
103 | nick *np = (nick*)source; | |
104 | jupe_t *jupe; | |
105 | ||
106 | jupe_expire(); | |
107 | ||
108 | jupe = jupes; | |
109 | ||
110 | controlreply(np, "Server Reason Expires Status"); | |
111 | ||
112 | while (jupe) { | |
113 | controlreply(np, "%s %s %s %s", JupeServer(jupe), JupeReason(jupe), longtoduration(jupe->ju_expire - getnettime()), (jupe->ju_flags & JUPE_ACTIVE) ? "activated" : "deactivated"); | |
114 | ||
115 | jupe = jupe->ju_next; | |
116 | } | |
117 | ||
118 | controlreply(np, "--- End of JUPE list."); | |
119 | ||
120 | return CMD_OK; | |
121 | } | |
122 | ||
123 | void _init(void) { | |
124 | registercontrolcmd("addjupe", 10, 3, ju_addjupe); | |
125 | registercontrolcmd("activatejupe", 10, 1, ju_activatejupe); | |
126 | registercontrolcmd("deactivatejupe", 10, 1, ju_deactivatejupe); | |
127 | registercontrolcmd("jupelist", 10, 0, ju_jupelist); | |
128 | } | |
129 | ||
130 | void _fini(void) { | |
131 | deregistercontrolcmd("addjupe", ju_addjupe); | |
132 | deregistercontrolcmd("activatejupe", ju_activatejupe); | |
133 | deregistercontrolcmd("deactivatejupe", ju_deactivatejupe); | |
134 | deregistercontrolcmd("jupelist", ju_jupelist); | |
135 | } |