28 |
|
#include "client.h" |
29 |
|
#include "common.h" |
30 |
|
#include "hash.h" |
31 |
+ |
#include "hostmask.h" |
32 |
|
#include "ircd.h" |
33 |
|
#include "numeric.h" |
34 |
|
#include "s_serv.h" /* captab */ |
140 |
|
int |
141 |
|
add_id(struct Client *client_p, struct Channel *chptr, char *banid, int type) |
142 |
|
{ |
143 |
< |
dlink_list *list; |
144 |
< |
dlink_node *ban; |
143 |
> |
dlink_list *list = NULL; |
144 |
> |
dlink_node *ban = NULL; |
145 |
|
size_t len = 0; |
146 |
< |
struct Ban *actualBan; |
146 |
> |
struct Ban *ban_p = NULL; |
147 |
|
unsigned int num_mask; |
148 |
|
char name[NICKLEN]; |
149 |
|
char user[USERLEN + 1]; |
204 |
|
|
205 |
|
DLINK_FOREACH(ban, list->head) |
206 |
|
{ |
207 |
< |
actualBan = ban->data; |
208 |
< |
if (!irccmp(actualBan->name, name) && |
209 |
< |
!irccmp(actualBan->username, user) && |
210 |
< |
!irccmp(actualBan->host, host)) |
207 |
> |
ban_p = ban->data; |
208 |
> |
if (!irccmp(ban_p->name, name) && |
209 |
> |
!irccmp(ban_p->username, user) && |
210 |
> |
!irccmp(ban_p->host, host)) |
211 |
|
{ |
212 |
|
return 0; |
213 |
|
} |
214 |
|
} |
215 |
|
|
216 |
< |
actualBan = BlockHeapAlloc(ban_heap); |
217 |
< |
actualBan->when = CurrentTime; |
218 |
< |
DupString(actualBan->name, name); |
219 |
< |
DupString(actualBan->username, user); |
220 |
< |
DupString(actualBan->host, host); |
221 |
< |
actualBan->len = len - 2; /* -2 for @ and ! */ |
216 |
> |
ban_p = BlockHeapAlloc(ban_heap); |
217 |
> |
|
218 |
> |
DupString(ban_p->name, name); |
219 |
> |
DupString(ban_p->username, user); |
220 |
> |
DupString(ban_p->host, host); |
221 |
> |
|
222 |
> |
ban_p->when = CurrentTime; |
223 |
> |
ban_p->len = len - 2; /* -2 for @ and ! */ |
224 |
> |
ban_p->type = parse_netmask(host, &ban_p->addr, &ban_p->bits); |
225 |
|
|
226 |
|
if (IsClient(client_p)) |
227 |
|
{ |
228 |
< |
actualBan->who = |
229 |
< |
MyMalloc(strlen(client_p->name) + |
230 |
< |
strlen(client_p->username) + |
231 |
< |
strlen(client_p->host) + 3); |
232 |
< |
ircsprintf(actualBan->who, "%s!%s@%s", |
229 |
< |
client_p->name, client_p->username, client_p->host); |
228 |
> |
ban_p->who = MyMalloc(strlen(client_p->name) + |
229 |
> |
strlen(client_p->username) + |
230 |
> |
strlen(client_p->host) + 3); |
231 |
> |
ircsprintf(ban_p->who, "%s!%s@%s", client_p->name, |
232 |
> |
client_p->username, client_p->host); |
233 |
|
} |
234 |
|
else |
235 |
< |
DupString(actualBan->who, client_p->name); |
235 |
> |
DupString(ban_p->who, client_p->name); |
236 |
|
|
237 |
< |
dlinkAdd(actualBan, &actualBan->node, list); |
237 |
> |
dlinkAdd(ban_p, &ban_p->node, list); |
238 |
|
|
239 |
|
return 1; |
240 |
|
} |