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

Comparing ircd-hybrid/trunk/modules/m_svsmode.c (file contents):
Revision 1662 by michael, Sat Nov 17 20:11:33 2012 UTC vs.
Revision 2056 by michael, Thu May 16 07:55:16 2013 UTC

# Line 62 | Line 62 | ms_svsmode(struct Client *client_p, stru
62   {
63    struct Client *target_p = NULL;
64    int what = MODE_ADD;
65 <  unsigned int flag = 0, setflags = 0;
65 >  unsigned int flag = 0, setmodes = 0;
66    char *m = NULL, *modes = NULL, *extarg = NULL;
67    time_t ts = 0;
68  
# Line 87 | Line 87 | ms_svsmode(struct Client *client_p, stru
87    if (ts && (ts != target_p->tsinfo))
88      return;
89  
90 <  setflags = target_p->umodes;
90 >  setmodes = target_p->umodes;
91  
92    for (m = modes; *m; ++m)
93    {
# Line 105 | Line 105 | ms_svsmode(struct Client *client_p, stru
105            strlcpy(target_p->svid, extarg, sizeof(target_p->svid));
106          break;
107  
108 +      case 'x':
109 +        if (what == MODE_ADD && extarg)
110 +          user_set_hostmask(target_p, extarg);
111 +        break;
112 +
113        case 'o':
114          if (what == MODE_DEL && HasUMode(target_p, UMODE_OPER))
115          {
# Line 141 | Line 146 | ms_svsmode(struct Client *client_p, stru
146  
147          break;
148  
144 –      case ' ':
145 –      case '\n':
146 –      case '\r':
147 –      case '\t':
148 –        break;
149        default:
150          if ((flag = user_modes[(unsigned char)*m]))
151 <          execute_callback(umode_cb, client_p, target_p, what, flag);
151 >        {
152 >          if (what == MODE_ADD)
153 >            AddUMode(target_p, flag);
154 >          else
155 >            DelUMode(target_p, flag);
156 >        }
157 >
158          break;
159      }
160    }
# Line 172 | Line 178 | ms_svsmode(struct Client *client_p, stru
178                    target_p->name, (unsigned long)target_p->tsinfo, modes);
179    }
180  
181 <  if (MyConnect(target_p) && (setflags != target_p->umodes))
181 >  if (MyConnect(target_p) && (setmodes != target_p->umodes))
182    {
183      char modebuf[IRCD_BUFSIZE];
184  
185 <    send_umode(target_p, target_p, setflags, 0xffffffff, modebuf);
185 >    send_umode(target_p, target_p, setmodes, 0xffffffff, modebuf);
186    }
187   }
188  

Diff Legend

– Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)