X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Firc-mode.c;h=75f99d9eb7b465a2a8ca907823500e563be658b1;hb=fa7bb279;hp=038e13dfa4f42319619f2def78ecaff9124f12bc;hpb=6e105bf87ee5008f32b7557eea2977deb8d10a71;p=ngircd-alex.git diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c index 038e13df..75f99d9e 100644 --- a/src/ngircd/irc-mode.c +++ b/src/ngircd/irc-mode.c @@ -14,7 +14,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: irc-mode.c,v 1.47 2006/10/06 21:32:58 fw Exp $"; +static char UNUSED id[] = "$Id: irc-mode.c,v 1.48 2006/12/07 17:57:20 fw Exp $"; #include "imp.h" #include @@ -477,7 +477,7 @@ Channel_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel ) Req->argv[arg_arg][0] = '\0'; arg_arg++; } - else Lists_ShowInvites( Origin, Channel ); + else Channel_ShowInvites( Origin, Channel ); break; case 'b': /* Ban lists */ @@ -493,7 +493,7 @@ Channel_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel ) Req->argv[arg_arg][0] = '\0'; arg_arg++; } - else Lists_ShowBans( Origin, Channel ); + else Channel_ShowBans( Origin, Channel ); break; default: @@ -644,11 +644,13 @@ Add_Invite( CLIENT *Prefix, CLIENT *Client, CHANNEL *Channel, char *Pattern ) mask = Lists_MakeMask( Pattern ); - already = Lists_IsInviteEntry( mask, Channel ); - - if( ! Lists_AddInvited( mask, Channel, false )) return CONNECTED; - - if(( Client_Type( Prefix ) == CLIENT_SERVER ) && ( already == true)) return CONNECTED; + already = Lists_CheckDupeMask(Channel_GetListInvites(Channel), mask ); + if (!already) { + if( ! Channel_AddInvite(Channel, mask, false )) + return CONNECTED; + } + if ( already && ( Client_Type( Prefix ) == CLIENT_SERVER )) + return CONNECTED; return Send_ListChange( "+I", Prefix, Client, Channel, mask ); } /* Add_Invite */ @@ -666,11 +668,13 @@ Add_Ban( CLIENT *Prefix, CLIENT *Client, CHANNEL *Channel, char *Pattern ) mask = Lists_MakeMask( Pattern ); - already = Lists_IsBanEntry( mask, Channel ); - - if( ! Lists_AddBanned( mask, Channel )) return CONNECTED; - - if(( Client_Type( Prefix ) == CLIENT_SERVER ) && ( already == true)) return CONNECTED; + already = Lists_CheckDupeMask(Channel_GetListBans(Channel), mask ); + if (!already) { + if( ! Channel_AddBan(Channel, mask)) + return CONNECTED; + } + if ( already && ( Client_Type( Prefix ) == CLIENT_SERVER )) + return CONNECTED; return Send_ListChange( "+b", Prefix, Client, Channel, mask ); } /* Add_Ban */ @@ -686,7 +690,7 @@ Del_Invite( CLIENT *Prefix, CLIENT *Client, CHANNEL *Channel, char *Pattern ) assert( Pattern != NULL ); mask = Lists_MakeMask( Pattern ); - Lists_DelInvited( mask, Channel ); + Lists_Del(Channel_GetListInvites(Channel), mask); return Send_ListChange( "-I", Prefix, Client, Channel, mask ); } /* Del_Invite */ @@ -701,7 +705,7 @@ Del_Ban( CLIENT *Prefix, CLIENT *Client, CHANNEL *Channel, char *Pattern ) assert( Pattern != NULL ); mask = Lists_MakeMask( Pattern ); - Lists_DelBanned( mask, Channel ); + Lists_Del(Channel_GetListBans(Channel), mask); return Send_ListChange( "-b", Prefix, Client, Channel, mask ); } /* Del_Ban */