0, /* W */
0, /* X */
0, /* Y */
- UMODE_SSLCLIENT, /* Z */
+ UMODE_SECURE, /* Z */
/* 0x5B */ 0, 0, 0, 0, 0, 0, /* 0x60 */
UMODE_ADMIN, /* a */
0, /* b */
return (CLIENT_EXITED);
}
- if(IsConfSSLNeeded(aconf) && !IsSSL(source_p))
+ if(IsConfSSLNeeded(aconf) && !IsSecure(source_p))
{
ServerStats.is_ref++;
sendto_one_notice(source_p, ":*** Notice -- You need to use SSL/TLS to use this server");
add_to_id_hash(source_p->id, source_p);
}
- if (IsSSL(source_p) && !IsInsecure(source_p))
- source_p->umodes |= UMODE_SSLCLIENT;
+ if (IsSecure(source_p))
+ source_p->umodes |= UMODE_SECURE;
if (source_p->umodes & UMODE_INVISIBLE)
Count.invisi++;
if(source_p != target_p)
{
- if (MyOper(source_p) && parc < 3)
+ if (HasPrivilege(source_p, "auspex:umodes") && parc < 3)
show_other_user_mode(source_p, target_p);
else
sendto_one(source_p, form_str(ERR_USERSDONTMATCH), me.name, source_p->name);
if(MyConnect(source_p))
{
source_p->umodes &= ~ConfigFileEntry.oper_only_umodes;
- if (!(source_p->umodes & UMODE_SERVNOTICE) && source_p->snomask != 0)
- {
- source_p->snomask = 0;
- showsnomask = true;
- }
source_p->flags &= ~OPER_FLAGS;
rb_dlinkFindDestroy(source_p, &local_oper_list);
case 's':
if (MyConnect(source_p))
{
- if(!IsOper(source_p)
- && (ConfigFileEntry.oper_only_umodes & UMODE_SERVNOTICE))
+ if((ConfigFileEntry.oper_only_umodes & UMODE_SERVNOTICE) &&
+ (!IsOper(source_p) || !HasPrivilege(source_p, "usermode:servnotice")))
{
if (what == MODE_ADD || source_p->umodes & UMODE_SERVNOTICE)
badflag = true;
if(badflag)
sendto_one(source_p, form_str(ERR_UMODEUNKNOWNFLAG), me.name, source_p->name);
+ if(MyClient(source_p))
+ {
+ if ((ConfigFileEntry.oper_only_umodes & UMODE_SERVNOTICE) &&
+ !HasPrivilege(source_p, "usermode:servnotice"))
+ source_p->umodes &= ~UMODE_SERVNOTICE;
+ if (!(source_p->umodes & UMODE_SERVNOTICE) && source_p->snomask != 0)
+ {
+ source_p->snomask = 0;
+ showsnomask = true;
+ }
+ }
+
if(MyClient(source_p) && (source_p->snomask & SNO_NCHANGE) && !IsOperN(source_p))
{
sendto_one_notice(source_p, ":*** You need oper and nick_changes flag for +s +n");
source_p->snomask &= ~SNO_NCHANGE;
if(!IsOperOperwall(source_p))
source_p->umodes &= ~UMODE_OPERWALL;
+ if((ConfigFileEntry.oper_only_umodes & UMODE_SERVNOTICE) &&
+ !HasPrivilege(source_p, "usermode:servnotice"))
+ {
+ source_p->umodes &= ~UMODE_SERVNOTICE;
+ source_p->snomask = 0;
+ }
hdata.client = source_p;
hdata.oldumodes = old;
hdata.oldsnomask = oldsnomask;