ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/src/channel_mode.c
(Generate patch)

Comparing ircd-hybrid/src/channel_mode.c (file contents):
Revision 358 by michael, Thu Jan 5 16:09:28 2006 UTC vs.
Revision 364 by michael, Sun Jan 8 15:39:24 2006 UTC

# Line 28 | Line 28
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 */
# Line 139 | Line 140 | check_string(char *s)
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];
# Line 203 | Line 204 | add_id(struct Client *client_p, struct C
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   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines