[IRC-Dev CVS] [CVS] Module ircd-ircdev: Change committed
Brought to you by:
zolty
From: Toni G. <zo...@us...> - 2005-05-26 10:34:30
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-05-26 10:34:23 UTC Modified files: ChangeLog ChangeLog.es include/patchlevel.h ircd/channel.c ircd/ddb_events.c ircd/m_burst.c ircd/m_kick.c ircd/m_mode.c Log message: Author: zoltan <zo...@ir...> Log message: 2005-05-26 Toni García <zo...@ir...> 1.0.alpha38 * Fix de bugs de la release anterior ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.39 ircd-ircdev/ChangeLog:1.40 --- ircd-ircdev/ChangeLog:1.39 Wed May 25 09:56:22 2005 +++ ircd-ircdev/ChangeLog Thu May 26 03:34:12 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.39 2005/05/25 16:56:22 zolty Exp $ +# $Id: ChangeLog,v 1.40 2005/05/26 10:34:12 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-05-26 Toni García <zo...@ir...> 1.0.alpha38 + * Fix bugs last release. + 2005-05-25 Toni García <zo...@ir...> 1.0.alpha37 * Registered channels (with mode +r) * Owner/founder mode (+q) Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.39 ircd-ircdev/ChangeLog.es:1.40 --- ircd-ircdev/ChangeLog.es:1.39 Wed May 25 09:56:22 2005 +++ ircd-ircdev/ChangeLog.es Thu May 26 03:34:13 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.39 2005/05/25 16:56:22 zolty Exp $ +# $Id: ChangeLog.es,v 1.40 2005/05/26 10:34:13 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-05-26 Toni García <zo...@ir...> 1.0.alpha38 + * Fix de bugs de la release anterior + 2005-05-25 Toni García <zo...@ir...> 1.0.alpha37 * Canales registrados (con modo +r) * Modo owner/founder (+q) Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.38 ircd-ircdev/include/patchlevel.h:1.39 --- ircd-ircdev/include/patchlevel.h:1.38 Wed May 25 09:56:23 2005 +++ ircd-ircdev/include/patchlevel.h Thu May 26 03:34:13 2005 @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: patchlevel.h,v 1.38 2005/05/25 16:56:23 zolty Exp $ + * $Id: patchlevel.h,v 1.39 2005/05/26 10:34:13 zolty Exp $ * */ -#define PATCHLEVEL ".alpha37" +#define PATCHLEVEL ".alpha38" #define RELEASE "1.0" Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.22 ircd-ircdev/ircd/channel.c:1.23 --- ircd-ircdev/ircd/channel.c:1.22 Wed May 25 09:56:24 2005 +++ ircd-ircdev/ircd/channel.c Thu May 26 03:34:13 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.22 2005/05/25 16:56:24 zolty Exp $ + * @version $Id: channel.c,v 1.23 2005/05/26 10:34:13 zolty Exp $ */ #include "config.h" @@ -230,10 +230,10 @@ * * @param chptr The channel to subtract one from. * - * defined(UNDERNET) + * defined(UNDERNET) || defined(DDB) * @returns true (1) if channel still has members. * false (0) if the channel is now empty. - * !defined(UNDERNET) + * else * Returns: true (1) if channel still exists * false (0) if the channel was destroyed */ @@ -277,7 +277,7 @@ #elif defined(DDB) chptr->users = 0; - if (!chptr->mode.mode & MODE_REGCHAN) + if (!(chptr->mode.mode & MODE_REGCHAN)) destruct_channel(chptr); #else @@ -303,28 +303,6 @@ assert(0 == chptr->members); -#if 0 -/* FIXME-ZOLTAN BORRAR!! - * Esto es listado de canales de /list, si se borra... se borra - * del list pendiente, pero parece ser que no es necesario ¿? */ - /* Channel became (or was) empty: Remove channel */ - if (is_listed(chptr)) - { - int i; - for (i = 0; i <= HighestFd; i++) - { - struct Client *acptr = 0; - if ((acptr = LocalClientArray[i]) && cli_listing(acptr) && - (cli_listing(acptr))->chptr == chptr) - { - list_next_channels(acptr, 1); - break; /* Only one client can list a channel */ - } - } - } -*/ -#endif - /* * Now, find all invite links from channel structure */ Index: ircd-ircdev/ircd/ddb_events.c diff -u ircd-ircdev/ircd/ddb_events.c:1.5 ircd-ircdev/ircd/ddb_events.c:1.6 --- ircd-ircdev/ircd/ddb_events.c:1.5 Wed May 25 09:56:24 2005 +++ ircd-ircdev/ircd/ddb_events.c Thu May 26 03:34:13 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Events of Distributed DataBases. - * @version $Id: ddb_events.c,v 1.5 2005/05/25 16:56:24 zolty Exp $ + * @version $Id: ddb_events.c,v 1.6 2005/05/26 10:34:13 zolty Exp $ */ #include "config.h" @@ -78,9 +78,12 @@ { struct Channel *chptr; struct Client *founder; - char *botname = &me; - -// botname = ddb_get_botname(DDB_CHANSERV); + char *botname; + + if (ddb_count_table[DDB_CONFIGDB]) + botname = ddb_get_botname(DDB_CHANSERV); + else + botname = cli_name(&me); if (content) { Index: ircd-ircdev/ircd/m_burst.c diff -u ircd-ircdev/ircd/m_burst.c:1.10 ircd-ircdev/ircd/m_burst.c:1.11 --- ircd-ircdev/ircd/m_burst.c:1.10 Mon Apr 11 01:45:00 2005 +++ ircd-ircdev/ircd/m_burst.c Thu May 26 03:34:13 2005 @@ -19,7 +19,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: m_burst.c,v 1.10 2005/04/11 08:45:00 zolty Exp $ + * $Id: m_burst.c,v 1.11 2005/05/26 10:34:13 zolty Exp $ * */ @@ -125,7 +125,7 @@ case 'l': ++parv; break; - case 'r': + case 'R': result |= MODE_REGONLY; break; } @@ -263,6 +263,8 @@ && (!(check_modes & MODE_INVITEONLY) || IsAnOper(member->user)) #if defined(UNDERNET) && (!(check_modes & MODE_REGONLY) || IsAccount(member->user))) +#elif defined (DDB) || defined(SERVICES) + && (!(check_modes & MODE_REGONLY) || IsNickRegistered(member->user))) #else ) #endif @@ -479,7 +481,13 @@ #else for (current_mode = base_mode; *ptr; ptr++) { +#if defined(DDB) || defined(SERVICES) + if (*ptr == 'q') /* has owner status */ + current_mode = (current_mode & ~(CHFL_DEOPPED | CHFL_DELAYED)) | CHFL_OWNER; + else if (*ptr == 'o') /* has oper status */ +#else if (*ptr == 'o') /* has oper status */ +#endif current_mode = (current_mode & ~(CHFL_DEOPPED | CHFL_DELAYED)) | CHFL_CHANOP; else if (*ptr == 'v') /* has voice status */ current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_VOICE; @@ -544,6 +552,10 @@ #else nickstr[nickpos++] = ':'; /* add a specifier */ +#if defined(DDB) || defined(SERVICES) + if (current_mode & CHFL_OWNER) + nickstr[nickpos++] = 'q'; +#endif if (current_mode & CHFL_CHANOP) nickstr[nickpos++] = 'o'; if (current_mode & CHFL_VOICE) @@ -580,6 +592,10 @@ /* first deal with channel members */ for (member = chptr->members; member; member = member->next_member) { if (member->status & CHFL_BURST_JOINED) { /* joined during burst */ +#if defined(DDB) || defined(SERVICES) + if (member->status & CHFL_OWNER) + modebuf_mode_client(mbuf, MODE_ADD | CHFL_OWNER, member->user); +#endif #if defined(UNDERNET) if ((member->status & CHFL_CHANOP) && !(member->status & CHFL_BURST_ALREADY_OPPED)) #else @@ -600,6 +616,8 @@ member->status = (member->status #if defined(UNDERNET) & ~(CHFL_CHANNEL_MANAGER | CHFL_CHANOP | CHFL_VOICE)) +#elif defined(DDB) || defined(SERVICES) + & ~(CHFL_OWNER | CHFL_CHANOP | CHFL_VOICE)) #else & ~(CHFL_CHANOP | CHFL_VOICE)) #endif Index: ircd-ircdev/ircd/m_kick.c diff -u ircd-ircdev/ircd/m_kick.c:1.9 ircd-ircdev/ircd/m_kick.c:1.10 --- ircd-ircdev/ircd/m_kick.c:1.9 Wed May 25 09:56:24 2005 +++ ircd-ircdev/ircd/m_kick.c Thu May 26 03:34:13 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: m_kick.c,v 1.9 2005/05/25 16:56:24 zolty Exp $ + * $Id: m_kick.c,v 1.10 2005/05/26 10:34:13 zolty Exp $ * */ @@ -124,7 +124,7 @@ #if defined(DDB) || defined(SERVICES) if (!(member2 = find_member_link(chptr, sptr)) || IsZombie(member2) - || !(IsChanOp(member2) || IsChanOwner(member2))) + || !(IsChanOwner(member2) || IsChanOp(member2))) #else if (!(member2 = find_member_link(chptr, sptr)) || IsZombie(member2) || !IsChanOp(member2)) @@ -227,8 +227,13 @@ * here), if kicker is not on channel, or if kicker is not a channel * operator, bounce the kick */ +#if defined(DDB) || defined(SERVICES) + if (!IsServer(sptr) && member && cli_from(who) != cptr && !IsService(cli_user(sptr)->server) && + (!(sptr_link = find_member_link(chptr, sptr)) || !(IsChanOwner(sptr_link) || IsChanOp(sptr_link)))) { +#else if (!IsServer(sptr) && member && cli_from(who) != cptr && (!(sptr_link = find_member_link(chptr, sptr)) || !IsChanOp(sptr_link))) { +#endif sendto_opmask_butone(0, SNO_HACK2, "HACK: %C KICK %H %C %s", sptr, chptr, who, comment); Index: ircd-ircdev/ircd/m_mode.c diff -u ircd-ircdev/ircd/m_mode.c:1.7 ircd-ircdev/ircd/m_mode.c:1.8 --- ircd-ircdev/ircd/m_mode.c:1.7 Wed May 25 09:56:24 2005 +++ ircd-ircdev/ircd/m_mode.c Thu May 26 03:34:13 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: m_mode.c,v 1.7 2005/05/25 16:56:24 zolty Exp $ + * $Id: m_mode.c,v 1.8 2005/05/26 10:34:13 zolty Exp $ * */ @@ -205,7 +205,16 @@ NULL); } else { #if defined(DDB) || defined(SERVICES) - if (!(member = find_member_link(chptr, sptr)) || !(IsChanOwner(member) + if (IsService(cli_user(sptr)->server)) { + modebuf_init(&mbuf, sptr, cptr, chptr, + (MODEBUF_DEST_CHANNEL | /* Send mode to clients */ + MODEBUF_DEST_SERVER)); /* Send mode to servers */ + mode_parse(&mbuf, cptr, sptr, chptr, parc - 2, parv + 2, + (MODE_PARSE_SET | /* Set the mode */ + MODE_PARSE_STRICT | /* Interpret it strictly */ + MODE_PARSE_FORCE), /* And force it to be accepted */ + NULL); + } else if (!(member = find_member_link(chptr, sptr)) || !(IsChanOwner(member) || IsChanOp(member))) { #else if (!(member = find_member_link(chptr, sptr)) || !IsChanOp(member)) { ----------------------- End of diff ----------------------- |