[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. |