ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/branches/8.0.x/modules/core/m_join.c
(Generate patch)

Comparing ircd-hybrid-8/modules/core/m_join.c (file contents):
Revision 1203 by michael, Tue Aug 23 20:06:08 2011 UTC vs.
Revision 1219 by michael, Sun Sep 18 09:02:38 2011 UTC

# Line 163 | Line 163 | m_join(struct Client *client_p, struct C
163      }
164  
165      if (!IsExemptResv(source_p) &&
166 <        !(IsOper(source_p) && ConfigFileEntry.oper_pass_resv) &&
166 >        !(HasUMode(source_p, UMODE_OPER) && ConfigFileEntry.oper_pass_resv) &&
167          (!hash_find_resv(chan) == ConfigChannel.restrict_channels))
168      {
169        sendto_one(source_p, form_str(ERR_BADCHANNAME),
# Line 175 | Line 175 | m_join(struct Client *client_p, struct C
175      }
176  
177      if ((dlink_list_length(&source_p->channel) >= ConfigChannel.max_chans_per_user) &&
178 <        (!IsOper(source_p) || (dlink_list_length(&source_p->channel) >=
178 >        (!HasUMode(source_p, UMODE_OPER) || (dlink_list_length(&source_p->channel) >=
179                                 ConfigChannel.max_chans_per_user * 3)))
180      {
181        sendto_one(source_p, form_str(ERR_TOOMANYCHANNELS),
# Line 188 | Line 188 | m_join(struct Client *client_p, struct C
188        if (IsMember(source_p, chptr))
189          continue;
190  
191 <      if (splitmode && !IsOper(source_p) && (*chan != '&') &&
191 >      if (splitmode && !HasUMode(source_p, UMODE_OPER) && (*chan != '&') &&
192            ConfigChannel.no_join_on_split)
193        {
194          sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE),
# Line 217 | Line 217 | m_join(struct Client *client_p, struct C
217      }
218      else
219      {
220 <      if (splitmode && !IsOper(source_p) && (*chan != '&') &&
220 >      if (splitmode && !HasUMode(source_p, UMODE_OPER) && (*chan != '&') &&
221            (ConfigChannel.no_create_on_split || ConfigChannel.no_join_on_split))
222        {
223          sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE),
# Line 229 | Line 229 | m_join(struct Client *client_p, struct C
229        chptr = make_channel(chan);
230      }
231  
232 <    if (!IsOper(source_p))
232 >    if (!HasUMode(source_p, UMODE_OPER))
233        check_spambot_warning(source_p, chptr->chname);
234  
235      add_user_to_channel(chptr, source_p, flags, 1);
# Line 467 | Line 467 | do_join_0(struct Client *client_p, struc
467    struct Channel *chptr = NULL;
468    dlink_node *ptr = NULL, *ptr_next = NULL;
469  
470 <  if (source_p->channel.head && MyConnect(source_p) && !IsOper(source_p))
471 <    check_spambot_warning(source_p, NULL);
470 >  if (source_p->channel.head)
471 >    if (MyConnect(source_p) && !HasUMode(source_p, UMODE_OPER))
472 >      check_spambot_warning(source_p, NULL);
473  
474    DLINK_FOREACH_SAFE(ptr, ptr_next, source_p->channel.head)
475    {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines