[IRC-Dev CVS] SF.net SVN: irc-dev:[200] ircd/trunk
Brought to you by:
zolty
|
From: <zo...@us...> - 2008-08-15 20:28:35
|
Revision: 200
http://irc-dev.svn.sourceforge.net/irc-dev/?rev=200&view=rev
Author: zolty
Date: 2008-08-15 20:28:43 +0000 (Fri, 15 Aug 2008)
Log Message:
-----------
Sincronizacion Undernet y fix esteticos
Modified Paths:
--------------
ircd/trunk/include/channel.h
ircd/trunk/include/client.h
ircd/trunk/ircd/channel.c
Modified: ircd/trunk/include/channel.h
===================================================================
--- ircd/trunk/include/channel.h 2008-08-15 20:04:12 UTC (rev 199)
+++ ircd/trunk/include/channel.h 2008-08-15 20:28:43 UTC (rev 200)
@@ -101,6 +101,9 @@
/* Channel Visibility macros */
+#if defined(DDB) || defined(SERVICES)
+#define MODE_OWNER CHFL_OWNER /**< +q Channel owner */
+#endif
#define MODE_CHANOP CHFL_CHANOP /**< +o Chanop */
#define MODE_VOICE CHFL_VOICE /**< +v Voice */
#define MODE_PRIVATE 0x0004 /**< +p Private */
@@ -114,13 +117,10 @@
#define MODE_LIMIT 0x0400 /**< +l Limit */
#define MODE_REGONLY 0x0800 /**< +R Only +r users may join */
#define MODE_DELJOINS 0x1000 /**< New join messages are delayed */
-#define MODE_NOCOLOUR 0x2000 /**< No mIRC/ANSI colors/bold */
-#define MODE_NOCTCP 0x4000 /**< No channel CTCPs */
-#define MODE_NONOTICE 0x8000 /**< No channel notices */
-#if defined(DDB) || defined(SERVICES)
-#define MODE_REGCHAN 0x10000 /**< +r Channel registered */
-#define MODE_OWNER CHFL_OWNER /**< +q Channel owner */
-#endif
+#define MODE_REGISTERED 0x2000 /**< Channel marked as registered */
+#define MODE_NOCOLOUR 0x4000 /**< No mIRC/ANSI colors/bold */
+#define MODE_NOCTCP 0x8000 /**< No channel CTCPs */
+#define MODE_NONOTICE 0x10000 /**< No channel notices */
#define MODE_SAVE 0x20000 /**< save this mode-with-arg 'til
* later */
#define MODE_FREE 0x40000 /**< string needs to be passed to
@@ -142,7 +142,7 @@
#define MODE_WPARAS (MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT|MODE_APASS|MODE_UPASS)
/** Available Channel modes */
-#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstUvrDcCNuM" : "biklmnopstvrDcCNuM"
+#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstUvrDRcCNuM" : "biklmnopstvrDRcCNuM"
/** Available Channel modes that take parameters */
#define infochanmodeswithparams feature_bool(FEAT_OPLEVELS) ? "AbkloUv" : "bklov"
#elif defined(DDB) || defined(SERVICES)
@@ -160,7 +160,7 @@
#define MODE_WPARAS (MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT)
/** Available Channel modes */
-#define infochanmodes "biklmnopstvrDcCNuM"
+#define infochanmodes "biklmnopstvrDRcCNuM"
/** Available Channel modes that take parameters */
#define infochanmodeswithparams "bklov"
#endif
Modified: ircd/trunk/include/client.h
===================================================================
--- ircd/trunk/include/client.h 2008-08-15 20:04:12 UTC (rev 199)
+++ ircd/trunk/include/client.h 2008-08-15 20:28:43 UTC (rev 200)
@@ -73,9 +73,9 @@
/** String containing valid user modes, in no particular order. */
#if defined(DDB) || defined(SERVICES)
-#define infousermodes "dioswkgxrRachBSZ"
+#define infousermodes "dioOswkgxrRachBSZ"
#else
-#define infousermodes "dioswkgxRZ"
+#define infousermodes "dioOswkgxRZ"
#endif
/** Operator privileges. */
@@ -548,10 +548,10 @@
/** Return non-zero if the client is an IRC operator (global or local). */
#if defined(DDB)
-#define IsAnOper(x) (HasFlag(x, FLAG_OPER) || HasFlag(x, FLAG_LOCOP) || HasFlag(x, FLAG_ADMIN) || \
- HasFlag(x, FLAG_CODER) || HasFlag(x, FLAG_HELPOPER) || HasFlag(x, FLAG_BOT))
+#define IsAnOper(x) (IsOper(x) || IsLocOp(x) || IsAdmin(x) || \
+ IsCoder(x) || IsHelpOper(x) || IsBot(x))
#else
-#define IsAnOper(x) (HasFlag(x, FLAG_OPER) || HasFlag(x, FLAG_LOCOP))
+#define IsAnOper(x) (IsOper(x) || IsLocOp(x))
#endif
/** Return non-zero if the client's connection is blocked. */
#define IsBlocked(x) HasFlag(x, FLAG_BLOCKED)
@@ -577,7 +577,7 @@
/** Return non-zero if the client caused a net.burst. */
#define IsJunction(x) HasFlag(x, FLAG_JUNCTION)
/** Return non-zero if the client has set mode +O (local operator). */
-#define IsLocOp(x) HasFlag(x, FLAG_LOCOP)
+#define IsLocOp(x) (MyUser(x) && HasFlag(x, FLAG_LOCOP))
/** Return non-zero if the client has set mode +o (global operator). */
#define IsOper(x) HasFlag(x, FLAG_OPER)
/** Return non-zero if the client has an active UDP ping request. */
Modified: ircd/trunk/ircd/channel.c
===================================================================
--- ircd/trunk/ircd/channel.c 2008-08-15 20:04:12 UTC (rev 199)
+++ ircd/trunk/ircd/channel.c 2008-08-15 20:28:43 UTC (rev 200)
@@ -329,7 +329,7 @@
#elif defined(DDB)
chptr->users = 0;
- if (!(chptr->mode.mode & MODE_REGCHAN))
+ if (!(chptr->mode.mode & MODE_REGISTERED))
destruct_channel(chptr);
#else
@@ -864,14 +864,11 @@
*mbuf++ = 'i';
if (chptr->mode.mode & MODE_NOPRIVMSGS)
*mbuf++ = 'n';
+ if (chptr->mode.mode & MODE_REGONLY)
#if defined(UNDERNET)
- if (chptr->mode.mode & MODE_REGONLY)
*mbuf++ = 'r';
#elif defined(DDB) || defined(SERVICES)
- if (chptr->mode.mode & MODE_REGCHAN)
- *mbuf++ = 'r';
- if (chptr->mode.mode & MODE_REGONLY)
- *mbuf++ = 'R';
+ *mbuf++ = 'R';
#endif
if (chptr->mode.mode & MODE_NOCOLOUR)
*mbuf++ = 'c';
@@ -881,12 +878,18 @@
*mbuf++ = 'N';
if (chptr->mode.mode & MODE_NOQUITPARTS)
*mbuf++ = 'u';
+ if (chptr->mode.mode & MODE_MODERATENOREG)
+ *mbuf++ = 'M';
if (chptr->mode.mode & MODE_DELJOINS)
*mbuf++ = 'D';
- if (chptr->mode.mode & MODE_MODERATENOREG)
- *mbuf++ = 'M';
else if (MyUser(cptr) && (chptr->mode.mode & MODE_WASDELJOINS))
*mbuf++ = 'd';
+ if (chptr->mode.mode & MODE_REGISTERED)
+#if defined(UNDERNET)
+ *mbuf++ = 'R';
+#elif defined(DDB) || defined(SERVICES)
+ *mbuf++ = 'r';
+#endif
if (chptr->mode.limit) {
*mbuf++ = 'l';
ircd_snprintf(0, pbuf, buflen, "%u", chptr->mode.limit);
@@ -1705,9 +1708,10 @@
MODE_INVITEONLY, 'i',
MODE_NOPRIVMSGS, 'n',
#if defined(UNDERNET)
+ MODE_REGISTERED, 'R',
MODE_REGONLY, 'r',
#elif defined(DDB) || defined(SERVICES)
- MODE_REGCHAN, 'r',
+ MODE_REGISTERED, 'r',
MODE_REGONLY, 'R',
/* MODE_OWNER, 'q', */
#endif
@@ -2222,12 +2226,9 @@
mode &= (MODE_ADD | MODE_DEL | MODE_PRIVATE | MODE_SECRET | MODE_MODERATED |
MODE_TOPICLIMIT | MODE_INVITEONLY | MODE_NOPRIVMSGS | MODE_REGONLY |
-#if defined(DDB) || defined(SERVICES)
- MODE_REGCHAN |
-#endif
MODE_NOCTCP | MODE_NONOTICE |
MODE_NOQUITPARTS | MODE_NOCOLOUR | MODE_MODERATENOREG |
- MODE_DELJOINS | MODE_WASDELJOINS);
+ MODE_DELJOINS | MODE_WASDELJOINS | MODE_REGISTERED);
if (!(mode & ~(MODE_ADD | MODE_DEL))) /* don't add empty modes... */
return;
@@ -2380,9 +2381,10 @@
/* MODE_BAN, 'b', */
MODE_LIMIT, 'l',
#if defined(UNDERNET)
+ MODE_REGISTERED, 'R'
MODE_REGONLY, 'r',
#elif defined(DDB) || defined(SERVICES)
- MODE_REGCHAN, 'r',
+ MODE_REGISTERED, 'r',
MODE_REGONLY, 'R',
/* MODE_OWNER, 'q', */
#endif
@@ -3495,6 +3497,13 @@
if (!state->mbuf)
return;
+
+#if defined(UNDERNET)
+ /* Local users are not permitted to change registration status */
+ if (flag_p[0] == MODE_REGISTERED && !(state->flags & MODE_PARSE_FORCE) &&
+ MyUser(state->sptr))
+ return;
+#endif
if (state->dir == MODE_ADD) {
state->add |= flag_p[0];
@@ -3544,10 +3553,11 @@
MODE_BAN, 'b',
MODE_LIMIT, 'l',
#if defined(UNDERNET)
+ MODE_REGISTERED, 'R',
MODE_REGONLY, 'r',
#elif defined(DDB) || defined(SERVICES)
MODE_OWNER, 'q',
- MODE_REGCHAN, 'r',
+ MODE_REGISTERED, 'r',
MODE_REGONLY, 'R',
#endif
MODE_DELJOINS, 'D',
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|