Thread: [IRC-Dev CVS] [CVS] Module ircd-ircdev: Change committed (Page 6)
Brought to you by:
zolty
From: Toni G. <zo...@us...> - 2007-04-21 16:21:16
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-21 16:20:29 UTC Modified files: ChangeLog ChangeLog.es include/channel.h include/client.h include/ircd_features.h include/patchlevel.h include/struct.h ircd/channel.c ircd/m_bmode.c ircd/m_burst.c ircd/m_create.c ircd/m_invite.c ircd/m_join.c ircd/m_kick.c ircd/m_lusers.c ircd/m_mode.c ircd/m_notice.c ircd/m_part.c ircd/m_privmsg.c ircd/m_server.c ircd/m_wallchops.c ircd/m_wallvoices.c ircd/s_debug.c ircd/s_misc.c ircd/s_user.c Log message: Author: zo...@ir... Log message: 2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 * Eliminar restos soporte P09 * Nueva estructura Invite ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.50 ircd-ircdev/ChangeLog:1.51 --- ircd-ircdev/ChangeLog:1.50 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/ChangeLog Sat Apr 21 09:20:17 2007 @@ -1,10 +1,14 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.50 2007/04/19 22:53:46 zolty Exp $ +# $Id: ChangeLog,v 1.51 2007/04/21 16:20:17 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 + * Remove P09 support rests + * New Invite structure + 2007-04-20 Toni Garc�a <zo...@ir...> 1.0.beta1 * Write doxygen comments * Statics Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.50 ircd-ircdev/ChangeLog.es:1.51 --- ircd-ircdev/ChangeLog.es:1.50 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/ChangeLog.es Sat Apr 21 09:20:17 2007 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.50 2007/04/19 22:53:46 zolty Exp $ +# $Id: ChangeLog.es,v 1.51 2007/04/21 16:20:17 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 + * Eliminar restos soporte P09 + * Nueva estructura Invite + 2007-04-20 Toni Garc�a <zo...@ir...> 1.0.beta1 * Escribir comentarios de doxygen * Statics Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.16 ircd-ircdev/include/channel.h:1.17 --- ircd-ircdev/include/channel.h:1.16 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/channel.h Sat Apr 21 09:20:17 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Channel management and maintenance. - * @version $Id: channel.h,v 1.16 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: channel.h,v 1.17 2007/04/21 16:20:17 zolty Exp $ */ #ifndef INCLUDED_channel_h #define INCLUDED_channel_h @@ -63,8 +63,6 @@ #define CHFL_CHANOP 0x0001 /**< Channel operator */ #define CHFL_VOICE 0x0002 /**< the power to speak */ -#define CHFL_DEOPPED 0x0004 /**< Is de-opped by a server */ -#define CHFL_SERVOPOK 0x0008 /**< Server op allowed */ #define CHFL_ZOMBIE 0x0010 /**< Kicked from channel */ #define CHFL_BURST_JOINED 0x0100 /**< Just joined by net.junction */ #define CHFL_BANVALID 0x0800 /**< CHFL_BANNED bit is valid */ @@ -204,15 +202,6 @@ */ #define TS_LAG_TIME 86400 -/** - * A Magic TS that is used for channels that are created by JOIN, - * a channel with this TS accepts all TS without complaining that - * it might receive later via MODE or CREATE. - * - * Part of the P9 compatibility, shouldn't occur on a P10 network. - */ -#define MAGIC_REMOTE_JOIN_TS 1270080000 - extern const char* const PartFmt1; @@ -248,7 +237,6 @@ #define MAXOPLEVEL 999 #define IsZombie(x) ((x)->status & CHFL_ZOMBIE) /**< see \ref zombie */ -#define IsDeopped(x) ((x)->status & CHFL_DEOPPED) #define IsBanned(x) ((x)->status & CHFL_BANNED) #define IsBanValid(x) ((x)->status & CHFL_BANVALID) #if defined(DDB) || defined(SERVICES) @@ -257,7 +245,6 @@ #define IsChanOp(x) ((x)->status & CHFL_CHANOP) #define OpLevel(x) ((x)->oplevel) #define HasVoice(x) ((x)->status & CHFL_VOICE) -#define IsServOpOk(x) ((x)->status & CHFL_SERVOPOK) #define IsBurstJoined(x) ((x)->status & CHFL_BURST_JOINED) #define IsVoicedOrOpped(x) ((x)->status & CHFL_VOICED_OR_OPPED) #if defined(UNDERNET) @@ -268,8 +255,6 @@ #define SetBanned(x) ((x)->status |= CHFL_BANNED) #define SetBanValid(x) ((x)->status |= CHFL_BANVALID) -#define SetDeopped(x) ((x)->status |= CHFL_DEOPPED) -#define SetServOpOk(x) ((x)->status |= CHFL_SERVOPOK) #define SetBurstJoined(x) ((x)->status |= CHFL_BURST_JOINED) #define SetZombie(x) ((x)->status |= CHFL_ZOMBIE) #if defined(UNDERNET) @@ -284,8 +269,6 @@ #define ClearBanned(x) ((x)->status &= ~CHFL_BANNED) #define ClearBanValid(x) ((x)->status &= ~CHFL_BANVALID) -#define ClearDeopped(x) ((x)->status &= ~CHFL_DEOPPED) -#define ClearServOpOk(x) ((x)->status &= ~CHFL_SERVOPOK) #define ClearBurstJoined(x) ((x)->status &= ~CHFL_BURST_JOINED) #define ClearDelayedJoin(x) ((x)->status &= ~CHFL_DELAYED) #if defined(DDB) || defined(SERVICES) @@ -323,6 +306,15 @@ char banstr[NICKLEN+USERLEN+HOSTLEN+3]; /**< hostmask that the ban matches */ }; +/** An invitation to a channel. */ +struct Invite { + struct Invite* next_user; /**< next invite to the user */ + struct Invite* next_channel; /**< next invite to the channel */ + struct Client* user; /**< user being invited */ + struct Channel* channel; /**< channel to which invited */ + char inviter[NICKLEN+USERLEN+HOSTLEN+3]; /**< hostmask of inviter */ +}; + /** Information about a channel */ struct Channel { struct Channel* next; /**< next channel in the global channel list */ @@ -333,7 +325,7 @@ time_t topic_time; /**< Modification time of the topic */ unsigned int users; /**< Number of clients on this channel */ struct Membership* members; /**< Pointer to the clients on this channel*/ - struct SLink* invites; /**< List of invites on this channel */ + struct Invite* invites; /**< List of invites on this channel */ struct Ban* banlist; /**< List of bans on this channel */ struct Mode mode; /**< This channels mode */ char topic[TOPICLEN + 1]; /**< Channels topic */ @@ -452,7 +444,6 @@ struct Client* cptr, struct Client* sptr, struct Channel* chptr); extern struct Client* find_chasing(struct Client* sptr, const char* user, int* chasing); -void add_invite(struct Client *cptr, struct Channel *chptr); int number_of_zombies(struct Channel *chptr); extern const char* find_no_nickchange_channel(struct Client* cptr); @@ -467,16 +458,10 @@ extern int is_chan_owner(struct Client *cptr, struct Channel *chptr); #endif extern int is_chan_op(struct Client *cptr, struct Channel *chptr); -extern int is_zombie(struct Client *cptr, struct Channel *chptr); -extern int has_voice(struct Client *cptr, struct Channel *chptr); -/* - NOTE: pointer is compared, and not dereferenced, called by - add_target with a void*, since targets could be anything, - this function can't make any assumptions that it has a channel -*/ -extern int IsInvited(struct Client* cptr, const void* chptr); extern void send_channel_modes(struct Client *cptr, struct Channel *chptr); extern char *pretty_mask(char *mask); +extern struct Invite* is_invited(struct Client* cptr, struct Channel* chptr); +extern void add_invite(struct Client *cptr, struct Channel *chptr, struct Client *inviter); extern void del_invite(struct Client *cptr, struct Channel *chptr); extern void list_set_default(void); /* this belongs elsewhere! */ Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.17 ircd-ircdev/include/client.h:1.18 --- ircd-ircdev/include/client.h:1.17 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/client.h Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.17 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: client.h,v 1.18 2007/04/21 16:20:18 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -159,7 +159,6 @@ FLAG_GOTID, /**< successful ident lookup achieved */ FLAG_DOID, /**< I-lines say must use ident return */ FLAG_NONL, /**< No \n in buffer */ - FLAG_TS8, /**< Why do you want to know? */ FLAG_MAP, /**< Show server on the map */ FLAG_JUNCTION, /**< Junction causing the net.burst. */ FLAG_BURST, /**< Server is receiving a net.burst */ Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.16 ircd-ircdev/include/ircd_features.h:1.17 --- ircd-ircdev/include/ircd_features.h:1.16 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_features.h Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.16 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd_features.h,v 1.17 2007/04/21 16:20:18 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -162,6 +162,7 @@ /* Misc. random stuff */ FEAT_NETWORK, FEAT_URL_CLIENTS, + FEAT_URLREG, FEAT_LAST_F }; Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.49 ircd-ircdev/include/patchlevel.h:1.50 --- ircd-ircdev/include/patchlevel.h:1.49 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/patchlevel.h Sat Apr 21 09:20:18 2007 @@ -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.49 2007/04/19 22:53:47 zolty Exp $ + * $Id: patchlevel.h,v 1.50 2007/04/21 16:20:18 zolty Exp $ * */ -#define PATCHLEVEL "1" +#define PATCHLEVEL "2" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/struct.h diff -u ircd-ircdev/include/struct.h:1.10 ircd-ircdev/include/struct.h:1.11 --- ircd-ircdev/include/struct.h:1.10 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/struct.h Sat Apr 21 09:20:18 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Structure definitions for users and servers. - * @version $Id: struct.h,v 1.10 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: struct.h,v 1.11 2007/04/21 16:20:18 zolty Exp $ */ #ifndef INCLUDED_struct_h #define INCLUDED_struct_h @@ -39,6 +39,7 @@ struct Client; struct User; struct Membership; +struct Invite; struct SLink; /** Describes a server on the network. */ @@ -73,14 +74,13 @@ struct User { struct Client* server; /**< client structure of server */ struct Membership* channel; /**< chain of channel pointer blocks */ - struct SLink* invited; /**< chain of invite pointer blocks */ + struct Invite* invited; /**< chain of invite pointer blocks */ struct Ban* silence; /**< chain of silence pointer blocks */ struct SLink* watch; /**< chain of watch pointer blocks */ char* away; /**< pointer to away message */ time_t last; /**< last time user sent a message */ unsigned int refcnt; /**< Number of times this block is referenced */ unsigned int joined; /**< number of channels joined */ - unsigned int invites; /**< Number of channels we've been invited to */ unsigned int watches; /**< Number of entrances in the watch list */ /** Remote account name. Before registration is complete, this is * either empty or contains the username from the USER command. Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.29 ircd-ircdev/ircd/channel.c:1.30 --- ircd-ircdev/ircd/channel.c:1.29 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/channel.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.29 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: channel.c,v 1.30 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -266,18 +266,44 @@ #if defined(UNDERNET) chptr->users = 0; - /* There is a semantics problem here: Assuming no fragments across a - * split, a channel without Apass could be maliciously destroyed and - * recreated, and someone could set apass on the new instance. - * - * This could be fixed by preserving the empty non-Apass channel for - * the same time as if it had an Apass (but removing +i and +l), and - * reopping the first user to rejoin. However, preventing net rides - * requires a backwards-incompatible protocol change.. + /* + * Also channels without Apass set need to be kept alive, + * otherwise Bad Guys(tm) would be able to takeover + * existing channels too easily, and then set an Apass! + * However, if a channel without Apass becomes empty + * then we try to be kind to them and remove possible + * limiting modes. */ - if (!chptr->mode.apass[0]) /* If no Apass, destroy now. */ - destruct_channel(chptr); - else if (TStime() - chptr->creationtime < 172800) /* Channel younger than 48 hours? */ + chptr->mode.mode &= ~MODE_INVITEONLY; + chptr->mode.limit = 0; + /* + * We do NOT reset a possible key or bans because when + * the 'channel owners' can't get in because of a key + * or ban then apparently there was a fight/takeover + * on the channel and we want them to contact IRC opers + * who then will educate them on the use of Apass/Upass. + */ + if (!chptr->mode.apass[0]) /* If no Apass, reset all modes. */ + { + struct Ban *link, *next; + chptr->mode.mode = 0; + *chptr->mode.key = '\0'; + mode_invite_clear(chptr); + for (link = chptr->banlist; link; link = next) { + next = link->next; + free_ban(link); + } + chptr->banlist = NULL; + + /* Immediately destruct empty -A channels if not using apass. */ + if (!feature_bool(FEAT_OPLEVELS)) + { + destruct_channel(chptr); + destruct_channel(chptr); + return 0; + } + } + if (TStime() - chptr->creationtime < 172800) /* Channel younger than 48 hours? */ schedule_destruct_event_1m(chptr); /* Get rid of it in approximately 4-5 minutes */ else schedule_destruct_event_48h(chptr); /* Get rid of it in approximately 48 hours */ @@ -314,8 +340,7 @@ /* * Now, find all invite links from channel structure */ - while (chptr->invites) - del_invite(chptr->invites->value.cptr, chptr); + mode_invite_clear(chptr); for (ban = chptr->banlist; ban; ban = next) { @@ -716,6 +741,7 @@ */ if (member->channel->mode.mode & MODE_MODERATED) return 0; + #if defined(UNDERNET) /* If only logged in users may join and you're not one, you can't speak. */ if (member->channel->mode.mode & MODE_REGONLY && !IsAccount(member->user)) @@ -1378,41 +1404,80 @@ return chptr; } -/** invite a user to a channel. +/** Find invitation (if any) for \a cptr to \a chptr. + * @param[in] cptr Possibly invited client. + * @param[in] chptr Channel to search for. + * @return A pointer to the relevant struct Invite, or NULL if not invited. + */ +struct Invite *is_invited(struct Client* cptr, struct Channel* chptr) +{ + struct Invite *ip; + + for (ip = (cli_user(cptr))->invited; ip; ip = ip->next_user) + if (ip->channel == chptr) + return ip; + + return 0; +} + +static struct Invite *invite_freelist; + +/** Invite a user to a channel. * * Adds an invite for a user to a channel. Limits the number of invites - * to FEAT_MAXCHANNELSPERUSER. Does not sent notification to the user. + * to FEAT_MAXCHANNELSPERUSER. Does not notify the user. * - * @param cptr The client to be invited. - * @param chptr The channel to be invited to. + * @param[in] cptr The client to be invited. + * @param[in] chptr The channel to be invited to. + * @param[in] inviter The client inviting \a cptr. */ -void add_invite(struct Client *cptr, struct Channel *chptr) +void add_invite(struct Client *cptr, struct Channel *chptr, struct Client *inviter) { - struct SLink *inv, **tmp; + struct Invite **uprev = &cli_user(cptr)->invited; + struct Invite *inv; + int max = feature_int(FEAT_MAXCHANNELSPERUSER); + int count = 0; + /* See if the user is already invited. */ + while ((inv = *uprev) != NULL) + { + if (inv->channel == chptr) + break; + else if (++count >= max) + del_invite(cptr, inv->channel); + else + uprev = &inv->next_user; + } - del_invite(cptr, chptr); - /* - * Delete last link in chain if the list is max length - */ - assert(list_length((cli_user(cptr))->invited) == (cli_user(cptr))->invites); - if ((cli_user(cptr))->invites >= feature_int(FEAT_MAXCHANNELSPERUSER)) - del_invite(cptr, (cli_user(cptr))->invited->value.chptr); - /* - * Add client to channel invite list - */ - inv = make_link(); - inv->value.cptr = cptr; - inv->next = chptr->invites; - chptr->invites = inv; - /* - * Add channel to the end of the client invite list - */ - for (tmp = &((cli_user(cptr))->invited); *tmp; tmp = &((*tmp)->next)); - inv = make_link(); - inv->value.chptr = chptr; - inv->next = NULL; - (*tmp) = inv; - (cli_user(cptr))->invites++; + if (inv) { + /* Remove from the user's invite list. */ + *uprev = inv->next_user; + /* Search for end of invite list. */ + while ((*uprev)->next_user) + uprev = &(*uprev)->next_user; + } else { + /* Find or allocate an Invite struct. */ + if (invite_freelist) { + inv = invite_freelist; + invite_freelist = inv->next_user; + } else { + inv = MyCalloc(1, sizeof(*inv)); + } + + /* Set client and channel fields; add to channel list. */ + inv->user = cptr; + inv->channel = chptr; + inv->next_channel = chptr->invites; + chptr->invites = inv; + } + + /* Add to the user's invite list. */ + assert(uprev != NULL); + *uprev = inv; + + /* Set the remaining fields. */ + ircd_snprintf(NULL, inv->inviter, sizeof(inv->inviter) - 1, + "%#C", inviter); + inv->next_user = NULL; } /** Delete an invite @@ -1423,26 +1488,31 @@ */ void del_invite(struct Client *cptr, struct Channel *chptr) { - struct SLink **inv, *tmp; + struct Invite **inv, *tmp; - for (inv = &(chptr->invites); (tmp = *inv); inv = &tmp->next) - if (tmp->value.cptr == cptr) + /* Remove from channel's invite list. */ + for (inv = &(chptr->invites); (tmp = *inv); inv = &tmp->next_channel) + if (tmp->user == cptr) { - *inv = tmp->next; - free_link(tmp); - tmp = 0; - (cli_user(cptr))->invites--; + *inv = tmp->next_channel; break; } - for (inv = &((cli_user(cptr))->invited); (tmp = *inv); inv = &tmp->next) - if (tmp->value.chptr == chptr) + /* If nothing found, bail. */ + if (!tmp) + return; + + /* Remove from client's invite list. */ + for (inv = &((cli_user(cptr))->invited); (tmp = *inv); inv = &tmp->next_user) + if (tmp->channel == chptr) { - *inv = tmp->next; - free_link(tmp); - tmp = 0; + *inv = tmp->next_user; break; } + + /* Append to freelist of invites. */ + tmp->next_user = invite_freelist; + invite_freelist = tmp; } /** @page zombie Explanation of Zombies @@ -2352,7 +2422,7 @@ mode_invite_clear(struct Channel *chan) { while (chan->invites) - del_invite(chan->invites->value.cptr, chan); + del_invite(chan->invites->user, chan); } /* What we've done for mode_parse so far... */ @@ -3245,8 +3315,6 @@ #else (MODE_CHANOP | MODE_VOICE)); #endif - if (state->cli_change[i].flag & MODE_CHANOP) - ClearDeopped(member); } else member->status &= ~(state->cli_change[i].flag & #if defined(DDB) || defined(SERVICES) @@ -3741,18 +3809,6 @@ return 0; } -/* Returns TRUE (1) if client is invited, FALSE (0) if not */ -int IsInvited(struct Client* cptr, const void* chptr) -{ - struct SLink *lp; - - for (lp = (cli_user(cptr))->invited; lp; lp = lp->next) - if (lp->value.chptr == chptr) - return 1; - - return 0; -} - /* RevealDelayedJoin: sends a join for a hidden user */ void RevealDelayedJoin(struct Membership *member) Index: ircd-ircdev/ircd/m_bmode.c diff -u ircd-ircdev/ircd/m_bmode.c:1.2 ircd-ircdev/ircd/m_bmode.c:1.3 --- ircd-ircdev/ircd/m_bmode.c:1.2 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_bmode.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for BMODE command (Bot Mode). - * @version $Id: m_bmode.c,v 1.2 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_bmode.c,v 1.3 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -61,8 +61,6 @@ if (IsLocalChannel(chptr->chname)) return protocol_violation(sptr, "Attemped to set BMODE on local channel"); - ClrFlag(sptr, FLAG_TS8); - modebuf_init(&mbuf, sptr, cptr, chptr, (MODEBUF_DEST_CHANNEL | /* Send mode to clients */ MODEBUF_DEST_SERVER | /* Send mode to servers */ Index: ircd-ircdev/ircd/m_burst.c diff -u ircd-ircdev/ircd/m_burst.c:1.17 ircd-ircdev/ircd/m_burst.c:1.18 --- ircd-ircdev/ircd/m_burst.c:1.17 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_burst.c Sat Apr 21 09:20:18 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Handlers for BURST command. - * @version $Id: m_burst.c,v 1.17 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_burst.c,v 1.18 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -389,7 +389,7 @@ struct Membership* member; #endif - base_mode = CHFL_DEOPPED | CHFL_BURST_JOINED; + base_mode = CHFL_BURST_JOINED; if (chptr->mode.mode & MODE_DELJOINS) base_mode |= CHFL_DELAYED; current_mode = last_mode = base_mode; @@ -415,7 +415,7 @@ current_mode = base_mode; current_mode_needs_reset = 0; } - current_mode = (current_mode & ~(CHFL_DEOPPED | CHFL_DELAYED)) | CHFL_CHANOP; + current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_CHANOP; } else if (*ptr == 'v') { /* has voice status */ if (current_mode_needs_reset) { @@ -434,7 +434,7 @@ } oplevel = 0; } - current_mode = (current_mode & ~(CHFL_DEOPPED | CHFL_DELAYED)) | CHFL_CHANOP; + current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_CHANOP; do { level_increment = 10 * level_increment + *ptr++ - '0'; } while(IsDigit(*ptr)); @@ -445,12 +445,12 @@ ptr++) { #if defined(DDB) || defined(SERVICES) if (*ptr == 'q') /* has owner status */ - current_mode = (current_mode & ~(CHFL_DEOPPED | CHFL_DELAYED)) | CHFL_OWNER; + current_mode = (current_mode & ~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; + current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_CHANOP; else if (*ptr == 'v') /* has voice status */ current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_VOICE; #endif @@ -579,15 +579,14 @@ if (member->status & CHFL_VOICE) modebuf_mode_client(mbuf, MODE_DEL | CHFL_VOICE, member->user, 0); #endif - member->status = (member->status + member->status &= #if defined(UNDERNET) - & ~(CHFL_CHANNEL_MANAGER | CHFL_CHANOP | CHFL_VOICE)) + ~(CHFL_CHANNEL_MANAGER | CHFL_CHANOP | CHFL_VOICE); #elif defined(DDB) || defined(SERVICES) - & ~(CHFL_OWNER | CHFL_CHANOP | CHFL_VOICE)) + ~(CHFL_OWNER | CHFL_CHANOP | CHFL_VOICE); #else - & ~(CHFL_CHANOP | CHFL_VOICE)) + ~(CHFL_CHANOP | CHFL_VOICE); #endif - | CHFL_DEOPPED; } } Index: ircd-ircdev/ircd/m_create.c diff -u ircd-ircdev/ircd/m_create.c:1.9 ircd-ircdev/ircd/m_create.c:1.10 --- ircd-ircdev/ircd/m_create.c:1.9 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_create.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for CREATE command. - * @version $Id: m_create.c,v 1.9 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_create.c,v 1.10 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -80,8 +80,7 @@ /* A create that didn't appear during a burst has that servers idea of * the current time. Use it for lag calculations. */ - if (!IsBurstOrBurstAck(sptr) && 0 != chanTS && - MAGIC_REMOTE_JOIN_TS != chanTS) + if (!IsBurstOrBurstAck(sptr) && 0 != chanTS) cli_serv(cli_user(sptr)->server)->lag = TStime() - chanTS; /* If this server is >1 minute fast, warn */ @@ -121,8 +120,7 @@ /* Check if we need to bounce a mode */ if (TStime() - chanTS > TS_LAG_TIME || - (chptr->creationtime && chanTS > chptr->creationtime && - chptr->creationtime != MAGIC_REMOTE_JOIN_TS)) { + (chptr->creationtime && chanTS > chptr->creationtime)) { modebuf_init(&mbuf, sptr, cptr, chptr, (MODEBUF_DEST_SERVER | /* Send mode to server */ MODEBUF_DEST_HACK2 | /* Send a HACK(2) message */ Index: ircd-ircdev/ircd/m_invite.c diff -u ircd-ircdev/ircd/m_invite.c:1.16 ircd-ircdev/ircd/m_invite.c:1.17 --- ircd-ircdev/ircd/m_invite.c:1.16 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_invite.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for INVITE command. - * @version $Id: m_invite.c,v 1.16 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_invite.c,v 1.17 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -73,9 +73,9 @@ /* * list the channels you have an invite to. */ - struct SLink *lp; - for (lp = cli_user(sptr)->invited; lp; lp = lp->next) - send_reply(cptr, RPL_INVITELIST, lp->value.chptr->chname); + struct Invite *ip; + for (ip = cli_user(sptr)->invited; ip; ip = ip->next_user) + send_reply(cptr, RPL_INVITELIST, ip->channel->chname); send_reply(cptr, RPL_ENDOFINVITELIST); return 0; } @@ -124,7 +124,7 @@ send_reply(sptr, RPL_AWAY, cli_name(acptr), cli_user(acptr)->away); if (MyConnect(acptr)) { - add_invite(acptr, chptr); + add_invite(acptr, chptr, sptr); sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H", cli_name(acptr), chptr); } else if (!IsLocalChannel(chptr->chname)) { sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H %Tu", cli_name(acptr), chptr, @@ -236,7 +236,7 @@ return 0; if (MyConnect(acptr)) { - add_invite(acptr, chptr); + add_invite(acptr, chptr, sptr); sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H", cli_name(acptr), chptr); } else { sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H %Tu", cli_name(acptr), chptr, Index: ircd-ircdev/ircd/m_join.c diff -u ircd-ircdev/ircd/m_join.c:1.17 ircd-ircdev/ircd/m_join.c:1.18 --- ircd-ircdev/ircd/m_join.c:1.17 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_join.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for JOIN command. - * @version $Id: m_join.c,v 1.17 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_join.c,v 1.18 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -169,7 +169,6 @@ /* Try to add the new channel as a recent target for the user. */ if (check_target_limit(sptr, chptr, chptr->chname, 0)) { #if defined(UNDERNET) -/* FIXME zoltan */ chptr->members = 0; destruct_channel(chptr); continue; @@ -177,6 +176,7 @@ joinbuf_join(&create, chptr, CHFL_CHANOP | CHFL_CHANNEL_MANAGER); #else +/*TODO-ZOLTAN: Ojo con esto, con el target limit*/ sub1_from_channel(chptr); continue; } @@ -188,14 +188,13 @@ } else if (check_target_limit(sptr, chptr, chptr->chname, 0)) { continue; } else { - int flags = CHFL_DEOPPED; + struct Invite *invite; + int flags = 0; int err = 0; #if defined(DDB) struct Ddb *ddb = ddb_find_key(DDB_CHANDB, chptr->chname); #endif - /* Check target change limits. */ - #if defined(UNDERNET) /* Check Apass/Upass -- since we only ever look at a single * "key" per channel now, this hampers brute force attacks. */ @@ -203,16 +202,18 @@ flags = CHFL_CHANOP | CHFL_CHANNEL_MANAGER; else if (key && !strcmp(key, chptr->mode.upass)) flags = CHFL_CHANOP; - else if (IsInvited(sptr, chptr)) { + else if (chptr->users == 0 && !chptr->mode.apass[0]) { + /* Joining a zombie channel (zannel): give ops and increment TS. */ + flags = CHFL_CHANOP; + chptr->creationtime++; + } else if (chptr->mode.mode & MODE_INVITEONLY) #elif defined(DDB) if (ddb && !ircd_strcmp(ddb_content(ddb), cli_name(sptr))) flags = CHFL_OWNER; - else if (IsInvited(sptr, chptr)) { + else if (chptr->mode.mode & MODE_INVITEONLY) #else - if (IsInvited(sptr, chptr)) { + if (chptr->mode.mode & MODE_INVITEONLY) #endif - /* Invites bypass these other checks. */ - } else if (chptr->mode.mode & MODE_INVITEONLY) err = ERR_INVITEONLYCHAN; else if (chptr->mode.limit && (chptr->users >= chptr->mode.limit)) err = ERR_CHANNELISFULL; @@ -227,6 +228,19 @@ else if (*chptr->mode.key && (!key || strcmp(key, chptr->mode.key))) err = ERR_BADCHANNELKEY; + /* If the user is invited, s/he can bypass the normal errors. */ + if (err && feature_bool(FEAT_ANNOUNCE_INVITES) + && (invite = is_invited(sptr, chptr))) { + const struct Numeric *num; + num = get_error_numeric(RPL_ISSUEDINVITE); + sendcmdto_channel_butone(&me, num->str, num->str, chptr, cptr, + SKIP_NONOPS | SKIP_BURST, + "%H %s %s :%s has been invited by %s", + chptr, cli_name(sptr), invite->inviter, + cli_name(sptr), in... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-04-21 21:17:40
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-21 21:17:34 UTC Modified files: ChangeLog ChangeLog.es include/ddb.h include/ircd.h include/list.h include/msgq.h include/patchlevel.h include/querycmds.h include/s_bsd.h include/send.h ircd/Makefile.in ircd/channel.c ircd/ddb.c ircd/ddb_events.c ircd/destruct_event.c ircd/gline.c ircd/ircd.c ircd/ircd_auth.c ircd/ircd_log.c ircd/ircd_relay.c ircd/ircd_reply.c ircd/jupe.c ircd/list.c ircd/listener.c ircd/m_account.c ircd/m_away.c ircd/m_burst.c ircd/m_clearmode.c ircd/m_connect.c ircd/m_cprivmsg.c ircd/m_create.c ircd/m_db.c ircd/m_dbq.c ircd/m_destruct.c ircd/m_desynch.c ircd/m_endburst.c ircd/m_error.c ircd/m_ghost.c ircd/m_gline.c ircd/m_invite.c ircd/m_join.c ircd/m_jupe.c ircd/m_kick.c ircd/m_kill.c ircd/m_nick.c ircd/m_oper.c ircd/m_rehash.c ircd/m_server.c ircd/m_settime.c ircd/m_silence.c ircd/m_svsnick.c ircd/m_topic.c ircd/m_trace.c ircd/m_wallchops.c ircd/m_wallops.c ircd/m_wallusers.c ircd/m_wallvoices.c ircd/memdebug.c ircd/motd.c ircd/msgq.c ircd/numnicks.c ircd/os_generic.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_misc.c ircd/s_numeric.c ircd/s_serv.c ircd/s_user.c ircd/send.c ircd/umkpasswd.c Removed files: include/sys.h Log message: Author: zo...@ir... Log message: 2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta3 * Limpieza send.c * Limpieza sintasis ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.51 ircd-ircdev/ChangeLog:1.52 --- ircd-ircdev/ChangeLog:1.51 Sat Apr 21 09:20:17 2007 +++ ircd-ircdev/ChangeLog Sat Apr 21 14:17:22 2007 @@ -1,11 +1,15 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.51 2007/04/21 16:20:17 zolty Exp $ +# $Id: ChangeLog,v 1.52 2007/04/21 21:17:22 zolty Exp $ # # Insert new changes at beginning of the change list. # -2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 +2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta3 + * Cleanup send.c + * Cleanup syntax + +2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 * Remove P09 support rests * New Invite structure Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.51 ircd-ircdev/ChangeLog.es:1.52 --- ircd-ircdev/ChangeLog.es:1.51 Sat Apr 21 09:20:17 2007 +++ ircd-ircdev/ChangeLog.es Sat Apr 21 14:17:22 2007 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.51 2007/04/21 16:20:17 zolty Exp $ +# $Id: ChangeLog.es,v 1.52 2007/04/21 21:17:22 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta3 + * Limpieza send.c + * Limpieza sintasis + 2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 * Eliminar restos soporte P09 * Nueva estructura Invite Index: ircd-ircdev/include/ddb.h diff -u ircd-ircdev/include/ddb.h:1.13 ircd-ircdev/include/ddb.h:1.14 --- ircd-ircdev/include/ddb.h:1.13 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ddb.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Distributed DataBases structures, macros and functions. - * @version $Id: ddb.h,v 1.13 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ddb.h,v 1.14 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_ddb_h #define INCLUDED_ddb_h @@ -148,7 +148,7 @@ extern struct Ddb *ddb_find_key(unsigned char table, char *key); extern char *ddb_get_botname(char *botname); -extern void ddb_splithubs_butone(struct Client *cptr, char *exitmsg); +extern void ddb_splithubs(struct Client *cptr, char *exitmsg); extern void ddb_reload(void); extern void ddb_die(const char *pattern, ...); extern void ddb_report_stats(struct Client* to, const struct StatDesc* sd, char* param); Index: ircd-ircdev/include/ircd.h diff -u ircd-ircdev/include/ircd.h:1.5 ircd-ircdev/include/ircd.h:1.6 --- ircd-ircdev/include/ircd.h:1.5 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file ircd.h * @brief Global data for the daemon. - * @version $Id: ircd.h,v 1.5 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd.h,v 1.6 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_ircd_h #define INCLUDED_ircd_h @@ -77,6 +77,8 @@ extern char* configfile; extern int debuglevel; extern char* debugmode; -extern int running; +extern int running; +extern int maxconnections; +extern int maxclients; #endif /* INCLUDED_ircd_h */ Index: ircd-ircdev/include/list.h diff -u ircd-ircdev/include/list.h:1.7 ircd-ircdev/include/list.h:1.8 --- ircd-ircdev/include/list.h:1.7 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/list.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file list.h * @brief Singly and doubly linked list manipulation interface. - * @version $Id: list.h,v 1.7 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: list.h,v 1.8 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_list_h #define INCLUDED_list_h @@ -71,7 +71,7 @@ extern void free_link(struct SLink *lp); extern struct SLink *make_link(void); -extern void init_list(void); +extern void init_list(int maxconn); extern struct Client *make_client(struct Client *from, int status); extern void free_connection(struct Connection *con); extern void free_client(struct Client *cptr); Index: ircd-ircdev/include/msgq.h diff -u ircd-ircdev/include/msgq.h:1.6 ircd-ircdev/include/msgq.h:1.7 --- ircd-ircdev/include/msgq.h:1.6 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/msgq.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Outbound message queue interface and declarations. - * @version $Id: msgq.h,v 1.6 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: msgq.h,v 1.7 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_msgq_h #define INCLUDED_msgq_h @@ -50,6 +50,7 @@ struct MsgQList { struct Msg *head; /**< First Msg in queue list */ struct Msg *tail; /**< Last Msg in queue list */ + unsigned int sent; /**< Bytes in *head that have already been sent */ }; /** Entire two-priority message queue for a destination. */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.50 ircd-ircdev/include/patchlevel.h:1.51 --- ircd-ircdev/include/patchlevel.h:1.50 Sat Apr 21 09:20:18 2007 +++ ircd-ircdev/include/patchlevel.h Sat Apr 21 14:17:22 2007 @@ -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.50 2007/04/21 16:20:18 zolty Exp $ + * $Id: patchlevel.h,v 1.51 2007/04/21 21:17:22 zolty Exp $ * */ -#define PATCHLEVEL "2" +#define PATCHLEVEL "3" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/querycmds.h diff -u ircd-ircdev/include/querycmds.h:1.6 ircd-ircdev/include/querycmds.h:1.7 --- ircd-ircdev/include/querycmds.h:1.6 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/querycmds.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and declarations for client counting functions. - * @version $Id: querycmds.h,v 1.6 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: querycmds.h,v 1.7 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_querycmds_h #define INCLUDED_querycmds_h @@ -106,7 +106,7 @@ { \ max_connection_count = UserStats.local_clients + UserStats.local_servers; \ if (max_connection_count % 10 == 0) \ - sendto_opmask_butone(0, SNO_OLDSNO, "Maximum connections: %d (%d clients)", \ + sendto_opmask(0, SNO_OLDSNO, "Maximum connections: %d (%d clients)", \ max_connection_count, max_client_count); \ } \ } while(0) Index: ircd-ircdev/include/s_bsd.h diff -u ircd-ircdev/include/s_bsd.h:1.8 ircd-ircdev/include/s_bsd.h:1.9 --- ircd-ircdev/include/s_bsd.h:1.8 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/s_bsd.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file s_bsd.h * @brief Wrapper functions to avoid direct use of BSD APIs. - * @version $Id: s_bsd.h,v 1.8 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: s_bsd.h,v 1.9 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_s_bsd_h #define INCLUDED_s_bsd_h @@ -71,8 +71,8 @@ extern const char* const TOS_ERROR_MSG; extern const char* const REGISTER_ERROR_MSG; -extern int HighestFd; -extern struct Client* LocalClientArray[MAXCONNECTIONS]; +extern int HighestFd; +extern struct Client** LocalClientArray; extern struct irc_sockaddr VirtualHost_v4; extern struct irc_sockaddr VirtualHost_v6; @@ -87,7 +87,7 @@ extern int read_message(time_t delay); extern void init_server_identity(void); extern void close_connections(int close_stderr); -extern int init_connection_limits(void); +extern int init_connection_limits(int maxconn); extern void update_write(struct Client* cptr); #endif /* INCLUDED_s_bsd_h */ Index: ircd-ircdev/include/send.h diff -u ircd-ircdev/include/send.h:1.9 ircd-ircdev/include/send.h:1.10 --- ircd-ircdev/include/send.h:1.9 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/send.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file send.h * @brief Send messages to certain targets. - * @version $Id: send.h,v 1.9 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: send.h,v 1.10 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_send_h #define INCLUDED_send_h @@ -74,90 +74,69 @@ const char *pattern, ...); /* Send command to servers by flags except one */ -extern void sendcmdto_flag_serv_butone(struct Client *from, const char *cmd, - const char *tok, struct Client *one, - int require, int forbid, - const char *pattern, ...); +extern void sendcmdto_flag_serv(struct Client *from, const char *cmd, + const char *tok, struct Client *one, + int require, int forbid, + const char *pattern, ...); /* Send command to all servers except one */ -extern void sendcmdto_serv_butone(struct Client *from, const char *cmd, - const char *tok, struct Client *one, - const char *pattern, ...); +extern void sendcmdto_serv(struct Client *from, const char *cmd, + const char *tok, struct Client *one, + const char *pattern, ...); /* Send command to all channels user is on */ -extern void sendcmdto_common_channels_butone(struct Client *from, - const char *cmd, - const char *tok, - struct Client *one, - const char *pattern, ...); +extern void sendcmdto_common_channels(struct Client *from, + const char *cmd, + const char *tok, + struct Client *one, + const char *pattern, ...); #if defined(DDB) /* Send bot command to all channel users on this server */ -extern void sendcmdbotto_channel_butserv_butone(const char *botmode, - const char *cmd, - const char *tok, - struct Channel *to, - struct Client *one, - unsigned int skip, - const char *pattern, ...); +extern void sendcmdbotto_channel_butserv(const char *botmode, + const char *cmd, + const char *tok, + struct Channel *to, + struct Client *one, + unsigned int skip, + const char *pattern, ...); #endif -/* Send command to all channel users on this server */ -extern void sendcmdto_channel_butserv_butone(struct Client *from, - const char *cmd, - const char *tok, - struct Channel *to, - struct Client *one, - unsigned int skip, - const char *pattern, ...); - -/* Send command to all servers interested in a channel */ -extern void sendcmdto_channel_servers_butone(struct Client *from, - const char *cmd, - const char *tok, - struct Channel *to, - struct Client *one, - unsigned int skip, - const char *pattern, ...); - /* Send command to all interested channel users */ -extern void sendcmdto_channel_butone(struct Client *from, const char *cmd, - const char *tok, struct Channel *to, - struct Client *one, unsigned int skip, - const char *pattern, ...); +extern void sendcmdto_channel(struct Client *from, const char *cmd, + const char *tok, struct Channel *to, + struct Client *one, unsigned int skip, + const char *pattern, ...); #define SKIP_DEAF 0x01 /**< skip users that are +d */ #define SKIP_BURST 0x02 /**< skip users that are bursting */ #define SKIP_NONOPS 0x04 /**< skip users that aren't chanops */ #define SKIP_NONVOICES 0x08 /**< skip users that aren't voiced (includes chanops) */ +#define SKIP_SERVERS 0x10 /**< skip server links */ /* Send command to all users having a particular flag set */ -extern void sendwallto_group_butone(struct Client *from, int type, - struct Client *one, const char *pattern, - ...); +extern void sendwallto_group(struct Client *from, int type, + struct Client *one, const char *pattern, + ...); #define WALL_DESYNCH 1 /**< send as a DESYNCH message */ #define WALL_WALLOPS 2 /**< send to all +w opers */ #define WALL_WALLUSERS 3 /**< send to all +w users */ /* Send command to all matching clients */ -extern void sendcmdto_match_butone(struct Client *from, const char *cmd, - const char *tok, const char *to, - struct Client *one, unsigned int who, - const char *pattern, ...); +extern void sendcmdto_match(struct Client *from, const char *cmd, + const char *tok, const char *to, + struct Client *one, unsigned int who, + const char *pattern, ...); /* Send server notice to opers but one--one can be NULL */ -extern void sendto_opmask_butone(struct Client *one, unsigned int mask, - const char *pattern, ...); +extern void sendto_opmask(struct Client *one, unsigned int mask, + const char *pattern, ...); /* Same as above, but rate limited */ -extern void sendto_opmask_butone_ratelimited(struct Client *one, - unsigned int mask, time_t *rate, - const char *pattern, ...); - -/* Same as above, but with variable argument list */ -extern void vsendto_opmask_butone(struct Client *one, unsigned int mask, - const char *pattern, va_list vl); +extern void sendto_opmask_ratelimited(struct Client *one, + unsigned int mask, time_t *rate, + const char *pattern, ...); #endif /* INCLUDED_send_h */ Index: ircd-ircdev/include/sys.h diff -u ircd-ircdev/include/sys.h:1.6 ircd-ircdev/include/sys.h:removed --- ircd-ircdev/include/sys.h:1.6 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/sys.h Sat Apr 21 14:17:34 2007 @@ -1,34 +0,0 @@ -/* - * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/sys.h - * - * Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> - * Copyright (C) 1990 Jarkko Oikarinen - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * $Id: sys.h,v 1.6 2007/04/19 22:53:47 zolty Exp $ - * - */ -#ifndef INCLUDED_sys_h -#define INCLUDED_sys_h - -/* - * safety margin so we can always have one spare fd, for motd/authd or - * whatever else. -24 allows "safety" margin of 10 listen ports, 8 servers - * and space reserved for logfiles, DNS sockets and identd sockets etc. - */ -#define MAXCLIENTS (MAXCONNECTIONS-24) - -#endif /* INCLUDED_sys_h */ Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.31 ircd-ircdev/ircd/Makefile.in:1.32 --- ircd-ircdev/ircd/Makefile.in:1.31 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/Makefile.in Sat Apr 21 14:17:22 2007 @@ -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: Makefile.in,v 1.31 2007/04/19 22:53:47 zolty Exp $ +# $Id: Makefile.in,v 1.32 2007/04/21 21:17:22 zolty Exp $ #### Start of system configuration section. #### @@ -423,7 +423,7 @@ ../include/numnicks.h ../include/querycmds.h ../include/ircd_features.h \ ../include/s_bsd.h ../include/s_conf.h ../include/s_debug.h \ ../include/s_misc.h ../include/s_user.h ../include/send.h \ - ../include/struct.h ../include/sys.h ../include/whowas.h + ../include/struct.h ../include/whowas.h class.o: class.c ../config.h ../include/class.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ @@ -447,9 +447,10 @@ ../include/ircd_alloc.h ../include/ircd_chattr.h \ ../include/ircd_string.h ../include/match.h ../include/s_bsd.h \ ../include/s_debug.h ../include/struct.h -dbuf.o: dbuf.c ../config.h ../include/dbuf.h ../include/ircd_alloc.h \ +dbuf.o: dbuf.c ../config.h ../include/dbuf.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_defs.h ../include/ircd_alloc.h \ ../include/ircd_chattr.h ../include/ircd_features.h \ - ../include/ircd_log.h ../include/send.h ../include/sys.h + ../include/ircd_log.h ../include/send.h destruct_event.o: destruct_event.c ../config.h ../include/channel.h \ ../include/ircd_defs.h ../include/res.h ../include/s_debug.h \ ../include/ircd_alloc.h ../include/ircd.h ../include/struct.h \ @@ -476,26 +477,7 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd.h ../include/struct.h ../include/match.h \ ../include/msg.h ../include/numeric.h ../include/random.h \ - ../include/send.h ../include/struct.h ../include/sys.h \ - ../include/watch.h -ircd.o: ircd.c ../config.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_defs.h ../include/IPcheck.h ../include/class.h \ - ../include/client.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ - ../include/capab.h ../include/client.h ../include/crule.h \ - ../include/ddb.h ../config.h ../include/destruct_event.h \ - ../include/channel.h ../include/hash.h ../include/ircd_alloc.h \ - ../include/ircd_crypt.h ../include/ircd_events.h \ - ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/ircd_signal.h \ - ../include/ircd_string.h ../include/ircd_chattr.h ../include/jupe.h \ - ../include/list.h ../include/match.h ../include/motd.h ../include/msg.h \ - ../include/numeric.h ../include/numnicks.h ../include/opercmds.h \ - ../include/parse.h ../include/res.h ../include/s_auth.h \ - ../include/s_bsd.h ../include/s_conf.h ../include/s_debug.h \ - ../include/s_misc.h ../include/s_stats.h ../include/send.h \ - ../include/sys.h ../include/uping.h ../include/userload.h \ - ../include/version.h ../include/whowas.h + ../include/send.h ../include/struct.h ../include/watch.h ircd_alloc.o: ircd_alloc.c ../config.h ../include/ircd_alloc.h \ ../include/ircd_log.h ../include/ircd_string.h ../include/ircd_chattr.h \ ../include/s_debug.h ../include/ircd_defs.h @@ -531,8 +513,7 @@ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/random.h ../include/s_bsd.h ../include/s_debug.h \ ../include/s_misc.h ../include/s_stats.h ../include/s_user.h \ - ../include/send.h ../include/struct.h ../include/sys.h \ - ../include/whowas.h + ../include/send.h ../include/struct.h ../include/whowas.h ircd_log.o: ircd_log.c ../config.h ../include/ircd_log.h \ ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ @@ -568,8 +549,8 @@ ../include/ircd_snprintf.h ../include/ircd.h ../include/struct.h \ ../include/numeric.h ../include/fileio.h ../include/random.h \ ../include/s_bsd.h ../include/s_debug.h ../include/s_stats.h \ - ../include/ircd_features.h ../include/send.h ../include/sys.h \ - ../include/res.h ../include/ircd_reslib.h + ../include/ircd_features.h ../include/send.h ../include/res.h \ + ../include/ircd_reslib.h ircd_reslib.o: ircd_reslib.c ../include/ircd.h ../include/struct.h \ ../include/ircd_defs.h ../include/res.h ../config.h \ ../include/ircd_reslib.h ../include/ircd_defs.h ../include/fileio.h \ @@ -597,8 +578,7 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/match.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_bsd.h \ - ../include/s_misc.h ../include/send.h ../include/struct.h \ - ../include/sys.h + ../include/s_misc.h ../include/send.h ../include/struct.h lex.yy.o: lex.yy.c ../config.h ../include/ircd.h ../include/struct.h \ ../include/ircd_defs.h ../include/ircd_alloc.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/s_debug.h y.tab.h @@ -613,18 +593,6 @@ ../include/s_bsd.h ../include/s_conf.h ../include/client.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ ../include/send.h ../include/struct.h ../include/whowas.h -listener.o: listener.c ../config.h ../include/listener.h \ - ../include/ircd_defs.h ../include/ircd_events.h ../include/res.h \ - ../include/client.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_handler.h ../include/capab.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_alloc.h ../include/ircd_events.h \ - ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_osdep.h ../include/ircd_reply.h \ - ../include/ircd_snprintf.h ../include/ircd_string.h \ - ../include/ircd_chattr.h ../include/match.h ../include/numeric.h \ - ../include/s_bsd.h ../include/s_conf.h ../include/client.h \ - ../include/s_misc.h ../include/s_stats.h ../include/send.h \ - ../include/sys.h m_admin.o: m_admin.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ @@ -800,16 +768,6 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/msgq.h ../include/numeric.h \ ../include/send.h -m_join.o: m_join.c ../config.h ../include/channel.h \ - ../include/ircd_defs.h ../include/res.h ../include/client.h \ - ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ - ../include/ircd_handler.h ../include/capab.h ../include/ddb.h \ - ../config.h ../include/client.h ../include/gline.h ../include/hash.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_chattr.h \ - ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/ircd_string.h ../include/msg.h \ - ../include/numeric.h ../include/numnicks.h ../include/s_debug.h \ - ../include/s_user.h ../include/send.h ../include/sys.h m_jupe.o: m_jupe.c ../config.h ../include/client.h ../include/ircd_defs.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ ../include/ircd_handler.h ../include/res.h ../include/capab.h \ @@ -909,7 +867,7 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ - ../include/send.h ../include/sys.h + ../include/send.h m_notice.o: m_notice.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ @@ -1119,8 +1077,9 @@ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/client.h ../include/hash.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_features.h \ - ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_alloc.h \ + ../include/ircd_features.h ../include/ircd_log.h \ + ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/match.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_bsd.h \ ../include/s_conf.h ../include/s_user.h ../include/send.h \ @@ -1275,9 +1234,6 @@ ../include/ircd_string.h ../include/listener.h ../include/match.h \ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/s_conf.h ../include/send.h ../include/struct.h -os_generic.o: os_generic.c ../config.h ../include/ircd_osdep.h \ - ../include/ircd_log.h ../include/msgq.h ../include/ircd_defs.h \ - ../include/res.h ../include/s_bsd.h ../include/sys.h packet.o: packet.c ../config.h ../include/packet.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ @@ -1297,7 +1253,7 @@ ../include/s_bsd.h ../include/s_conf.h ../include/client.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_numeric.h \ ../include/s_user.h ../include/send.h ../include/struct.h \ - ../include/sys.h ../include/whowas.h + ../include/whowas.h querycmds.o: querycmds.c ../config.h ../include/querycmds.h \ ../include/ircd_features.h random.o: random.c ../config.h ../include/random.h ../include/client.h \ @@ -1305,50 +1261,6 @@ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/ircd_log.h ../include/ircd_md5.h \ ../include/ircd_reply.h ../include/send.h -s_auth.o: s_auth.c ../config.h ../include/s_auth.h \ - ../include/ircd_events.h ../include/client.h ../include/ircd_defs.h \ - ../include/dbuf.h ../include/msgq.h ../include/ircd_handler.h \ - ../include/res.h ../include/capab.h ../include/IPcheck.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_alloc.h \ - ../include/ircd_chattr.h ../include/ircd_events.h \ - ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_osdep.h ../include/ircd_snprintf.h \ - ../include/ircd_string.h ../include/list.h ../include/numeric.h \ - ../include/querycmds.h ../include/ircd_features.h ../include/res.h \ - ../include/s_bsd.h ../include/s_debug.h ../include/s_misc.h \ - ../include/send.h ../include/struct.h ../include/sys.h -s_bsd.o: s_bsd.c ../config.h ../include/s_bsd.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ - ../include/capab.h ../include/IPcheck.h ../include/channel.h \ - ../include/class.h ../include/client.h ../include/ddb.h ../config.h \ - ../include/hash.h ../include/ircd_alloc.h ../include/ircd_log.h \ - ../include/ircd_features.h ../include/ircd_osdep.h \ - ../include/ircd_reply.h ../include/ircd_snprintf.h \ - ../include/ircd_string.h ../include/ircd_chattr.h ../include/ircd.h \ - ../include/struct.h ../include/list.h ../include/listener.h \ - ../include/msg.h ../include/msgq.h ../include/numeric.h \ - ../include/numnicks.h ../include/packet.h ../include/parse.h \ - ../include/querycmds.h ../include/ircd_features.h ../include/res.h \ - ../include/s_auth.h ../include/s_conf.h ../include/s_debug.h \ - ../include/s_misc.h ../include/s_user.h ../include/send.h \ - ../include/struct.h ../include/sys.h ../include/uping.h \ - ../include/version.h -s_conf.o: s_conf.c ../config.h ../include/s_conf.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ - ../include/capab.h ../include/IPcheck.h ../include/class.h \ - ../include/client.h ../include/crule.h ../include/ddb.h ../config.h \ - ../include/ircd_features.h ../include/fileio.h ../include/gline.h \ - ../include/hash.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_alloc.h ../include/ircd_auth.h ../include/ircd_chattr.h \ - ../include/ircd_log.h ../include/ircd_reply.h \ - ../include/ircd_snprintf.h ../include/ircd_string.h ../include/list.h \ - ../include/listener.h ../include/match.h ../include/motd.h \ - ../include/msg.h ../include/numeric.h ../include/numnicks.h \ - ../include/opercmds.h ../include/parse.h ../include/res.h \ - ../include/s_bsd.h ../include/s_debug.h ../include/s_misc.h \ - ../include/send.h ../include/struct.h ../include/sys.h s_debug.o: s_debug.c ../config... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-04-22 13:56:51
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-22 13:56:35 UTC Modified files: .cvsignore ChangeLog ChangeLog.es Makefile.in acinclude.m4 aclocal.m4 config.h.in configure doc/Makefile.in include/capab.h include/client.h include/crule.h include/ircd_osdep.h include/list.h include/listener.h include/patchlevel.h include/s_bsd.h include/s_conf.h include/struct.h ircd/Makefile.in ircd/crule.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/ircd_res.c ircd/listener.c ircd/m_account.c ircd/m_gline.c ircd/m_mode.c ircd/m_server.c ircd/m_svsnick.c ircd/os_generic.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_serv.c ircd/s_stats.c ircd/s_user.c ircd/uping.c ircd/test/Makefile.in Added files: Makefile.am configure.ac missing test.l include/flagset.h ircd/Makefile.am ircd/test/Makefile.am Removed files: configure.in Log message: Author: zo...@ir... Log message: 2007-04-22 Toni Garcïa <zo...@ir...> 1.0.beta4 * Nuevo Configure y Makefiles * Nuevo Yacc y Lex parser * Nuevo flag de servidor Uworld * Reescritura Crules ---------------------- diff included ---------------------- Index: ircd-ircdev/.cvsignore diff -u ircd-ircdev/.cvsignore:1.3 ircd-ircdev/.cvsignore:1.4 --- ircd-ircdev/.cvsignore:1.3 Wed Nov 24 08:13:27 2004 +++ ircd-ircdev/.cvsignore Sun Apr 22 06:56:17 2007 @@ -5,6 +5,6 @@ stamp-h config.status config.cache -autom4te.cache .project ircu.tags +autom4te.cache Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.52 ircd-ircdev/ChangeLog:1.53 --- ircd-ircdev/ChangeLog:1.52 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ChangeLog Sun Apr 22 06:56:17 2007 @@ -1,10 +1,16 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.52 2007/04/21 21:17:22 zolty Exp $ +# $Id: ChangeLog,v 1.53 2007/04/22 13:56:17 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-04-22 Toni Garcïa <zo...@ir...> 1.0.beta4 + * New Configure and Makefiles + * New Yacc y Lex parser + * New server flag UWORLD + * Re-write Crules + 2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta3 * Cleanup send.c * Cleanup syntax Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.52 ircd-ircdev/ChangeLog.es:1.53 --- ircd-ircdev/ChangeLog.es:1.52 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ChangeLog.es Sun Apr 22 06:56:17 2007 @@ -1,10 +1,16 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.52 2007/04/21 21:17:22 zolty Exp $ +# $Id: ChangeLog.es,v 1.53 2007/04/22 13:56:17 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-04-22 Toni Garc�a <zo...@ir...> 1.0.beta4 + * Nuevo Configure y Makefiles + * Nuevo Yacc y Lex parser + * Nuevo flag de servidor Uworld + * Reescritura Crules + 2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta3 * Limpieza send.c * Limpieza sintasis Index: ircd-ircdev/Makefile.am diff -u /dev/null ircd-ircdev/Makefile.am:1.1 --- /dev/null Sun Apr 22 06:56:36 2007 +++ ircd-ircdev/Makefile.am Sun Apr 22 06:56:17 2007 @@ -0,0 +1,34 @@ +## AutoMake top-level Makefile for the IRC-DEV IRC Daemon +## +## Copyright (C) 2005-2007 IRC-Dev Development Team <de...@ir...> +## Copyright (C) 2005 by Kevin L. Mitchell <kl...@mi...> +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +## +## @(#)$Id: Makefile.am,v 1.1 2007/04/22 13:56:17 zolty Exp $ + +SUBDIRS = ircd + +EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch \ + ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es \ + TODO TODO.es + +# Install man page and example.conf +man_MANS = doc/en/ircd.8 +sysconf_DATA = doc/ircd.sample-en.conf doc/ircd.sample-es.conf + +# Make sure to filter out those CVS directories +dist-hook: + find $(distdir) -name CVS -print -prune | xargs rm -rf Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.10 ircd-ircdev/Makefile.in:1.11 --- ircd-ircdev/Makefile.in:1.10 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/Makefile.in Sun Apr 22 06:56:17 2007 @@ -1,159 +1,703 @@ -# IRC-Dev IRCD - An advanced and innovative IRC Daemon, Makefile +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ -# Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> -# Copyright (C) 1997, Carlo Wood <ca...@ru...> - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. -#### Start of system configuration section. #### +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/configure COPYING ChangeLog INSTALL TODO \ + acconfig.h config.guess config.sub depcomp install-sh missing \ + ylwrap +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +man8dir = $(mandir)/man8 +am__installdirs = "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)" +NROFF = nroff +MANS = $(man_MANS) +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +sysconfDATA_INSTALL = $(INSTALL_DATA) +DATA = $(sysconf_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ -VPATH = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = ircd +EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch \ + ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es \ + TODO TODO.es + + +# Install man page and example.conf +man_MANS = doc/en/ircd.8 +sysconf_DATA = doc/ircd.sample-en.conf doc/ircd.sample-es.conf +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) $(top_srcdir)/acconfig.h + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +install-man8: $(man8_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)" + @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 8*) ;; \ + *) ext='8' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \ + done +uninstall-man8: + @$(NORMAL_UNINSTALL) + @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 8*) ;; \ + *) ext='8' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \ + rm -f "$(DESTDIR)$(man8dir)/$$inst"; \ + done +install-sysconfDATA: $(sysconf_DATA) + @$(NORMAL_INSTALL) + test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" + @list='$(sysconf_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \ + $(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \ + done -SHELL = @SHPROG@ -RM = @RMPROG@ -AWK = @AWK@ -@SET_MAKE@ -#### End of system configuration section. #### +uninstall-sysconfDATA: + @$(NORMAL_UNINSTALL) + @list='$(sysconf_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \ + rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(MANS) $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive -SUBDIRS = doc ircd ircd/test -IRCD_MAKEFILES = Makefile doc/Makefile ircd/Makefile ircd/test/Makefile +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -all: build +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: -.PHONY: server build depend install config update diff patch export update -# Some versions of make give a warning when this is empty: -.SUFFIXES: .dummy +clean-generic: -build: ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "Building $$i..."; \ - cd $$i; ${MAKE} build; cd ..; \ - done +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -config: - @echo "*************************************************************" - @echo "* The \"make config\" step is now DEPRECATED. Most *" - @echo "* server options are now configurable via the configuration *" - @echo "* file using F-lines; the rest are specified on the command *" - @echo "* line to \"./configure\". To aid the transition, a shell *" - @echo "* script has been provided to generate the necessary *" - @echo "* configuration lines for you. You may run this script by *" - @echo "* typing \"tools/transition\"; please pay attention to its *" - @echo "* output. This message will be removed for the next major *" - @echo "* release of ircu. *" - @echo "*************************************************************" +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive -root-clean: - @for i in '*.orig' '.*.orig' '\#*' '*~' '.*~' '*.bak' '.*.bak' core; do\ - echo "Removing $$i"; \ - REMOVE_FILES="`find . -name "$$i" -print`"; \ - test -n "$$REMOVE_FILES" && ${RM} -f $$REMOVE_FILES; \ - done || true +clean-am: clean-generic mostlyclean-am -sub-clean: ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "Cleaning $$i..."; \ - cd $$i; ${MAKE} clean; cd ..;\ - done +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr distclean-tags -clean: root-clean sub-clean +dvi: dvi-recursive -root-distclean: root-clean - @for i in '*.rej'; do \ - echo "Removing $$i"; \ - REMOVE_FILES="`find . -name "$$i" -print`"; \ - test -n "$$REMOVE_FILES" && ${RM} -f $$REMOVE_FILES; \ - done || true +dvi-am: -sub-distclean: ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "Dist-cleaning $$i..."; \ - cd $$i; ${MAKE} distclean; cd ..;\ - done +html: html-recursive -distclean: root-distclean sub-distclean - ${RM} -f Makefile config.h config.log config.cache config.status \ - stamp-h +info: info-recursive -maintainer-clean: root-distclean ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "maintainer-cleaning $$i..."; \ - cd $$i; ${MAKE} maintainer-clean; cd ..;\ - done +info-am: -depend: ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "Making dependencies in $$i..."; \ - cd $$i; ${MAKE} depend; cd ..; \ - done +install-data-am: install-man -install: ${IRCD_MAKEFILES} - test -d ${prefix} || mkdir ${prefix} - @for i in ${SUBDIRS}; do \ - echo "Installing $$i..."; \ - cd $$i; ${MAKE} install; cd ..; \ - done +install-dvi: install-dvi-recursive -uninstall: ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "Uninstalling $$i..."; \ - cd $$i; ${MAKE} uninstall; cd ..; \ - done +install-exec-am: install-sysconfDATA + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: install-man8 + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic -${srcdir}/aclocal.m4: acinclude.m4 - cd ${srcdir} && aclocal +mostlyclean: mostlyclean-recursive -${srcdir}/configure: configure.in aclocal.m4 - cd ${srcdir} && autoconf +mostlyclean-am: mostlyclean-generic -# autoheader might not change config.h.... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-04-26 19:17:44
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-26 19:17:41 UTC Modified files: ChangeLog ChangeLog.es configure include/client.h include/ircd_features.h include/ircd_reslib.h include/patchlevel.h include/res.h include/s_auth.h include/s_user.h ircd/ircd_parser.y ircd/ircd_res.c ircd/ircd_reslib.c ircd/list.c ircd/m_cap.c ircd/m_pong.c ircd/m_user.c ircd/os_generic.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_misc.c ircd/s_user.c Removed files: include/ircd_auth.h ircd/ircd_auth.c Log message: Author: zo...@ir... Log message: 2007-04-26 Toni Garcïa <zo...@ir...> 1.0.beta5 * Nuevo AUTH * Fix soporte IPv6 para SunOS y FreeBSD ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.53 ircd-ircdev/ChangeLog:1.54 --- ircd-ircdev/ChangeLog:1.53 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/ChangeLog Thu Apr 26 12:17:30 2007 @@ -1,10 +1,14 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.53 2007/04/22 13:56:17 zolty Exp $ +# $Id: ChangeLog,v 1.54 2007/04/26 19:17:30 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-04-26 Toni Garcïa <zo...@ir...> 1.0.beta5 + * New AUTH + * Fix IPv6 support for SunOS and FreeBSD + 2007-04-22 Toni Garcïa <zo...@ir...> 1.0.beta4 * New Configure and Makefiles * New Yacc y Lex parser Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.53 ircd-ircdev/ChangeLog.es:1.54 --- ircd-ircdev/ChangeLog.es:1.53 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/ChangeLog.es Thu Apr 26 12:17:30 2007 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.53 2007/04/22 13:56:17 zolty Exp $ +# $Id: ChangeLog.es,v 1.54 2007/04/26 19:17:30 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta5 + * Nuevo AUTH + * Fix soporte IPv6 para SunOS y FreeBSD + 2007-04-22 Toni Garc�a <zo...@ir...> 1.0.beta4 * Nuevo Configure y Makefiles * Nuevo Yacc y Lex parser Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.21 ircd-ircdev/configure:1.22 --- ircd-ircdev/configure:1.21 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/configure Thu Apr 26 12:17:30 2007 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 1.3 . +# From configure.ac Revision: 1.1 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for IRC-Dev IRC Daemon 1.0.beta. # Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.19 ircd-ircdev/include/client.h:1.20 --- ircd-ircdev/include/client.h:1.19 Sun Apr 22 06:56:19 2007 +++ ircd-ircdev/include/client.h Thu Apr 26 12:17:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.19 2007/04/22 13:56:19 zolty Exp $ + * @version $Id: client.h,v 1.20 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -143,7 +143,6 @@ FLAG_BURST, /**< Server is receiving a net.burst */ FLAG_BURST_ACK, /**< Server is waiting for eob ack */ FLAG_IPCHECK, /**< Added or updated IPregistry data */ - FLAG_IAUTHED, /**< Got IAUTH response for user */ FLAG_LOCOP, /**< Local operator -- SRB */ FLAG_SERVNOTICE, /**< server notices such as kill */ FLAG_OPER, /**< Operator */ @@ -191,7 +190,6 @@ time_t con_nexttarget;/**< Next time a target change is allowed */ time_t con_lasttime; /**< Last time data read from socket */ time_t con_since; /**< Last time we accepted a command */ - unsigned int con_cookie; /**< Random number the user must PONG */ struct MsgQ con_sendQ; /**< Outgoing message queue */ struct DBuf con_recvQ; /**< Incoming data yet to be parsed */ unsigned int con_sendM; /**< Stats: protocol messages sent */ @@ -204,7 +202,6 @@ HandlerType con_handler; /**< Message index into command table for parsing. */ struct ListingArgs* con_listing; /**< Current LIST status. */ - unsigned long con_unreg; /**< Indicate what still needs to be done */ unsigned int con_max_sendq; /**< cached max send queue for client */ unsigned int con_ping_freq; /**< cached ping freq */ unsigned short con_lastsq; /**< # 2k blocks when sendqueued @@ -226,8 +223,7 @@ struct Privs con_privs; /**< Oper privileges */ struct CapSet con_capab; /**< Client capabilities (from us) */ struct CapSet con_active; /**< Active capabilities (to us) */ - struct AuthRequest* con_auth; /**< auth request for client */ - struct IAuthRequest* con_iauth; /**< iauth request for client */ + struct AuthRequest* con_auth; /**< Auth request for client */ }; /** Magic constant to identify valid Connection structures. */ @@ -257,13 +253,6 @@ char cli_info[REALLEN + 1]; /**< Free form additional client information */ }; -#define CLIREG_NICK 0x0001 /**< Client must set nickname */ -#define CLIREG_USER 0x0002 /**< Client must set username */ -#define CLIREG_COOKIE 0x0004 /**< Client must return cookie */ -#define CLIREG_CAP 0x0008 /**< Client in capability negotiation */ - -#define CLIREG_INIT (CLIREG_NICK | CLIREG_USER | CLIREG_COOKIE) - /** Magic constant to identify valid Client structures. */ #define CLIENT_MAGIC 0x4ca08286 @@ -317,8 +306,6 @@ #define cli_capab(cli) con_capab(cli_connect(cli)) /** Get active client capabilities for client */ #define cli_active(cli) con_active(cli_connect(cli)) -/** Get flags for remaining registration tasks */ -#define cli_unreg(cli) con_unreg(cli_connect(cli)) /** Get client name. */ #define cli_name(cli) ((cli)->cli_name) /** Get client username (ident). */ @@ -340,8 +327,6 @@ #define cli_nextnick(cli) con_nextnick(cli_connect(cli)) /** Get next time a target change is allowed for the client. */ #define cli_nexttarget(cli) con_nexttarget(cli_connect(cli)) -/** Get required PING/PONG cookie for client. */ -#define cli_cookie(cli) con_cookie(cli_connect(cli)) /** Get SendQ for client. */ #define cli_sendQ(cli) con_sendQ(cli_connect(cli)) /** Get RecvQ for client. */ @@ -384,8 +369,6 @@ #define cli_proc(cli) con_proc(cli_connect(cli)) /** Get auth request for client. */ #define cli_auth(cli) con_auth(cli_connect(cli)) -/** Get iauth request for client. */ -#define cli_iauth(cli) con_iauth(cli_connect(cli)) /** Get sentalong marker for client. */ #define cli_sentalong(cli) con_sentalong(cli_connect(cli)) @@ -419,8 +402,6 @@ #define con_lasttime(con) ((con)->con_lasttime) /** Get last time we accepted a command from the connection. */ #define con_since(con) ((con)->con_since) -/** Get PING/PONG confirmation cookie for connection. */ -#define con_cookie(con) ((con)->con_cookie) /** Get SendQ for connection. */ #define con_sendQ(con) ((con)->con_sendQ) /** Get RecvQ for connection. */ @@ -441,8 +422,6 @@ #define con_handler(con) ((con)->con_handler) /** Get the LIST status for the connection. */ #define con_listing(con) ((con)->con_listing) -/** Get remining steps before registration completes. */ -#define con_unreg(con) ((con)->con_unreg) /** Get the maximum permitted SendQ size for the connection. */ #define con_max_sendq(con) ((con)->con_max_sendq) /** Get the ping frequency for the connection. */ @@ -471,8 +450,6 @@ #define con_active(con) (&(con)->con_active) /** Get the auth request for the connection. */ #define con_auth(con) ((con)->con_auth) -/** Get the iauth request for the connection. */ -#define con_iauth(con) ((con)->con_iauth) #define STAT_CONNECTING 0x001 /**< connecting to another server */ #define STAT_HANDSHAKE 0x002 /**< pass - server sent */ @@ -567,8 +544,6 @@ #define IsDeaf(x) HasFlag(x, FLAG_DEAF) /** Return non-zero if the client has been IP-checked for clones. */ #define IsIPChecked(x) HasFlag(x, FLAG_IPCHECK) -/** Return non-zero if the client has been okayed by iauth. */ -#define IsIAuthed(x) HasFlag(x, FLAG_IAUTHED) /** Return non-zero if we have received an ident response for the client. */ #define IsIdented(x) HasFlag(x, FLAG_GOTID) /** Return non-zero if the client has set mode +i (invisible). */ @@ -633,8 +608,6 @@ #define SetGotId(x) SetFlag(x, FLAG_GOTID) /** Mark a client as being IP-checked. */ #define SetIPChecked(x) SetFlag(x, FLAG_IPCHECK) -/** Mark a client as being iauth-checked. */ -#define SetIAuthed(x) SetFlag(x, FLAG_IAUTHED) /** Mark a client as having mode +i (invisible). */ #define SetInvisible(x) SetFlag(x, FLAG_INVISIBLE) /** Mark a client as causing a net.join. */ @@ -737,12 +710,13 @@ #define SNO_CONNEXIT 0x4000 /**< client connect/exit (ugh) */ #define SNO_AUTO 0x8000 /**< AUTO G-Lines */ #define SNO_DEBUG 0x10000 /**< debugging messages (DEBUGMODE only) */ +#define SNO_AUTH 0x20000 /**< IAuth notices */ +/** Bitmask of all valid server notice bits. */ #ifdef DEBUGMODE -# define SNO_ALL 0x1ffff /**< Bitmask of all valid server - * notice bits. */ +# define SNO_ALL 0x3ffff #else -# define SNO_ALL 0xffff +# define SNO_ALL 0x2ffff #endif /** Server notice bits allowed to normal users. */ @@ -753,7 +727,7 @@ /** Server notice bits enabled by default for IRC operators. */ #define SNO_OPERDEFAULT (SNO_DEFAULT|SNO_HACK2|SNO_HACK4|SNO_THROTTLE|SNO_OLDSNO) /** Server notice bits reserved to IRC operators. */ -#define SNO_OPER (SNO_CONNEXIT|SNO_OLDREALOP) +#define SNO_OPER (SNO_CONNEXIT|SNO_OLDREALOP|SNO_AUTH) /** Noisy server notice bits that cause other bits to be cleared during connect. */ #define SNO_NOISY (SNO_SERVKILL|SNO_UNAUTH) Index: ircd-ircdev/include/ircd_auth.h diff -u ircd-ircdev/include/ircd_auth.h:1.3 ircd-ircdev/include/ircd_auth.h:removed --- ircd-ircdev/include/ircd_auth.h:1.3 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_auth.h Thu Apr 26 12:17:42 2007 @@ -1,44 +0,0 @@ -/* - * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_auth.h - * - * Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> - * Copyright (C) 2004 Michael Poole <md...@tr...> - * Copyright (C) 2001 Perry Lorier <is...@co...> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ -/** @file - * @brief Interface to IAuth client implementation. - * @version $Id: ircd_auth.h,v 1.3 2007/04/19 22:53:46 zolty Exp $ - */ -#ifndef INCLUDED_ircd_auth_h -#define INCLUDED_ircd_auth_h - -#ifndef INCLUDED_config_h -#include "config.h" -#endif - -struct IAuth; -extern struct IAuth *iauth_active; - -struct IAuth *iauth_connect(char *host, unsigned short port, char *passwd, time_t reconnect, time_t timeout); -int iauth_start_client(struct IAuth *iauth, struct Client *cptr); -void iauth_exit_client(struct Client *cptr); - -void iauth_mark_closing(void); -void iauth_close_unused(void); - -#endif /* INCLUDED_ircd_auth_h */ Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.17 ircd-ircdev/include/ircd_features.h:1.18 --- ircd-ircdev/include/ircd_features.h:1.17 Sat Apr 21 09:20:18 2007 +++ ircd-ircdev/include/ircd_features.h Thu Apr 26 12:17:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.17 2007/04/21 16:20:18 zolty Exp $ + * @version $Id: ircd_features.h,v 1.18 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -51,6 +51,7 @@ FEAT_HUB, FEAT_WALLOPS_OPER_ONLY, FEAT_NODNS, + FEAT_NOIDENT, FEAT_RANDOM_SEED, FEAT_DEFAULT_LIST_PARAM, FEAT_NICKNAMEHISTORYLENGTH, Index: ircd-ircdev/include/ircd_reslib.h diff -u ircd-ircdev/include/ircd_reslib.h:1.3 ircd-ircdev/include/ircd_reslib.h:1.4 --- ircd-ircdev/include/ircd_reslib.h:1.3 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_reslib.h Thu Apr 26 12:17:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface from ircd resolver to its support functions. - * @version $Id: ircd_reslib.h,v 1.3 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd_reslib.h,v 1.4 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_ircdreslib_h #define INCLUDED_ircdreslib_h @@ -76,17 +76,7 @@ int irc_res_init(void); int irc_dn_expand(const unsigned char *msg, const unsigned char *eom, const unsigned char *src, char *dst, int dstsiz); -int irc_ns_name_uncompress(const unsigned char *msg, const unsigned char *eom, const unsigned char *src, char *dst, size_t dstsiz); -int irc_ns_name_unpack(const unsigned char *msg, const unsigned char *eom, const unsigned char *src, unsigned char *dst, size_t dstsiz); -int irc_ns_name_ntop(const char *src, char *dst, size_t dstsiz); -int irc_dn_comp(const char *src, unsigned char *dst, int dstsiz, unsigned char **dnptrs, unsigned char **lastdnptr); int irc_dn_skipname(const unsigned char *ptr, const unsigned char *eom); -int irc_ns_name_skip(const unsigned char **ptrptr, const unsigned char *eom); -unsigned int irc_ns_get16(const unsigned char *src); -unsigned long irc_ns_get32(const unsigned char *src); -void irc_ns_put16(unsigned int src, unsigned char *dst); -void irc_ns_put32(unsigned long src, unsigned char *dst); -int irc_ns_name_pton(const char *src, unsigned char *dst, size_t dstsiz); -int irc_ns_name_pack(const unsigned char *src, unsigned char *dst, int dstsiz, const unsigned char **dnptrs, const unsigned char **lastdnptr); int irc_res_mkquery(const char *dname, int class, int type, unsigned char *buf, int buflen); +unsigned int irc_ns_get16(const unsigned char *src); #endif /* INCLUDED_res_h */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.52 ircd-ircdev/include/patchlevel.h:1.53 --- ircd-ircdev/include/patchlevel.h:1.52 Sun Apr 22 06:56:19 2007 +++ ircd-ircdev/include/patchlevel.h Thu Apr 26 12:17:31 2007 @@ -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.52 2007/04/22 13:56:19 zolty Exp $ + * $Id: patchlevel.h,v 1.53 2007/04/26 19:17:31 zolty Exp $ * */ -#define PATCHLEVEL "4" +#define PATCHLEVEL "5" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/res.h diff -u ircd-ircdev/include/res.h:1.9 ircd-ircdev/include/res.h:1.10 --- ircd-ircdev/include/res.h:1.9 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/res.h Thu Apr 26 12:17:31 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief IRC resolver API. - * @version $Id: res.h,v 1.9 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: res.h,v 1.10 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_res_h @@ -67,6 +67,7 @@ #define QUERY 0 /**< Forward (normal) DNS query operation. */ #define NO_ERRORS 0 /**< No errors processing a query. */ #define SERVFAIL 2 /**< Server error while processing a query. */ +#define NXDOMAIN 3 /**< Domain name in query does not exist. */ #define T_A 1 /**< Hostname -> IPv4 query type. */ #define T_AAAA 28 /**< Hostname -> IPv6 query type. */ #define T_PTR 12 /**< IP(v4 or v6) -> hostname query type. */ @@ -130,13 +131,24 @@ } HEADER; extern void restart_resolver(void); -extern void add_local_domain(char *hname, size_t size); +extern void clear_nameservers(void); +extern void add_nameserver(const char *ipaddr); extern size_t cres_mem(struct Client* cptr); extern void delete_resolver_queries(const void *vptr); extern void report_dns_servers(struct Client *source_p, const struct StatDesc *sd, char *param); extern void gethost_byname(const char *name, dns_callback_f callback, void *ctx); extern void gethost_byaddr(const struct irc_in_addr *addr, dns_callback_f callback, void *ctx); +/** Evaluate to non-zero if \a ADDR is an unspecified (all zeros) address. */ +#define irc_in_addr_unspec(ADDR) (((ADDR)->in6_16[0] == 0) \ + && ((ADDR)->in6_16[1] == 0) \ + && ((ADDR)->in6_16[2] == 0) \ + && ((ADDR)->in6_16[3] == 0) \ + && ((ADDR)->in6_16[4] == 0) \ + && ((ADDR)->in6_16[6] == 0) \ + && ((ADDR)->in6_16[7] == 0) \ + && ((ADDR)->in6_16[5] == 0 \ + || (ADDR)->in6_16[5] == 65535)) /** Evaluate to non-zero if \a ADDR is a valid address (not all 0s and not all 1s). */ #define irc_in_addr_valid(ADDR) (((ADDR)->in6_16[0] && ~(ADDR)->in6_16[0]) \ || (ADDR)->in6_16[1] != (ADDR)->in6_16[0] \ Index: ircd-ircdev/include/s_auth.h diff -u ircd-ircdev/include/s_auth.h:1.5 ircd-ircdev/include/s_auth.h:1.6 --- ircd-ircdev/include/s_auth.h:1.5 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/s_auth.h Thu Apr 26 12:17:31 2007 @@ -2,6 +2,8 @@ * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/s_auth.h * * Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2004 Michael Poole <md...@tr...> + * Copyright (C) 2001 Perry Lorier <is...@co...> * Copyright (C) 1992 Darren Reed * * This program is free software; you can redistribute it and/or modify @@ -21,7 +23,7 @@ */ /** @file * @brief Interface for DNS and ident lookups. - * @version $Id: s_auth.h,v 1.5 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: s_auth.h,v 1.6 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_s_auth_h #define INCLUDED_s_auth_h @@ -35,50 +37,24 @@ #endif struct Client; - -/** Stores state of the DNS and RFC 1413 ident lookups for a client. */ -struct AuthRequest { - struct AuthRequest* next; /**< linked list node ptr */ - struct AuthRequest* prev; /**< linked list node ptr */ - struct Client* client; /**< pointer to client struct for request */ - unsigned int flags; /**< current state of request */ - int fd; /**< file descriptor for auth queries */ - struct Socket socket; /**< socket descriptor for auth queries */ - struct Timer timeout; /**< timeout timer for auth queries */ -}; - -/* - * flag values for AuthRequest - * NAMESPACE: AM_xxx - Authentication Module - */ -#define AM_AUTH_CONNECTING 0x01 /**< waiting for ident connect to complete */ -#define AM_AUTH_PENDING 0x02 /**< ident connected, waiting for response */ -#define AM_DNS_PENDING 0x04 /**< dns request sent, waiting for response */ - -#define AM_SOCKET 0x40 /**< socket structure not destroyed */ -#define AM_TIMEOUT 0x80 /**< timer structure not destroyed */ - -/** If any of AM_FREE_MASK bits are set, operations are still in progress. */ -#define AM_FREE_MASK (AM_SOCKET | AM_TIMEOUT) - -#define SetDNSPending(x) ((x)->flags |= AM_DNS_PENDING) -#define ClearDNSPending(x) ((x)->flags &= ~AM_DNS_PENDING) -#define IsDNSPending(x) ((x)->flags & AM_DNS_PENDING) - -#define SetAuthConnect(x) ((x)->flags |= AM_AUTH_CONNECTING) -#define ClearAuthConnect(x) ((x)->flags &= ~AM_AUTH_CONNECTING) -#define IsAuthConnect(x) ((x)->flags & AM_AUTH_CONNECTING) - -#define SetAuthPending(x) ((x)->flags |= AM_AUTH_PENDING) -#define ClearAuthPending(x) ((x)->flags &= AM_AUTH_PENDING) -#define IsAuthPending(x) ((x)->flags & AM_AUTH_PENDING) - -#define ClearAuth(x) ((x)->flags &= ~(AM_AUTH_PENDING | AM_AUTH_CONNECTING)) -#define IsDoingAuth(x) ((x)->flags & (AM_AUTH_PENDING | AM_AUTH_CONNECTING)) +struct AuthRequest; +struct StatDesc; extern void start_auth(struct Client *); -extern void read_auth_reply(struct AuthRequest* req); -extern void send_auth_query(struct AuthRequest* req); -extern void destroy_auth_request(struct AuthRequest *req, int send_reports); +extern int auth_ping_timeout(struct Client *); +extern int auth_set_pong(struct AuthRequest *auth, unsigned int cookie); +extern int auth_set_user(struct AuthRequest *auth, const char *username, const char *hostname, const char *servername, const char *userinfo); +extern int auth_set_nick(struct AuthRequest *auth, const char *nickname); +extern int auth_set_password(struct AuthRequest *auth, const char *password); +extern int auth_cap_start(struct AuthRequest *auth); +extern int auth_cap_done(struct AuthRequest *auth); +extern void destroy_auth_request(struct AuthRequest *req); + +extern int auth_spawn(int argc, char *argv[]); +extern void auth_send_exit(struct Client *cptr); +extern void auth_mark_closing(void); +extern void auth_close_unused(void); +extern void report_iauth_conf(struct Client *cptr, const struct StatDesc *sd, char *param); +extern void report_iauth_stats(struct Client *cptr, const struct StatDesc *sd, char *param); #endif /* INCLUDED_s_auth_h */ Index: ircd-ircdev/include/s_user.h diff -u ircd-ircdev/include/s_user.h:1.11 ircd-ircdev/include/s_user.h:1.12 --- ircd-ircdev/include/s_user.h:1.11 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/s_user.h Thu Apr 26 12:17:31 2007 @@ -21,7 +21,7 @@ */ /** @file s_user.h * @brief Miscellaneous user-related helper functions. - * @version $Id: s_user.h,v 1.11 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: s_user.h,v 1.12 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_s_user_h #define INCLUDED_s_user_h @@ -72,8 +72,6 @@ #define MATCH_SERVER 1 /**< flag for relay_masked_message (etc) to indicate the mask matches a server name */ #define MATCH_HOST 2 /**< flag for relay_masked_message (etc) to indicate the mask matches host name */ -#define COOKIE_VERIFIED 0xffffffff /**< value for cli_cookie() to show completion */ - /* used in set_nick_name */ #define NICK_EQUIVALENT 0x01 /** < Equivalent */ #define NICK_RENAMED 0x02 /** < Rename */ @@ -105,8 +103,7 @@ */ extern struct User* make_user(struct Client *cptr); extern void free_user(struct User *user); -extern int register_user(struct Client* cptr, struct Client* sptr, - const char* nick, char* username); +extern int register_user(struct Client* cptr, struct Client *sptr); extern void user_count_memory(size_t* count_out, size_t* bytes_out); Index: ircd-ircdev/ircd/ircd_auth.c diff -u ircd-ircdev/ircd/ircd_auth.c:1.11 ircd-ircdev/ircd/ircd_auth.c:removed --- ircd-ircdev/ircd/ircd_auth.c:1.11 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ircd/ircd_auth.c Thu Apr 26 12:17:42 2007 @@ -1,843 +0,0 @@ -/* - * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_iauth.c - * - * Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> - * Copyright (C) 2004 Michael Poole <md...@tr...> - * Copyright (C) 2001 Perry Lorier <is...@co...> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ -/** @file - * @brief IAuth client implementation for an IRC server. - * @version $Id: ircd_auth.c,v 1.11 2007/04/21 21:17:22 zolty Exp $ - */ -#include "config.h" -#include "client.h" -#include "ircd_alloc.h" -#include "ircd_auth.h" -#include "ircd_events.h" -#include "ircd_features.h" -#include "ircd_log.h" -#include "ircd_osdep.h" -#include "ircd_snprintf.h" -#include "ircd_string.h" -#include "ircd.h" -#include "msg.h" -#include "msgq.h" -#include "res.h" -#include "s_bsd.h" -#include "s_debug.h" -#include "s_misc.h" -#include "s_user.h" -#include "send.h" - -/* #include <assert.h> -- Now using assert in ircd_log.h */ -#include <errno.h> -#include <netdb.h> -#include <string.h> -#include <unistd.h> -#include <sys/socket.h> -#include <netinet/in.h> -#ifdef HAVE_STDINT_H -#include <stdint.h> -#endif - -/** Describes state of a single pending IAuth request. */ -struct IAuthRequest { - struct IAuthRequest *iar_prev; /**< previous request struct */ - struct IAuthRequest *iar_next; /**< next request struct */ - struct Client *iar_client; /**< client being authenticated */ - char iar_timed; /**< if non-zero, using parent i_request_timer */ -}; - -/** Enumeration of IAuth connection flags. */ -enum IAuthFlag -{ - IAUTH_BLOCKED, /**< socket buffer full */ - IAUTH_CONNECTED, /**< server greeting/handshake done */ - IAUTH_ABORT, /**< abort connection asap */ - IAUTH_ICLASS, /**< tell iauth about all local users */ - IAUTH_CLOSING, /**< candidate to be disposed */ - IAUTH_LAST_FLAG /**< total number of flags */ -}; -/** Declare a bitset structure indexed by IAuthFlag. */ -DECLARE_FLAGSET(IAuthFlags, IAUTH_LAST_FLAG); - -/** Describes state of an IAuth connection. */ -struct IAuth { - struct IAuthRequest i_list_head; /**< doubly linked list of requests */ - struct MsgQ i_sendQ; /**< messages queued to send */ - struct Socket i_socket; /**< connection to server */ - struct Timer i_reconn_timer; /**< when to reconnect the connection */ - struct Timer i_request_timer; /**< when the current request times out */ - struct IAuthFlags i_flags; /**< connection state/status/flags */ - unsigned int i_recvM; /**< messages received */ - unsigned int i_sendM; /**< messages sent */ - unsigned int i_recvK; /**< kilobytes received */ - unsigned int i_sendK; /**< kilobytes sent */ - unsigned short i_recvB; /**< bytes received modulo 1024 */ - unsigned short i_sendB; /**< bytes sent modulo 1024 */ - time_t i_reconnect; /**< seconds to wait before reconnecting */ - time_t i_timeout; /**< seconds to wait for a request */ - unsigned int i_count; /**< characters used in i_buffer */ - char i_buffer[BUFSIZE+1]; /**< partial unprocessed line from server */ - char i_passwd[PASSWDLEN+1]; /**< password for connection */ - char i_host[HOSTLEN+1]; /**< iauth server hostname */ - struct irc_sockaddr i_addr; /**< iauth server ip address and port */ - struct IAuth *i_next; /**< next connection in list */ -}; - -/** Return flags element of \a iauth. */ -#define i_flags(iauth) ((iauth)->i_flags) -/** Return whether flag \a flag is set on \a iauth. */ -#define IAuthGet(iauth, flag) FlagHas(&i_flags(iauth), flag) -/** Set flag \a flag on \a iauth. */ -#define IAuthSet(iauth, flag) FlagSet(&i_flags(iauth), flag) -/** Clear flag \a flag from \a iauth. */ -#define IAuthClr(iauth, flag) FlagClr(&i_flags(iauth), flag) -/** Get blocked state for \a iauth. */ -#define i_GetBlocked(iauth) IAuthGet(iauth, IAUTH_BLOCKED) -/** Set blocked state for \a iauth. */ -#define i_SetBlocked(iauth) IAuthSet(iauth, IAUTH_BLOCKED) -/** Clear blocked state for \a iauth. */ -#define i_ClrBlocked(iauth) IAuthClr(iauth, IAUTH_BLOCKED) -/** Get connected flag for \a iauth. */ -#define i_GetConnected(iauth) IAuthGet(iauth, IAUTH_CONNECTED) -/** Set connected flag for \a iauth. */ -#define i_SetConnected(iauth) IAuthSet(iauth, IAUTH_CONNECTED) -/** Clear connected flag for \a iauth. */ -#define i_ClrConnected(iauth) IAuthClr(iauth, IAUTH_CONNECTED) -/** Get abort flag for \a iauth. */ -#define i_GetAbort(iauth) IAuthGet(iauth, IAUTH_ABORT) -/** Set abort flag for \a iauth. */ -#define i_SetAbort(iauth) IAuthSet(iauth, IAUTH_ABORT) -/** Clear abort flag for \a iauth. */ -#define i_ClrAbort(iauth) IAuthClr(iauth, IAUTH_ABORT) -/** Get IClass flag for \a iauth. */ -#define i_GetIClass(iauth) IAuthGet(iauth, IAUTH_ICLASS) -/** Set IClass flag for \a iauth. */ -#define i_SetIClass(iauth) IAuthSet(iauth, IAUTH_ICLASS) -/** Clear IClass flag for \a iauth. */ -#define i_ClrIClass(iauth) IAuthClr(iauth, IAUTH_ICLASS) -/** Get closing flag for \a iauth. */ -#define i_GetClosing(iauth) IAuthGet(iauth, IAUTH_CLOSING) -/** Set closing flag for \a iauth. */ -#define i_SetClosing(iauth) IAuthSet(iauth, IAUTH_CLOSING) -/** Clear closing flag for \a iauth. */ -#define i_ClrClosing(iauth) IAuthClr(iauth, IAUTH_CLOSING) - -/** Return head of request linked list for \a iauth. */ -#define i_list_head(iauth) ((iauth)->i_list_head) -/** Return socket event generator for \a iauth. */ -#define i_socket(iauth) ((iauth)->i_socket) -/** Return reconn... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-04-26 21:17:26
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-26 21:17:22 UTC Modified files: ChangeLog ChangeLog.es config.h.in include/ircd_features.h include/ircd_signal.h include/motd.h include/patchlevel.h include/s_bsd.h include/struct.h ircd/convert-conf.c ircd/ircd.c ircd/ircd_events.c ircd/ircd_features.c ircd/ircd_log.c ircd/ircd_signal.c ircd/ircd_string.c ircd/m_list.c ircd/m_names.c ircd/m_pass.c ircd/m_ping.c ircd/m_pong.c ircd/m_stats.c ircd/m_whois.c ircd/m_whowas.c ircd/match.c ircd/motd.c ircd/s_bsd.c ircd/s_err.c ircd/s_stats.c Log message: Author: zo...@ir... Log message: 2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 * Aliases para /STATS * PING-PONG con alta prioridad * Soporte para senial SIGCHLD ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.54 ircd-ircdev/ChangeLog:1.55 --- ircd-ircdev/ChangeLog:1.54 Thu Apr 26 12:17:30 2007 +++ ircd-ircdev/ChangeLog Thu Apr 26 14:17:11 2007 @@ -1,10 +1,15 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.54 2007/04/26 19:17:30 zolty Exp $ +# $Id: ChangeLog,v 1.55 2007/04/26 21:17:11 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 + * Aliases for /STATS + * PING-PONG with high priority + * Signal SIGCHLD support + 2007-04-26 Toni Garcïa <zo...@ir...> 1.0.beta5 * New AUTH * Fix IPv6 support for SunOS and FreeBSD Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.54 ircd-ircdev/ChangeLog.es:1.55 --- ircd-ircdev/ChangeLog.es:1.54 Thu Apr 26 12:17:30 2007 +++ ircd-ircdev/ChangeLog.es Thu Apr 26 14:17:11 2007 @@ -1,10 +1,15 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.54 2007/04/26 19:17:30 zolty Exp $ +# $Id: ChangeLog.es,v 1.55 2007/04/26 21:17:11 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 + * Aliases para /STATS + * PING-PONG con alta prioridad + * Soporte para senial SIGCHLD + 2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta5 * Nuevo AUTH * Fix soporte IPv6 para SunOS y FreeBSD Index: ircd-ircdev/config.h.in diff -u ircd-ircdev/config.h.in:1.10 ircd-ircdev/config.h.in:1.11 --- ircd-ircdev/config.h.in:1.10 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/config.h.in Thu Apr 26 14:17:11 2007 @@ -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: config.h.in,v 1.10 2007/04/22 13:56:17 zolty Exp $ + * $Id: config.h.in,v 1.11 2007/04/26 21:17:11 zolty Exp $ * */ #ifndef INCLUDED_config_h Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.18 ircd-ircdev/include/ircd_features.h:1.19 --- ircd-ircdev/include/ircd_features.h:1.18 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/include/ircd_features.h Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.18 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: ircd_features.h,v 1.19 2007/04/26 21:17:11 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -116,41 +116,70 @@ FEAT_HIS_LINKS, FEAT_HIS_TRACE, FEAT_HIS_STATS_a, + FEAT_HIS_STATS_NAMESERVERS, #if defined(DDB) FEAT_HIS_STATS_b, + FEAT_HIS_STATS_DDB, #endif FEAT_HIS_STATS_c, + FEAT_HIS_STATS_CONNECT, FEAT_HIS_STATS_d, + FEAT_HIS_STATS_CRULES, FEAT_HIS_STATS_e, + FEAT_HIS_STATS_ENGINE, FEAT_HIS_STATS_f, + FEAT_HIS_STATS_FEATURES, FEAT_HIS_STATS_g, + FEAT_HIS_STATS_GLINES, FEAT_HIS_STATS_i, + FEAT_HIS_STATS_ACCESS, FEAT_HIS_STATS_j, + FEAT_HIS_STATS_HISTOGRAM, FEAT_HIS_STATS_J, + FEAT_HIS_STATS_JUPES, FEAT_HIS_STATS_k, + FEAT_HIS_STATS_KLINES, FEAT_HIS_STATS_l, + FEAT_HIS_STATS_LINKS, FEAT_HIS_STATS_L, + FEAT_HIS_STATS_MODULES, FEAT_HIS_STATS_m, - FEAT_HIS_STATS_M, + FEAT_HIS_STATS_COMMANDS, FEAT_HIS_STATS_o, + FEAT_HIS_STATS_OPERATORS, FEAT_HIS_STATS_p, + FEAT_HIS_STATS_PORTS, FEAT_HIS_STATS_q, - FEAT_HIS_STATS_r, + FEAT_HIS_STATS_QUARANTINES, FEAT_HIS_STATS_R, + FEAT_HIS_STATS_MAPPINGS, + FEAT_HIS_STATS_r, + FEAT_HIS_STATS_USAGE, FEAT_HIS_STATS_t, + FEAT_HIS_STATS_LOCALS, FEAT_HIS_STATS_T, + FEAT_HIS_STATS_MOTDS, FEAT_HIS_STATS_u, + FEAT_HIS_STATS_UPTIME, FEAT_HIS_STATS_U, + FEAT_HIS_STATS_UWORLD, FEAT_HIS_STATS_v, + FEAT_HIS_STATS_VSERVERS, FEAT_HIS_STATS_w, + FEAT_HIS_STATS_USERLOAD, FEAT_HIS_STATS_x, + FEAT_HIS_STATS_MEMUSAGE, FEAT_HIS_STATS_y, + FEAT_HIS_STATS_CLASSES, FEAT_HIS_STATS_z, + FEAT_HIS_STATS_MEMORY, + FEAT_HIS_STATS_IAUTH, FEAT_HIS_WHOIS_SERVERNAME, FEAT_HIS_WHOIS_IDLETIME, FEAT_HIS_WHOIS_LOCALCHAN, FEAT_HIS_WHO_SERVERNAME, FEAT_HIS_WHO_HOPCOUNT, + FEAT_HIS_MODEWHO, FEAT_HIS_BANWHO, FEAT_HIS_KILLWHO, FEAT_HIS_REWRITE, Index: ircd-ircdev/include/ircd_signal.h diff -u ircd-ircdev/include/ircd_signal.h:1.5 ircd-ircdev/include/ircd_signal.h:1.6 --- ircd-ircdev/include/ircd_signal.h:1.5 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_signal.h Thu Apr 26 14:17:11 2007 @@ -21,12 +21,17 @@ */ /** @file ircd_signal.h * @brief Interface to signal handler subsystem. - * @version $Id: ircd_signal.h,v 1.5 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd_signal.h,v 1.6 2007/04/26 21:17:11 zolty Exp $ */ #ifndef INCLUDED_ircd_signal_h #define INCLUDED_ircd_signal_h +typedef void (*SigChldCallBack)(pid_t child_pid, void *datum, int status); + extern void setup_signals(void); +extern void register_child(pid_t child, SigChldCallBack call, void *datum); +extern void unregister_child(pid_t child); +extern void reap_children(void); #endif /* INCLUDED_ircd_signal_h */ Index: ircd-ircdev/include/motd.h diff -u ircd-ircdev/include/motd.h:1.6 ircd-ircdev/include/motd.h:1.7 --- ircd-ircdev/include/motd.h:1.6 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/motd.h Thu Apr 26 14:17:11 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Message-of-the-day manipulation interface and declarations. - * @version $Id: motd.h,v 1.6 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: motd.h,v 1.7 2007/04/26 21:17:11 zolty Exp $ */ #ifndef INCLUDED_motd_h #define INCLUDED_motd_h @@ -93,10 +93,11 @@ /* motd_recache causes all the MOTD caches to be cleared */ void motd_recache(void); -/* motd_init initializes the MOTD routines, including reading the +/* motd_init_* initialize the MOTDs, including reading the * ircd.motd and remote.motd files into cache */ -void motd_init(void); +void motd_init_local(void); +void motd_init_remote(void); /* This routine adds a MOTD */ void motd_add(const char *hostmask, const char *path); Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.53 ircd-ircdev/include/patchlevel.h:1.54 --- ircd-ircdev/include/patchlevel.h:1.53 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/include/patchlevel.h Thu Apr 26 14:17:11 2007 @@ -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.53 2007/04/26 19:17:31 zolty Exp $ + * $Id: patchlevel.h,v 1.54 2007/04/26 21:17:11 zolty Exp $ * */ -#define PATCHLEVEL "5" +#define PATCHLEVEL "6" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/s_bsd.h diff -u ircd-ircdev/include/s_bsd.h:1.10 ircd-ircdev/include/s_bsd.h:1.11 --- ircd-ircdev/include/s_bsd.h:1.10 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/include/s_bsd.h Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file s_bsd.h * @brief Wrapper functions to avoid direct use of BSD APIs. - * @version $Id: s_bsd.h,v 1.10 2007/04/22 13:56:20 zolty Exp $ + * @version $Id: s_bsd.h,v 1.11 2007/04/26 21:17:11 zolty Exp $ */ #ifndef INCLUDED_s_bsd_h #define INCLUDED_s_bsd_h @@ -62,14 +62,8 @@ extern const char* const REUSEADDR_ERROR_MSG; extern const char* const SOCKET_ERROR_MSG; extern const char* const CONNLIMIT_ERROR_MSG; -extern const char* const ACCEPT_ERROR_MSG; -extern const char* const PEERNAME_ERROR_MSG; -extern const char* const POLL_ERROR_MSG; -extern const char* const SELECT_ERROR_MSG; -extern const char* const CONNECT_ERROR_MSG; extern const char* const SETBUFS_ERROR_MSG; extern const char* const TOS_ERROR_MSG; -extern const char* const REGISTER_ERROR_MSG; extern int HighestFd; extern struct Client** LocalClientArray; Index: ircd-ircdev/include/struct.h diff -u ircd-ircdev/include/struct.h:1.12 ircd-ircdev/include/struct.h:1.13 --- ircd-ircdev/include/struct.h:1.12 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/include/struct.h Thu Apr 26 14:17:11 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Structure definitions for users and servers. - * @version $Id: struct.h,v 1.12 2007/04/22 13:56:20 zolty Exp $ + * @version $Id: struct.h,v 1.13 2007/04/26 21:17:11 zolty Exp $ */ #ifndef INCLUDED_struct_h #define INCLUDED_struct_h @@ -62,6 +62,7 @@ int asll_rtt; /**< AsLL round-trip time */ int asll_to; /**< AsLL upstream lag */ int asll_from; /**< AsLL downstream lag */ + time_t asll_last; /**< Last time we sent or received an AsLL ping */ #if defined(DDB) unsigned long ddb_open; /**< DDB database open */ Index: ircd-ircdev/ircd/convert-conf.c diff -u ircd-ircdev/ircd/convert-conf.c:1.2 ircd-ircdev/ircd/convert-conf.c:1.3 --- ircd-ircdev/ircd/convert-conf.c:1.2 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/convert-conf.c Thu Apr 26 14:17:11 2007 @@ -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: convert-conf.c,v 1.2 2007/04/19 22:53:47 zolty Exp $ + * $Id: convert-conf.c,v 1.3 2007/04/26 21:17:11 zolty Exp $ * convert-conf.c - Convert ircu2.10.11 ircd.conf to ircu2.10.12 format. * */ @@ -30,13 +30,12 @@ #define MAX_FIELDS 5 -const char *admin_names[] = { "location", "contact", "contact", 0 }, - *connect_names[] = { "host", "password", "name", "#port", "class", 0 }, +static const char *admin_names[] = { "location", "contact", "contact", 0 }, *crule_names[] = { "server", "", "rule", 0 }, *general_names[] = { "name", "vhost", "description", "", "#numeric", 0 }, *motd_names[] = { "host", "file", 0 }, *class_names[] = { "name", "#pingfreq", "#connectfreq", "#maxlinks", "#sendq", 0 }, - *removed_features[] = { "VIRTUAL_HOST", "OPERS_SEE_IN_SECRET_CHANNELS", "LOCOP_SEE_IN_SECRET_CHANNELS", 0 }; + *removed_features[] = { "VIRTUAL_HOST", "TIMESEC", "OPERS_SEE_IN_SECRET_CHANNELS", "LOCOP_SEE_IN_SECRET_CHANNELS", "HIS_STATS_h", "HIS_DESYNCS", "AUTOHIDE", 0 }; static char orig_line[512], line[512], dbuf[512]; static char *fields[MAX_FIELDS + 1]; static unsigned int nfields; @@ -106,7 +105,7 @@ fputs("};\n", stdout); } -#define dupstring(TARGET, SOURCE) do { free(TARGET); if (SOURCE) { size_t len = strlen(SOURCE); (TARGET) = malloc(len+1); memcpy((TARGET), (SOURCE), len); } else (TARGET) = 0; } while(0) +#define dupstring(TARGET, SOURCE) do { free(TARGET); if (SOURCE) { size_t len = strlen(SOURCE) + 1; (TARGET) = malloc(len); memcpy((TARGET), (SOURCE), len); } else (TARGET) = 0; } while(0) /*** MANAGING LISTS OF STRINGS ***/ @@ -165,7 +164,7 @@ nlen = strlen(name); for (conn = connects; conn; conn = conn->next) { - for (ii = 0; tolower(name[ii]) == conn->name[ii] && ii < nlen; ++ii) ; + for (ii = 0; tolower(name[ii]) == tolower(conn->name[ii]) && ii < nlen; ++ii) ; if (conn->name[ii] == '\0' && name[ii] == '\0') break; } @@ -175,7 +174,7 @@ { conn = calloc(1, sizeof(*conn) + nlen); for (ii = 0; ii < nlen; ++ii) - conn->name[ii] = tolower(name[ii]); + conn->name[ii] = name[ii]; conn->next = connects; connects = conn; } @@ -219,6 +218,13 @@ { for (sl = conn->origins; sl; sl = sl->next) fprintf(stdout, "# %s\n", sl->value); + if (conn->host == NULL + || conn->password == NULL + || conn->class == NULL) { + fprintf(stderr,"H:line missing C:line for %s\n", conn->name); + continue; + } + fprintf(stdout, "Connect {\n\tname =\"%s\";\n\thost = \"%s\";\n" "\tpassword = \"%s\";\n\tclass = \"%s\";\n", @@ -308,7 +314,7 @@ ii = strlen(fields[0]); feat = calloc(1, sizeof(*feat) + ii); while (ii-- > 0) - feat->name[ii] = toupper(fields[0][ii]); + feat->name[ii] = fields[0][ii]; feat->next = features; features = feat; string_get(&feat->origins, orig_line); @@ -323,9 +329,15 @@ struct feature *feat; size_t ii; - fputs("Features {\n\t\"OPLEVELS\" = \"FALSE\";\n", stdout); + fputs("Features {\n", stdout); + fputs("\t\"OPLEVELS\" = \"FALSE\";\n", stdout); + fputs("\t\"ZANNELS\" = \"FALSE\";\n", stdout); for (feat = features; feat; feat = feat->next) { + /* Display the original feature line we are talking about. */ + for (sl = feat->origins; sl; sl = sl->next) + fprintf(stdout, "# %s\n", sl->value); + /* See if the feature was remapped to an oper privilege. */ for (rmf = remapped_features; rmf->name; rmf++) if (0 == strcmp(feat->name, rmf->name)) @@ -345,6 +357,14 @@ continue; } + /* If it had no value before, drop it now since the lexer does + * not accept empty strings and the grammar does not accept + * empty stringlists.*/ + if (!feat->values) { + fprintf(stdout, "# Above feature had no value.\n"); + continue; + } + /* Wasn't remapped, wasn't removed: print it out. */ fprintf(stdout, "\t\"%s\" =", feat->name); for (sl = feat->values; sl; sl = sl->next) @@ -421,7 +441,7 @@ } for (ii = 0; (remap = &remapped_features[ii++])->name; ) { if (!remap->feature || !remap->privilege - || !remap->feature->values || !remap->flags & mask) + || !remap->feature->values || !(remap->flags & mask)) continue; fprintf(stdout, "\t%s = %s;\n", remap->privilege, strcmp(remap->feature->values->value, "TRUE") ? "no" : "yes"); @@ -601,9 +621,10 @@ fputs(line, stdout); continue; } - /* Strip EOL character(s) and pass blank lines through. */ - while (len > 0 && (line[len-1] == '\n' || line[len-1] == '\r')) + /* Strip trailing whitespace. */ + while (len > 0 && isspace(line[len-1])) line[--len] = '\0'; + /* Pass blank lines through. */ if (len == 0) { fputc('\n', stdout); continue; Index: ircd-ircdev/ircd/ircd.c diff -u ircd-ircdev/ircd/ircd.c:1.27 ircd-ircdev/ircd/ircd.c:1.28 --- ircd-ircdev/ircd/ircd.c:1.27 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ircd/ircd.c Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Entry point and other initialization functions for the daemon. - * @version $Id: ircd.c,v 1.27 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: ircd.c,v 1.28 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -44,7 +44,6 @@ #include "jupe.h" #include "list.h" #include "match.h" -#include "motd.h" #include "msg.h" #include "numeric.h" #include "numnicks.h" @@ -107,8 +106,6 @@ struct Client *GlobalClientList = &me; /**< Pointer to beginning of Client list */ time_t TSoffset = 0; /**< Offset of timestamps to system clock */ -int GlobalRehashFlag = 0; /**< do a rehash if set */ -int GlobalRestartFlag = 0; /**< do a restart if set */ time_t CurrentTime; /**< Updated every time we leave select() */ char *configfile = CPATH; /**< Server configuration file */ @@ -193,6 +190,8 @@ close_connections(!(thisServer.bootopt & (BOOT_TTY | BOOT_DEBUG | BOOT_CHKCONF))); + reap_children(); + execv(SPATH, thisServer.argv); /* Have to reopen since it has been closed above */ @@ -264,14 +263,17 @@ struct ConfItem* aconf; struct ConfItem** pconf; time_t next = 0; - struct ConnectionClass* cltmp; struct Jupe* ajupe; - int hold; + int hold; + int done; assert(ET_EXPIRE == ev_type(ev)); assert(0 != ev_timer(ev)); Debug((DEBUG_NOTICE, "Connection check at : %s", myctime(CurrentTime))); + next = CurrentTime + feature_int(FEAT_CONNECTFREQUENCY); + done = 0; + for (aconf = GlobalConfList; aconf; aconf = aconf->next) { /* Only consider server items with non-zero port and non-zero * connect times that are not actively juped. @@ -286,17 +288,16 @@ hold = aconf->hold > CurrentTime; /* Update next possible connection check time. */ - if (hold && (next > aconf->hold || next == 0)) + if (hold && next > aconf->hold) next = aconf->hold; - cltmp = aconf->conn_class; - /* Do not try to connect if its use is still on hold until future, + * we have already initiated a connection this try_connections(), * too many links in its connection class, it is already linked, * or if connect rules forbid a link now. */ - if (hold - || (Links(cltmp) > MaxLinks(cltmp)) + if (hold || done + || (ConfLinks(aconf) > ConfMaxLinks(aconf)) || FindServer(aconf->name) || conf_eval_crule(aconf->name, CRULE_MASK)) continue; @@ -318,14 +319,10 @@ aconf->name); /* And stop looking for further candidates. */ - break; + done = 1; } - if (next == 0) - next = CurrentTime + feature_int(FEAT_CONNECTFREQUENCY); - Debug((DEBUG_NOTICE, "Next connection check : %s", myctime(next))); - timer_add(&connect_timer, try_connections, 0, TT_ABSOLUTE, next); } @@ -369,6 +366,24 @@ IsPingSent(cptr) ? "[Ping Sent]" : "[]", max_ping, (int)(CurrentTime - cli_lasttime(cptr)))); + /* If it's a server and we have not sent an AsLL lately, do so. */ + if (IsServer(cptr)) { + if (CurrentTime - cli_serv(cptr)->asll_last >= max_ping) { + char *asll_ts; + + SetPingSent(cptr); + cli_serv(cptr)->asll_last = CurrentTime; + expire = cli_serv(cptr)->asll_last + max_ping; + asll_ts = militime_float(NULL); + sendcmdto_prio_one(&me, CMD_PING, cptr, "!%s %s %s", asll_ts, + cli_name(cptr), asll_ts); + } + + expire = cli_serv(cptr)->asll_last + max_ping; + if (expire < next_check) + next_check = expire; + } + /* Ok, the thing that will happen most frequently, is that someone will * have sent something recently. Cover this first for speed. * -- @@ -392,28 +407,18 @@ */ if (!IsRegistered(cptr)) { assert(!IsServer(cptr)); - if ((CurrentTime-cli_firsttime(cptr) >= max_ping)) { - /* Display message if they have sent a NICK and a USER but no - * nospoof PONG. - */ - if (*(cli_name(cptr)) && cli_user(cptr) && *(cli_user(cptr))->username) { - send_reply(cptr, SND_EXPLICIT | ERR_BADPING, - ":Your client may not be compatible with this server."); - send_reply(cptr, SND_EXPLICIT | ERR_BADPING, - ":Compatible clients are available at %s", - feature_str(FEAT_URL_CLIENTS)); - } - exit_client_msg(cptr,cptr,&me, "Registration Timeout"); - continue; - } else { - /* OK, they still have enough time left, so we'll just skip to the - * next client. Set the next check to be when their time is up, if - * that's before the currently scheduled next check -- hikari */ - expire = cli_firsttime(cptr) + max_ping; - if (expire < next_check) - next_check = expire; + /* If client authorization time has expired, ask auth whether they + * should be checked again later. */ + if ((CurrentTime-cli_firsttime(cptr) >= max_ping) + && auth_ping_timeout(cptr)) continue; - } + /* OK, they still have enough time left, so we'll just skip to the + * next client. Set the next check to be when their time is up, if + * that's before the currently scheduled next check -- hikari */ + expire = cli_firsttime(cptr) + max_ping; + if (expire < next_check) + next_check = expire; + continue; } /* Quit the client after max_ping*2 - they should have answered by now */ @@ -441,11 +446,7 @@ if (IsUser(cptr)) sendrawto_one(cptr, MSG_PING " :%s", cli_name(&me)); else - { - char *asll_ts = militime_float(NULL); - sendcmdto_one(&me, CMD_PING, cptr, "!%s %s %s", asll_ts, - cli_name(cptr), asll_ts); - } + sendcmdto_prio_one(&me, CMD_PING, cptr, ":%s", cli_name(&me)); } expire = cli_lasttime(cptr) + max_ping * 2; @@ -730,8 +731,6 @@ should be removed -- hikari */ ircd_crypt_init(); - motd_init(); - if (!init_conf()) { log_write(LS_SYSTEM, L_CRIT, 0, "Failed to read configuration file %s", configfile); Index: ircd-ircdev/ircd/ircd_events.c diff -u ircd-ircdev/ircd/ircd_events.c:1.9 ircd-ircdev/ircd/ircd_events.c:1.10 --- ircd-ircdev/ircd/ircd_events.c:1.9 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/ircd_events.c Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of event loop mid-layer. - * @version $Id: ircd_events.c,v 1.9 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: ircd_events.c,v 1.10 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -88,13 +88,13 @@ * This is used if an engine does not implement signal handling itself * (when Engine::eng_signal is NULL). */ -static struct { +static struct sigInfo_s { int fd; /**< signal routine's fd */ struct Socket sock; /**< and its struct Socket */ } sigInfo = { -1 }; /** All the thread info */ -static struct { +static struct evInfo_s { struct Generators gens; /**< List of all generators */ struct Event* events_free; /**< struct Event free list */ unsigned int events_alloc; /**< count of allocated struct Events */ @@ -146,6 +146,48 @@ } } +#ifndef IRCD_THREADED + +/** Generate and execute an event. + * @param[in] type Type of event to generate. + * @param[in] arg Pointer to an event generator (GenHeader). + * @param[in] data Extra data for event. + */ +void +event_generate(enum EventType type, void* arg, int data) +{ + struct Event ev; + struct GenHeader *gen = (struct GenHeader*) arg; + + assert(0 != gen); + assert(gen->gh_flags & GEN_ACTIVE); + + if (type == ET_DESTROY) + { + if (gen->gh_flags & GEN_DESTROY) + return; + gen->gh_flags &= ~GEN_ACTIVE; + } + else if (type == ET_ERROR) + gen->gh_flags |= GEN_ERROR; + + Debug((DEBUG_LIST, "Generating event type %s for generator %p (%s)", + event_to_name(type), gen, gen_flags(gen->gh_flags))); + + ev.ev_next = NULL; + ev.ev_prev_p = NULL; + ev.ev_type = type; + ev.ev_data = data; + ev.ev_gen.gen_header = gen; + gen->gh_ref++; + + gen->gh_call(&ev); + if (type != ET_DESTROY) + gen_ref_dec(gen); +} + +#else + /** Execute an event. * Optimizations should inline this. * @param[in] event Event to execute. @@ -180,17 +222,6 @@ evInfo.events_free = event; } -#ifndef IRCD_THREADED -/** we synchronously execute the event when not threaded */ -#define event_add(event) \ -do { \ - struct Event* _ev = (event); \ - _ev->ev_next = 0; \ - _ev->ev_prev_p = 0; \ - event_execute(_ev); \ -} while (0) - -#else /** Add an event to the work queue. * @param[in] event Event to enqueue. */ @@ -241,6 +272,43 @@ /* We'd also have to signal the work crew here */ } } + +/** Generate an event and add it to the queue (or execute it). + * @param[in] type Type of event to generate. + * @param[in] arg Pointer to an event generator (GenHeader). + * @param[in] data Extra data for event. + */ +void +event_generate(enum EventType type, void* arg, int data) +{ + struct Event* ptr; + struct GenHeader* gen = (struct GenHeader*) arg; + + assert(0 != gen); + + /* don't create events (other than ET_DESTROY) for destroyed generators */ + if (type != ET_DESTROY && (gen->gh_flags & GEN_DESTROY)) + return; + + Debug((DEBUG_LIST, "Generating event type %s for generator %p (%s)", + event_to_name(type), gen, gen_flags(gen->gh_flags))); + + if ((ptr = evInfo.events_free)) + evInfo.events_free = ptr->ev_next; /* pop one off the freelist */ + else { /* allocate another structure */ + ptr = (struct Event*) MyMalloc(sizeof(struct Event)); + evInfo.events_alloc++; /* count of allocated events */ + } + + ptr->ev_type = type; /* Record event type */ + ptr->ev_data = data; + + ptr->ev_gen.gen_header = (struct GenHeader*) gen; + ptr->ev_gen.gen_header->gh_ref++; + + event_add(ptr); /* add event to queue */ +} + #endif /* IRCD_THREADED */ /** Place a timer in the correct spot on the queue. @@ -381,42 +449,6 @@ (*evInfo.engine->eng_loop)(&evInfo.gens); } -/** Generate an event and add it to the queue (or execute it). - * @param[in] type Type of event to generate. - * @param[in] arg Pointer to an event generator (GenHeader). - * @param[in] data Extra data for event. - */ -void -event_generate(enum EventType type, void* arg, int data) -{ - struct Event* ptr; - struct GenHeader* gen = (struct GenHeader*) arg; - - assert(0 != gen); - - /* don't create events (other than ET_DESTROY) for destroyed generators */ - if (type != ET_DESTROY && (gen->gh_flags & GEN_DESTROY)) - return; - - Debug((DEBUG_LIST, "Generating event type %s for generator %p (%s)", - event_to_name(type), gen, gen_flags(gen->gh_flags))); - - if ((ptr = evInfo.events_free)) - evInfo.events_free = ptr->ev_next; /* pop one off the freelist */ - else { /* allocate another structure */ - ptr = (struct Event*) MyMalloc(sizeof(struct Event)); - evInfo.events_alloc++; /* count of allocated events */ - } - - ptr->ev_type = type; /* Record event type */ - ptr->ev_data = data; - - ptr->ev_gen.gen_header = (struct GenHeader*) gen; - ptr->ev_gen.gen_header->gh_ref++; - - event_add(ptr); /* add event to queue */ -} - #if 0 /* Try to verify the timer list */ void Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.18 ircd-ircdev/ircd/ircd_features.c:1.19 --- ircd-ircdev/ircd/ircd_features.c:1.18 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/ircd_features.c Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of configurable feature support. - * @version $Id: ircd_features.c,v 1.18 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: ircd_features.c,v 1.19 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -300,8 +300,13 @@ #define FEAT_INT 0x0001 /**< set if entry contains an integer value */ #define FEAT_BOOL 0x0002 /**< set if entry contains a boolean value */ #define FEAT_STR 0x0003 /**< set if entry contains a string value */ +#define FEAT_ALIAS 0x0004 /**< set if entry is alias for another entry */ +#define FEAT_DEP 0x0005 /**< set if entry is deprecated feature */ #define FEAT_MASK 0x000f /**< possible value types */ +/** Extract just the feature type from a feature descriptor. */ +#define feat_type(feat) ((feat)->flags & FEAT_MASK) + #define FEAT_MARK 0x0010 /**< set if entry has been changed */ #define FEAT_NULL 0x0020 /**< NULL string is permitted */ #define FEAT_CASE 0x0040 /**< string is case-sensitive */ @@ -328,6 +333,13 @@ #define F_S(type, flags, v_str, notify) \ { FEAT_ ## type, #type, FEAT_STR | (flags), 0, 0, 0, (v_str), \ 0, 0, 0, (notify), 0, 0, 0 } +/** Declare a feature as an alias for another feature. */ +#define F_A(type, alias) \ + { FEAT_ ## type, #type, FEAT_ALIAS, 0, FEAT_ ## alias, 0, 0, \ + 0, 0, 0, 0, 0, 0, 0 } +/** Declare a feature as deprecated. */ +#define F_D(type) \ + { FEAT_ ## type, #type, FEAT_DEP, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } /** Table of feature descriptions. */ static struct FeatureDesc { @@ -363,6 +375,7 @@ F_B(HUB, 0, 0, 0), F_B(WALLOPS_OPER_ONLY, 0, 0, 0), F_B(NODNS, 0, 0, 0), + F_B(NOIDENT, 0, 0, 0), F_N(RANDOM_SEED, FEAT_NODISP, random_seed_set, 0, 0, 0, 0, 0, 0), F_S(DEFAULT_LIST_PARAM, FEAT_NULL, 0, list_set_default), F_I(NICKNAMEHISTORYLENGTH, 0, 800, whowas_realloc), @@ -399,8 +412,8 @@ F_I(CHANNELLEN, 0, 200, set_isupport_channellen), /* Some misc. default paths */ - F_S(MPATH, FEAT_CASE | FEAT_MYOPER, "ircd.motd", motd_init), - F_S(RPATH, FEAT_CASE | FEAT_MYOPER, "remote.motd", motd_init), + F_S(MPATH, FEAT_CASE | FEAT_MYOPER, "ircd.motd", motd_init_local), + F_S(RPATH, FEAT_CASE | FEAT_MYOPER, "remote.motd", motd_init_remote), F_S(PPATH, FEAT_CASE | FEAT_MYOPER | FEAT_READ, "ircd.pid", 0), #if defined(DDB) F_S(DDBPATH, FEAT_CASE | FEAT_MYOPER, "database", 0), @@ -426,42 +439,71 @@ F_B(HIS_MAP, 0, 1, 0), F_B(HIS_LINKS, 0, 1, 0), F_B(HIS_TRACE, 0, 1, 0), - F_B(HIS_STATS_a, 0, 1, 0), + F_A(HIS_STATS_a, HIS_STATS_NAMESERVERS), + F_B(HIS_STATS_NAMESERVERS, 0, 1, 0), #if defined(DDB) - F_B(HIS_STATS_b, 0, 1, 0), + F_A(HIS_STATS_b, HIS_STATS_DDB), + F_B(HIS_STATS_DDB, 0, 1, 0), #endif - F_B(HIS_STATS_c, 0, 1, 0), - F_B(HIS_STATS_d, 0, 1, 0), - F_B(HIS_STATS_e, 0, 1, 0), - F_B(HIS_STATS_f, 0, 1, 0), - F_B(HIS_STATS_g, 0, 1, 0), - F_B(HIS_STATS_i, 0, 1, 0), - F_B(HIS_STATS_j, 0, 1, 0), - F_B(HIS_STATS_J, 0, 1, 0), - F_B(HIS_STATS_k, 0, 1, 0), - F_B(HIS_STATS_l, 0, 1, 0)... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-07-21 23:51:52
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-07-21 23:51:49 UTC Modified files: ChangeLog ChangeLog.es include/channel.h include/client.h include/ircd_features.h include/msg.h include/patchlevel.h ircd/channel.c ircd/ircd_features.c ircd/m_burst.c ircd/m_join.c ircd/m_mode.c ircd/m_part.c Log message: Author: zoltan <zo...@ir...> Log message: 2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 * Chequeo de Spambot * Fix de DelayedJoin ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.55 ircd-ircdev/ChangeLog:1.56 --- ircd-ircdev/ChangeLog:1.55 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ChangeLog Sat Jul 21 16:51:39 2007 @@ -1,11 +1,15 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.55 2007/04/26 21:17:11 zolty Exp $ +# $Id: ChangeLog,v 1.56 2007/07/21 23:51:39 zolty Exp $ # # Insert new changes at beginning of the change list. # -2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 +2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 + * Spambot checking + * DelayedJoin fix + +2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 * Aliases for /STATS * PING-PONG with high priority * Signal SIGCHLD support Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.55 ircd-ircdev/ChangeLog.es:1.56 --- ircd-ircdev/ChangeLog.es:1.55 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ChangeLog.es Sat Jul 21 16:51:39 2007 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.55 2007/04/26 21:17:11 zolty Exp $ +# $Id: ChangeLog.es,v 1.56 2007/07/21 23:51:39 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 + * Chequeo de Spambot + * Fix de DelayedJoin + 2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 * Aliases para /STATS * PING-PONG con alta prioridad Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.17 ircd-ircdev/include/channel.h:1.18 --- ircd-ircdev/include/channel.h:1.17 Sat Apr 21 09:20:17 2007 +++ ircd-ircdev/include/channel.h Sat Jul 21 16:51:39 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Channel management and maintenance. - * @version $Id: channel.h,v 1.17 2007/04/21 16:20:17 zolty Exp $ + * @version $Id: channel.h,v 1.18 2007/07/21 23:51:39 zolty Exp $ */ #ifndef INCLUDED_channel_h #define INCLUDED_channel_h @@ -464,9 +464,7 @@ extern void add_invite(struct Client *cptr, struct Channel *chptr, struct Client *inviter); extern void del_invite(struct Client *cptr, struct Channel *chptr); extern void list_set_default(void); /* this belongs elsewhere! */ - -extern void RevealDelayedJoin(struct Membership *member); -extern void CheckDelayedJoins(struct Channel *chan); +extern void check_spambot_warning(struct Client *cptr); extern void modebuf_init(struct ModeBuf *mbuf, struct Client *source, struct Client *connect, struct Channel *chan, Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.20 ircd-ircdev/include/client.h:1.21 --- ircd-ircdev/include/client.h:1.20 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/include/client.h Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.20 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: client.h,v 1.21 2007/07/21 23:51:39 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -190,6 +190,10 @@ time_t con_nexttarget;/**< Next time a target change is allowed */ time_t con_lasttime; /**< Last time data read from socket */ time_t con_since; /**< Last time we accepted a command */ + time_t con_last_join; /**< Last time this client joined a channel */ + time_t con_last_part; /**< Last time this client left a channel */ + int con_join_part_count; /**< Count of fast join/parts */ + int con_warn_countdown; /**< Counter for spambot warnings */ struct MsgQ con_sendQ; /**< Outgoing message queue */ struct DBuf con_recvQ; /**< Incoming data yet to be parsed */ unsigned int con_sendM; /**< Stats: protocol messages sent */ @@ -312,6 +316,15 @@ #define cli_username(cli) ((cli)->cli_username) /** Get client realname (information field). */ #define cli_info(cli) ((cli)->cli_info) +/** Get client's last channel join time. */ +#define cli_last_join(cli) (cli_connect(cli)->con_last_join) +/** Get client's last channel part time. */ +#define cli_last_part(cli) (cli_connect(cli)->con_last_part) +/** Get client's fast join/part count. */ +#define cli_join_part_count(cli) (cli_connect(cli)->con_join_part_count) +/** Get client's warning countdown value. */ +#define cli_warn_countdown(cli) (cli_connect(cli)->con_warn_countdown) + /** Get number of incoming bytes queued for client. */ #define cli_count(cli) con_count(cli_connect(cli)) Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.19 ircd-ircdev/include/ircd_features.h:1.20 --- ircd-ircdev/include/ircd_features.h:1.19 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/include/ircd_features.h Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.19 2007/04/26 21:17:11 zolty Exp $ + * @version $Id: ircd_features.h,v 1.20 2007/07/21 23:51:39 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -60,6 +60,7 @@ FEAT_HIDDEN_IP, FEAT_CONNEXIT_NOTICES, FEAT_OPLEVELS, + FEAT_ZANNELS, FEAT_LOCAL_CHANNELS, FEAT_TOPIC_BURST, FEAT_USER_GLIST, @@ -193,6 +194,10 @@ FEAT_NETWORK, FEAT_URL_CLIENTS, FEAT_URLREG, + FEAT_SPAM_OPER_COUNTDOWN, + FEAT_SPAM_EXPIRE_TIME, + FEAT_SPAM_JOINED_TIME, + FEAT_SPAM_FJP_COUNT, FEAT_LAST_F }; Index: ircd-ircdev/include/msg.h diff -u ircd-ircdev/include/msg.h:1.15 ircd-ircdev/include/msg.h:1.16 --- ircd-ircdev/include/msg.h:1.15 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/msg.h Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Command and token declarations and structures. - * @version $Id: msg.h,v 1.15 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: msg.h,v 1.16 2007/07/21 23:51:39 zolty Exp $ */ #ifndef INCLUDED_msg_h #define INCLUDED_msg_h @@ -201,11 +201,11 @@ #define MSG_WALLCHOPS "WALLCHOPS" /* WC */ #define TOK_WALLCHOPS "WC" -#define CMD_WALLCHOPS MSG_WALLCHOPS, TOK_WALLCHOPS +#define CMD_WALLCHOPS MSG_NOTICE, TOK_WALLCHOPS #define MSG_WALLVOICES "WALLVOICES" /* WV */ #define TOK_WALLVOICES "WV" -#define CMD_WALLVOICES MSG_WALLVOICES, TOK_WALLVOICES +#define CMD_WALLVOICES MSG_NOTICE, TOK_WALLVOICES #define MSG_CPRIVMSG "CPRIVMSG" /* CPRI */ #define TOK_CPRIVMSG "CP" Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.54 ircd-ircdev/include/patchlevel.h:1.55 --- ircd-ircdev/include/patchlevel.h:1.54 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/include/patchlevel.h Sat Jul 21 16:51:39 2007 @@ -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.54 2007/04/26 21:17:11 zolty Exp $ + * $Id: patchlevel.h,v 1.55 2007/07/21 23:51:39 zolty Exp $ * */ -#define PATCHLEVEL "6" +#define PATCHLEVEL "7" #define RELEASE "1.0.beta" Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.31 ircd-ircdev/ircd/channel.c:1.32 --- ircd-ircdev/ircd/channel.c:1.31 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ircd/channel.c Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.31 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: channel.c,v 1.32 2007/07/21 23:51:39 zolty Exp $ */ #include "config.h" @@ -74,21 +74,6 @@ /** Number of ban structures in use. */ static size_t bans_inuse; -#if !defined(NDEBUG) -/** return the length (>=0) of a chain of links. - * @param lp pointer to the start of the linked list - * @return the number of items in the list - */ -static int list_length(struct SLink *lp) -{ - int count = 0; - - for (; lp; lp = lp->next) - ++count; - return count; -} -#endif - /** Set the mask for a ban, checking for IP masks. * @param[in,out] ban Ban structure to modify. * @param[in] banstr Mask to ban. @@ -108,6 +93,41 @@ } } +/** Check a channel for join-delayed members. + * @param[in] chan Channel to search. + * @return Non-zero if any members are join-delayed; false if none are. + */ +static int +find_delayed_joins(const struct Channel *chan) +{ + const struct Membership *memb; + for (memb = chan->members; memb; memb = memb->next_member) + if (IsDelayedJoin(memb)) + return 1; + return 0; +} + +/* CheckDelayedJoins: checks and clear +d if necessary */ + +static void CheckDelayedJoins(struct Channel *chan) +{ + if ((chan->mode.mode & MODE_WASDELJOINS) && !find_delayed_joins(chan)) { + chan->mode.mode &= ~MODE_WASDELJOINS; + sendcmdto_channel(&his, CMD_MODE, chan, NULL, SKIP_SERVERS, + "%H -d", chan); + } +} + +/* RevealDelayedJoin: sends a join for a hidden user */ +static void RevealDelayedJoin(struct Membership *member) +{ + ClearDelayedJoin(member); + sendcmdto_channel(member->user, CMD_JOIN, member->channel, + member->user, SKIP_SERVERS, + ":%H", member->channel); + CheckDelayedJoins(member->channel); +} + /** Allocate a new Ban structure. * @param[in] banstr Ban mask to use. * @return Newly allocated ban. @@ -662,46 +682,6 @@ return 0; } -/** Check if a user is a Zombie on a specific channel. - * - * @param cptr The client to check. - * @param chptr The channel to check. - * - * @returns True if the client (cptr) is a zombie on the channel (chptr), - * False otherwise. - * - * @see \ref zombie - */ -int is_zombie(struct Client *cptr, struct Channel *chptr) -{ - struct Membership* member; - - assert(0 != chptr); - - if ((member = find_member_link(chptr, cptr))) - return IsZombie(member); - return 0; -} - -/** Returns if a user has voice on a channel. - * - * @param cptr The client - * @param chptr The channel - * - * @returns True if the client (cptr) is voiced on (chptr) and is not a zombie. - * @see \ref zombie - */ -int has_voice(struct Client* cptr, struct Channel* chptr) -{ - struct Membership* member; - - assert(0 != chptr); - if ((member = find_member_link(chptr, cptr))) - return (!IsZombie(member) && HasVoice(member)); - - return 0; -} - /** Can this member send to a channel * * A user can speak on a channel iff: @@ -726,12 +706,24 @@ { assert(0 != member); + /* Do not check for users on other servers: This should be a + * temporary desynch, or maybe they are on an older server, but + * we do not want to send ERR_CANNOTSENDTOCHAN more than once. + */ + if (!MyUser(member->user)) + { + if (IsDelayedJoin(member) && reveal) + RevealDelayedJoin(member); + return 1; + } + #if defined(UNDERNET) /* Discourage using the Apass to get op. They should use the upass. */ if (IsChannelManager(member) && member->channel->mode.apass[0]) return 0; #endif + /* If you have voice or ops, you can speak. */ if (IsVoicedOrOpped(member)) return 1; @@ -747,12 +739,9 @@ if (member->channel->mode.mode & MODE_REGONLY && !IsAccount(member->user)) return 0; #endif - /* - * If you're banned then you can't speak either. - * but because of the amount of CPU time that is_banned chews - * we only check it for our clients. - */ - if (MyUser(member->user) && is_banned(member)) + + /* If you're banned then you can't speak either. */ + if (is_banned(member)) return 0; if (IsDelayedJoin(member) && reveal) @@ -820,9 +809,13 @@ struct Membership* member; for (member = (cli_user(cptr))->channel; member; member = member->next_channel) { - if (!IsVoicedOrOpped(member) && - (is_banned(member) || - (member->channel->mode.mode & MODE_MODERATED))) + if (IsVoicedOrOpped(member)) + continue; + if ((member->channel->mode.mode & MODE_MODERATED) +#if defined(UNDERNET) + || (member->channel->mode.mode & MODE_REGONLY && !IsAccount(cptr)) +#endif + || is_banned(member)) return member->channel->chname; } } @@ -979,7 +972,7 @@ int opped_members_index = 0; struct Membership** opped_members = NULL; int last_oplevel = 0; - int feat_oplevels = (chptr->mode.apass[0]) != '\0'; + int send_oplevels = 0; #endif assert(0 != cptr); @@ -1045,6 +1038,9 @@ ++number_of_ops; else opped_members[opped_members_index++] = member; + /* We also send oplevels if anyone is below the weakest level. */ + if (OpLevel(member) < MAXOPLEVEL) + send_oplevels = 1; } /* Only handle the members with the flags that we are interested in. */ if ((member->status & CHFL_VOICED_OR_OPPED) == current_flags[flag_cnt]) @@ -1085,7 +1081,7 @@ if (IsChanOp(member)) /* flag_cnt == 2 or 3 */ { /* append the absolute value of the oplevel */ - if (feat_oplevels) + if (send_oplevels) loc += ircd_snprintf(0, tbuf + loc, sizeof(tbuf) - loc, "%u", last_oplevel = member->oplevel); else tbuf[loc++] = 'o'; @@ -1094,7 +1090,7 @@ msgq_append(&me, mb, tbuf); new_mode = 0; } - else if (feat_oplevels && flag_cnt > 1 && last_oplevel != member->oplevel) + else if (send_oplevels && flag_cnt > 1 && last_oplevel != member->oplevel) { /* * This can't be the first member of a (continued) BURST @@ -1696,7 +1692,6 @@ #endif MODE_REGONLY, 'R', MODE_DELJOINS, 'D', - MODE_WASDELJOINS, 'd', /* MODE_KEY, 'k', */ /* MODE_BAN, 'b', */ MODE_LIMIT, 'l', @@ -1706,15 +1701,19 @@ #endif 0x0, 0x0 }; - int i; + static int local_flags[] = { + MODE_WASDELJOINS, 'd', + 0x0, 0x0 + }; + unsigned int i; int *flag_p; struct Client *app_source; /* where the MODE appears to come from */ - char addbuf[20]; /* accumulates +psmtin, etc. */ - int addbuf_i = 0; - char rembuf[20]; /* accumulates -psmtin, etc. */ - int rembuf_i = 0; + char addbuf[20], addbuf_local[20]; /* accumulates +psmtin, etc. */ + int addbuf_i = 0, addbuf_local_i = 0; + char rembuf[20], rembuf_local[20]; /* accumulates -psmtin, etc. */ + int rembuf_i = 0, rembuf_local_i = 0; char *bufptr; /* we make use of indirection to simplify the code */ int *bufptr_i; @@ -1740,7 +1739,10 @@ /* Ok, if we were given the OPMODE flag, or its a server, hide the source. */ - if (mbuf->mb_dest & MODEBUF_DEST_OPMODE || IsServer(mbuf->mb_source) || IsMe(mbuf->mb_source)) + if (feature_bool(FEAT_HIS_MODEWHO) && + (mbuf->mb_dest & MODEBUF_DEST_OPMODE || + IsServer(mbuf->mb_source) || + IsMe(mbuf->mb_source))) app_source = &his; else app_source = mbuf->mb_source; @@ -1760,6 +1762,14 @@ rembuf[rembuf_i++] = flag_p[1]; } + /* Some flags may be for local display only. */ + for (flag_p = local_flags; flag_p[0]; flag_p += 2) { + if (*flag_p & mbuf->mb_add) + addbuf_local[addbuf_local_i++] = flag_p[1]; + else if (*flag_p & mbuf->mb_rem) + rembuf_local[rembuf_local_i++] = flag_p[1]; + } + /* Now go through the modes with arguments... */ for (i = 0; i < mbuf->mb_count; i++) { if (MB_TYPE(mbuf, i) & MODE_ADD) { /* adding or removing? */ @@ -1860,6 +1870,8 @@ /* terminate the mode strings */ addbuf[addbuf_i] = '\0'; rembuf[rembuf_i] = '\0'; + addbuf_local[addbuf_local_i] = '\0'; + rembuf_local[rembuf_local_i] = '\0'; /* If we're building a user visible MODE or HACK... */ if (mbuf->mb_dest & (MODEBUF_DEST_CHANNEL | MODEBUF_DEST_HACK2 | @@ -2279,19 +2291,22 @@ int modebuf_flush(struct ModeBuf *mbuf) { - struct Membership *memb; - - /* Check if MODE_WASDELJOINS should be set */ - if (!(mbuf->mb_channel->mode.mode & (MODE_DELJOINS | MODE_WASDELJOINS)) - && (mbuf->mb_rem & MODE_DELJOINS)) { - for (memb = mbuf->mb_channel->members; memb; memb = memb->next_member) { - if (IsDelayedJoin(memb)) { - mbuf->mb_channel->mode.mode |= MODE_WASDELJOINS; - mbuf->mb_add |= MODE_WASDELJOINS; - mbuf->mb_rem &= ~MODE_WASDELJOINS; - break; - } - } + /* Check if MODE_WASDELJOINS should be set: */ + /* Must be set if going -D and some clients are hidden */ + if ((mbuf->mb_rem & MODE_DELJOINS) + && !(mbuf->mb_channel->mode.mode & (MODE_DELJOINS | MODE_WASDELJOINS)) + && find_delayed_joins(mbuf->mb_channel)) { + mbuf->mb_channel->mode.mode |= MODE_WASDELJOINS; + mbuf->mb_add |= MODE_WASDELJOINS; + mbuf->mb_rem &= ~MODE_WASDELJOINS; + } + /* Must be cleared if +D is set */ + if ((mbuf->mb_add & MODE_DELJOINS) + && ((mbuf->mb_channel->mode.mode & (MODE_WASDELJOINS | MODE_WASDELJOINS)) + == (MODE_WASDELJOINS | MODE_WASDELJOINS))) { + mbuf->mb_channel->mode.mode &= ~MODE_WASDELJOINS; + mbuf->mb_add &= ~MODE_WASDELJOINS; + mbuf->mb_rem |= MODE_WASDELJOINS; } return modebuf_flush_int(mbuf, 1); @@ -3167,8 +3182,10 @@ char *t_str; struct Client *acptr; #if defined(UNDERNET) + char *colon; struct Membership *member; int oplevel = MAXOPLEVEL + 1; + int req_oplevel; #endif int i; @@ -3188,9 +3205,29 @@ return; } - if (MyUser(state->sptr)) /* find client we're manipulating */ + if (MyUser(state->sptr)) { +#if defined(UNDERNET) + colon = strchr(t_str, ':'); + if (colon != NULL) { + *colon++ = '\0'; + req_oplevel = atoi(colon); + if (!(state->flags & MODE_PARSE_FORCE) + && state->member + && (req_oplevel < OpLevel(state->member) + || (req_oplevel == OpLevel(state->member) + && OpLevel(state->member) < MAXOPLEVEL) + || req_oplevel > MAXOPLEVEL)) + send_reply(state->sptr, ERR_NOTLOWEROPLEVEL, + t_str, state->chptr->chname, + OpLevel(state->member), req_oplevel, "op", + OpLevel(state->member) == req_oplevel ? "the same" : "a higher"); + else if (req_oplevel <= MAXOPLEVEL) + oplevel = req_oplevel; + } +#endif + /* find client we're manipulating */ acptr = find_chasing(state->sptr, t_str, NULL); - else { + } else { #if defined(UNDERNET) if (t_str[5] == ':') { t_str[5] = '\0'; @@ -3201,7 +3238,7 @@ * posible sitio para el ChanDb */ acptr = findNUser(t_str); -} + } if (!acptr) return; /* find_chasing() already reported an error to the user */ @@ -3290,11 +3327,14 @@ } #if defined(UNDERNET) - /* don't allow to deop members with an op level that is <= our own level */ - if (state->sptr != state->cli_change[i].client /* but allow to deop oneself */ - && state->chptr->mode.apass[0] + /* Forbid deopping other members with an oplevel less than + * one's own level, and other members with an oplevel the same + * as one's own unless both are at MAXOPLEVEL. */ + if (state->sptr != state->cli_change[i].client && state->member - && OpLevel(member) <= OpLevel(state->member)) { + && ((OpLevel(member) < OpLevel(state->member)) + || (OpLevel(member) == OpLevel(state->member) + && OpLevel(member) < MAXOPLEVEL))) { int equal = (OpLevel(member) == OpLevel(state->member)); send_reply(state->sptr, ERR_NOTLOWEROPLEVEL, cli_name(state->cli_change[i].client), @@ -3331,7 +3371,7 @@ /* actually effect the change */ if (state->flags & MODE_PARSE_SET) { if (state->cli_change[i].flag & MODE_ADD) { - if (IsDelayedJoin(member)) + if (IsDelayedJoin(member) && !IsZombie(member)) RevealDelayedJoin(member); member->status |= (state->cli_change[i].flag & #if defined(DDB) || defined(SERVICES) @@ -3385,10 +3425,6 @@ state->add &= ~MODE_SECRET; state->del |= MODE_SECRET; } - if (flag_p[0] & MODE_DELJOINS) { - state->add &= ~MODE_WASDELJOINS; - state->del |= MODE_WASDELJOINS; - } } else { state->add &= ~flag_p[0]; state->del |= flag_p[0]; @@ -3551,7 +3587,7 @@ state.parc--; /* is it a TS? */ - if (IsServer(state.sptr) && !state.parc && IsDigit(*modestr)) { + if (IsServer(state.cptr) && !state.parc && IsDigit(*modestr)) { time_t recv_ts; if (!(state.flags & MODE_PARSE_SET)) /* don't set earlier TS if */ @@ -3561,6 +3597,35 @@ if (recv_ts && recv_ts < state.chptr->creationtime) state.chptr->creationtime = recv_ts; /* respect earlier TS */ + else if (recv_ts > state.chptr->creationtime) { + struct Client *sserv; + + /* Check whether the originating server has fully processed + * the burst to it. */ + sserv = state.cptr; + if (!IsServer(sserv)) + sserv = cli_user(sserv)->server; + if (IsBurstOrBurstAck(sserv)) { + /* This is a legal but unusual case; the source server + * probably just has not processed the BURST for this + * channel. It SHOULD wipe out all its modes soon, so + * silently ignore the mode change rather than send a + * bounce that could desync modes from our side (that + * have already been sent). + */ + state.mbuf->mb_add = 0; + state.mbuf->mb_rem = 0; + state.mbuf->mb_count = 0; + return state.args_used; + } else { + /* Server is desynced; bounce the mode and deop the source + * to fix it. */ + state.mbuf->mb_dest &= ~MODEBUF_DEST_CHANNEL; + state.mbuf->mb_dest |= MODEBUF_DEST_BOUNCE | MODEBUF_DEST_HACK2; + if (!IsServer(state.cptr)) + state.mbuf->mb_dest |= MODEBUF_DEST_DEOP; + } + } break; /* break out of while loop */ } else if (state.flags & MODE_PARSE_STRICT || @@ -3831,32 +3896,59 @@ return 0; } -/* RevealDelayedJoin: sends a join for a hidden user */ - -void RevealDelayedJoin(struct Membership *member) -{ - ClearDelayedJoin(member); - sendcmdto_channel(member->user, CMD_JOIN, member->channel, member->user, SKIP_SERVERS, ":%H", - member->channel); - CheckDelayedJoins(member->channel); -} - -/* CheckDelayedJoins: checks and clear +d if necessary */ - -void CheckDelayedJoins(struct Channel *chan) +/** Check whether \a sptr is acting like a spambot when it leaves a + * channel. + * Side effects: Updates \a sptr's join_part_count, last_part and + * warn_countdown fields; may warn operators. + * Based on code by Dianora. + * + * @param[in] sptr Client to check + * @param[in] name Channel being joined (or NULL if a part). + */ +void +check_spambot_warning(struct Client *sptr) { - struct Membership *memb2; + int decrement_count; + int spam_expire_time; - if (chan->mode.mode & MODE_WASDELJOINS) { - for (memb2=chan->members;memb2;memb2=memb2->next_member) - if (IsDelayedJoin(memb2)) - break; + spam_expire_time = feature_int(FEAT_SPAM_EXPIRE_TIME); + if (!spam_expire_time) + { + /* Admin apparently does not want this feature (we do not want to + * divide by zero below). */ + } + else if (!MyUser(sptr)) + { + /* This client's behavior is someone else's problem. */ + } + else if (cli_join_part_count(sptr) >= feature_int(FEAT_SPAM_FJP_COUNT)) + { + if (cli_warn_countdown(sptr) > 0) + cli_warn_countdown(sptr)--; - if (!memb2) { - /* clear +d */ - chan->mode.mode &= ~MODE_WASDELJOINS; - sendcmdto_channel(&his, CMD_MODE, chan, NULL, SKIP_SERVERS, - "%H -d", chan); + if (cli_warn_countdown(sptr) == 0) + { + /* Its already known as a possible spambot */ + sendto_opmask(0, SNO_OLDSNO, + "User %s (%s@%s) is a possible spambot", + cli_name(sptr), cli_username(sptr), + cli_sockhost(sptr)); + cli_warn_countdown(sptr) = feature_int(FEAT_SPAM_OPER_COUNTDOWN); } } + else if ((decrement_count = (CurrentTime - cli_last_part(sptr)) + / spam_expire_time) > 0) + { + if (decrement_count > cli_join_part_count(sptr)) + cli_join_part_count(sptr) = 0; + else + cli_join_part_count(sptr) -= decrement_count; + } + else if ((CurrentTime - (cli_last_join(sptr))) < feature_int(FEAT_SPAM_JOINED_TIME)) + { + /* oh, its a possible spambot */ + cli_join_part_count(sptr)++; + } + + cli_last_part(sptr) = CurrentTime; } Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.19 ircd-ircdev/ircd/ircd_features.c:1.20 --- ircd-ircdev/ircd/ircd_features.c:1.19 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ircd/ircd_features.c Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of configurable feature support. - * @version $Id: ircd_features.c,v 1.19 2007/04/26 21:17:11 zolty Exp $ + * @version $Id: ircd_features.c,v 1.20 2007/07/21 23:51:39 zolty Exp $ */ #include "config.h" @@ -384,6 +384,7 @@ F_S(HIDDEN_IP, 0, "127.0.0.1", 0), F_B(CONNEXIT_NOTICES, 0, 0, 0), F_B(OPLEVELS, 0, 1, set_isupport_chanmodes), + F_B(ZANNELS, 0, 1, 0), F_B(LOCAL_CHANNELS, 0, 1, set_isupport_chantypes), F_B(TOPIC_BURST, 0, 0, 0), F_B(USER_GLIST, 0, 1, 0), @@ -517,6 +518,10 @@ F_S(NETWORK, 0, "IRC-Dev", set_isupport_network), F_S(URL_CLIENTS, 0, "ftp://ftp.irc.org/pub/irc/clients", 0), F_S(URLREG, 0, "http://cservice.undernet.org/live/", 0), + F_I(SPAM_OPER_COUNTDOWN, 0, 5, 0), + F_I(SPAM_EXPIRE_TIME, 0, 120, 0), + F_I(SPAM_JOINED_TIME, 0, 60, 0), + F_I(SPAM_FJP_COUNT, 0, 5, 0), #undef F_S #undef F_B Index: ircd-ircdev/ircd/m_burst.c diff -u ircd-ircdev/ircd/m_burst.c:1.19 ircd-ircdev/ircd/m_burst.c:1.20 --- ircd-ircdev/ircd/m_burst.c:1.19 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_burst.c Sat Jul 21 16:51:39 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Handlers for BURST command. - * @version $Id: m_burst.c,v 1.19 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_burst.c,v 1.20 2007/07/21 23:51:39 zolty Exp $ */ #include "config.h" @@ -197,6 +197,59 @@ timestamp = atoi(parv[2]); +#if defined(UNDERNET) + if (chptr->creationtime) /* 0 for new (empty) channels, + i.e. when this server just restarted. */ + { + if (parc == 3) /* Zannel BURST? */ + { + /* An empty channel without +A set, will cause a BURST message + with exactly 3 parameters (because all modes have been reset). + If the timestamp on such channels is only a few seconds older + from our own, then we ignore this burst: we do not deop our + own side. + Likewise, we expect the other (empty) side to copy our timestamp + from our own BURST message, even though it is slightly larger. + + The reason for this is to allow people to join an empty + non-A channel (a zannel) during a net.split, and not be + deopped when the net reconnects (with another zannel). When + someone joins a split zannel, their side increments the TS by one. + If they cycle a few times then we still don't have a reason to + deop them. Theoretically I see no reason not to accept ANY timestamp, + but to be sure, we only accept timestamps that are just a few + seconds off (one second for each time they cycled the channel). */ + + /* Don't even deop users who cycled four times during the net.break. */ + if (timestamp < chptr->creationtime && + chptr->creationtime <= timestamp + 4 && + chptr->users != 0) /* Only do this when WE have users, so that + if we do this the BURST that we sent has + parc > 3 and the other side will use the + test below: */ + timestamp = chptr->creationtime; /* Do not deop our side. */ + } + else if (chptr->creationtime < timestamp && + timestamp <= chptr->creationtime + 4 && + chptr->users == 0) + { + /* If one side of the net.junction does the above + timestamp = chptr->creationtime, then the other + side must do this: */ + chptr->creationtime = timestamp; /* Use the same TS on both sides. */ + } + /* In more complex cases, we might still end up with a + creationtime desync of a few seconds, but that should + be synced automatically rather quickly (every JOIN + caries a timestamp and will sync it; modes by users do + not carry timestamps and are accepted regardless). + Only when nobody joins the channel on the side with + the oldest timestamp before a new net.break occurs + precisely inbetween the desync, an unexpected bounce + might happen on reconnect. */ + } +#endif + if (!chptr->creationtime || chptr->creationtime > timestamp) { /* * Kick local members if channel is +i or +k and our TS was larger Index: ircd-ircdev/ircd/m_join.c diff -u ircd-ircdev/ircd/m_join.c:1.19 ircd-ircdev/ircd/m_join.c:1.20 --- ircd-ircdev/ircd/m_join.c:1.19 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_join.c Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for JOIN command. - * @version $Id: m_join.c,v 1.19 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_join.c,v 1.20 2007/07/21 23:51:39 zolty Exp $ */ #include "config.h" ... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-07-21 23:55:14
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-07-21 23:55:14 UTC Added files: depcomp Log message: Author: zoltan <zo...@ir...> Log message: 2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 * Chequeo de Spambot * Fix de DelayedJoin ---------------------- diff included ---------------------- Index: ircd-ircdev/depcomp diff -u /dev/null ircd-ircdev/depcomp:1.1 --- /dev/null Sat Jul 21 16:55:15 2007 +++ ircd-ircdev/depcomp Sat Jul 21 16:55:01 2007 @@ -0,0 +1,522 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2004-05-31.23 + +# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva <ol...@dc...>. + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to <bug...@gn...>. +EOF + exit 0 + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit 0 + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. + "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + stat=$? + + if test -f "$tmpdepfile"; then : + else + stripped=`echo "$stripped" | sed 's,^.*/,,'` + tmpdepfile="$stripped.u" + fi + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + outname="$stripped.o" + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # Dependencies are output in .lo.d with libtool 1.4. + # With libtool 1.5 they are output both in $dir.libs/$base.o.d + # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the + # latter, because the former will be cleaned when $dir.libs is + # erased. + tmpdepfile1="$dir.libs/$base.lo.d" + tmpdepfile2="$dir$base.o.d" + tmpdepfile3="$dir.libs/$base.d" + "$@" -Wc,-MD + else + tmpdepfile1="$dir$base.o.d" + tmpdepfile2="$dir$base.d" + tmpdepfile3="$dir$base.d" + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + if test -f "$tmpdepfile1"; then + tmpdepfile="$tmpdepfile1" + elif test -f "$tmpdepfile2"; then + tmpdepfile="$tmpdepfile2" + else + tmpdepfile="$tmpdepfile3" + fi + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2007-09-20 21:01:16
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-09-20 21:01:04 UTC Modified files: ChangeLog ChangeLog.es configure.ac ircd-patch test.l include/client.h include/crule.h include/msgq.h include/patchlevel.h include/send.h ircd/channel.c ircd/convert-conf.c ircd/crule.c ircd/gline.c ircd/hash.c ircd/ircd.c ircd/ircd_crypt.c ircd/ircd_crypt_native.c ircd/ircd_events.c ircd/ircd_features.c ircd/ircd_log.c ircd/ircd_parser.y ircd/ircd_res.c ircd/ircd_reslib.c ircd/ircd_signal.c ircd/listener.c ircd/m_account.c ircd/m_admin.c ircd/m_asll.c ircd/m_away.c ircd/m_burst.c ircd/m_cap.c ircd/m_clearmode.c ircd/m_connect.c ircd/m_create.c ircd/m_defaults.c ircd/m_destruct.c ircd/m_endburst.c ircd/m_invite.c ircd/m_join.c ircd/m_kick.c ircd/m_kill.c ircd/m_list.c ircd/m_lusers.c ircd/m_mode.c ircd/m_names.c ircd/m_nick.c ircd/m_oper.c ircd/m_part.c ircd/m_pass.c ircd/m_pong.c ircd/m_privs.c ircd/m_rehash.c ircd/m_silence.c ircd/m_stats.c ircd/m_topic.c ircd/m_userhost.c ircd/m_userip.c ircd/m_version.c ircd/m_wallvoices.c ircd/m_who.c ircd/m_whois.c ircd/match.c ircd/motd.c ircd/msgq.c ircd/os_generic.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_debug.c ircd/s_err.c ircd/s_misc.c ircd/s_stats.c ircd/s_user.c ircd/send.c ircd/table_gen.c ircd/umkpasswd.c ircd/uping.c Added files: tools/iauth-test Log message: Cleanup ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.56 ircd-ircdev/ChangeLog:1.57 --- ircd-ircdev/ChangeLog:1.56 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/ChangeLog Thu Sep 20 14:00:31 2007 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.56 2007/07/21 23:51:39 zolty Exp $ +# $Id: ChangeLog,v 1.57 2007/09/20 21:00:31 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-09-20 Toni Garc�a <zo...@ir...> 1.0.beta8 + * Cleanup + 2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 * Spambot checking * DelayedJoin fix Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.56 ircd-ircdev/ChangeLog.es:1.57 --- ircd-ircdev/ChangeLog.es:1.56 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/ChangeLog.es Thu Sep 20 14:00:31 2007 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.56 2007/07/21 23:51:39 zolty Exp $ +# $Id: ChangeLog.es,v 1.57 2007/09/20 21:00:31 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-09-20 Toni Garc�a <zo...@ir...> 1.0.beta8 + * Cleanup + 2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 * Chequeo de Spambot * Fix de DelayedJoin Index: ircd-ircdev/configure.ac diff -u ircd-ircdev/configure.ac:1.1 ircd-ircdev/configure.ac:1.2 --- ircd-ircdev/configure.ac:1.1 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/configure.ac Thu Sep 20 14:00:31 2007 @@ -23,7 +23,7 @@ dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl -dnl @(#)$Id: configure.ac,v 1.1 2007/04/22 13:56:17 zolty Exp $ +dnl @(#)$Id: configure.ac,v 1.2 2007/09/20 21:00:31 zolty Exp $ dnl AC_INIT([IRC-Dev IRC Daemon],[1.0.beta],[de...@ir...],[ircd-ircdev]) @@ -44,7 +44,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]) -AC_REVISION($Revision: 1.1 $) +AC_REVISION($Revision: 1.2 $) AC_CONFIG_SRCDIR([ircd/ircd.c]) AM_INIT_AUTOMAKE([foreign]) @@ -88,8 +88,8 @@ dnl Check out header files AC_HEADER_STDC AC_CHECK_HEADERS([crypt.h poll.h inttypes.h stdint.h sys/devpoll.h \ - sys/epoll.h sys/event.h sys/param.h sys/resource.h \ - sys/socket.h]) + sys/epoll.h sys/event.h sys/param.h sys/resource.h \ + sys/socket.h]) dnl Checks for typedefs, structures, compiler characteristics, etc. AC_C_CONST @@ -100,8 +100,8 @@ AC_TYPE_UID_T unet_CHECK_TYPE_SIZES AC_CHECK_TYPE([struct sockaddr_in6], - [unet_have_sockaddr_in6=yes], - [unet_have_sockaddr_in6=no], + [unet_have_sockaddr_in6=yes], + [unet_have_sockaddr_in6=no], [#include <sys/types.h> #include <netinet/in.h>]) @@ -117,11 +117,11 @@ curl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void ; do for t in int size_t unsigned long "unsigned long" ; do - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> + AC_TRY_COMPILE([#include <sys/types.h> #include <sys/socket.h> -int getpeername (int $arg2 *, $t *);]], [[$t len; - getpeername(0, 0, &len);]])],[curl_cv_socklen_t_equiv="$t" - break],[]) +int getpeername (int $arg2 *, $t *);],[$t len; + getpeername(0, 0, &len);], [curl_cv_socklen_t_equiv="$t" + break]) done done ]) @@ -134,10 +134,6 @@ dnl Checks for library functions. AC_CHECK_FUNCS([kqueue setrlimit getrusage times]) -dnl Do we have restarting syscalls? -dnl XXX Note: this macro has been obsoleted -AC_SYS_RESTARTABLE_SYSCALLS - dnl Figure out non-blocking and signals unet_NONBLOCKING unet_SIGNALS @@ -255,11 +251,11 @@ dnl XXX Should rework this check AC_MSG_CHECKING([whether epoll functions are properly defined]) AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <sys/epoll.h>], - [epoll_create(10);])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - AC_DEFINE([EPOLL_NEED_BODY], 1, - [Define to implement epoll system calls])]) + [epoll_create(10);])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_DEFINE([EPOLL_NEED_BODY], 1, + [Define to implement epoll system calls])]) fi AM_CONDITIONAL(ENGINE_EPOLL, [test x"$unet_cv_enable_epoll" = xyes]) @@ -306,7 +302,7 @@ dnl How to copy one va_list to another? AC_CACHE_CHECK([for va_copy], unet_cv_c_va_copy, [AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdarg.h>], - [va_list ap1, ap2; va_copy(ap1, ap2);])], + [va_list ap1, ap2; va_copy(ap1, ap2);])], [unet_cv_c_va_copy="yes"], [unet_cv_c_va_copy="no"])]) @@ -316,7 +312,7 @@ AC_CACHE_CHECK([for __va_copy], unet_cv_c___va_copy, [AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdarg.h>], - [va_list ap1, ap2; __va_copy(ap1, ap2);])], + [va_list ap1, ap2; __va_copy(ap1, ap2);])], [unet_cv_c___va_copy="yes"], [unet_cv_c___va_copy="no"])]) @@ -329,7 +325,7 @@ if test -f /etc/resolv.conf; then unet_domain=`awk '/^domain/ { print $2; exit }' /etc/resolv.conf` if test x"$unet_domain" = x; then - unet_domain=`awk '/^search/ { print $2; exit }' /etc/resolv.conf` + unet_domain=`awk '/^search/ { print $2; exit }' /etc/resolv.conf` fi fi @@ -352,7 +348,7 @@ unet_VALUE([maxcon], $unet_maxcon, [Maximum number of connections server will accept], - [max connections], + [max connections], [# Fix up a spurious --with-maxcon if test x"$unet_cv_with_maxcon" = xyes -o x"$unet_cv_with_maxcon" = xno; then unet_cv_with_maxcon=$unet_maxcon @@ -362,7 +358,7 @@ [Maximum number of network connections]) dnl Report configuration -dnl AC_CONFIG_COMMANDS([default-1],[[echo " +dnl AC_OUTPUT_COMMANDS([echo " dnl ircu is now hopefully configured for your system. dnl Host system: $host_os @@ -377,7 +373,7 @@ dnl kqueue() engine: $unet_cv_enable_kqueue dnl /dev/poll engine: $unet_cv_enable_devpoll dnl epoll() engine: $unet_cv_enable_epoll -dnl "]],[[]]) +dnl "]) dnl Output everything... dnl AC_OUTPUT Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.21 ircd-ircdev/include/client.h:1.22 --- ircd-ircdev/include/client.h:1.21 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/include/client.h Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.21 2007/07/21 23:51:39 zolty Exp $ + * @version $Id: client.h,v 1.22 2007/09/20 21:00:31 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -325,7 +325,6 @@ /** Get client's warning countdown value. */ #define cli_warn_countdown(cli) (cli_connect(cli)->con_warn_countdown) - /** Get number of incoming bytes queued for client. */ #define cli_count(cli) con_count(cli_connect(cli)) /** Get file descriptor for sending in client's direction. */ Index: ircd-ircdev/include/crule.h diff -u ircd-ircdev/include/crule.h:1.6 ircd-ircdev/include/crule.h:1.7 --- ircd-ircdev/include/crule.h:1.6 Sun Apr 22 06:56:19 2007 +++ ircd-ircdev/include/crule.h Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file crule.h * @brief Interfaces and declarations for connection rule checking. - * @version $Id: crule.h,v 1.6 2007/04/22 13:56:19 zolty Exp $ + * @version $Id: crule.h,v 1.7 2007/09/20 21:00:31 zolty Exp $ */ #ifndef INCLUDED_crule_h #define INCLUDED_crule_h @@ -32,7 +32,6 @@ struct CRuleNode; extern int crule_eval(struct CRuleNode* rule); -extern struct CRuleNode* crule_parse(const char* rule); extern char *crule_text(struct CRuleNode *rule); extern struct CRuleNode* crule_make_and(struct CRuleNode *left, Index: ircd-ircdev/include/msgq.h diff -u ircd-ircdev/include/msgq.h:1.7 ircd-ircdev/include/msgq.h:1.8 --- ircd-ircdev/include/msgq.h:1.7 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/include/msgq.h Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Outbound message queue interface and declarations. - * @version $Id: msgq.h,v 1.7 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: msgq.h,v 1.8 2007/09/20 21:00:31 zolty Exp $ */ #ifndef INCLUDED_msgq_h #define INCLUDED_msgq_h @@ -50,7 +50,7 @@ struct MsgQList { struct Msg *head; /**< First Msg in queue list */ struct Msg *tail; /**< Last Msg in queue list */ - unsigned int sent; /**< Bytes in *head that have already been sent */ + unsigned int sent; /**< Bytes in *head that have already been sent */ }; /** Entire two-priority message queue for a destination. */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.55 ircd-ircdev/include/patchlevel.h:1.56 --- ircd-ircdev/include/patchlevel.h:1.55 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/include/patchlevel.h Thu Sep 20 14:00:31 2007 @@ -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.55 2007/07/21 23:51:39 zolty Exp $ + * $Id: patchlevel.h,v 1.56 2007/09/20 21:00:31 zolty Exp $ * */ -#define PATCHLEVEL "7" +#define PATCHLEVEL "8" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/send.h diff -u ircd-ircdev/include/send.h:1.10 ircd-ircdev/include/send.h:1.11 --- ircd-ircdev/include/send.h:1.10 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/include/send.h Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file send.h * @brief Send messages to certain targets. - * @version $Id: send.h,v 1.10 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: send.h,v 1.11 2007/09/20 21:00:31 zolty Exp $ */ #ifndef INCLUDED_send_h #define INCLUDED_send_h @@ -116,7 +116,7 @@ #define SKIP_SERVERS 0x10 /**< skip server links */ /* Send command to all users having a particular flag set */ -extern void sendwallto_group(struct Client *from, int type, +extern void sendwallto_group(struct Client *from, int type, struct Client *one, const char *pattern, ...); Index: ircd-ircdev/ircd-patch diff -u ircd-ircdev/ircd-patch:1.1 ircd-ircdev/ircd-patch:1.2 --- ircd-ircdev/ircd-patch:1.1 Tue Dec 28 03:15:43 2004 +++ ircd-ircdev/ircd-patch Thu Sep 20 14:00:31 2007 @@ -20,7 +20,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA -# $Id: ircd-patch,v 1.1 2004/12/28 11:15:43 zolty Exp $ +# $Id: ircd-patch,v 1.2 2007/09/20 21:00:31 zolty Exp $ # # # Experimental centralized patch system for ircu @@ -51,15 +51,15 @@ update_patchlist() { list="" for name in $PLIST ; do - [ -f $MARKS/$name ] && list="$list.$name" + test -f $MARKS/$name && list="$list.$name" done echo "/* This file was automatically generated by ircd-patch */" > $PLIST_FILE echo "#define PATCHLIST \"$list\"" >> $PLIST_FILE echo "Updated $PLIST_FILE" } -[ ! -d $DIFFS ] && (echo "*** Missing $DIFFS, creating it" ; mkdir -p $DIFFS) -[ ! -d $MARKS ] && (echo "*** Missing $MARKS, creating it" ; mkdir -p $MARKS) +test -d $DIFFS || (echo "*** Missing $DIFFS, creating it" ; mkdir -p $DIFFS) +test -d $MARKS || (echo "*** Missing $MARKS, creating it" ; mkdir -p $MARKS) dry_run() { rejects=`patch -p0 -N -t --dry-run $2 < $1 | grep "hunk FAILED" | sed -e 's/.*to file / /;s/\.rej$//'` @@ -69,7 +69,7 @@ patch_list() { echo "Available patches (* marks applied patches):" for name in $PLIST ; do - [ -f $MARKS/$name ] && echo -n " * " || echo -n " " + test -f $MARKS/$name && echo -n " * " || echo -n " " echo $name done echo "Done." @@ -78,11 +78,11 @@ patch_test() { echo "Testing patches:" list="$*" - [ -z "$list" ] && list=$PLIST + test "z$list" = "z" && list=$PLIST for name in $list ; do fname=$DIFFS/$name.diff echo -ne " $name\t" - if [ ! -f $MARKS/$name ] ; then + if test ! -f $MARKS/$name ; then if dry_run "$fname" ; then echo -n " OK" else @@ -106,19 +106,19 @@ patch_add() { name=$1 fname="$DIFFS/$name.diff" - if [ ! -f $fname ]; then + if test ! -f $fname ; then echo "Patch $name ($fname) does not exist" retcode=3 return fi - if [ $force -lt 2 -a -f $MARKS/$name ] ; then + if test $force -lt 2 -a -f $MARKS/$name ; then echo "Patch $name seems already applied" retcode=4 return fi - if [ $force -lt 1 ]; then + if test $force -lt 1 ; then echo -n "Testing $fname... " if ! dry_run $fname ; then echo "Failed (use -f to force)." @@ -143,19 +143,19 @@ patch_del() { name=$1 fname="$DIFFS/$name.diff" - if [ ! -f $fname ]; then + if test ! -f $fname ; then echo "Patch $name ($fname) does not exist" retcode=3 return fi - if [ $force -lt 2 -a ! -f $MARKS/$name ] ; then + if test $force -lt 2 -a ! -f $MARKS/$name ; then echo "Patch $name doesn't seem to be applied" retcode=4 return fi - if [ $force -lt 1 ]; then + if test $force -lt 1 ; then echo -n "Testing $fname... " if ! dry_run $fname -R ; then echo "Failed (use -f to force)." @@ -191,8 +191,8 @@ echo "a patch is already applied." } -while [ "$1" == "-f" ]; do - force=$[$force + 1] +while test "$1" = "-f" ; do + force=`expr $force + 1` shift done Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.32 ircd-ircdev/ircd/channel.c:1.33 --- ircd-ircdev/ircd/channel.c:1.32 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/ircd/channel.c Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.32 2007/07/21 23:51:39 zolty Exp $ + * @version $Id: channel.c,v 1.33 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -82,7 +82,6 @@ set_ban_mask(struct Ban *ban, const char *banstr) { char *sep; - assert(banstr != NULL); ircd_strncpy(ban->banstr, banstr, sizeof(ban->banstr) - 1); sep = strrchr(banstr, '@'); @@ -303,7 +302,7 @@ * on the channel and we want them to contact IRC opers * who then will educate them on the use of Apass/Upass. */ - if (!chptr->mode.apass[0]) /* If no Apass, reset all modes. */ + if (!chptr->mode.apass[0]) /* If no Apass, reset all modes. */ { struct Ban *link, *next; chptr->mode.mode = 0; @@ -319,11 +318,10 @@ if (!feature_bool(FEAT_OPLEVELS)) { destruct_channel(chptr); - destruct_channel(chptr); return 0; } } - if (TStime() - chptr->creationtime < 172800) /* Channel younger than 48 hours? */ + if (TStime() - chptr->creationtime < 172800) /* Channel younger than 48 hours? */ schedule_destruct_event_1m(chptr); /* Get rid of it in approximately 4-5 minutes */ else schedule_destruct_event_48h(chptr); /* Get rid of it in approximately 48 hours */ @@ -452,10 +450,9 @@ hostmask = banlist->banstr + banlist->nu_len + 1; if (!((banlist->flags & BAN_IPMASK) && ipmask_check(&cli_ip(cptr), &banlist->address, banlist->addrbits)) - && match(hostmask, cli_user(cptr)->host) - && !(sr && !match(hostmask, sr))) - continue; - + && match(hostmask, cli_user(cptr)->host) + && !(sr && !match(hostmask, sr))) + continue; /* If an exception matches, no ban can match. */ if (banlist->flags & BAN_EXCEPTION) return NULL; @@ -598,7 +595,7 @@ } return 1; } - + /** Remove a user from a channel * This is the generic entry point for removing a user from a channel, this @@ -719,6 +716,7 @@ #if defined(UNDERNET) /* Discourage using the Apass to get op. They should use the upass. */ + if (IsChannelManager(member) && member->channel->mode.apass[0]) return 0; #endif @@ -1423,9 +1421,9 @@ * Adds an invite for a user to a channel. Limits the number of invites * to FEAT_MAXCHANNELSPERUSER. Does not notify the user. * - * @param[in] cptr The client to be invited. - * @param[in] chptr The channel to be invited to. - * @param[in] inviter The client inviting \a cptr. + * @param[in] cptr The client to be invited. + * @param[in] chptr The channel to be invited to. + * @param[in] inviter The client inviting \a cptr. */ void add_invite(struct Client *cptr, struct Channel *chptr, struct Client *inviter) { @@ -1433,6 +1431,7 @@ struct Invite *inv; int max = feature_int(FEAT_MAXCHANNELSPERUSER); int count = 0; + /* See if the user is already invited. */ while ((inv = *uprev) != NULL) { @@ -1790,32 +1789,32 @@ if ((totalbuflen - IRCD_MAX(9, tmp)) <= 0) /* don't overflow buffer */ MB_TYPE(mbuf, i) |= MODE_SAVE; /* save for later */ else { - char mode_char = 0; #if defined(DDB) || defined(SERVICES) + char mode_char = 0; + switch(MB_TYPE(mbuf, i) & (MODE_OWNER | MODE_CHANOP | MODE_VOICE)) -#else - switch(MB_TYPE(mbuf, i) & (MODE_CHANOP | MODE_VOICE)) -#endif { -#if defined(DDB) || defined(SERVICES) case MODE_OWNER: mode_char = 'q'; break; -#endif case MODE_CHANOP: mode_char = 'o'; break; case MODE_VOICE: mode_char = 'v'; break; - } - bufptr[(*bufptr_i)++] = mode_char; + } + bufptr[(*bufptr_i)++] = mode_char; + + totalbuflen -= IRCD_MAX(9, tmp) + 1; + } + + } else if (MB_TYPE(mbuf, i) & MODE_BAN) { +#else + bufptr[(*bufptr_i)++] = MB_TYPE(mbuf, i) & MODE_CHANOP ? 'o' : 'v'; totalbuflen -= IRCD_MAX(9, tmp) + 1; } -#if defined(UNDERNET) } else if (MB_TYPE(mbuf, i) & (MODE_BAN | MODE_APASS | MODE_UPASS)) { -#else - } else if (MB_TYPE(mbuf, i) & MODE_BAN) { #endif tmp = strlen(MB_STRING(mbuf, i)); @@ -1974,6 +1973,7 @@ #endif /* defined(DDB) */ sendcmdto_channel(app_source, CMD_MODE, mbuf->mb_channel, NULL, SKIP_SERVERS, "%H %s%s%s%s%s%s%s%s", mbuf->mb_channel, +/* TODO-ZOLTAN: Revisar */ /* rembuf_i || rembuf_local_i ? "-" : "", rembuf, rembuf_local, addbuf_i || addbuf_local_i ? "+" : "", @@ -2012,9 +2012,8 @@ } #if defined(UNDERNET) - /* if we're changing oplevels we know the oplevel, pass it on */ - if (mbuf->mb_channel->mode.apass[0] - && (MB_TYPE(mbuf, i) & MODE_CHANOP) + /* if we're changing oplevels and we know the oplevel, pass it on */ + if ((MB_TYPE(mbuf, i) & MODE_CHANOP) && MB_OPLEVEL(mbuf, i) < MAXOPLEVEL) *strptr_i += ircd_snprintf(0, strptr + *strptr_i, BUFSIZE - *strptr_i, " %s%s:%d", @@ -2182,6 +2181,7 @@ mode &= (MODE_ADD | MODE_DEL | MODE_PRIVATE | MODE_SECRET | MODE_MODERATED | MODE_TOPICLIMIT | MODE_INVITEONLY | MODE_NOPRIVMSGS | MODE_REGONLY | #if defined(DDB) || defined(SERVICES) +/* TODO-ZOLTAN: Revisar */ /* MODE_REGCHAN | */ #endif MODE_DELJOINS | MODE_WASDELJOINS); @@ -2615,7 +2615,7 @@ if (!state->mbuf) return; - + /* Skip if this is a burst, we have a key already and the new key is * after the old one alphabetically */ if ((state->flags & MODE_PARSE_BURST) && @@ -2648,8 +2648,7 @@ if (state->flags & MODE_PARSE_SET) { if (state->dir == MODE_DEL) /* remove the old key */ *state->chptr->mode.key = '\0'; - else if (!state->chptr->mode.key[0] - || ircd_strcmp(t_str, state->chptr->mode.key) < 0) + else ircd_strncpy(state->chptr->mode.key, t_str, KEYLEN); } } @@ -2699,7 +2698,7 @@ } else { send_reply(state->sptr, ERR_NOMANAGER, state->chptr->chname, (TStime() - state->chptr->creationtime < 172800) ? - "approximately 4-5 minutes" : "approximately 48 hours"); + "approximately 4-5 minutes" : "approximately 48 hours"); } return; } @@ -2840,6 +2839,7 @@ return; } } + if (state->done & DONE_APASS) /* allow apass to be set only once */ return; state->done |= DONE_APASS; @@ -2885,18 +2885,19 @@ ircd_strncpy(state->chptr->mode.apass, t_str, KEYLEN); /* Make it VERY clear to the user that this is a one-time password */ if (MyUser(state->sptr)) { - send_reply(state->sptr, RPL_APASSWARN_SET, state->chptr->mode.apass); - send_reply(state->sptr, RPL_APASSWARN_SECRET, state->chptr->chname, + send_reply(state->sptr, RPL_APASSWARN_SET, state->chptr->mode.apass); + send_reply(state->sptr, RPL_APASSWARN_SECRET, state->chptr->chname, state->chptr->mode.apass); } /* Give the channel manager level 0 ops. There should not be tested for IsChannelManager here because - on the local server it is impossible to set the apass if one - isn't a channel manager and remote servers might need to sync - the oplevel here: when someone creates a channel (and becomes - channel manager) during a net.break, and only sets the Apass - after the net rejoined, they will have oplevel MAXOPLEVEL on - all remote servers. */ + on the local server it is impossible to set the apass if one + isn't a channel manager and remote servers might need to sync + the oplevel here: when someone creates a channel (and becomes + channel manager) during a net.break, and only sets the Apass + after the net rejoined, they will have oplevel MAXOPLEVEL on + all remote servers. */ + if (state->member) SetOpLevel(state->member, 0); } else { /* remove the old apass */ @@ -3105,7 +3106,6 @@ continue; } else if (ban->flags & BAN_DEL) { /* Deleted a ban? */ char *bandup; - DupString(bandup, ban->banstr); modebuf_mode_string(state->mbuf, MODE_DEL | MODE_BAN, bandup, 1); @@ -3145,7 +3145,6 @@ len -= banlen; } else { char *bandup; - /* add the ban to the buffer */ DupString(bandup, ban->banstr); modebuf_mode_string(state->mbuf, MODE_ADD | MODE_BAN, @@ -3300,7 +3299,7 @@ /* prevent +k users from being deopped */ if (IsChannelService(state->cli_change[i].client)) { if (state->flags & MODE_PARSE_FORCE) /* it was forced */ - sendto_opmask(0, SNO_HACK4, "Deop of +k user on %H by %s", + sendto_opmask(0, SNO_HACK4, "Deop of +k user on %H by %s", state->chptr, (IsServer(state->sptr) ? cli_name(state->sptr) : cli_name((cli_user(state->sptr))->server))); @@ -3327,10 +3326,10 @@ } #if defined(UNDERNET) - /* Forbid deopping other members with an oplevel less than + /* Forbid deopping other members with an oplevel less than * one's own level, and other members with an oplevel the same * as one's own unless both are at MAXOPLEVEL. */ - if (state->sptr != state->cli_change[i].client + if (state->sptr != state->cli_change[i].client && state->member && ((OpLevel(member) < OpLevel(state->member)) || (OpLevel(member) == OpLevel(state->member) @@ -3361,8 +3360,8 @@ SetOpLevel(member, state->cli_change[i].oplevel); else if (!state->member) SetOpLevel(member, MAXOPLEVEL); - else if (!state->chptr->mode.apass[0] || OpLevel(state->member) == MAXOPLEVEL) - SetOpLevel(member, MAXOPLEVEL); + else if (OpLevel(state->member) >= MAXOPLEVEL) + SetOpLevel(member, OpLevel(state->member)); else SetOpLevel(member, OpLevel(state->member) + 1); } @@ -3763,8 +3762,8 @@ * exactly the same logic, albeit somewhat more concise, as was in * the original m_part.c */ - /* got to remove user here */ - if (jbuf->jb_type == JOINBUF_TYPE_PARTALL || is_local) + if (jbuf->jb_type == JOINBUF_TYPE_PARTALL || + is_local) /* got to remove user here */ remove_user_from_channel(jbuf->jb_source, chan); } else { #if defined(UNDERNET) @@ -3785,7 +3784,7 @@ #endif /* send JOIN notification to all servers (CREATE is sent later). */ - if (jbuf->jb_type != JOINBUF_TYPE_CREATE && !IsLocalChannel(chan->chname)) + if (jbuf->jb_type != JOINBUF_TYPE_CREATE && !is_local) { #if defined(DDB) if (flags & CHFL_OWNER) @@ -3808,7 +3807,7 @@ /* send an op, too, if needed */ #if defined(UNDERNET) if (flags & CHFL_CHANOP && (oplevel < MAXOPLEVEL || !MyUser(jbuf->jb_source))) - sendcmdto_channel((chan->mode.apass[0] ? &his : jbuf->jb_source), + sendcmdto_channel((chan->mode.apass[0] ? &his : jbuf->jb_source), CMD_MODE, chan, NULL, SKIP_SERVERS, "%H +o %C", chan, jbuf->jb_source); #elif defined(DDB) Index: ircd-ircdev/ircd/convert-conf.c diff -u ircd-ircdev/ircd/convert-conf.c:1.3 ircd-ircdev/ircd/convert-conf.c:1.4 --- ircd-ircdev/ircd/convert-conf.c:1.3 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ircd/convert-conf.c Thu Sep 20 14:00:31 2007 @@ -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: convert-conf.c,v 1.3 2007/04/26 21:17:11 zolty Exp $ + * $Id: convert-conf.c,v 1.4 2007/09/20 21:00:31 zolty Exp $ * convert-conf.c - Convert ircu2.10.11 ircd.conf to ircu2.10.12 format. * */ @@ -218,12 +218,12 @@ { for (sl = conn->origins; sl; sl = sl->next) fprintf(stdout, "# %s\n", sl->value); - if (conn->host == NULL + if (conn->host == NULL || conn->password == NULL || conn->class == NULL) { - fprintf(stderr,"H:line missing C:line for %s\n", conn->name); - continue; - } + fprintf(stderr,"H:line missing C:line for %s\n", conn->name); + continue; + } fprintf(stdout, "Connect {\n\tname =\"%s\";\n\thost = \"%s\";\n" Index: ircd-ircdev/ircd/crule.c diff -u ircd-ircdev/ircd/crule.c:1.7 ircd-ircdev/ircd/crule.c:1.8 --- ircd-ircdev/ircd/crule.c:1.7 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/ircd/crule.c Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ /** * @file * @brief Connection rule parser and checker - * @version $Id: crule.c,v 1.7 2007/04/22 13:56:20 zolty Exp $ + * @version $Id: crule.c,v 1.8 2007/09/20 21:00:31 zolty Exp $ * * by Tony Vencill (Tonto on IRC) <ve...@bg...> * rewritten by Michael Poole <md...@tr...> @@ -43,9 +43,6 @@ #include "s_bsd.h" #include "struct.h" -#include <stdio.h> -#include <stdlib.h> - /** Evaluation function for a connection rule. */ typedef int (*crule_funcptr) (struct CRuleNode *); Index: ircd-ircdev/ircd/gline.c diff -u ircd-ircdev/ircd/gline.c:1.20 ircd-ircdev/ircd/gline.c:1.21 --- ircd-ircdev/ircd/gline.c:1.20 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ircd/gline.c Thu Sep 20 14:00:31 2007 @@ -23,7 +23,7 @@ */ /** @file * @brief Implementation of Gline manipulation functions. - * @version $Id: gline.c,v 1.20 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: gline.c,v 1.21 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -71,7 +71,6 @@ /** List of BadChan G-lines. */ static struct Gline* BadChanGlineList = 0; - /** Count number of users who match \a mask. * @param[in] mask user\@host or user\@ip mask to check. * @return Count of matching users. @@ -82,7 +81,7 @@ struct Client *acptr; int count = 0; char namebuf[USERLEN + HOSTLEN + 2]; - char ipbuf[USERLEN + 16 + 2]; + char ipbuf[USERLEN + SOCKIPLEN + 2]; for (acptr = GlobalClientList; acptr; acptr = cli_next(acptr)) { if (!IsUser(acptr)) @@ -899,7 +898,7 @@ send_reply(sptr, RPL_STATSGLINE, 'G', gline->gl_user, gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "", - gline->gl_expire + TSoffset, + gline->gl_expire + TSoffset, GlineIsActive(gline) ? '+' : '-', gline->gl_reason); } Index: ircd-ircdev/ircd/hash.c diff -u ircd-ircdev/ircd/hash.c:1.14 ircd-ircdev/ircd/hash.c:1.15 --- ircd-ircdev/ircd/hash.c:1.14 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/hash.c Thu Sep 20 14:00:31 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Hash table management. - * @version $Id: hash.c,v 1.14 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: hash.c,v 1.15 2007/09/20 21:00:31 zolty Exp $ * * This file used to use some very complicated hash function. Now it * uses CRC-32, but effectively remaps each input byte according to a @@ -488,7 +488,6 @@ stats_nickjupes(struct Client* to, const struct StatDesc* sd, char* param) { int i; - for (i = 0; i < JUPEHASHSIZE; i++) if (jupeTable[i][0]) send_reply(to, RPL_STATSJLINE, jupeTable[i]); Index: ircd-ircdev... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-09-21 06:59:37
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-09-21 06:59:37 UTC Modified files: Makefile.in config.h.in configure ircd/Makefile.in ircd/test/Makefile.in Log message: Regeneracion de Configure y Makefiles ---------------------- diff included ---------------------- Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.11 ircd-ircdev/Makefile.in:1.12 --- ircd-ircdev/Makefile.in:1.11 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/Makefile.in Thu Sep 20 23:59:26 2007 @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,245 +10,154 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = . -DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(top_srcdir)/configure COPYING ChangeLog INSTALL TODO \ - acconfig.h config.guess config.sub depcomp install-sh missing \ - ylwrap -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -man8dir = $(mandir)/man8 -am__installdirs = "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)" -NROFF = nroff -MANS = $(man_MANS) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -sysconfDATA_INSTALL = $(INSTALL_DATA) -DATA = $(sysconf_DATA) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ +AMDEPBACKSLASH = @AMDEPBACKSLASH@ AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ +am__isrc = @am__isrc@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ + SUBDIRS = ircd -EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch \ - ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es \ - TODO TODO.es + +EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es TODO TODO.es # Install man page and example.conf man_MANS = doc/en/ircd.8 sysconf_DATA = doc/ircd.sample-en.conf doc/ircd.sample-es.conf -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = [config.h] +CONFIG_CLEAN_FILES = +man8dir = $(mandir)/man8 +MANS = $(man_MANS) +NROFF = nroff +DATA = $(sysconf_DATA) + +DIST_COMMON = ./stamp-h.in COPYING ChangeLog INSTALL Makefile.am \ +Makefile.in TODO acconfig.h acinclude.m4 aclocal.m4 config.guess \ +config.sub configure configure.ac install-sh missing + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +all: all-redirect .SUFFIXES: -am--refresh: - @: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ - cd $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): configure.ac acinclude.m4 + cd $(srcdir) && $(ACLOCAL) -$(top_srcdir)/configure: $(am__configure_deps) +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -config.h: stamp-h1 +[config.h]: stamp-h @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + rm -f stamp-h; \ + $(MAKE) stamp-h; \ else :; fi - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: $(am__configure_deps) $(top_srcdir)/acconfig.h +stamp-h: $(srcdir)/[config.h].in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES= CONFIG_HEADERS=[config.h] \ + $(SHELL) ./config.status + @echo timestamp > stamp-h 2> /dev/null +$(srcdir)/[config.h].in: $(srcdir)/stamp-h.in + @if test ! -f $@; then \ + rm -f $(srcdir)/stamp-h.in; \ + $(MAKE) $(srcdir)/stamp-h.in; \ + else :; fi +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.ac $(ACLOCAL_M4) acconfig.h cd $(top_srcdir) && $(AUTOHEADER) - rm -f stamp-h1 - touch $@ + @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null + +mostlyclean-hdr: + +clean-hdr: distclean-hdr: - -rm -f config.h stamp-h1 -install-man8: $(man8_MANS) $(man_MANS) - @$(NORMAL_INSTALL) - test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)" - @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ + -rm -f [config.h] + +maintainer-clean-hdr: + +install-man8: + $(mkinstalldirs) $(DESTDIR)$(man8dir) + @list='$(man8_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ case "$$i" in \ *.8*) list="$$list $$i" ;; \ esac; \ @@ -259,53 +166,50 @@ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 8*) ;; \ - *) ext='8' ;; \ - esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \ + echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \ + $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \ done + uninstall-man8: - @$(NORMAL_UNINSTALL) - @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ + @list='$(man8_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ case "$$i" in \ *.8*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 8*) ;; \ - *) ext='8' ;; \ - esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \ - rm -f "$(DESTDIR)$(man8dir)/$$inst"; \ + echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \ + rm -f $(DESTDIR)$(man8dir)/$$inst; \ done +install-man: $(MANS) + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-man8 +uninstall-man: + @$(NORMAL_UNINSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-man8 + install-sysconfDATA: $(sysconf_DATA) @$(NORMAL_INSTALL) - test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" + $(mkinstalldirs) $(DESTDIR)$(sysconfdir) @list='$(sysconf_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \ - $(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ + fi; fi; \ done uninstall-sysconfDATA: @$(NORMAL_UNINSTALL) - @list='$(sysconf_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \ - rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \ + list='$(sysconf_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(sysconfdir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -314,14 +218,13 @@ # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -333,31 +236,21 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -367,337 +260,192 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) [config.h].in $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + test -z "$(ETAGS_ARGS)[config.h].in$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags [config.h].in $$unique $(LISP)) + +mostlyclean-tags: + +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) distdir: $(DISTFILES) - $(am__remove_distdir) - test -d $(distdir) || mkdir $(distdir) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(MANS) $(DATA) config.h -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +all-recursive-am: [config.h] + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +install-exec-am: install-sysconfDATA install-exec: install-exec-recursive + +install-data-am: install-man install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-man uninstall-sysconfDATA +uninstall: uninstall-recursive +all-am: Makefile $(MANS) $(DATA) [config.h] +all-redirect: all-recursive-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(sysconfdir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-man - -install-dvi: install-dvi-recursive - -install-exec-am: install-sysconfDATA - -install-html: install-html-recursive - -install-info: install-info-recursive - -install-man: install-man8 - -install-pdf: install-pdf-recursive - -install-ps: install-ps-recursive - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: +clean-am: clean-hdr clean-tags clean-generic mostlyclean-am -ps: ps-recursive +clean: clean-recursive -ps-am: +distclean-am: distclean-hdr distclean-tags distclean-generic clean-am -uninstall-am: uninstall-man uninstall-sysconfDATA +distclean: distclean-recursive + -rm -... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-09-21 08:03:21
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-09-21 08:03:20 UTC Modified files: Makefile.in config.h.in ircd/Makefile.in ircd/m_destruct.c ircd/m_nick.c ircd/test/Makefile.in Log message: Regeneracion ---------------------- diff included ---------------------- Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.12 ircd-ircdev/Makefile.in:1.13 --- ircd-ircdev/Makefile.in:1.12 Thu Sep 20 23:59:26 2007 +++ ircd-ircdev/Makefile.in Fri Sep 21 01:03:09 2007 @@ -1,6 +1,8 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -10,154 +12,245 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +@SET_MAKE@ -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -host_alias = @host_alias@ +build_triplet = @build@ host_triplet = @host@ -AMDEPBACKSLASH = @AMDEPBACKSLASH@ +subdir = . +DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/configure COPYING ChangeLog INSTALL TODO \ + acconfig.h config.guess config.sub depcomp install-sh missing \ + ylwrap +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +man8dir = $(mandir)/man8 +am__installdirs = "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)" +NROFF = nroff +MANS = $(man_MANS) +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +sysconfDATA_INSTALL = $(INSTALL_DATA) +DATA = $(sysconf_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ -CXX = @CXX@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ -am__isrc = @am__isrc@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ mkdir_p = @mkdir_p@ - +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ SUBDIRS = ircd - -EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es TODO TODO.es +EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch \ + ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es \ + TODO TODO.es # Install man page and example.conf man_MANS = doc/en/ircd.8 sysconf_DATA = doc/ircd.sample-en.conf doc/ircd.sample-es.conf -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = [config.h] -CONFIG_CLEAN_FILES = -man8dir = $(mandir)/man8 -MANS = $(man_MANS) - -NROFF = nroff -DATA = $(sysconf_DATA) - -DIST_COMMON = ./stamp-h.in COPYING ChangeLog INSTALL Makefile.am \ -Makefile.in TODO acconfig.h acinclude.m4 aclocal.m4 config.guess \ -config.sub configure configure.ac install-sh missing - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive -TAR = tar -GZIP_ENV = --best -all: all-redirect .SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) - cd $(top_builddir) \ - && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - -$(ACLOCAL_M4): configure.ac acinclude.m4 - cd $(srcdir) && $(ACLOCAL) +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; -config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck -$(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + +$(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -[config.h]: stamp-h - @if test ! -f $@; then \ - rm -f stamp-h; \ - $(MAKE) stamp-h; \ - else :; fi -stamp-h: $(srcdir)/[config.h].in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES= CONFIG_HEADERS=[config.h] \ - $(SHELL) ./config.status - @echo timestamp > stamp-h 2> /dev/null -$(srcdir)/[config.h].in: $(srcdir)/stamp-h.in +config.h: stamp-h1 @if test ! -f $@; then \ - rm -f $(srcdir)/stamp-h.in; \ - $(MAKE) $(srcdir)/stamp-h.in; \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi -$(srcdir)/stamp-h.in: $(top_srcdir)/configure.ac $(ACLOCAL_M4) acconfig.h - cd $(top_srcdir) && $(AUTOHEADER) - @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null - -mostlyclean-hdr: -clean-hdr: +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) $(top_srcdir)/acconfig.h + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ distclean-hdr: - -rm -f [config.h] - -maintainer-clean-hdr: - -install-man8: - $(mkinstalldirs) $(DESTDIR)$(man8dir) - @list='$(man8_MANS)'; \ - l2='$(man_MANS)'; for i in $$l2; do \ + -rm -f config.h stamp-h1 +install-man8: $(man8_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)" + @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ case "$$i" in \ *.8*) list="$$list $$i" ;; \ esac; \ @@ -166,50 +259,53 @@ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 8*) ;; \ + *) ext='8' ;; \ + esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \ - $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \ done - uninstall-man8: - @list='$(man8_MANS)'; \ - l2='$(man_MANS)'; for i in $$l2; do \ + @$(NORMAL_UNINSTALL) + @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ case "$$i" in \ *.8*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 8*) ;; \ + *) ext='8' ;; \ + esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \ - rm -f $(DESTDIR)$(man8dir)/$$inst; \ + echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \ + rm -f "$(DESTDIR)$(man8dir)/$$inst"; \ done -install-man: $(MANS) - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-man8 -uninstall-man: - @$(NORMAL_UNINSTALL) - $(MAKE) $(AM_MAKEFLAGS) uninstall-man8 - install-sysconfDATA: $(sysconf_DATA) @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(sysconfdir) + test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" @list='$(sysconf_DATA)'; for p in $$list; do \ - if test -f $(srcdir)/$$p; then \ - echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \ - $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \ - else if test -f $$p; then \ - echo " $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \ - $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ - fi; fi; \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \ + $(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \ done uninstall-sysconfDATA: @$(NORMAL_UNINSTALL) - list='$(sysconf_DATA)'; for p in $$list; do \ - rm -f $(DESTDIR)$(sysconfdir)/$$p; \ + @list='$(sysconf_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \ + rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd @@ -218,13 +314,14 @@ # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -236,21 +333,31 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ + rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -260,192 +367,337 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) + mkid -fID $$unique +tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) [config.h].in $(TAGS_DEPENDENCIES) $(LISP) +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)[config.h].in$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags [config.h].in $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - -rm -rf $(distdir) - GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - dc_install_base=`cd $(distdir)/=inst && pwd`; \ - cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) dist - -rm -rf $(distdir) - @banner="$(distdir).tar.gz is ready for distribution"; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes" -dist: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -dist-all: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) distdir: $(DISTFILES) - -rm -rf $(distdir) - mkdir $(distdir) - -chmod 777 $(distdir) - here=`cd $(top_builddir) && pwd`; \ - top_distdir=`cd $(distdir) && pwd`; \ - distdir=`cd $(distdir) && pwd`; \ - cd $(top_srcdir) \ - && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile - @for file in $(DISTFILES); do \ - d=$(srcdir); \ + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ fi; \ done - for subdir in $(SUBDIRS); do \ + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ || exit 1; \ fi; \ done - $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 check-am: all-am check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -all-recursive-am: [config.h] - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -install-exec-am: install-sysconfDATA +all-am: Makefile $(MANS) $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive install-exec: install-exec-recursive - -install-data-am: install-man install-data: install-data-recursive +uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: uninstall-man uninstall-sysconfDATA -uninstall: uninstall-recursive -all-am: Makefile $(MANS) $(DATA) [config.h] -all-redirect: all-recursive-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - $(mkinstalldirs) $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(sysconfdir) - +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: -mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive -mostlyclean: mostlyclean-recursive +clean-am: clean-generic mostlyclean-am -clean-am: clean-hdr clean-tags clean-generic mostlyclean-am +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr distclean-tags -clean: clean-recursive +dvi: dvi-recursive -distclean-am: distclean-hdr distclean-tags distclean-generic clean-am +dvi-am: -distclean: distclean-recursive - -rm -f config.status +html: html-recursive -maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ - maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." +info: info-recursive + +info-am: + +install-data-am: install-man + +install-dvi: install-dvi-recursive + +install-exec-am: install-sysconfDATA + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: install-man8 + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -f config.status + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-09-21 11:10:42
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-09-21 11:10:41 UTC Modified files: doc/en/features.txt doc/ircd.sample-en.conf Log message: Actualizacion de archivos de configuracion en ingles ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/en/features.txt diff -u ircd-ircdev/doc/en/features.txt:1.4 ircd-ircdev/doc/en/features.txt:1.5 --- ircd-ircdev/doc/en/features.txt:1.4 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/doc/en/features.txt Fri Sep 21 04:10:30 2007 @@ -1,4 +1,4 @@ -$Id: features.txt,v 1.4 2005/10/25 09:52:43 zolty Exp $ +$Id: features.txt,v 1.5 2007/09/21 11:10:30 zolty Exp $ Many of the old compile-time options are now configured through the server configuration file, ircd.conf. This file is intended to @@ -7,6 +7,7 @@ NOTE THAT THESE NAMES ARE CASE SENSITIVE! Values are not case sensitive unless stated otherwise in the documentation for that feature. + DOMAINNAME * Type: string * Default: picked by ./configure from /etc/resolv.conf @@ -206,6 +207,14 @@ connections. +NOIDENT + * Type: boolean + * Default: FALSE + +NOIDENT disables RFC 1413 (ident protocol) lookups of clients' +usernames. + + RANDOM_SEED * Type: string * Default: none @@ -285,25 +294,47 @@ * Type: boolean * Default: TRUE -Bla. +This allows local users to set the +A and +U modes (admin and user +passwords, respectively) on channels where they are marked as channel +managers. This feature must be disabled until all servers on the +network are able to interpret and handle these modes correctly. + + +ZANNELS + * Type: boolean + * Default: TRUE + +This preserves empty channels with no admin password so that it is +impractical to become the channel manager by clearing out the channel. +It must be set to FALSE if there are both 2.10.11.x servers and +2.10.12.y servers on the network where y < 4. It should be set to +TRUE whenever the OPLEVELS features is TRUE. LOCAL_CHANNELS - * Type: boolean - * Default: TRUE + * Type: boolean + * Default: TRUE If set, allow users to create local channels. TOPIC_BURST - * Type: boolean - * Default: FALSE + * Type: boolean + * Default: FALSE If set, send the current topic value and timestamp for channels during -burst. This generally only makes sense for hubs to use, and it causes +burst. This generally only makes sense for hubs to use, and it causes a large increase in net.burst size. +USER_GLIST +* Type: boolean +* Default: FALSE + +Optionally removes the ability to list glines by users +(ie /GLINE id...@ho..., shows reason, expiry time etc) + + KILLCHASETIMELIMIT * Type: integer * Default: 30 @@ -335,7 +366,7 @@ NICKLEN * Type: integer - * Default: 12 + * Default: 15 This is the allowed length of the nickname length. It may not be larger than the NICKLEN #define, and should usually be the same @@ -343,21 +374,6 @@ in nickname length for a network. -CHANNELLEN - * Type: integer - * Default: 200 - -This is the allowed length of locally created channels. It may not be -larger than the CHANNELLEN #define. Like the NICKLEN feature, this is -intended to ease changes in channel name length across a network. - -USER_GLIST -* Type: boolean -* Default: FALSE - -Optionally removes the ability to list glines by users -(ie /GLINE id...@ho..., shows reason, expiry time etc) - AVBANLEN * Type: integer * Default: 40 @@ -521,6 +537,15 @@ considered an attack. +CHANNELLEN + * Type: integer + * Default: 200 + +This is the allowed length of locally created channels. It may not be +larger than the CHANNELLEN #define. Like the NICKLEN feature, this is +intended to ease changes in channel name length across a network. + + MPATH * Type: string * Default: "ircd.motd" @@ -550,6 +575,13 @@ ps(1) isn't necessary. +DDBPATH + * Type: string + * Default: "database" + +DDBPATH is the directory for Distributed DataBases. + + TOS_SERVER * Type: integer * Default: 0x08 @@ -674,207 +706,205 @@ This removes /TRACE from users. -HIS_STATS_a +HIS_STATS_NAMESERVERS * Type: boolean * Default: TRUE This removes /STATS a from users. -HIS_STATS_c +HIS_STATS_DDB + * Type: boolean + * Default: TRUE + +This removes /STATS b from users. + + +HIS_STATS_CONNECT * Type: boolean * Default: TRUE This removes /STATS c from users. -HIS_STATS_d +HIS_STATS_CRULES * Type: boolean * Default: TRUE This removes /STATS d from users. -HIS_STATS_e +HIS_STATS_ENGINE * Type: boolean * Default: TRUE This removes /STATS e from users. -HIS_STATS_f +HIS_STATS_FEATURES * Type: boolean * Default: TRUE This removes /STATS f from users. -HIS_STATS_g +HIS_STATS_GLINES * Type: boolean * Default: TRUE This removes /STATS g from users. -HIS_STATS_h +HIS_STATS_HISTOGRAM * Type: boolean * Default: TRUE This removes /STATS h from users. -HIS_STATS_i +HIS_STATS_ACCESS * Type: boolean * Default: TRUE This removes /STATS i from users. -HIS_STATS_j +HIS_STATS_JUPES * Type: boolean * Default: TRUE This removes /STATS j from users. -HIS_STATS_k +HIS_STATS_KLINES * Type: boolean * Default: TRUE This removes /STATS k from users. -HIS_STATS_k - * Type: boolean - * Default: TRUE - -This removes /STATS k from users. - - -HIS_STATS_l +HIS_STATS_LINKS * Type: boolean * Default: TRUE This removes /STATS l from users. -HIS_STATS_L +HIS_STATS_MODULES * Type: boolean * Default: TRUE This removes /STATS L from users. -HIS_STATS_m +HIS_STATS_COMMANDS * Type: boolean * Default: TRUE This removes /STATS m from users. -HIS_STATS_M - * Type: boolean - * Default: TRUE - -This removes /STATS M from users. - - -HIS_STATS_o +HIS_STATS_OPERATORS * Type: boolean * Default: TRUE This removes /STATS o from users. -HIS_STATS_p +HIS_STATS_PORTS * Type: boolean * Default: TRUE This removes /STATS p from users. -HIS_STATS_q +HIS_STATS_QUARANTINES * Type: boolean * Default: TRUE This removes /STATS q from users. -HIS_STATS_r +HIS_STATS_USAGE * Type: boolean * Default: TRUE This removes /STATS r from users. -HIS_STATS_R +HIS_STATS_MAPPINGS * Type: boolean * Default: TRUE This removes /STATS R from users. -HIS_STATS_t +HIS_STATS_LOCALS * Type: boolean * Default: TRUE This removes /STATS t from users. -HIS_STATS_T +HIS_STATS_MOTDS * Type: boolean * Default: TRUE This removes /STATS T from users. -HIS_STATS_u +HIS_STATS_UPTIME * Type: boolean * Default: FALSE This removes /STATS u from users. -HIS_STATS_U +HIS_STATS_UWORLD * Type: boolean * Default: TRUE This removes /STATS U from users. -HIS_STATS_v +HIS_STATS_VSERVERS * Type: boolean * Default: TRUE This removes /STATS v from users. -HIS_STATS_w +HIS_STATS_USERLOAD * Type: boolean * Default: FALSE This removes /STATS w from users. -HIS_STATS_x +HIS_STATS_MEMUSAGE * Type: boolean * Default: TRUE This removes /STATS x from users. -HIS_STATS_y +HIS_STATS_CLASSES * Type: boolean * Default: TRUE This removes /STATS y from users. -HIS_STATS_z +HIS_STATS_MEMORY * Type: boolean * Default: TRUE This removes /STATS z from users. +HIS_STATS_IAUTH + * Type: boolean + * Default: TRUE + +This disables /STATS IAUTH and /STATS IAUTHCONF from users. HIS_WHOIS_SERVERNAME @@ -912,6 +942,13 @@ This replaces hopcount to a static 3 in replies to /WHO. +HIS_MODEWHO + * Type: boolean + * Default: TRUE + +This doesn't show which server performed a channel mode change. + + HIS_BANWHO * Type: boolean * Default: TRUE @@ -947,13 +984,6 @@ This removes server names in net break sign-offs. -HIS_WHOIS_LOCALCHAN - * Type: boolean - * Default: TRUE - -This removes local channels in replies to /WHOIS. - - HIS_SERVERNAME * Type: string * Default: "*.irc-dev.net" @@ -988,3 +1018,45 @@ * Default: "ftp://ftp.irc.org/pub/irc/clients" This defines a URL that users may visit to find compatible IRC clients. + + +URLREG + * Type: string + * Default: "http://cservice.undernet.org/live/" + +This defines a URL that is used in server response 477 (ERR_NEEDREGGEDNICK) to +let users know which website they must visit to obtain a proper account for +authentication. + + +SPAM_OPER_COUNTDOWN + * Type: integer + * Default: 5 + +Number of times a user may continue to join in a spambot-like fashion +between snotices. + + +SPAM_EXPIRE_TIME + * Type: integer + * Default: 120 + +Number of seconds before a spambot-like join is "forgotten". + + +SPAM_JOINED_TIME + * Type: integer + * Default: 60 + +Number of seconds a client must stay in channels before a join/part +sequence is not considered spambot-like. This can be set to zero to +disable spambot warnings. + + +SPAM_FJP_COUNT + * Type: integer + * Default: 5 + +Number of fast join-part sequences before a client is judged to look +like a spambot. + Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.24 ircd-ircdev/doc/ircd.sample-en.conf:1.25 --- ircd-ircdev/doc/ircd.sample-en.conf:1.24 Wed Oct 26 08:13:27 2005 +++ ircd-ircdev/doc/ircd.sample-en.conf Fri Sep 21 04:10:30 2007 @@ -1,6 +1,6 @@ # ircd.conf - configuration file for IRC-Dev's IRCD. # -# Last Updated: 25, October 2005. +# Last Updated: 21, September 2007. # # Written by Niels <ni...@un...>, based on the original example.conf, # server code and some real-life (ahem) experience. @@ -57,6 +57,10 @@ # vhost = "ipv6vhost"; # description = "description"; # numeric = numericnumber; +# dns vhost = "ipv4vhost"; +# dns vhost = "ipv6vhost"; +# dns server = "ipaddress"; +# dns server = "ipaddress2"; # }; # # If present, "vhost" must contain a valid address in dotted @@ -72,6 +76,15 @@ # # Note that "numeric" field has to be unique on the network your server # is running on, must be between 0 and 4095, and is not updated on a rehash. +# +# The two DNS lines allow you to specify the local IP address to use +# for DNS lookups "dns vhost" and one or more DNS server addresses +# to use. If the "vhost" is ambiguous for some reason, you may list +# IPV4 and/or IPV6 between the equals sign and the address string. +# The default DNS vhost is to let the operating system assign the +# address, and the default DNS servers are read from /etc/resolv.conf. +# In most cases, you do not need to specify either the dns vhost or +# the dns server. General { name = "gmsis.irc-dev.net"; description = "IRC-Dev.Net devel server."; @@ -93,10 +106,8 @@ # # All connections to the server are associated with a certain "connection # class", be they incoming or outgoing (initiated by the server), be they -# clients, servers or Martians. (Note that ircd doesn't have direct support -# Recommended client classes: -# for Martians (yet?); they will have to register as normal users. ;-) -# Take the following class blocks only as a guide. +# clients or servers. +# # Class { # name = "<class>"; # pingfreq = time; @@ -106,8 +117,12 @@ # usermode = "+i"; # }; # -# The "maxlinks" field should be set at either 0 or 1. -# +# For connection classes used on server links, "maxlinks" should be set +# to either 0 (for hubs) or 1 (for leaf servers). Client connection +# classes may use "maxlinks" between 0 and approximately 4,000,000,000. +# maxlinks = 0 means there is no limit on the number of connections +# using the class. +# # The "connectfreq" field applies only to servers, and specifies the # frequency that the server tries to autoconnect. setting this to 0 will # cause the server to attempt to connect repeatedly with no delay until the @@ -150,9 +165,7 @@ # limits the number of matching clients allowed from a particular IP # address. # -# Recommended client classes: -# Client classes. 10 = locals; 2 = for all .net and .com that are not -# in Europe; 1 = for everybody. +# Take the following class blocks only as a guide. Class { name = "Local"; pingfreq = 1 minutes 30 seconds; @@ -166,11 +179,6 @@ sendq = 160000; maxlinks = 400; }; -Client -{ - class = "Other"; - username = "*"; -}; Class { name = "Telefonica"; pingfreq = 1 minutes 30 seconds; @@ -209,6 +217,7 @@ # local_gline (can set a G-line for this server only) # local_badchan (can set a Gchan for this server only) # see_chan (can see users in +s channels in /WHO) + # list_chan (can see +s channels with /LIST S) # wide_gline (can use ! to force a wide G-line) # see_opers (can see opers without DISPLAY privilege) # local_opmode (can use OPMODE/CLEARMODE on local channels) @@ -223,8 +232,9 @@ # # For global opers (with propagate = yes or local = no), the default # is to grant all of the above privileges EXCEPT walk_lchan, - # unlimit_query, set, badchan, local_badchan and apass_opmode. For. - # local opers, the default is to grant ONLY the following privileges: + # unlimit_query, set, badchan, local_badchan and apass_opmode. + # For local opers, the default is to grant ONLY the following + # privileges: # chan_limit, mode_lchan, show_invis, show_all_invis, local_kill, # rehash, local_gline, local_jupe, local_opmode, whox, display, # force_local_opmode @@ -241,8 +251,8 @@ # other domains in the same toplevel, thus setting up some sort of "reverse # Kill block". # Client { -# host = "host"; -# ip = "ip"; +# host = "user@host"; +# ip = "user@ip"; # password = "password"; # class = "classname"; # }; @@ -250,22 +260,22 @@ # Technical description (for examples, see below): # For every connecting client, the IP address is known. A reverse lookup # on this IP-number is done to get the (/all) hostname(s). -# Each hostname that belongs to this IP-number is matched to "host" field, +# Each hostname that belongs to this IP-number is matched to "hostmask" field, # and the "Client" block is used when any matches; the client will then show # with this particular hostname. If none of the hostnames match, then -# the IP-number is matched against the "ip" field, if this matches then the +# the IP-number is matched against the "ipmask" field, if this matches then the # "Client" block is used nevertheless and the client will show with the # first (main) hostname if any; if the IP-number did not resolve then the # client will show with the dot notation of the IP-number. # There is a special case for the UNIX domain sockets and localhost connections -# though; in this case the "ip" field is compared with the name of the server +# though; in this case the "ip mask" field is compared with the name of the server # (thus not with any IP-number representation). The name of the server is the # one returned in the numeric 002 reply, for example: # 002 Your host is 2.irc-dev.net[jolan.ppro], running version ... # Then the "jolan.ppro" is the name used for matching. # Therefore, unix domain sockets, and connections to localhost would # match this block: -# host = "jolan.ppro"; +# host = "*@jolan.ppro"; # # This is the "fallback" entry. All .uk, .nl, and all unresolved are # in these two lines. @@ -275,14 +285,14 @@ Client { class = "Other"; - ip = "*"; + ip = "*@*"; }; Client { class = "Other"; - host = "*"; + host = "*@*"; }; # If you don't want unresolved dudes to be able to connect to your # server, do not specify any "ip = " settings. @@ -290,7 +300,7 @@ # Here, take care of all Spain's Telefonica users. Client { - host = "*.pooles.rima-tde.net"; + host = "*.rima-tde.net"; class = "Telefonica"; }; @@ -311,13 +321,13 @@ # way around - K-lining every single ISP in the US. # I wish people in Holland just got a .nl domain, and not try to be # cool and use .com... -Client { host = "*.wirehub.net"; class = "Other";}; -Client { host = "*.planete.net"; class = "Other";}; -Client { host = "*.ivg.com"; class = "Other";}; -Client { host = "*.ib.com"; class = "Other";}; -Client { host = "*.ibm.net"; class = "Other";}; -Client { host = "*.hydro.com"; class = "Other";}; -Client { host = "*.nl.net"; class = "Local";}; +Client { host = "*@*.wirehub.net"; class = "Other";}; +Client { host = "*@*.planete.net"; class = "Other";}; +Client { host = "*@*.ivg.com"; class = "Other";}; +Client { host = "*@*.ib.com"; class = "Other";}; +Client { host = "*@*.ibm.net"; class = "Other";}; +Client { host = "*@*.hydro.com"; class = "Other";}; +Client { host = "*@*.nl.net"; class = "Local";}; # You can request a more complete listing, including the "list of standard # Kill blocks" from the Routing Committee; it will also be sent to you if @@ -327,33 +337,33 @@ # the server is (hopefully). Client { - host = "*.pooles.rima-tde.net"; - ip = "80.59.0.0/16"; + host = "*.rima-tde.net"; + ip = "*@80.59.0.0/16"; class = "Local"; }; -# You can put an expression in the maxlinks, which will make ircd +# You can put an expression in the "maxlinks" value, which will make ircd # only accept a client when the total number of connections to the network # from the same IP number doesn't exceed this number. # The following example would accept at most one connection per IP number # from "*.ono.com" and at most two connections from dial up accounts # that have "dial??.*" as host mask: # Client { -# host = "*.ono.com"; -# maxlinks = "1"; +# host = "*@*.ono.com"; +# maxlinks = 1; # class = "Other"; # }; # Client { -# host = "dial??.*"; -# maxlinks = "2"; +# host = "*@dial??.*"; +# maxlinks = 2; # class = "Other"; # }; # # If you are not worried about who connects, this line will allow everyone # to connect. Client { - host = "*"; - ip = "*"; + host = "*@*"; + ip = "*@*"; class = "Other"; }; @@ -368,6 +378,10 @@ # file = "path/to/motd/file"; # }; # +# More than one host = "mask"; entry may be present in one block; this +# has the same effect as one "Motd" block for each host entry, but makes +# it easier to update the messages's filename. +# # DPATH/net_com.motd contains a special MOTD where users are encouraged # to register their domains and get their own "Client" blocks if they're in # Europe, or move to US.irc-dev.net if they're in the USA. @@ -414,7 +428,7 @@ # If you're on IRC-Dev, you MUST have these lines. I cannnot stress # this enough. If all of the servers don't have the same lines, the # servers will try to undo the mode hacks that Uworld does. Make SURE that -# all of the servers have the EXACT same Uworld blocks. +# all of the servers have the EXACT same "UWorld" blocks. # # If your server starts on a bit larger network, you'll probably get # assigned one or two uplinks to which your server can connect. @@ -423,7 +437,7 @@ # See the Connect block documentation for details on how to do that. UWorld { - name = "luz.irc-dev.net"; + name = "gmsis.irc-dev.net"; name = "services.irc-dev.net"; }; @@ -515,6 +529,7 @@ # Connect { # name = "servername"; # host = "hostnameORip"; +# vhost = "localIP"; # password = "passwd"; # port = portno; # class = "classname"; @@ -525,16 +540,20 @@ # # The "port" field defines the default port the server tries to connect # to if an operator uses /connect without specifying a port. This is also -# the port used when the server attempts to auto-connect to the remote +# the port used when the server attempts to auto-connect to the remote # server. (See "Class" blocks for more informationa about auto-connects). # You may tell ircu to not automatically connect to a server by adding # "autoconnect = no;"; the default is to autoconnect. # +# If the "vhost" field is present, the server will use that IP as the +# local end of connections that it initiates to this server. This +# overrides the vhost value from the General block. +# # The "maxhops" field causes an SQUIT if a hub tries to introduce -# servers farther away than that; the element "leaf," is an alias for -# "maxhops = 0,". The "hub" field limits the names of servers that may -# be introduced by a hub; the element "hub;" is an alias for -# "hub = "*";". +# servers farther away than that; the element 'leaf;' is an alias for +# 'maxhops = 0;'. The "hub" field limits the names of servers that may +# be introduced by a hub; the element 'hub;' is an alias for +# 'hub = "*";'. # # Our primary uplink. Connect { @@ -546,36 +565,20 @@ hub; }; - # [Crule] # # For an advanced, real-time rule-based routing decision making system # you can use "Crule" blocks. For more information, see doc/en/crules.txt. -# Crule -# { -# server = "servermask"; -# rule = "connectrule"; -# # Setting all to yes makes the rule always apply. Otherwise it only -# # applies to autoconnects. -# all = yes; -# }; -Crule -{ - server = "*.US.irc-dev.net"; - rule = "connected(*.US.irc-dev.net)"; -}; -Crule -{ - server = "*.EU.irc-dev.net"; - rule = "connected(Vigo.ES.EU.*)"; -}; +# Including the "all" modifier makes the rule always apply. Otherwise +# it only applies to outbound autoconnects. +# +# CRule "servermask" all connectrule; +# CRule "servermask" connectrule; +CRule "*.US.irc-dev.net" connected("*.US.irc-dev.net"); +CRule "*.EU.irc-dev.net" connected("Vigo.ES.EU.*"); -# The following block is recommended for leaf servers: -Crule -{ - server = "*"; - rule = "directcon(*)"; -}; +# The following CRule is recommended for leaf servers: +CRule "*" directcon("*"); # [Operator] # @@ -593,6 +596,11 @@ # is not not passed along to other servers. On IRC-Dev, this prevents # them from using Uworld as well. # +# More than one host = "mask"; entry may be present in one block; this +# has the same effect as one "Operator" block for each host entry, but +# makes it easier to update operator nicks, passwords, classes, and +# privileges. +# # Operator { # host = "host/IP mask"; # name = "opername"; @@ -607,7 +615,8 @@ # By default, the password is hashed using the system's native crypt() # function. Other password mechanisms are available; the umkpasswd # utility from the ircd directory can hash passwords using those -# mechanisms. +# mechanisms. If you use a password format that is NOT generated by +# umkpasswd, ircu will not recognize the oper's password. # # All privileges are shown with their default values; if you wish to # override defaults, you should set only those privileges for the @@ -615,13 +624,13 @@ # find. Operator { local = no; - host = "*@*.pooles.rima-tde.net"; + host = "*@*.rima-tde.net"; password = "$CRYPT$KI88nphRm0UPw"; name = "zoltan"; class = "Local"; }; -Operator { - host = "*@*.ttd.es"; +Operator { + host = "*@*.rima-tde.net"; password = "$PLAIN$notencryptedpass"; name = "zolty"; class = "Opers"; @@ -648,17 +657,24 @@ # IANA says we should use port 194, but that requires us to run as root, # so we don't do that. # +# # Port { -# port = number; +# port = [ipv4] [ipv6] number; # mask = "ipmask"; # # Use this to control the interface you bind to. -# vhost = "virtualhostip"; +# vhost = [ipv4] [ipv6] "virtualhostip"; +# # You can specify both virtual host and port number in one entry. +# vhost = [ipv4] [ipv6] "virtualhostip" number; # # Setting to yes makes this server only. # server = yes; # # Setting to yes makes the port "hidden" from stats. # hidden = yes; # }; # +# The port and vhost lines allow you to specify one or both of "ipv4" +# and "ipv6" as address families to use for the port. The default is +# to listen on both IPv4 and IPv6. +# # The mask setting allows you to specify a range of IP addresses that # you will allow connections from. This should only contain IP addresses # and '*' if used. This field only uses IP addresses. This does not use @@ -678,11 +694,11 @@ port = 4400; }; -# This is a Server port that is Hidden +# This is an IPv4-only Server port that is Hidden Port { server = yes; hidden = yes; - port = 4401; + port = ipv4 4401; }; # The following are normal client ports @@ -701,6 +717,14 @@ port = 7000; }; +# More than one vhost may be present in a single Port block; in this case, +# we recommend listing the port number on the vhost line for clarity. +Port { + vhost = "172.16.0.1" 6667; + vhost = "172.16.3.1" 6668; + hidden = no; +}; + # Quarantine blocks disallow operators from using OPMODE and CLEARMODE # on certain channels. Opers with the force_opmode (for local # channels, force_local_opmode) privilege may override the quarantine @@ -728,13 +752,34 @@ }; # You can ask a separate server whether to allow users to connect. -IAuth { - pass = "ircd-iauth"; - host = "127.0.0.1"; - port = 7700; - connectfreq = 30; - timeout = 60; -}; +# Uncomment this ONLY if you have an iauth helper program. +# IAuth { +# program = "../path/to/iauth" "-n" "options go here"; +# }; + +# [Include] +# You can include certain kinds of configuration snippets from other +# files. The basic directive, which allows any kind of block or +# recursive include, is: +# +# Include "filename"; +# +# You can limit the file to certain types of configuration blocks by +# using the block name(s), optionally separated by commas. For +# example: +# +# Include uworld, jupe, quarantine, kill from "linesync.conf"; +# Include operator from "opers.conf"; +# Include include from "include.conf"; +# +# The restrictions are transitive across includes. This means that +# the last example is not very useful: the only thing include.conf may +# do is include other include files, and none of them may have any +# other kind of block! +# +# Well-formed but disallowed configuration blocks generate a warning +# but do not break the file. The other syntax rules must still be +# followed, because a syntax error will break the file. # [Features] # IRC servers have a large number of options and features. Most of these @@ -773,6 +818,7 @@ # "HUB" = "FALSE"; # "WALLOPS_OPER_ONLY" = "FALSE"; # "NODNS" = "FALSE"; +# "NOIDENT" = "FALSE"; # "RANDOM_SEED" = "<you should set one explicitly>"; # "DEFAULT_LIST_PARAM" = "TRUE"; # "NICKNAMEHISTORYLENGTH" = "800"; @@ -781,12 +827,13 @@ # "HIDDEN_IP" = "127.0.0.1"; # "CONNEXIT_NOTICES" = "FALSE"; # "OPLEVELS" = "TRUE"; +# "ZANNELS" = "TRUE"; # "LOCAL_CHANNELS" = "TRUE"; # "TOPIC_BURST" = "FALSE"; +# "USER_GLINE" = "TRUE"; # "KILLCHASETIMELIMIT" = "30"; # "MAXCHANNELSPERUSER" = "10"; -# "NICKLEN" = "12"; -# "CHANNELLEN" = "200"; +# "NICKLEN" = "15"; # "AVBANLEN" = "40"; # "MAXBANS" = "45"; # "MAXSILES" = "15"; @@ -804,9 +851,11 @@ # "IPCHECK_CLONE_LIMIT = "24"; # "IPCHECK_CLONE_PERIOD = "40"; # "IPCHECK_CLONE_DELAY = "600"; +# "CHANNELLEN" = "200"; # "MPATH" = "ircd.motd"; # "RPATH" = "remote.motd"; # "PPATH" = "ircd.pid"; +# "BDDPATH" = "database"; # "TOS_SERVER" = "0x08"; # "TOS_CLIENT" = "0x08"; # "POLLS_PER_LOOP" = "200"; @@ -822,56 +871,60 @@ # "HIS_MAP" = "TRUE"; # "HIS_LINKS" = "TRUE"; # "HIS_TRACE" = "TRUE"; -# "HIS_STATS_a" = "TRUE"; -# "HIS_STATS_b" = "TRUE"; -# "HIS_STATS_c" = "TRUE"; -# "HIS_STATS_d" = "TRUE"; -# "HIS_STATS_e" = "TRUE"; -# "HIS_STATS_f" = "TRUE"; -# "HIS_STATS_g" = "TRUE"; -# "HIS_STATS_i" = "TRUE"; -# "HIS_STATS_j" = "TRUE"; -# "HIS_STATS_J" = "TRUE"; -# "HIS_STATS_k" = "TRUE"; -# "HIS_STATS_l" = "TRUE"; -# "HIS_STATS_L" = "TRUE"; -# "HIS_STATS_m" = "TRUE"; -# "HIS_STATS_M" = "TRUE"; -# "HIS_STATS_o" = "TRUE"; -# "HIS_STATS_p" = "TRUE"; -# "HIS_STATS_q" = "TRUE"; -# "HIS_STATS_r" = "TRUE"; -# "HIS_STATS_R" = "TRUE"; -# "HIS_STATS_t" = "TRUE"; -# "HIS_STATS_T" = "TRUE"; -# "HIS_STATS_u" = "FALSE"; -# "HIS_STATS_U" = "TRUE"; -# "HIS_STATS_v" = "TRUE"; -# "HIS_STATS_w" = "TRUE"; -# "HIS_STATS_x" = "TRUE"; -# "HIS_STATS_y" = "TRUE"; -# "HIS_STATS_z" = "TRUE"; +# "HIS_STATS_NAMESERVERS" = "TRUE"; +# "HIS_STATS_BDD" = "TRUE"; +# "HIS_STATS_CONNECT" = "TRUE"; +# "HIS_STATS_CRULES" = "TRUE"; +# "HIS_STATS_ENGINE" = "TRUE"; +# "HIS_STATS_FEATURES" = "TRUE"; +# "HIS_STATS_GLINES" = "TRUE"; +# "HIS_STATS_ACCESS" = "TRUE"; +# "HIS_STATS_HISTOGRAM" = "TRUE"; +# "HIS_STATS_JUPES" = "TRUE"; +# "HIS_STATS_KLINES" = "TRUE"; +# "HIS_STATS_LINKS" = "TRUE"; +# "HIS_STATS_MODULES" = "TRUE"; +# "HIS_STATS_COMMANDS" = "TRUE"; +# "HIS_STATS_OPERATORS" = "TRUE"; +# "HIS_STATS_PORTS" = "TRUE"; +# "HIS_STATS_QUARANTINES" = "TRUE"; +# "HIS_STATS_MAPPINGS" = "TRUE"; +# "HIS_STATS_USAGE" = "TRUE"; +# "HIS_STATS_LOCALS" = "TRUE"; +# "HIS_STATS_MOTDS" = "TRUE"; +# "HIS_STATS_UPTIME" = "FALSE"; +# "HIS_STATS_UWORLD" = "TRUE"; +# "HIS_STATS_VSERVERS" = "TRUE"; +# "HIS_STATS_USERLOAD" = "TRUE"; +# "HIS_STATS_MEMUSAGE" = "TRUE"; +# "HIS_STATS_CLASSES" = "TRUE"; +# "HIS_STATS_MEMORY" = "TRUE"; +# "HIS_STATS_IAUTH" = "TRUE"; # "HIS_WHOIS_SERVERNAME" = "TRUE"; # "HIS_WHOIS_IDLETIME" = "TRUE"; # "HIS_WHOIS_LOCALCHAN" = "TRUE"; # "HIS_WHO_SERVERNAME" = "TRUE"; # "HIS_WHO_HOPCOUNT" = "TRUE"; +# "HIS_MODEWHO" = "TRUE"; # "HIS_BANWHO" = "TRUE"; # "HIS_KILLWHO" = "TRUE"; # "HIS_REWRITE" = "TRUE"; -# "HIS_REMOTE" = "1"; -# "HIS_NETSPLIT" = TRUE"; +# "HIS_REMOTE" = "TRUE"; +# "HIS_NETSPLIT" = "TRUE"; # "HIS_SERVERNAME" = "*.irc-dev.net"; # "HIS_SERVERINFO" = "IRC-Dev.Net, Desarrollo de IRC / IRC Development"; # "HIS_URLSERVERS" = "http://www.irc-dev.net/servers.php"; # "NETWORK" = "IRC-Dev"; # "URL_CLIENTS" = "ftp://ftp.irc.org/pub/irc/clients"; - +# "SPAM_OPER_COUNTDOWN" = "5"; +# "SPAM_EXPIRE_TIME" = "120"; +# "SPAM_JOINED_TIME" = "60"; +# "SPAM_FJP_COUNT" = "5"; }; # Well, you have now reached the end of this sample configuration # file. If you have any questions, visit http://www.irc-dev.net, -# or join the channel #irc-dev at Undernet, and feel :-) +# or join the channel #irc-dev at IRC-Hispano, and feel :-) # # Upgrades of the ircd can be found via CVS or download on # http://www.irc-dev.net ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2007-09-21 11:30:44
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-09-21 11:30:37 UTC Modified files: doc/en/crules.txt doc/en/cvs.txt doc/en/iauth.txt doc/en/who.txt Log message: Actualizacion de documentacion en ingles ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/en/crules.txt diff -u ircd-ircdev/doc/en/crules.txt:1.1 ircd-ircdev/doc/en/crules.txt:1.2 --- ircd-ircdev/doc/en/crules.txt:1.1 Wed Jan 5 10:00:33 2005 +++ ircd-ircdev/doc/en/crules.txt Fri Sep 21 04:30:27 2007 @@ -1,4 +1,4 @@ -$Id: crules.txt,v 1.1 2005/01/05 18:00:33 zolty Exp $ +$Id: crules.txt,v 1.2 2007/09/21 11:30:27 zolty Exp $ SmartRoute Rule based connects @@ -89,23 +89,24 @@ ircd.conf entries ----------------- -A rule is listed in the ircd.conf file using a D or d line (which can -be thought of as a "disallow" line). D lines will apply to all oper -and server originated connects, while d lines will apply only to -autoconnects (ie: they are overrideable by opers). The formats are: - -D:targetmask::rule -d:targetmask::rule - -Remember that newlines are not allowed in conf lines. Two examples -(from above) are: - -D:*eu.irc-dev*::connected(*eu.irc-dev*) -d:*eu.irc-dev*::connected(*eu.irc-dev*) || directop() - -Connects originating from other servers will be checked against and -matching D lines, while matching d lines will be ignored as it will not -be clear whether or not the connection attempt is oper initiated. +A rule is listed in the ircd.conf file using a CRule line (which can +be thought of as a "disallow" line). You may specify "ALL" either +before or after the target mask to make the rule apply to all +connections (inbound, automatic outbound and oper-initiated outbound); +without the "ALL" modifier, the rule will apply only to automatic +outbound connections. The formats are: + +CRule "targetmask" rule; +CRule "targetmask" all rule; + +Two examples (from above) are: + +CRule "*.eu.irc-dev*" all connected("*eu.irc-dev*"); +CRule "*.eu.irc-dev*" connected("*eu.irc-dev*") || directop(); + +Connects originating from other servers will be checked against any +matching ALL CRules, while matching non-ALL CRules will be ignored as +it will not be clear whether the connection attempt is oper-initiated. Checking and viewing rules -------------------------- Index: ircd-ircdev/doc/en/cvs.txt diff -u ircd-ircdev/doc/en/cvs.txt:1.1 ircd-ircdev/doc/en/cvs.txt:1.2 --- ircd-ircdev/doc/en/cvs.txt:1.1 Wed Jan 5 10:00:34 2005 +++ ircd-ircdev/doc/en/cvs.txt Fri Sep 21 04:30:27 2007 @@ -1,89 +1,44 @@ -$Id: cvs.txt,v 1.1 2005/01/05 18:00:34 zolty Exp $ +$Id: cvs.txt,v 1.2 2007/09/21 11:30:27 zolty Exp $ -Notes on checking out from the IRC-DevCVS archive and maintenance. +Notes on checking out from the IRC-Dev CVS archive and maintenance. -General Strategy: -The main trunk of the tree will be used for ongoing development only -(alpha) this code is not intended to be used on the production network. -When development has reached a point of relative stability a tag will be -applied to the development branch and a beta tag will be applied to that -branch. For beta test servers only the tagged branches will be used. -When a tag is applied we will also produce a snapshot tarball of the -tag. Once a beta tagged release has been proven stable any fixes will be -merged into the main tagged version and the code will be voted on for -release. Fixes after release will be tagged with a patchlevel tag. - -You check out a tagged release by specifying the -r tag option to cvs. -This is the command to check out the most recent tagged version of -IRC-Dev1.0.1: -cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -r 1_0_1 -P ircd-ircdev - -Developers doing maintenance and bug fixes should only check out the -current tagged patchlevel for the affected version. Once the fix has -proven stable, it will be merged into the tree the fix is relative to. - -We will not merge the changes that have been made to IRC-Dev1.0 since -it's release into the development branch, the IRC-Dev1.0 branch is a -maintenance only branch. - -If you have any questions on how to check out tagged versions check out -the IRC-Dev web page http://www.irc-dev.net or the cvs -manual page. If you're really stumped feel free to ask in #irc-dev. - -We will put out new tarballs for every tagged release which will be -available on the IRC-Dev web page. - -Naming Conventions: - -Tag Names: -Major release - 1 -Beta release - 1_0_0 -Production patch - 1_0_0 - -The tree currently looks like this: - -Trunk: development only ------------------------------------------------- - \ \ - \----- u2_10_07 \---- u2_10_10 --- release --------- - \ \ \ - \--- u2_10_07_pl9 \--- u2_10_10_beta06 \ u2_10_10_pl01 - -Patches will be rolled into the tagged branch and eventually rolled into -the development branch. All new development should be relative to the -trunk, only bugfixes and maintenance coding should be applied to any -tagged version. Developers doing maintenance should only check out the -latest pl or beta tag and apply the changes relative to that tag. These -changes will be committed to the tag they were checked out from and once -proven stable they will be merged into the main tagged trunk by the -maintainer. - -Where to get CVS: -http://www.cvshome.org - -Checking out: -First you need to login to cvs: -cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev login - -It will prompt you for a password. There is no password so hit enter. - -To check out the recommended patchlevel for ircu2.10.07 use: -cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -r u2_10_07_pl6 -P ircd-ircdev - -For the ircu2.10.10 beta archive use: -cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -r u2_10_10_beta06 -P ircd-ircdev - -To check out the current development archive use: -cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -P ircd-ircdev - -When you want to update your source tree later to the latest version, use -cvs update -P - -inside ircd-ircdev/, the directory ircd-ircdev was checked out to. - -How to find the most current available release: -We will announce the most current release tag when we make it available, in general -you will check out the main branch of any given tree, if you want the current production -release use the "u2_10_07" tag, for patched versions use a patchlevel tag "u2_10_07_pl6". -You can always find the most recent tag for any version by looking at the IRC-Dev CVS -archive: http://cvs.irc-dev.net/viewcvs.py/irc-dev/ +The main trunk of the tree (HEAD) will be used for development only. +When the maintainers believe the code is stable enough to prepare for +a release, they will make a branch for that release series. + +Each branch will have a base name, which is the name of the release +series where dots are replaced with underscores. The branch name will +be the base name with the suffix "_branch". Once an official release +is made, each release branch will have one or more fixed tags and one +moving tag. The fixed tags will indicate specific patchlevels, and +have the base name with a suffix giving the zero-based patchlevel. +The moving tag's name will be the base name, and will always point to +the same state as some fixed tag on the branch. + +This allows developers to easily track the most recent version of any +branch (by checking out using the branch's name), and allows server +admins to easily track the most recent release on the branch (by +checking out using the branch's base name). + +For example, for the ircu2.10.12 release series, the branch's base +name is u2_10_12. The branch's name is u2_10_12_branch. The first +release (ircu2.10.12) would be permanently tagged as u2_10_12_0, and +until an update is released, it would also have the tag u2_10_12. +When the first update is released, it would be permanently tagged as +u2_10_12_01, and the tag u2_10_12 would be changed to point to it. + +If the current stable series is 2.10.12, server admins should check +out the code using the command: + cvs -d :pserver:ano...@cv...:/cvsroot/undernet-ircu co -r u2_10_12 -P ircu2.10 +Admins may only run unreleased code on Undernet with coder-com +approval. The command above will retrieve the most recent release. + +Developers should check out the release branch using the command: + cvs -d :pserver:ano...@cv...:/cvsroot/undernet-ircu co -r u2_10_12_branch -P ircu2.10 + +http://sourceforge.net/cvs/?group_id=63470 gives more information on +using CVS to access the ircu code; http://www.nongnu.org/cvs/ gives +more information on using CVS in general. + +NOTE: Release before ircu2.10.12 used a different branching scheme. +Older revisions of this readme.cvs explain that system. Index: ircd-ircdev/doc/en/iauth.txt diff -u ircd-ircdev/doc/en/iauth.txt:1.1 ircd-ircdev/doc/en/iauth.txt:1.2 --- ircd-ircdev/doc/en/iauth.txt:1.1 Wed Jan 5 10:00:34 2005 +++ ircd-ircdev/doc/en/iauth.txt Fri Sep 21 04:30:27 2007 @@ -1,84 +1,434 @@ -$Id: iauth.txt,v 1.1 2005/01/05 18:00:34 zolty Exp $ +$Id: iauth.txt,v 1.2 2007/09/21 11:30:27 zolty Exp $ OVERVIEW ======== -The IAUTH protocol used here is based on the one in ircd-hybrid 7.0, -with minor changes to support login-on-connect and true IAUTH-side -connection classes. (Several networks use central authorities to vary -per-netblock connection limits; for example, users from one ISP may -only be allowed one connection per IP, or one shell provider's -netblock may be limited to 50 total connections.) IAUTH-side -connection classes are controlled by a configuration option; if that -is enabled, this document will say ICLASS is enabled. - -As in IRC, lines sent between the IRC and IAUTH servers are limited to -512 characters, including the terminating <CR> <LF> sequence. As in -IRC, the final argument on a line may be prefixed with :, and must be -prefixed with : if it contains a space (decimal 32) character. Tokens -are separated by single space characters, and each line is a separate -command. The first token on a line is a case-insensitive command -name; unrecognized commands must be ignored. +The iauth protocol used here is based on the one in irc2.11.1, with +minor changes to support challenge-response protocols and +login-on-connect. Reference to that version's iauth-internals.txt and +source code may be useful. For clarity, this document uses "server" +to refer to any IRC server implementing this protocol, "ircu" to refer +to Undernet ircd, and "ircd" to refer to IRCnet ircd. + +Certain messages are relayed to interested operators. ircu implements +this by using the 131072 (SNO_AUTH) server notice mask. ircd +implements this by using the &AUTH local channel. -GREETING -======== +STARTING IAUTH +============== -The IRC server connects and sends the Server greeting: - Server <servername> [password] -If ICLASS is enabled, it sends a list of currently connected users: - MyUsers <uid>:<username>@<hostname>:<ip> ... -The IRC server may send several MyUsers lines. When it has sent all -MyUsers lines, it sends an EndUsers line: - EndUsers -If ICLASS is disabled, EndUsers is sent immediately after Server. +The path to the iauth program is specified in the server configuration +file. The server spawns that program when reading the configuration +file or when the previous iauth instance terminates. To protect +against a series of crashes, the server will refuse to restart an +iauth instance that it spawned in the last five seconds. A rehash +operation will clear this behavior. The server and iauth instance +communicate over the iauth instance's stdin and stdout. + +Every message from the server to the iauth instance is a single line. +The line starts with an integer client identifier. This may be -1 to +indicate no particular client or a non-negative number to indicate a +client connected to the server. + +When the server starts the iauth instance, it sends a line formatted +like "-1 M irc.example.org 20000" to indicate its name and an +exclusive upper bound on valid client identifiers. In that example, +possible client identifiers would be from 0 through 19999 inclusive. +This upper bound is called MAXCONNECTIONS in the server code. + +When the iauth instance starts, it sends a V message to indicate its +version. + +The server should provide /stats subcommands that report the iauth +instance's version, configuration and statistics. + +Line formats in both direction are IRC-like in format: space +characters separate arguments and a colon at the start of an argument +indicates that the remainder of the line is one argument. To avoid +problems, IPv6 address arguments with a leading colon may have to be +prefixed with a 0 -- for example, ::1 sent as 0::1. + +When the iauth instance sends messages that relate to a particular +client, that client is identified by three parameters from the +server's Client Introduction message (<id>, <remoteip> and +<remoteport>). If any of these disagree with the server's current +user tables, it is an error. + +CLIENT STATES +============= + +Each client is conceptually in one of four states: GONE, REGISTER, +HURRY or NORMAL. Each client starts in the GONE state. Certain +messages from the server signal a client's transition from one state +to another, and certain messages from the iauth instance cause a state +transition. + +To be pedantic, the REGISTER state is a collection of sub-states since +certain commands must occur at most and/or at least one time during +the REGISTER state. The distinctions between these sub-states are +distracting and not important, so they are described as one state and +the repetition limitations are described for each command. + +The rationale for the HURRY state is to give explicit input to the +iauth instance as to when the server believes it has sent the complete +set of data for the client. Rather than defining the complete set of +information in this protocol document, that is left to the server. +ircd does not indicate this state. + +POLICIES AND USE CASES +====================== + +The historical application of iauth has been to block users that +appear to be drones early, before they have a chance to disrupt the +network, and without affecting other users on the same host (which +K-lines do). This protocol extends that application by adding the n +server message and by allowing challenge-response exchanges with the +client. + +Eventually it would be nice to move the DNS and ident lookups into +iauth, and remove that code from the IRC server. ircd already does +this; since ircu does not, it adds the u server message. + +For trusted proxies, this protocol gives the capability for clients +connecting through those proxies to be displayed with their actual +username, IP address and hostname. The same functions allow other +clients to use iauth-assigned spoofs, for example to hide the IP +addresses used by operators. + +This protocol allows login-on-connect, for example by clients that +send their account name and password in PASS, through the R iauth +message. + +This protocol allows iauth to assign a client to a particular class by +specifying a class name in the D or R iauth message. + +SERVER MESSAGES +=============== + +X - Example Message Description +Syntax: <id> X <several> <arguments> +Example: 5 X arguments vary +States: REGISTER(1), HURRY, NORMAL +Next State: - +Comments: This is an example message description. Each message is a + single character. The States field indicates which states the + message may occur in and any restrictions on how many times the + message may be sent during those states (restrictions only make + sense when Next State is -). The Next State field indicates which + new state is implied by the message; a hyphen indicates no state + change is implied. The X (Example) message is not a real message + type. +Compatibility: If we believe ircu behavior is different than ircd's, + this describes ircd's behavior or expectations. + +C - Client Introduction +Syntax: <id> C <remoteip> <remoteport> <localip> <localport> +Example: 5 C 192.168.1.10 23367 192.168.0.1 6667 +States: GONE +Next State: REGISTER +Comments: Indicates that <localport> on <localip> accepted a client + connection from <remoteport> on <remoteip>. + +D - Client Disconnect +Syntax: <id> D +Example: 5 D +States: REGISTER, HURRY, NORMAL +Next State: GONE +Comments: Indicates that a client is disconnecting from the server. + +N - Hostname Received +Syntax: <id> N <hostname> +Example: 5 N host-1-10.example.org +States: REGISTER(1) +Next State: - +Comments: Indicates that the server received hostname information for + a client. Only one of 'N' and 'd' is sent. + +d - Hostname Timeout +Syntax: <id> d +Example: 5 d +States: REGISTER(1) +Next State: - +Comments: Indicates that the server did not receive hostname + information for a client in a timely fashion. Only one of 'N' and + 'd' is sent. + +P - Client Password +Syntax: <id> P :<password ...> +Example: 5 P :buddha n1rvan4 +States: REGISTER +Next State: - +Comments: Indicates the client's password information. This may be a + traditional client password, an account and pass phrase pair, or the + response to a challenge (see the iauth C message). This message is + enabled by requesting the A policy. + +U - Client Username +Syntax: <id> U <username> <hostname> <servername> :<userinfo ...> +Example: 5 U buddha bodhisattva.example.com irc.undernet.org :Gautama Siddhartha +States: REGISTER(1+) +Next State: - +Comments: Indicates the client's claimed username and "GECOS" + information, along with client hostname and server name. This + information is not reliable. This message is enabled by requesting + the A policy. +Compatibility: ircd only sends the <username> parameter. + +u - Client Username +Syntax: <id> u <username> +Example: 5 u notbuddha +States: REGISTER(1) +Next State: - +Comments: Indicates a more reliable username for the client. +Compatibility: This is an Undernet extension and ircd does not send + it. It is enabled by the iauth instance requesting the U policy. + +n - Client Nickname +Syntax: <id> n <nickname> +Example: 5 n Buddha +States: REGISTER(1+), HURRY +Next State: - +Comments: Indicates the client's requested nickname. +Compatibility: This is an Undernet extension and ircd does not send + it. It is enabled by the iauth instance requesting the U policy. + +H - Hurry Up +Syntax: <id> H <class> +Example: 5 H Others +States: REGISTER +Next State: HURRY +Comments: Indicates that the server is ready to register the client + except for needing a response from the iauth server. <class> is + a tentative connection class for the user, which will be used unless + iauth overrides it in a D or R message. +Compatibility: This is an Undernet extension and ircd does not send + it. It is enabled by the iauth instance requesting the U policy. + +T - Client Registered +Syntax: <id> T +Example: 5 T +States: HURRY +Next State: NORMAL +Comments: Indicates the server got tired of waiting for iauth to + finish and the client is being accepted. This message should + never be sent when the R policy is in effect. +Compatibility: ircd allows this message for clients in the REGISTER + state. + +E - Error +Syntax: <id> E <type> :<additional text> +Example: 5 E Gone +States: N/A +Next State: - +Comments: Indicates that a message received from the iauth instance + could not be rationally interpreted. This may be because the client + could not be found, the client was in an inappropriate state for the + message, or for other reasons. The <type> argument specifies the + general type of error and <additional text> provides details. <id> + may be -1. + +M - Server Name and Capacity +Syntax: <id> M <servername> <capacity> +Example: -1 M irc.example.org 20000 +States: GONE(1) +Next State: - +Comments: Indicates the server's name and upper bound on client + identifiers. +Compatibility: ircd does not include the <capacity> information. + The <id> should be ignored: ircd sends 0 and ircu sends -1. -LOGIN REQUESTS +IAUTH MESSAGES ============== -When users connect, the IRC server sends a DoAuth request: - FullAuth <uid> <nickname> <username> <hostname> <ip> <account> <password> <realname> -<uid> is a text string up to 20 characters long that identifies the -client, and is unique a BadAuth response is received or until an -ExitUser command is sent with the same uid (see below for details on -those messages). <uid> may not contain a colon character. <nickname> -is the client's initially requested nickname. <username> is the -username returned by the ident server (RFC 1413), or a tilde-prefixed -username supplied by the user. <hostname> is a text hostname, -possibly in the form of a dotted quad or IPv6 address, or the -character '?'. <ip> is a dotted quad IPv4 address or an IPv6 hex -address. <account> and <password> are optional, and are used when the -client attempts login-on-connect. <realname> is the realname -specified by the client's USER message, and may contain spaces. - -If the client is accepted, the IAUTH server responds: - DoneAuth <uid> <username> <hostname> <class> [account] -<username> is a replacement username, and <hostname> is a replacement -hostname. If the <hostname> from DoAuth was ?, <hostname> is the -result of a DNS lookup for the client. <class> is the name of a -connection class for the client. <account> is optional and is -provided if the user's login was successful. - -If the client is rejected, the IAUTH server responds: - BadAuth <uid> :<reason> -<reason> may include spaces, and should have a leading ':' sentinel. - -DISCONNECTS -=========== - -If ICLASS is enabled, the IRC server sends ExitUser when a client -disconnects: - ExitUser <uid> - -DIFFERENCES FROM IRCD-HYBRID -============================ - -The ircd-hybrid IAUTH code is slightly bitrotted and disabled in 7.0 -(through at least 7.0.1). This code added the following items: - MyUsers, EndUsers and ExitUser commands - Server passwords may contain whitespace and be prefixed by : - DoneAuth may include an account name - FullAuth command replaces DoAuth command and adds account, password, - realname parameters -The Class command is present in ircd-hybrid's code but not used here. -IP addresses in ircd-hybrid are "in unsigned int format," which is -limited to IPv4, and so it is not used here. +X - Example Message Description +Syntax: X <arguments> +Example: X something +Notify: yes +States: N/A +Next State: N/A +Comments: This is an example message description. Each message is a + single character. If the Notify field is present and says yes, + interested operators (with SNO_AUTH set) should be notified of the + message. The States field, where present, indicate which states + accept this message. Clients in other states should ignore the + message or treat it as an error. The Next State field, where + present, indicates what the next state should be for the client. +Compatibility: If we believe ircu behavior is different than ircd's, + this describes ircd's behavior or expectations. + +> - Operator Notification +Syntax: > :<message text> +Example: > :Hello Operators! +Notify: yes +Comments: Contains a message that the iauth instance wants to send to + interested operators. + +G - Set Debug Level +Syntax: G <level> +Example: G 1 +Notify: yes +Comments: Sets a debug level for the server's end of the iauth + conversation. When enabled, debug messages should be sent to the + same channel (group, mask, etc) as other iauth notifications. + Debug level 0 suppresses iauth-related debug output, and positive + integers enable iauth debugging messages. + +O - Set Policy Options +Syntax: O <options> +Example: O RTAWU +Notify: yes +Comments: Sets policy options for the iauth conversation. Old policy + options should be forgotten. Valid policy options are: + A - Send username and password information. + This causes the server to send the U and P messages. + R - Require clients to be approved before registering them. + When this policy is in effect, it affects the behavior + of a registration timeout; for details, see the documentation + for the T server message. + T - When the R policy is in effect and the iauth service does not + respond for a client, this causes the server to count the number + of clients refused, to send a warning message to interested + operators periodically, and to send the count of rejected users + to interested operators when the iauth instance responds again. + U - Send nickname, confirmed username and hurry information. + This causes the server to send the n, u and H messages. + W - Allow extra time for iauth to respond based on hostname. + When this policy is in effect and a DNS message (N or d) is + sent for a client, that client's registration timeout is + extended or reset. +Compatibility: The U policy is an Undernet extension and is not + recognized by ircd. + +V - iauth Program Version +Syntax: V :<version string> +Example: V :Undernet-iauthu v1.0 +Notify: yes +Comments: Indicates the iauth program version. This should only be + used in diagnostic messages, and must not change protocol behavior. + +a - Start of new configuration +Syntax: a +Example: a +Notify: yes +Comments: Indicates that a new configuration is being loaded by the + iauth instance. Any cached configuration records should be cleared. + +A - Configuration Information +Syntax: A <hosts?> <module> :<options> +Example: A * rfc931 +Notify: yes +Comments: Indicates new configuration information. + +s - Start of new statistics +Syntax: s +Example: s +Notify: yes +Comments: Indicates a new set of statistics will be sent. Any cached + statistics records should be cleared. + +S - Statistics Information +Syntax: S <module> :<module information> +Example: S rfc931 connected 0 unix 0 other 0 bad 0 out of 0 +Notify: yes +Comments: Indicates new or additional statistics information. + +o - Forced Username +Syntax: o <id> <remoteip> <remoteport> <username> +Example: o 5 192.168.1.10 23367 bubba +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the username should be used for the specified + client even if the normal sanity-checking would prohibit the + username. + +U - Trusted Username +Syntax: U <id> <remoteip> <remoteport> <username> +Example: U 5 192.168.1.10 23367 buddha +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the iauth instance believes <username> is + accurate for the specified client. + +u - Untrusted Username +Syntax: u <id> <remoteip> <remoteport> <username> +Example: u 5 192.168.1.10 23367 enlightened_one +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the iauth instance does not strongly trust + <username> to be accurate, but has no more trusted username. + +N - Client Hostname +Syntax: N <id> <remoteip> <remoteport> <hostname> +Example: N 5 192.168.1.10 23367 buddha.example.org +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the iauth instance believes the specified + client should use the hostname given. +Compatibility: This is an Undernet extension and ircd does not support + this message. + +I - Client IP Address +Syntax: N <id> <currentip> <remoteport> <newip> +Example: N 5 192.168.1.10 23367 127.128.129.130 +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the iauth instance wants the server to + present and treat the client as using <newip>. This means that + future iauth messages relating to the client must use <newip> + as the <remoteip> parameter. +Compatibility: This is an Undernet extension and ircd does not support + this message. + +C - Challenge User +Syntax: C <id> <remoteip> <remoteport> :<challenge string> +Example: C 5 192.168.1.10 23367 :In which year did Columbus sail the ocean blue? +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the challenge string should be sent to the + specified user, for example via NOTICE AUTH :*** <challenge string>. + The client responds by sending PASS :<response>, which should be + relayed via the P server message. This requires that the A policy + be in effect. +Compatibility: This is an Undernet extension and ircd does not support + this message. + +k - Quietly Kill Client +Syntax: k <id> <remoteip> <remoteport> :<reason> +Example: k 5 192.168.1.10 23367 :Open proxy found. +States: REGISTER, HURRY, NORMAL +Next State: GONE +Comments: Indicates that the specified client should be disconnected + for the reason given without notifying operators. +Compatibility: ircu does not use the same notification mechanism as + ircd, so operators are notified using SNO_CONNEXIT anyway. + +K - Kill Client +Syntax: K <id> <remoteip> <remoteport> :<reason> +Example: K 5 192.168.1.10 23367 :We don't like you. +States: REGISTER, HURRY, NORMAL +Next State: GONE +Comments: Indicates that the specified client should be disconnected + for the reason given. Operators should be notified. + +D - Done Checking +Syntax: D <id> <remoteip> <remoteport> [class] +Example: D 5 192.168.1.10 23367 +States: REGISTER, HURRY +Next State: NORMAL +Comments: Indicates that the iauth instance believes the specified + client should be allowed onto the network. If a class parameter is + given, the client should be assigned to that class. +Compatibility: Specifying the class is an Undernet extension and ircd + does not support that parameter. + +R - Registered User +Syntax: R <id> <remoteip> <remoteport> <account> [class] +Example: R 5 192.168.1.10 23367 Buddha +States: REGISTER, HURRY +Next State: NORMAL +Comments: Indicates that the iauth instance believes the specified + client should be allowed onto the network, pre-authenticated to + the account listed. If a class parameter is given, the client + should be assigned to that class. +Compatibility: This is an Undernet extension and ircd does not support + this message. Index: ircd-ircdev/doc/en/who.txt diff -u ircd-ircdev/doc/en/who.txt:1.1 ircd-ircdev/doc/en/who.txt:1.2 --- ircd-ircdev/doc/en/who.txt:1.1 Wed Jan 5 10:00:34... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-11-11 20:37:51
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-11-11 20:37:52 UTC Modified files: ircd/ddb_db_native.c Log message: Por un bug, impide arrancar el ircd, comento el codigo. ---------------------- diff included ---------------------- Index: ircd-ircdev/ircd/ddb_db_native.c diff -u ircd-ircdev/ircd/ddb_db_native.c:1.6 ircd-ircdev/ircd/ddb_db_native.c:1.7 --- ircd-ircdev/ircd/ddb_db_native.c:1.6 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/ddb_db_native.c Sun Nov 11 12:37:41 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Native DataBase implementation of Distributed DataBases. - * @version $Id: ddb_db_native.c,v 1.6 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: ddb_db_native.c,v 1.7 2007/11/11 20:37:41 zolty Exp $ */ #include "config.h" @@ -71,12 +71,13 @@ unsigned char table; int fd; +/* Lo comentamos porque peta if ((stat(feature_str(FEAT_DDBPATH), sStat) == 0)) { if (0 != mkdir(feature_str(FEAT_DDBPATH), 0775)) ddb_die("Error when creating %s directory", feature_str(FEAT_DDBPATH)); } - +*/ /* Verify if hashes file is exist. */ ircd_snprintf(0, path, sizeof(path), "%s/hashes", feature_str(FEAT_DDBPATH)); alarm(3); ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2007-11-11 21:53:25
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-11-11 21:53:19 UTC Modified files: ChangeLog ChangeLog.es Makefile.in TODO.es config.h.in configure configure.ac include/client.h include/ircd_events.h include/ircd_features.h include/listener.h include/numeric.h include/patchlevel.h include/s_bsd.h ircd/Makefile.am ircd/Makefile.in ircd/ircd.c ircd/ircd_features.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/listener.c ircd/m_rehash.c ircd/m_whois.c ircd/s_auth.c ircd/s_bsd.c ircd/s_debug.c ircd/s_err.c ircd/s_user.c ircd/test/Makefile.in Added files: include/ssl.h ircd/ssl.c tools/ssl/makepem Log message: Author: zoltan <zo...@ir...> Log message: 2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta9 * Soporte SSL ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.57 ircd-ircdev/ChangeLog:1.58 --- ircd-ircdev/ChangeLog:1.57 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/ChangeLog Sun Nov 11 13:53:01 2007 @@ -1,10 +1,12 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.57 2007/09/20 21:00:31 zolty Exp $ +# $Id: ChangeLog,v 1.58 2007/11/11 21:53:01 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta9 + * SSL Support 2007-09-20 Toni Garc�a <zo...@ir...> 1.0.beta8 * Cleanup Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.57 ircd-ircdev/ChangeLog.es:1.58 --- ircd-ircdev/ChangeLog.es:1.57 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/ChangeLog.es Sun Nov 11 13:53:02 2007 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.57 2007/09/20 21:00:31 zolty Exp $ +# $Id: ChangeLog.es,v 1.58 2007/11/11 21:53:02 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta9 + * Soporte SSL + 2007-09-20 Toni Garc�a <zo...@ir...> 1.0.beta8 * Cleanup Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.13 ircd-ircdev/Makefile.in:1.14 --- ircd-ircdev/Makefile.in:1.13 Fri Sep 21 01:03:09 2007 +++ ircd-ircdev/Makefile.in Sun Nov 11 13:53:02 2007 @@ -129,6 +129,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ +SSL_C = @SSL_C@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.31 ircd-ircdev/TODO.es:1.32 --- ircd-ircdev/TODO.es:1.31 Tue Oct 25 02:47:29 2005 +++ ircd-ircdev/TODO.es Sun Nov 11 13:53:02 2007 @@ -1,14 +1,10 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.31 2005/10/25 09:47:29 zolty Exp $ +# $Id: TODO.es,v 1.32 2007/11/11 21:53:02 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # -URGENTISIMO - - Pasar el codigo de alpha a BETA. Hay que revisar codigo por .c por -.c. Esto es debido a que la base del ircd ya se utiliza en producción. - URGENTE -------------------------------------------------------------------------------------- @@ -54,7 +50,6 @@ - [G] Soporte Zlib para server<->server y client<->server (requiere negociado). - [G] Soporte RC4 para server<->server. - - [G] Soporte SSL para client<->server. - [G] Mirar si el aviso de invites lo haga con wallchops o con raw. - [G] Soporte de +e (exceptions) de canales - [G] Modo de canal +u de esconder mensajes de quit y part (evitar Index: ircd-ircdev/config.h.in diff -u ircd-ircdev/config.h.in:1.13 ircd-ircdev/config.h.in:1.14 --- ircd-ircdev/config.h.in:1.13 Fri Sep 21 01:03:09 2007 +++ ircd-ircdev/config.h.in Sun Nov 11 13:53:02 2007 @@ -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: config.h.in,v 1.13 2007/09/21 08:03:09 zolty Exp $ + * $Id: config.h.in,v 1.14 2007/11/11 21:53:02 zolty Exp $ * */ #ifndef INCLUDED_config_h @@ -240,6 +240,12 @@ /* The size of `void *', as computed by sizeof. */ #undef SIZEOF_VOID_P +/* Path name used as a base for the ssl include files. */ +#undef SSL_INCLUDES_PATH + +/* Path name used as a base for the ssl lib files. */ +#undef SSL_LIBS_PATH + /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS @@ -264,6 +270,9 @@ /* Specify whether or not to use poll() */ #undef USE_POLL +/* Enable SSL support */ +#undef USE_SSL + /* Version number of package */ #undef VERSION Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.23 ircd-ircdev/configure:1.24 --- ircd-ircdev/configure:1.23 Thu Sep 20 23:59:26 2007 +++ ircd-ircdev/configure Sun Nov 11 13:53:02 2007 @@ -730,6 +730,7 @@ ENGINE_KQUEUE_FALSE ENGINE_EPOLL_TRUE ENGINE_EPOLL_FALSE +SSL_C ENVIRONMENT_DDB_TRUE ENVIRONMENT_DDB_FALSE LIBOBJS @@ -1335,11 +1336,15 @@ --enable-debug Enable debugging mode --disable-asserts Disable assertion checking --disable-ipv6 Disable IPv6 support + --disable-ssl Disable SSL support --disable-inlines Disable inlining for a few critical functions Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-openssl-includes Specify location of OpenSSL header files (default /usr/include) + --with-openssl-libs Specify location of OpenSSL libs (default /usr/lib) + --with-kerb-includes Specify location of Kerberos includes (default /usr/kerberos/include) --with-domain Domain name to use for local statistics --with-maxcon Maximum number of connections server will accept --with-ddb-environment Use the DDB Environment (Distributed DataBase) @@ -9171,6 +9176,66 @@ unet_have_sockaddr_in6=no fi +{ echo "$as_me:$LINENO: checking for struct ssl_st" >&5 +echo $ECHO_N "checking for struct ssl_st... $ECHO_C" >&6; } +if test "${ac_cv_type_struct_ssl_st+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <openssl/ssl.h> + +typedef struct ssl_st ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_struct_ssl_st=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_struct_ssl_st=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_struct_ssl_st" >&5 +echo "${ECHO_T}$ac_cv_type_struct_ssl_st" >&6; } +if test $ac_cv_type_struct_ssl_st = yes; then + unet_have_ssl=yes +else + unet_have_ssl=no +fi + { echo "$as_me:$LINENO: checking for socklen_t" >&5 echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6; } @@ -10074,6 +10139,382 @@ fi +{ echo "$as_me:$LINENO: checking whether to enable SSL" >&5 +echo $ECHO_N "checking whether to enable SSL... $ECHO_C" >&6; } +# Check whether --enable-ssl was given. +if test "${enable_ssl+set}" = set; then + enableval=$enable_ssl; unet_cv_enable_ssl=$enableval +else + if test "${unet_cv_enable_ssl+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + unet_cv_enable_ssl=$unet_have_ssl +fi + +fi + + +# Prohibit SSL support if ssl doesn't exist +if test x"$unet_have_ssl" = xno; then + unet_cv_enable_ssl=no +fi +{ echo "$as_me:$LINENO: result: $unet_cv_enable_ssl" >&5 +echo "${ECHO_T}$unet_cv_enable_ssl" >&6; } + +# Set the preprocessor symbol +if test x"$unet_cv_enable_ssl" = xyes; then + { echo "$as_me:$LINENO: checking for OpenSSL includes" >&5 +echo $ECHO_N "checking for OpenSSL includes... $ECHO_C" >&6; } + +# Check whether --with-openssl-includes was given. +if test "${with_openssl_includes+set}" = set; then + withval=$with_openssl_includes; base_ssl_inc=$withval +else + base_ssl_inc=/usr/include +fi + + unet_cv_with_openssl_inc_prefix=$base_ssl_inc + { echo "$as_me:$LINENO: result: $unet_cv_with_openssl_inc_prefix" >&5 +echo "${ECHO_T}$unet_cv_with_openssl_inc_prefix" >&6; } + +cat >>confdefs.h <<_ACEOF +#define SSL_INCLUDES_PATH "$base_ssl_inc" +_ACEOF + + + { echo "$as_me:$LINENO: checking for OpenSSL libraries" >&5 +echo $ECHO_N "checking for OpenSSL libraries... $ECHO_C" >&6; } + +# Check whether --with-openssl-libs was given. +if test "${with_openssl_libs+set}" = set; then + withval=$with_openssl_libs; unet_cv_with_openssl_prefix=$withval +else + unet_cv_with_openssl_prefix=/usr/lib +fi + + { echo "$as_me:$LINENO: result: $unet_cv_with_openssl_prefix" >&5 +echo "${ECHO_T}$unet_cv_with_openssl_prefix" >&6; } + +cat >>confdefs.h <<_ACEOF +#define SSL_LIBS_PATH "$unet_cv_with_openssl_prefix" +_ACEOF + + + { echo "$as_me:$LINENO: checking for Kerberos includes" >&5 +echo $ECHO_N "checking for Kerberos includes... $ECHO_C" >&6; } + +# Check whether --with-kerberos-includes was given. +if test "${with_kerberos_includes+set}" = set; then + withval=$with_kerberos_includes; unet_cv_with_kerberos_prefix=$withval +else + unet_cv_with_kerberos_prefix=/usr/kerberos/include +fi + + { echo "$as_me:$LINENO: result: $unet_cv_with_kerberos_prefix" >&5 +echo "${ECHO_T}$unet_cv_with_kerberos_prefix" >&6; } + + save_CFLAGS=$CFLAGS; + CFLAGS="-lcrypto"; + + unet_cv_enable_ssl="no"; + OPENSSL_LDFLAGS=""; + { echo "$as_me:$LINENO: checking for SSL_read in -lssl" >&5 +echo $ECHO_N "checking for SSL_read in -lssl... $ECHO_C" >&6; } +if test "${ac_cv_lib_ssl_SSL_read+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lssl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char SSL_read (); +int +main () +{ +return SSL_read (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_ssl_SSL_read=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_ssl_SSL_read=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_read" >&5 +echo "${ECHO_T}$ac_cv_lib_ssl_SSL_read" >&6; } +if test $ac_cv_lib_ssl_SSL_read = yes; then + + { echo "$as_me:$LINENO: checking for X509_new in -lcrypto" >&5 +echo $ECHO_N "checking for X509_new in -lcrypto... $ECHO_C" >&6; } +if test "${ac_cv_lib_crypto_X509_new+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypto $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char X509_new (); +int +main () +{ +return X509_new (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_crypto_X509_new=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_crypto_X509_new=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_X509_new" >&5 +echo "${ECHO_T}$ac_cv_lib_crypto_X509_new" >&6; } +if test $ac_cv_lib_crypto_X509_new = yes; then + + + +for ac_header in $base_ssl_inc/openssl/ssl.h $base_ssl_inc/openssl/err.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## -------------------------------- ## +## Report this to de...@ir... ## +## -------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + + unet_cv_enable_ssl="yes"; + OPENSSL_LDFLAGS="-lcrypto -lssl" + SSL_C=ssl.c + + +fi + +done + + +fi + + +fi + + CFLAGS=$save_CFLAGS + + if test "x$unet_cv_enable_ssl" = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define USE_SSL 1 +_ACEOF + + + LIBS="$LIBS -L$unet_cv_with_openssl_prefix $OPENSSL_LDFLAGS" + CFLAGS="$CFLAGS -I$unet_cv_with_openssl_inc_prefix -I$unet_cv_with_kerberos_prefix" + fi +fi + { echo "$as_me:$LINENO: checking whether to enable inlining for a few critical functions" >&5 echo $ECHO_N "checking whether to enable inlining for a few critical functions... $ECHO_C" >&6; } # Check whether --enable-inlines was given. @@ -11192,13 +11633,14 @@ cat >conf$$subs.sed <<_ACEOF ENGINE_EPOLL_TRUE!$ENGINE_EPOLL_TRUE$ac_delim ENGINE_EPOLL_FALSE!$ENGINE_EPOLL_FALSE$ac_delim +SSL_C!$SSL_C$ac_delim ENVIRONMENT_DDB_TRUE!$ENVIRONMENT_DDB_TRUE$ac_delim ENVIRONMENT_DDB_FALSE!$ENVIRONMENT_DDB_FALSE$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 6; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 7; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 @@ -11817,6 +12259,7 @@ echo " Asserts: $unet_cv_enable_asserts" echo " Debug: $unet_cv_enable_debug" echo " IPv6: $unet_cv_enable_ipv6" +echo " SSL: $unet_cv_enable_ssl" echo " Inlines: $unet_cv_enable_inlines" echo "" echo " Prefix: $prefix" Index: ircd-ircdev/configure.ac diff -u ircd-ircdev/configure.ac:1.2 ircd-ircdev/configure.ac:1.3 --- ircd-ircdev/configure.ac:1.2 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/configure.ac Sun Nov 11 13:53:03 2007 @@ -23,7 +23,7 @@ dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl -dnl @(#)$Id: configure.ac,v 1.2 2007/09/20 21:00:31 zolty Exp $ +dnl @(#)$Id: configure.ac,v 1.3 2007/11/11 21:53:03 zolty Exp $ dnl AC_INIT([IRC-Dev IRC Daemon],[1.0.beta],[de...@ir...],[ircd-ircdev]) @@ -44,7 +44,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]) -AC_REVISION($Revision: 1.2 $) +AC_REVISION($Revision: 1.3 $) AC_CONFIG_SRCDIR([ircd/ircd.c]) AM_INIT_AUTOMAKE([foreign]) @@ -104,6 +104,10 @@ [unet_have_sockaddr_in6=no], [#include <sys/types.h> #include <netinet/in.h>]) +AC_CHECK_TYPE([struct ssl_st], + [unet_have_ssl=yes], + [unet_have_ssl=no], +[#include <openssl/ssl.h>]) dnl Check for socklen_t. In traditional BSD this is an int, but some dnl OSes use a different type. Test until we find something that will @@ -290,6 +294,67 @@ AC_DEFINE([IPV6], 1, [Enable IPv6 support]) fi +dnl how about SSL support? +unet_TOGGLE([ssl], $unet_have_ssl, [Disable SSL support], + [whether to enable SSL], +[# Prohibit SSL support if ssl doesn't exist +if test x"$unet_have_ssl" = xno; then + unet_cv_enable_ssl=no +fi]) + +# Set the preprocessor symbol +if test x"$unet_cv_enable_ssl" = xyes; then + AC_MSG_CHECKING([for OpenSSL includes]) + AC_ARG_WITH(openssl-includes, + [ --with-openssl-includes Specify location of OpenSSL header files (default /usr/include)], + [base_ssl_inc=$withval], + [base_ssl_inc=/usr/include]) + [unet_cv_with_openssl_inc_prefix=$base_ssl_inc] + AC_MSG_RESULT([$unet_cv_with_openssl_inc_prefix]) + AC_DEFINE_UNQUOTED(SSL_INCLUDES_PATH, "$base_ssl_inc", + [Path name used as a base for the ssl include files.]) + + AC_MSG_CHECKING([for OpenSSL libraries]) + AC_ARG_WITH(openssl-libs, + [ --with-openssl-libs Specify location of OpenSSL libs (default /usr/lib)], + [unet_cv_with_openssl_prefix=$withval], + [unet_cv_with_openssl_prefix=/usr/lib]) + AC_MSG_RESULT([$unet_cv_with_openssl_prefix]) + AC_DEFINE_UNQUOTED(SSL_LIBS_PATH, "$unet_cv_with_openssl_prefix", + [Path name used as a base for the ssl lib files.]) + + AC_MSG_CHECKING([for Kerberos includes]) + AC_ARG_WITH(kerberos-includes, + [ --with-kerb-includes Specify location of Kerberos includes (default /usr/kerberos/include)], + [unet_cv_with_kerberos_prefix=$withval], + [unet_cv_with_kerberos_prefix=/usr/kerberos/include]) + AC_MSG_RESULT([$unet_cv_with_kerberos_prefix]) + + save_CFLAGS=$CFLAGS; + CFLAGS="-lcrypto"; + + unet_cv_enable_ssl="no"; + OPENSSL_LDFLAGS=""; + AC_CHECK_LIB(ssl, SSL_read, [ + AC_CHECK_LIB(crypto, X509_new, [ + AC_CHECK_HEADERS($base_ssl_inc/openssl/ssl.h $base_ssl_inc/openssl/err.h, [ + unet_cv_enable_ssl="yes"; + OPENSSL_LDFLAGS="-lcrypto -lssl" + SSL_C=ssl.c + AC_SUBST(SSL_C) + ]) + ]) + ]) + CFLAGS=$save_CFLAGS + + if test "x$unet_cv_enable_ssl" = xyes; then + AC_DEFINE([USE_SSL], 1, [Enable SSL support]) + + LIBS="$LIBS -L$unet_cv_with_openssl_prefix $OPENSSL_LDFLAGS" + CFLAGS="$CFLAGS -I$unet_cv_with_openssl_inc_prefix -I$unet_cv_with_kerberos_prefix" + fi +fi + dnl Should we force inlines? unet_TOGGLE([inlines], yes, [Disable inlining for a few critical functions], [whether to enable inlining for a few critical functions]) @@ -448,6 +513,7 @@ echo " Debug: $unet_cv_enable_debug" dnl echo " Leak Detect: $unet_cv_with_leak_detect" echo " IPv6: $unet_cv_enable_ipv6" +echo " SSL: $unet_cv_enable_ssl" dnl echo " Profile: $unet_cv_enable_profile" dnl echo " Pedantic: $unet_cv_enable_pedantic" echo " Inlines: $unet_cv_enable_inlines" Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.22 ircd-ircdev/include/client.h:1.23 --- ircd-ircdev/include/client.h:1.22 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/include/client.h Sun Nov 11 13:53:04 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.22 2007/09/20 21:00:31 zolty Exp $ + * @version $Id: client.h,v 1.23 2007/11/11 21:53:04 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -73,9 +73,9 @@ /** String containing valid user modes, in no particular order. */ #if defined(DDB) || defined(SERVICES) -#define infousermodes "dioswkgxrS" +#define infousermodes "dioswkgxrSZ" #else -#define infousermodes "dioswkgx" +#define infousermodes "dioswkgxZ" #endif /** Operator privileges. */ @@ -159,6 +159,9 @@ FLAG_NICKSUSPEND, /**< nick suspended */ #endif FLAG_HIDDENHOST, /**< user's host is hidden */ +#ifdef USE_SSL + FLAG_SSL, /**< is a user with secure connection */ +#endif FLAG_LAST_FLAG, /**< number of flags */ FLAG_LOCAL_UMODES = FLAG_LOCOP, /**< First local mode flag */ FLAG_GLOBAL_UMODES = FLAG_OPER /**< First global mode flag */ @@ -590,6 +593,10 @@ #define IsHiddenHost(x) HasFlag(x, FLAG_HIDDENHOST) /** Return non-zero if the client has an active PING request. */ #define IsPingSent(x) HasFlag(x, FLAG_PINGSENT) +#ifdef USE_SSL +/** Return non-zero if the client has a secure connection. */ +#define IsSSL(x) HasFlag(x, FLAG_SSL) +#endif #if defined(DDB) || defined(SERVICES) /** Return non-zero if the client has set mode +r (nick registered) */ #define IsNickRegistered(x) HasFlag(x, FLAG_NICKREG) @@ -648,6 +655,10 @@ #define SetHiddenHost(x) SetFlag(x, FLAG_HIDDENHOST) /** Mark a client as having a pending PING. */ #define SetPingSent(x) SetFlag(x, FLAG_PINGSENT) +#ifdef USE_SSL +/** Mark a client as secure connection .*/ +#define SetSSL(x) SetFlag(x, FLAG_SSL) +#endif #if defined(DDB) || defined(SERVICES) /** Mark a client as having mode +r (nick registered) */ #define SetNickRegistered(x) SetFlag(x, FLAG_NICKREG) @@ -687,6 +698,10 @@ #define ClearHiddenHost(x) ClrFlag(x, FLAG_HIDDENHOST) /** Clear the client's pending PING flag. */ #define ClearPingSent(x) ClrFlag(x, FLAG_PINGSENT) +#ifdef USE_SSL +/** Clear the client's secure connection. */ +#define ClearSSL(x) ClrFlag(x, FLAG_SSL) +#endif #if defined(DDB) || defined(SERVICES) /** Remove mode +r (nick registered) from the client */ #define ClearNickRegistered(x) ClrFlag(x, FLAG_NICKREG) Index: ircd-ircdev/include/ircd_events.h diff -u ircd-ircdev/include/ircd_events.h:1.5 ircd-ircdev/include/ircd_events.h:1.6 --- ircd-ircdev/include/ircd_events.h:1.5 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_events.h Sun Nov 11 13:53:05 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and public definitions for event loop. - * @version $Id: ircd_events.h,v 1.5 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd_events.h,v 1.6 2007/11/11 21:53:05 zolty Exp $ */ #ifndef INCLUDED_ircd_events_h #define INCLUDED_ircd_events_h @@ -33,6 +33,11 @@ #include <sys/types.h> /* time_t */ #define INCLUDED_sys_types_h #endif +#ifdef USE_SSL +#ifndef INCLUDED_ssl_h +#include "ssl.h" +#endif +#endif struct Event; @@ -107,6 +112,9 @@ enum SocketState s_state; /**< state socket's in */ unsigned int s_events; /**< events socket is interested in */ int s_fd; /**< file descriptor for socket */ +#ifdef USE_SSL + SSL* ssl; /* if not NULL, use SSL routines on socket */ +#endif }; #define SOCK_EVENT_READABLE 0x0001 /**< interested in readable */ Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.20 ircd-ircdev/include/ircd_features.h:1.21 --- ircd-ircdev/include/ircd_features.h:1.20 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/include/ircd_features.h Sun Nov 11 13:53:05 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.20 2007/07/21 23:51:39 zolty Exp $ + * @version $Id: ircd_features.h,v 1.21 2007/11/11 21:53:05 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -92,6 +92,9 @@ FEAT_MPATH, FEAT_RPATH, FEAT_PPATH, +#ifdef USE_SSL + FEAT_SSL_PEM_PATH, +#endif #if defined(DDB) FEAT_DDBPATH, #endif Index: ircd-ircdev/include/listener.h diff -u ircd-ircdev/include/listener.h:1.6 ircd-ircdev/include/listener.h:1.7 --- ircd-ircdev/include/listener.h:1.6 Sun Apr 22 06:56:19 2007 +++ ircd-ircdev/include/listener.h Sun Nov 11 13:53:05 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and declarations for handling listening sockets. - * @version $Id: listener.h,v 1.6 2007/04/22 13:56:19 zolty Exp $ + * @version $Id: listener.h,v 1.7 2007/11/11 21:53:05 zolty Exp $ */ #ifndef INCLUDED_listener_h #define INCLUDED_listener_h @@ -57,6 +57,10 @@ LISTEN_IPV4, /** Port listens for IPv6 connections. */ LISTEN_IPV6, +#ifdef USE_SSL + /** Port listens for SSL connections. */ + LISTEN_SSL, +#endif /** Sentinel for counting listener flags. */ LISTEN_LAST_FLAG }; @@ -81,6 +85,9 @@ #define listener_server(LISTENER) FlagHas(&(LISTENER)->flags, LISTEN_SERVER) #define listener_active(LISTENER) FlagHas(&(LISTENER)->flags, LISTEN_ACTIVE) +#i... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-12-11 23:38:46
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-12-11 23:38:38 UTC Modified files: ChangeLog ChangeLog.es config.h.in configure doc/Makefile.in include/channel.h include/dbuf.h include/gline.h include/ircd_crypt.h include/ircd_events.h include/ircd_features.h include/numeric.h include/patchlevel.h include/res.h include/s_user.h ircd/channel.c ircd/class.c ircd/dbuf.c ircd/engine_poll.c ircd/gline.c ircd/hash.c ircd/ircd_events.c ircd/ircd_features.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/ircd_snprintf.c ircd/ircd_string.c ircd/listener.c ircd/m_admin.c ircd/m_asll.c ircd/m_burst.c ircd/m_cap.c ircd/m_connect.c ircd/m_gline.c ircd/m_join.c ircd/m_list.c ircd/m_lusers.c ircd/m_mode.c ircd/m_names.c ircd/m_nick.c ircd/m_privs.c ircd/m_server.c ircd/m_silence.c ircd/m_stats.c ircd/m_user.c ircd/m_version.c ircd/m_who.c ircd/msgq.c ircd/numnicks.c ircd/parse.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_debug.c ircd/s_err.c ircd/s_misc.c ircd/s_user.c ircd/send.c ircd/umkpasswd.c ircd/uping.c ircd/version.c.SH ircd/whowas.c ircd/test/ircd_in_addr_t.c Log message: Author: zoltan <zo...@ir...> Log message: 2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta10 * Sincronizacion Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.58 ircd-ircdev/ChangeLog:1.59 --- ircd-ircdev/ChangeLog:1.58 Sun Nov 11 13:53:01 2007 +++ ircd-ircdev/ChangeLog Tue Dec 11 15:38:20 2007 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.58 2007/11/11 21:53:01 zolty Exp $ +# $Id: ChangeLog,v 1.59 2007/12/11 23:38:20 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-12-12 Toni Garc�a <zo...@ir...> 1.0.beta10 + * Undernet synchronization + 2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta9 * SSL Support 2007-09-20 Toni Garc�a <zo...@ir...> 1.0.beta8 Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.58 ircd-ircdev/ChangeLog.es:1.59 --- ircd-ircdev/ChangeLog.es:1.58 Sun Nov 11 13:53:02 2007 +++ ircd-ircdev/ChangeLog.es Tue Dec 11 15:38:21 2007 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.58 2007/11/11 21:53:02 zolty Exp $ +# $Id: ChangeLog.es,v 1.59 2007/12/11 23:38:21 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta10 + * Sincronizacion Undernet + 2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta9 * Soporte SSL Index: ircd-ircdev/config.h.in diff -u ircd-ircdev/config.h.in:1.14 ircd-ircdev/config.h.in:1.15 --- ircd-ircdev/config.h.in:1.14 Sun Nov 11 13:53:02 2007 +++ ircd-ircdev/config.h.in Tue Dec 11 15:38:21 2007 @@ -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: config.h.in,v 1.14 2007/11/11 21:53:02 zolty Exp $ + * $Id: config.h.in,v 1.15 2007/12/11 23:38:21 zolty Exp $ * */ #ifndef INCLUDED_config_h Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.24 ircd-ircdev/configure:1.25 --- ircd-ircdev/configure:1.24 Sun Nov 11 13:53:02 2007 +++ ircd-ircdev/configure Tue Dec 11 15:38:21 2007 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 1.2 . +# From configure.ac Revision: 1.3 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for IRC-Dev IRC Daemon 1.0.beta. # Index: ircd-ircdev/doc/Makefile.in diff -u ircd-ircdev/doc/Makefile.in:1.5 ircd-ircdev/doc/Makefile.in:1.6 --- ircd-ircdev/doc/Makefile.in:1.5 Sun Apr 22 06:56:19 2007 +++ ircd-ircdev/doc/Makefile.in Tue Dec 11 15:38:23 2007 @@ -17,7 +17,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: Makefile.in,v 1.5 2007/04/22 13:56:19 zolty Exp $ +# $Id: Makefile.in,v 1.6 2007/12/11 23:38:23 zolty Exp $ # #### Start of system configuration section. #### @@ -31,6 +31,8 @@ RM = @RMPROG@ @SET_MAKE@ +DATAROOTDIR = @datarootdir@ +DATADIR = @datadir@ MANDIR = @mandir@ #### End of system configuration section. #### Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.18 ircd-ircdev/include/channel.h:1.19 --- ircd-ircdev/include/channel.h:1.18 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/include/channel.h Tue Dec 11 15:38:23 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Channel management and maintenance. - * @version $Id: channel.h,v 1.18 2007/07/21 23:51:39 zolty Exp $ + * @version $Id: channel.h,v 1.19 2007/12/11 23:38:23 zolty Exp $ */ #ifndef INCLUDED_channel_h #define INCLUDED_channel_h @@ -188,6 +188,7 @@ #define LISTARG_TOPICLIMITS 0x0001 #define LISTARG_SHOWSECRET 0x0002 #define LISTARG_NEGATEWILDCARD 0x0004 +#define LISTARG_SHOWMODES 0x0008 /** * Maximum acceptable lag time in seconds: A channel younger than Index: ircd-ircdev/include/dbuf.h diff -u ircd-ircdev/include/dbuf.h:1.6 ircd-ircdev/include/dbuf.h:1.7 --- ircd-ircdev/include/dbuf.h:1.6 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/dbuf.h Tue Dec 11 15:38:23 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Interfaces and declarations for dealing with data buffers. - * @version $Id: dbuf.h,v 1.6 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: dbuf.h,v 1.7 2007/12/11 23:38:23 zolty Exp $ */ #ifndef INCLUDED_dbuf_h #define INCLUDED_dbuf_h @@ -34,8 +34,8 @@ /* * These two globals should be considered read only */ -extern int DBufAllocCount; -extern int DBufUsedCount; +extern unsigned int DBufAllocCount; +extern unsigned int DBufUsedCount; struct DBufBuffer; Index: ircd-ircdev/include/gline.h diff -u ircd-ircdev/include/gline.h:1.6 ircd-ircdev/include/gline.h:1.7 --- ircd-ircdev/include/gline.h:1.6 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/gline.h Tue Dec 11 15:38:23 2007 @@ -23,7 +23,7 @@ */ /** @file * @brief Structures and APIs for G-line manipulation. - * @version $Id: gline.h,v 1.6 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: gline.h,v 1.7 2007/12/11 23:38:23 zolty Exp $ */ #ifndef INCLUDED_gline_h #define INCLUDED_gline_h @@ -42,18 +42,36 @@ #define GLINE_MAX_EXPIRE 604800 /**< max expire: 7 days */ +/** Local state of a G-line. */ +enum GlineLocalState { + GLOCAL_GLOBAL, /**< G-line state unmodified locally. */ + GLOCAL_ACTIVATED, /**< G-line state locally activated. */ + GLOCAL_DEACTIVATED /**< G-line state locally deactivated. */ +}; + /** Description of a G-line. */ struct Gline { - struct Gline *gl_next; /**< Next G-line in linked list. */ - struct Gline**gl_prev_p; /**< Previous pointer to this G-line. */ - char *gl_user; /**< Username mask (or channel/realname mask). */ - char *gl_host; /**< Host prtion of mask. */ - char *gl_reason; /**< Reason for G-line. */ - time_t gl_expire; /**< Expiration timestamp. */ - time_t gl_lastmod; /**< Last modification timestamp. */ - struct irc_in_addr gl_addr; /**< IP address (for IP-based G-lines). */ - unsigned char gl_bits; /**< Usable bits in gl_addr. */ - unsigned int gl_flags; /**< G-line status flags. */ + struct Gline *gl_next; /**< Next G-line in linked list. */ + struct Gline**gl_prev_p; /**< Previous pointer to this G-line. */ + char *gl_user; /**< Username mask (or channel/realname mask). */ + char *gl_host; /**< Host prtion of mask. */ + char *gl_reason; /**< Reason for G-line. */ + time_t gl_expire; /**< Expiration timestamp. */ + time_t gl_lastmod; /**< Last modification timestamp. */ + time_t gl_lifetime; /**< Record expiration timestamp. */ + struct irc_in_addr gl_addr; /**< IP address (for IP-based G-lines). */ + unsigned char gl_bits; /**< Usable bits in gl_addr. */ + unsigned int gl_flags; /**< G-line status flags. */ + enum GlineLocalState gl_state;/**< G-line local state. */ +}; + +/** Action to perform on a G-line. */ +enum GlineAction { + GLINE_ACTIVATE, /**< G-line should be activated. */ + GLINE_DEACTIVATE, /**< G-line should be deactivated. */ + GLINE_LOCAL_ACTIVATE, /**< G-line should be locally activated. */ + GLINE_LOCAL_DEACTIVATE, /**< G-line should be locally deactivated. */ + GLINE_MODIFY /**< G-line should be modified. */ }; #define GLINE_ACTIVE 0x0001 /**< G-line is active. */ @@ -69,14 +87,22 @@ #define GLINE_OPERFORCE 0x0400 /**< Oper forcing G-line to be set. */ #define GLINE_REALNAME 0x0800 /**< G-line matches only the realname field. */ +#define GLINE_EXPIRE 0x1000 /**< Expiration time update */ +#define GLINE_LIFETIME 0x2000 /**< Record lifetime update */ +#define GLINE_REASON 0x4000 /**< Reason update */ + /** Controllable flags that can be set on an actual G-line. */ #define GLINE_MASK (GLINE_ACTIVE | GLINE_BADCHAN | GLINE_LOCAL | GLINE_REALNAME) /** Mask for G-line activity flags. */ #define GLINE_ACTMASK (GLINE_ACTIVE | GLINE_LDEACT) +/** Mask for G-line update flags. */ +#define GLINE_UPDATE (GLINE_EXPIRE | GLINE_LIFETIME | GLINE_REASON) + /** Test whether \a g is active. */ -#define GlineIsActive(g) (((g)->gl_flags & GLINE_ACTMASK) == \ - GLINE_ACTIVE) +#define GlineIsActive(g) ((((g)->gl_flags & GLINE_ACTIVE) && \ + (g)->gl_state != GLOCAL_DEACTIVATED) || \ + (g)->gl_state == GLOCAL_ACTIVATED) /** Test whether \a g is remotely (globally) active. */ #define GlineIsRemActive(g) ((g)->gl_flags & GLINE_ACTIVE) /** Test whether \a g is an IP-based G-line. */ @@ -97,17 +123,21 @@ /** Return last modification time of a G-line. */ #define GlineLastMod(g) ((g)->gl_lastmod) -extern int gline_propagate(struct Client *cptr, struct Client *sptr, - struct Gline *gline); extern int gline_add(struct Client *cptr, struct Client *sptr, char *userhost, char *reason, time_t expire, time_t lastmod, - unsigned int flags); + time_t lifetime, unsigned int flags); extern int gline_activate(struct Client *cptr, struct Client *sptr, struct Gline *gline, time_t lastmod, unsigned int flags); extern int gline_deactivate(struct Client *cptr, struct Client *sptr, struct Gline *gline, time_t lastmod, unsigned int flags); +extern int gline_modify(struct Client *cptr, struct Client *sptr, + struct Gline *gline, enum GlineAction action, + char *reason, time_t expire, time_t lastmod, + time_t lifetime, unsigned int flags); +extern int gline_destroy(struct Client *cptr, struct Client *sptr, + struct Gline *gline); extern struct Gline *gline_find(char *userhost, unsigned int flags); extern struct Gline *gline_lookup(struct Client *cptr, unsigned int flags); extern void gline_free(struct Gline *gline); Index: ircd-ircdev/include/ircd_crypt.h diff -u ircd-ircdev/include/ircd_crypt.h:1.3 ircd-ircdev/include/ircd_crypt.h:1.4 --- ircd-ircdev/include/ircd_crypt.h:1.3 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_crypt.h Tue Dec 11 15:38:23 2007 @@ -20,7 +20,7 @@ */ /** @file * @brief Core password encryption and hashing APIs. - * @version $Id: ircd_crypt.h,v 1.3 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd_crypt.h,v 1.4 2007/12/11 23:38:23 zolty Exp $ */ #ifndef INCLUDED_ircd_crypt_h #define INCLUDED_ircd_crypt_h @@ -37,7 +37,7 @@ char* crypt_token; /* what identifies a password string as belonging to this mechanism */ - int crypt_token_size; /* how long is the token */ + unsigned int crypt_token_size; /* how long is the token */ }; typedef struct crypt_mech_s crypt_mech_t; Index: ircd-ircdev/include/ircd_events.h diff -u ircd-ircdev/include/ircd_events.h:1.6 ircd-ircdev/include/ircd_events.h:1.7 --- ircd-ircdev/include/ircd_events.h:1.6 Sun Nov 11 13:53:05 2007 +++ ircd-ircdev/include/ircd_events.h Tue Dec 11 15:38:23 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and public definitions for event loop. - * @version $Id: ircd_events.h,v 1.6 2007/11/11 21:53:05 zolty Exp $ + * @version $Id: ircd_events.h,v 1.7 2007/12/11 23:38:23 zolty Exp $ */ #ifndef INCLUDED_ircd_events_h #define INCLUDED_ircd_events_h @@ -213,9 +213,9 @@ /** List of all event generators. */ struct Generators { - struct Socket* g_socket; /**< list of socket generators */ - struct Signal* g_signal; /**< list of signal generators */ - struct Timer* g_timer; /**< list of timer generators */ + struct GenHeader* g_socket; /**< list of socket generators */ + struct GenHeader* g_signal; /**< list of signal generators */ + struct GenHeader* g_timer; /**< list of timer generators */ }; /** Returns 1 if successfully initialized, 0 if not. @@ -295,7 +295,8 @@ void timer_chg(struct Timer* timer, enum TimerType type, time_t value); void timer_run(void); /** Retrieve the next timer's expiration time from Generators \a gen. */ -#define timer_next(gen) ((gen)->g_timer ? (gen)->g_timer->t_expire : 0) + +#define timer_next(gen) ((gen)->g_timer ? ((struct Timer*)(gen)->g_timer)->t_expire : 0) void signal_add(struct Signal* signal, EventCallBack call, void* data, int sig); Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.21 ircd-ircdev/include/ircd_features.h:1.22 --- ircd-ircdev/include/ircd_features.h:1.21 Sun Nov 11 13:53:05 2007 +++ ircd-ircdev/include/ircd_features.h Tue Dec 11 15:38:23 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.21 2007/11/11 21:53:05 zolty Exp $ + * @version $Id: ircd_features.h,v 1.22 2007/12/11 23:38:23 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -64,6 +64,7 @@ FEAT_LOCAL_CHANNELS, FEAT_TOPIC_BURST, FEAT_USER_GLIST, + FEAT_DISABLE_GLINES, /* features that probably should not be touched */ FEAT_KILLCHASETIMELIMIT, @@ -223,5 +224,6 @@ extern int feature_int(enum Feature feat); extern int feature_bool(enum Feature feat); extern const char *feature_str(enum Feature feat); +extern unsigned int feature_uint(enum Feature feat); #endif /* INCLUDED_features_h */ Index: ircd-ircdev/include/numeric.h diff -u ircd-ircdev/include/numeric.h:1.18 ircd-ircdev/include/numeric.h:1.19 --- ircd-ircdev/include/numeric.h:1.18 Sun Nov 11 13:53:05 2007 +++ ircd-ircdev/include/numeric.h Tue Dec 11 15:38:23 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Declarations of numeric replies and supporting functions. - * @version $Id: numeric.h,v 1.18 2007/11/11 21:53:05 zolty Exp $ + * @version $Id: numeric.h,v 1.19 2007/12/11 23:38:23 zolty Exp $ */ #ifndef INCLUDED_numeric_h #define INCLUDED_numeric_h @@ -342,6 +342,7 @@ /* ERR_BADMASK 415 IRCnet extension */ #define ERR_QUERYTOOLONG 416 /* Undernet extension */ /* ERR_TOOMANYMATCHES 416 IRCnet extension */ +#define ERR_INPUTTOOLONG 417 /* ERR_LENGTHTRUNCATED 419 aircd */ #define ERR_UNKNOWNCOMMAND 421 Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.57 ircd-ircdev/include/patchlevel.h:1.58 --- ircd-ircdev/include/patchlevel.h:1.57 Sun Nov 11 13:53:05 2007 +++ ircd-ircdev/include/patchlevel.h Tue Dec 11 15:38:23 2007 @@ -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.57 2007/11/11 21:53:05 zolty Exp $ + * $Id: patchlevel.h,v 1.58 2007/12/11 23:38:23 zolty Exp $ * */ -#define PATCHLEVEL "9" +#define PATCHLEVEL "10" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/res.h diff -u ircd-ircdev/include/res.h:1.10 ircd-ircdev/include/res.h:1.11 --- ircd-ircdev/include/res.h:1.10 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/include/res.h Tue Dec 11 15:38:23 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief IRC resolver API. - * @version $Id: res.h,v 1.10 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: res.h,v 1.11 2007/12/11 23:38:23 zolty Exp $ */ #ifndef INCLUDED_res_h @@ -150,7 +150,7 @@ && ((ADDR)->in6_16[5] == 0 \ || (ADDR)->in6_16[5] == 65535)) /** Evaluate to non-zero if \a ADDR is a valid address (not all 0s and not all 1s). */ -#define irc_in_addr_valid(ADDR) (((ADDR)->in6_16[0] && ~(ADDR)->in6_16[0]) \ +#define irc_in_addr_valid(ADDR) (((ADDR)->in6_16[0] && ((ADDR)->in6_16[0] != 65535)) \ || (ADDR)->in6_16[1] != (ADDR)->in6_16[0] \ || (ADDR)->in6_16[2] != (ADDR)->in6_16[0] \ || (ADDR)->in6_16[3] != (ADDR)->in6_16[0] \ @@ -160,8 +160,9 @@ || (ADDR)->in6_16[7] != (ADDR)->in6_16[0]) /** Evaluate to non-zero if \a ADDR (of type struct irc_in_addr) is an IPv4 address. */ #define irc_in_addr_is_ipv4(ADDR) (!(ADDR)->in6_16[0] && !(ADDR)->in6_16[1] && !(ADDR)->in6_16[2] \ - && !(ADDR)->in6_16[3] && !(ADDR)->in6_16[4] && (ADDR)->in6_16[6] \ - && (!(ADDR)->in6_16[5] || (ADDR)->in6_16[5] == 65535)) + && !(ADDR)->in6_16[3] && !(ADDR)->in6_16[4] \ + && ((!(ADDR)->in6_16[5] && (ADDR)->in6_16[6]) \ + || (ADDR)->in6_16[5] == 65535)) /** Evaluate to non-zero if \a A is a different IP than \a B. */ #define irc_in_addr_cmp(A,B) (irc_in_addr_is_ipv4(A) ? ((A)->in6_16[6] != (B)->in6_16[6] \ || (A)->in6_16[7] != (B)->in6_16[7] || !irc_in_addr_is_ipv4(B)) \ Index: ircd-ircdev/include/s_user.h diff -u ircd-ircdev/include/s_user.h:1.12 ircd-ircdev/include/s_user.h:1.13 --- ircd-ircdev/include/s_user.h:1.12 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/include/s_user.h Tue Dec 11 15:38:23 2007 @@ -21,7 +21,7 @@ */ /** @file s_user.h * @brief Miscellaneous user-related helper functions. - * @version $Id: s_user.h,v 1.12 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: s_user.h,v 1.13 2007/12/11 23:38:23 zolty Exp $ */ #ifndef INCLUDED_s_user_h #define INCLUDED_s_user_h @@ -72,6 +72,10 @@ #define MATCH_SERVER 1 /**< flag for relay_masked_message (etc) to indicate the mask matches a server name */ #define MATCH_HOST 2 /**< flag for relay_masked_message (etc) to indicate the mask matches host name */ +/* used for parsing user modes */ +#define ALLOWMODES_ANY 0 /**< Allow any user mode */ +#define ALLOWMODES_DEFAULT 1 /**< Only allow the subset of modes that are legit defaults */ + /* used in set_nick_name */ #define NICK_EQUIVALENT 0x01 /** < Equivalent */ #define NICK_RENAMED 0x02 /** < Rename */ @@ -122,7 +126,7 @@ extern int hide_hostmask(struct Client *cptr, const char *vhost, unsigned int flags); extern int set_user_mode(struct Client *cptr, struct Client *sptr, - int parc, char *parv[]); + int parc, char *parv[], int allow_modes); extern int is_silenced(struct Client *sptr, struct Client *acptr); extern int hunt_server_cmd(struct Client *from, const char *cmd, const char *tok, struct Client *one, Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.33 ircd-ircdev/ircd/channel.c:1.34 --- ircd-ircdev/ircd/channel.c:1.33 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/ircd/channel.c Tue Dec 11 15:38:23 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.33 2007/09/20 21:00:31 zolty Exp $ + * @version $Id: channel.c,v 1.34 2007/12/11 23:38:23 zolty Exp $ */ #include "config.h" @@ -1429,8 +1429,8 @@ { struct Invite **uprev = &cli_user(cptr)->invited; struct Invite *inv; - int max = feature_int(FEAT_MAXCHANNELSPERUSER); - int count = 0; + unsigned int max = feature_uint(FEAT_MAXCHANNELSPERUSER); + unsigned int count = 0; /* See if the user is already invited. */ while ((inv = *uprev) != NULL) @@ -2344,8 +2344,8 @@ MODE_DELJOINS, 'D', 0x0, 0x0 }; - unsigned int add; - int i, bufpos = 0, len; + unsigned int add, i, len; + int bufpos = 0; int *flag_p; char *key = 0, limitbuf[20]; #if defined(UNDERNET) @@ -2407,9 +2407,10 @@ return; } -/** Simple function to invalidate bans +/** Simple function to invalidate a channel's ban cache. * - * This function sets all bans as being valid. + * This function marks all members of the channel as being neither + * banned nor banned. * * @param chan The channel to operate on. */ @@ -2438,13 +2439,16 @@ /* What we've done for mode_parse so far... */ #define DONE_LIMIT 0x01 /**< We've set the limit */ -#define DONE_KEY 0x02 /**< We've set the key */ +#define DONE_KEY_ADD 0x02 /**< We've set the key */ #define DONE_BANLIST 0x04 /**< We've sent the ban list */ #define DONE_NOTOPER 0x08 /**< We've sent a "Not oper" error */ #define DONE_BANCLEAN 0x10 /**< We've cleaned bans... */ +#define DONE_KEY_DEL 0x80 /**< We've removed the key */ #if defined(UNDERNET) -#define DONE_UPASS 0x20 /**< We've set user pass */ -#define DONE_APASS 0x40 /**< We've set admin pass */ +#define DONE_UPASS_ADD 0x20 /**< We've set user pass */ +#define DONE_APASS_ADD 0x40 /**< We've set admin pass */ +#define DONE_UPASS_DEL 0x100 /**< We've removed the user pass */ +#define DONE_APASS_DEL 0x200 /**< We've removed the admin pass */ #endif struct ParseState { @@ -2600,9 +2604,19 @@ return; } - if (state->done & DONE_KEY) /* allow key to be set only once */ - return; - state->done |= DONE_KEY; + /* allow removing and then adding key, but not adding and then removing */ + if (state->dir == MODE_ADD) + { + if (state->done & DONE_KEY_ADD) + return; + state->done |= DONE_KEY_ADD; + } + else + { + if (state->done & (DONE_KEY_ADD | DONE_KEY_DEL)) + return; + state->done |= DONE_KEY_DEL; + } /* clean up the key string */ clean_key(t_str); @@ -2703,9 +2717,19 @@ return; } - if (state->done & DONE_UPASS) /* allow upass to be set only once */ - return; - state->done |= DONE_UPASS; + /* allow removing and then adding upass, but not adding and then removing */ + if (state->dir == MODE_ADD) + { + if (state->done & DONE_UPASS_ADD) + return; + state->done |= DONE_UPASS_ADD; + } + else + { + if (state->done & (DONE_UPASS_ADD | DONE_UPASS_DEL)) + return; + state->done |= DONE_UPASS_DEL; + } /* clean up the upass string */ clean_key(t_str); @@ -2840,9 +2864,19 @@ } } - if (state->done & DONE_APASS) /* allow apass to be set only once */ - return; - state->done |= DONE_APASS; + /* allow removing and then adding apass, but not adding and then removing */ + if (state->dir == MODE_ADD) + { + if (state->done & DONE_APASS_ADD) + return; + state->done |= DONE_APASS_ADD; + } + else + { + if (state->done & (DONE_APASS_ADD | DONE_APASS_DEL)) + return; + state->done |= DONE_APASS_DEL; + } /* clean up the apass string */ clean_key(t_str); @@ -2975,9 +3009,9 @@ assert(newban->flags & (BAN_ADD|BAN_DEL)); if (newban->flags & BAN_ADD) { size_t totlen = 0; - /* If a less specific entry is found, fail. */ + /* If a less specific *active* entry is found, fail. */ for (ban = *banlist; ban; ban = ban->next) { - if (!bmatch(ban, newban)) { + if (!bmatch(ban, newban) && !(ban->flags & BAN_DEL)) { if (do_free) free_ban(newban); return 1; @@ -3668,14 +3702,14 @@ if (state.chptr->mode.limit && !(state.done & DONE_LIMIT)) modebuf_mode_uint(state.mbuf, MODE_DEL | MODE_LIMIT, state.chptr->mode.limit); - if (*state.chptr->mode.key && !(state.done & DONE_KEY)) + if (*state.chptr->mode.key && !(state.done & DONE_KEY_DEL)) modebuf_mode_string(state.mbuf, MODE_DEL | MODE_KEY, state.chptr->mode.key, 0); #if defined(UNDERNET) - if (*state.chptr->mode.upass && !(state.done & DONE_UPASS)) + if (*state.chptr->mode.upass && !(state.done & DONE_UPASS_DEL)) modebuf_mode_string(state.mbuf, MODE_DEL | MODE_UPASS, state.chptr->mode.upass, 0); - if (*state.chptr->mode.apass && !(state.done & DONE_APASS)) + if (*state.chptr->mode.apass && !(state.done & DONE_APASS_DEL)) modebuf_mode_string(state.mbuf, MODE_DEL | MODE_APASS, state.chptr->mode.apass, 0); #endif @@ -3856,7 +3890,7 @@ { char chanlist[BUFSIZE]; int chanlist_i = 0; - int i; + unsigned int i; if (!jbuf->jb_count || jbuf->jb_type == JOINBUF_TYPE_PARTALL || jbuf->jb_type == JOINBUF_TYPE_JOIN) Index: ircd-ircdev/ircd/class.c diff -u ircd-ircdev/ircd/class.c:1.13 ircd-ircdev/ircd/class.c:1.14 --- ircd-ircdev/ircd/class.c:1.13 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/class.c Tue Dec 11 15:38:24 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of connection class handling functions. - * @version $Id: class.c,v 1.13 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: class.c,v 1.14 2007/12/11 23:38:24 zolty Exp $ */ #include "config.h" @@ -106,7 +106,7 @@ PingFreq(connClassList) = feature_int(FEAT_PINGFREQUENCY); ConFreq(connClassList) = feature_int(FEAT_CONNECTFREQUENCY); MaxLinks(connClassList) = feature_int(FEAT_MAXIMUM_LINKS); - MaxSendq(connClassList) = feature_int(FEAT_DEFAULTMAXSENDQLENGTH); + MaxSendq(connClassList) = feature_uint(FEAT_DEFAULTMAXSENDQLENGTH); connClassList->valid = 1; Links(connClassList) = 1; } @@ -229,7 +229,7 @@ PingFreq(p) = ping; MaxLinks(p) = maxli; MaxSendq(p) = (sendq > 0U) ? - sendq : feature_int(FEAT_DEFAULTMAXSENDQLENGTH); + sendq : feature_uint(FEAT_DEFAULTMAXSENDQLENGTH); p->valid = 1; } @@ -294,7 +294,7 @@ } } } - return feature_int(FEAT_DEFAULTMAXSENDQLENGTH); + return feature_uint(FEAT_DEFAULTMAXSENDQLENGTH); } /** Report connection class memory statistics to a client. Index: ircd-ircdev/ircd/dbuf.c diff -u ircd-ircdev/ircd/dbuf.c:1.6 ircd-ircdev/ircd/dbuf.c:1.7 --- ircd-ircdev/ircd/dbuf.c:1.6 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/dbuf.c Tue Dec 11 15:38:24 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of functions dealing with data buffers. - * @version $Id: dbuf.c,v 1.6 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: dbuf.c,v 1.7 2007/12/11 23:38:24 zolty Exp $ */ #include "config.h" @@ -47,11 +47,11 @@ /** Number of dbufs allocated. * This should only be modified by dbuf.c. */ -int DBufAllocCount = 0; +unsigned int DBufAllocCount = 0; /** Number of dbufs in use. * This should only be modified by dbuf.c. */ -int DBufUsedCount = 0; +unsigned int DBufUsedCount = 0; /** List of allocated but unused DBuf structures. */ static struct DBufBuffer *dbufFreeList = 0; @@ -92,7 +92,7 @@ dbufFreeList = db->next; ++DBufUsedCount; } - else if (DBufAllocCount * DBUF_SIZE < feature_int(FEAT_BUFFERPOOL)) { + else if (DBufAllocCount * DBUF_SIZE < feature_uint(FEAT_BUFFERPOOL)) { db = (struct DBufBuffer*) MyMalloc(sizeof(struct DBufBuffer)); assert(0 != db); ++DBufAllocCount; Index: ircd-ircdev/ircd/engine_poll.c diff -u ircd-ircdev/ircd/engine_poll.c:1.6 ircd-ircdev/ircd/engine_poll.c:1.7 --- ircd-ircdev/ircd/engine_poll.c:1.6 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/engine_poll.c Tue Dec 11 15:38:24 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief POSIX poll() event engine. - * @version $Id: engine_poll.c,v 1.6 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: engine_poll.c,v 1.7 2007/12/11 23:38:24 zolty Exp $ */ #include "config.h" @@ -171,7 +171,7 @@ static int engine_add(struct Socket* sock) { - int i; + unsigned int i; assert(0 != sock); @@ -279,7 +279,7 @@ { int wait; int nfds; - int i; + unsigned int i; int errcode; socklen_t codesize; struct Socket *sock; Index: ircd-ircdev/ircd/gline.c diff -u ircd-ircdev/ircd/gline.c:1.21 ircd-ircdev/ircd/gline.c:1.22 --- ircd-ircdev/ircd/gline.c:1.21 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/ircd/gline.c Tue Dec 11 15:38:24 2007 @@ -23,7 +23,7 @@ */ /** @file * @brief Implementation of Gline manipulation functions. - * @version $Id: gline.c,v 1.21 2007/09/20 21:00:31 zolty Exp $ + * @version $Id: gline.c,v 1.22 2007/12/11 23:38:24 zolty Exp $ */ #include "config.h" @@ -71,6 +71,34 @@ /** List of BadChan G-lines. */ static struct Gline* BadChanGlineList = 0; +/** Iterate through \a list of G-lines. Use this like a for loop, + * i.e., follow it with braces and use whatever you passed as \a gl + * as a single G-line to be acted upon. + * + * @param[in] list List of G-lines to iterate over. + * @param[in] gl Name of a struct Gline pointer variable that will be made to point to the G-lines in sequence. + * @param[in] next Name of a scratch struct Gline pointer variable. + */ +/* There is some subtlety here with the boolean operators: + * (x || 1) is used to continue in a logical-and series even when !x. + * (x && 0) is used to continue in a logical-or series even when x. + */ +#define gliter(list, gl, next) \ + /* Iterate through the G-lines in the list */ \ + for ((gl) = (list); (gl); (gl) = (next)) \ + /* Figure out the next pointer in list... */ \ + if ((((next) = (gl)->gl_next) || 1) && \ + /* Then see if it's expired */ \ + (gl)->gl_lifetime <= CurrentTime) \ + /* Record has expired, so free the G-line */ \ + gline_free((gl)); \ + /* See if we need to expire the G-line */ \ + else if ((((gl)->gl_expire > CurrentTime) || \ + (((gl)->gl_flags &= ~GLINE_ACTIVE) && 0) || \ + ((gl)->gl_state = GLOCAL_GLOBAL)) && 0) \ + ; /* empty statement */ \ + else + /** Count number of users who match \a mask. * @param[in] mask user\@host or user\@ip mask to check. ... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-12-11 23:49:14
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-12-11 23:49:15 UTC Modified files: doc/ircd.sample-en.conf doc/ircd.sample-es.conf doc/en/iauth.txt Log message: Actualizacion del .conf ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/en/iauth.txt diff -u ircd-ircdev/doc/en/iauth.txt:1.2 ircd-ircdev/doc/en/iauth.txt:1.3 --- ircd-ircdev/doc/en/iauth.txt:1.2 Fri Sep 21 04:30:27 2007 +++ ircd-ircdev/doc/en/iauth.txt Tue Dec 11 15:49:05 2007 @@ -1,4 +1,4 @@ -$Id: iauth.txt,v 1.2 2007/09/21 11:30:27 zolty Exp $ +$Id: iauth.txt,v 1.3 2007/12/11 23:49:05 zolty Exp $ OVERVIEW ======== @@ -368,8 +368,8 @@ this message. I - Client IP Address -Syntax: N <id> <currentip> <remoteport> <newip> -Example: N 5 192.168.1.10 23367 127.128.129.130 +Syntax: I <id> <currentip> <remoteport> <newip> +Example: I 5 192.168.1.10 23367 127.128.129.130 States: REGISTER, HURRY Next State: - Comments: Indicates that the iauth instance wants the server to @@ -379,6 +379,16 @@ Compatibility: This is an Undernet extension and ircd does not support this message. +M - Adjust User Mode +Syntax: M <id> <remoteip> <remoteport> +<mode changes> +Example: M 5 192.168.1.10 23367 +iwg +States: REGISTER, HURRY +Next State: - +Comments: Indicates a set of user mode changes to be applied to the + client. +Compatibility: This is an Undernet extension and ircd does not support + this message. + C - Challenge User Syntax: C <id> <remoteip> <remoteport> :<challenge string> Example: C 5 192.168.1.10 23367 :In which year did Columbus sail the ocean blue? Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.25 ircd-ircdev/doc/ircd.sample-en.conf:1.26 --- ircd-ircdev/doc/ircd.sample-en.conf:1.25 Fri Sep 21 04:10:30 2007 +++ ircd-ircdev/doc/ircd.sample-en.conf Tue Dec 11 15:49:04 2007 @@ -217,7 +217,7 @@ # local_gline (can set a G-line for this server only) # local_badchan (can set a Gchan for this server only) # see_chan (can see users in +s channels in /WHO) - # list_chan (can see +s channels with /LIST S) + # list_chan (can see +s channels with /LIST S, or modes with /LIST M) # wide_gline (can use ! to force a wide G-line) # see_opers (can see opers without DISPLAY privilege) # local_opmode (can use OPMODE/CLEARMODE on local channels) @@ -286,6 +286,7 @@ { class = "Other"; ip = "*@*"; + maxlinks = 2; }; @@ -293,6 +294,7 @@ { class = "Other"; host = "*@*"; + maxlinks = 2; }; # If you don't want unresolved dudes to be able to connect to your # server, do not specify any "ip = " settings. @@ -302,18 +304,21 @@ { host = "*.rima-tde.net"; class = "Telefonica"; + maxlinks = 2; }; Client { host = "*.telefonica-data.net"; class = "Telefonica"; + maxlinks = 2; }; Client { host = "*.ttd.es"; class = "Telefonica"; + maxlinks = 2; }; # Now list all the .com / .net domains that you wish to have access... @@ -321,13 +326,13 @@ # way around - K-lining every single ISP in the US. # I wish people in Holland just got a .nl domain, and not try to be # cool and use .com... -Client { host = "*@*.wirehub.net"; class = "Other";}; -Client { host = "*@*.planete.net"; class = "Other";}; -Client { host = "*@*.ivg.com"; class = "Other";}; -Client { host = "*@*.ib.com"; class = "Other";}; -Client { host = "*@*.ibm.net"; class = "Other";}; -Client { host = "*@*.hydro.com"; class = "Other";}; -Client { host = "*@*.nl.net"; class = "Local";}; +Client { host = "*@*.wirehub.net"; class = "Other"; maxlinks = 2; }; +Client { host = "*@*.planete.net"; class = "Other"; maxlinks = 2; }; +Client { host = "*@*.ivg.com"; class = "Other"; maxlinks = 2; }; +Client { host = "*@*.ib.com"; class = "Other"; maxlinks = 2; }; +Client { host = "*@*.ibm.net"; class = "Other"; maxlinks = 2; }; +Client { host = "*@*.hydro.com"; class = "Other"; maxlinks = 2; }; +Client { host = "*@*.nl.net"; class = "Local"; maxlinks = 2; }; # You can request a more complete listing, including the "list of standard # Kill blocks" from the Routing Committee; it will also be sent to you if @@ -340,6 +345,8 @@ host = "*.rima-tde.net"; ip = "*@80.59.0.0/16"; class = "Local"; + # A maxlinks of over 5 will automatically be glined by euworld on Undernet + maxlinks = 5; }; # You can put an expression in the "maxlinks" value, which will make ircd @@ -365,6 +372,7 @@ host = "*@*"; ip = "*@*"; class = "Other"; + maxlinks = 2; }; Index: ircd-ircdev/doc/ircd.sample-es.conf diff -u ircd-ircdev/doc/ircd.sample-es.conf:1.18 ircd-ircdev/doc/ircd.sample-es.conf:1.19 --- ircd-ircdev/doc/ircd.sample-es.conf:1.18 Mon Oct 17 07:02:32 2005 +++ ircd-ircdev/doc/ircd.sample-es.conf Tue Dec 11 15:49:05 2007 @@ -219,6 +219,7 @@ # local_gline (puede poner una G-line para solamente este servidor) # local_badchan (puede poner una Gchan para solamente este servidor) # see_chan (puede ver usuarios en canales secretos (+s) en el /WHO) + # list_chan (puede ver canales +s con /LIST S, o modos con /LIST M) # wide_gline (puede usar ! para forzar una wide G-line) # see_opers (puede ver opers sin el privilegio DISPLAY) # force_local_opmode (puede utilizar OPMODE/CLEARMODE en canales quarantined locales) @@ -289,6 +290,7 @@ { class = "Otros"; ip = "*"; + maxlinks = 2; }; @@ -296,6 +298,7 @@ { class = "Otros"; host = "*"; + maxlinks = 2; }; # Si no quieres que conecten usuarios sin DNS inverso resuelto a tu # servidor, no poner ajustes de "ip = ". @@ -305,18 +308,21 @@ { host = "*.pooles.rima-tde.net"; class = "Telefonica"; + maxlinks = 2; }; Client { host = "*.telefonica-data.net"; class = "Telefonica"; + maxlinks = 2; }; Client { host = "*.ttd.es"; class = "Telefonica"; + maxlinks = 2; }; # Ahora se listan los dominios .com / .net que se desean permitir... @@ -324,13 +330,13 @@ # a cada ISP de los E.E.U.U. # Deseo que la gente de Holanda con dominio .nl, y no intento ser fresco # y usar .com... -Client { host = "*.wirehub.net"; class = "Otros";}; -Client { host = "*.planete.net"; class = "Otros";}; -Client { host = "*.ivg.com"; class = "Otros";}; -Client { host = "*.ib.com"; class = "Otros";}; -Client { host = "*.ibm.net"; class = "Otros";}; -Client { host = "*.hydro.com"; class = "Otros";}; -Client { host = "*.nl.net"; class = "Local";}; +Client { host = "*.wirehub.net"; class = "Otros"; maxlinks = 2; }; +Client { host = "*.planete.net"; class = "Otros"; maxlinks = 2; }; +Client { host = "*.ivg.com"; class = "Otros"; maxlinks = 2; }; +Client { host = "*.ib.com"; class = "Otros"; maxlinks = 2; }; +Client { host = "*.ibm.net"; class = "Otros"; maxlinks = 2; }; +Client { host = "*.hydro.com"; class = "Otros"; maxlinks = 2; }; +Client { host = "*.nl.net"; class = "Local"; maxlinks = 2; }; # Puedes solicitar un listado más completo, incluyendo la "lista estándar # de bloques "Kill"" del comité de "Routing"; también le será enviada si @@ -343,6 +349,8 @@ host = "*.pooles.rima-tde.net"; ip = "80.59.0.0/16"; class = "Local"; + # Un maxlinks de más de 5 será automáticamente glineado por euworld en Undernet + maxlinks = 5; }; @@ -369,6 +377,7 @@ host = "*"; ip = "*"; class = "Otros"; + maxlinks = 2; }; ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2008-01-05 00:28:45
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2008-01-05 00:28:47 UTC Modified files: TODO.es Log message: mas todo ---------------------- diff included ---------------------- Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.32 ircd-ircdev/TODO.es:1.33 --- ircd-ircdev/TODO.es:1.32 Sun Nov 11 13:53:02 2007 +++ ircd-ircdev/TODO.es Fri Jan 4 16:28:37 2008 @@ -1,13 +1,18 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.32 2007/11/11 21:53:02 zolty Exp $ +# $Id: TODO.es,v 1.33 2008/01/05 00:28:37 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # URGENTE -------------------------------------------------------------------------------------- + - [G] Modo +M de canal + - [G] Modo +N de canal + - [G] Modo +C de canal + - [G] Modo +c de canal + - [G] Modo +u de canal - [D] Implementar tabla o de Operadores - [D] Implementar tabla p de Privilegios - [D] Implementar tabla f de Features @@ -17,7 +22,6 @@ - [G] Soporte de E-lines (excepciones a K-lines). - [G] Modo +X de ver ips. Hacerlo por privilegios daria problemas. - [G] Modo +R de usuarios. - - [G] ¿Modo +M de canales?. - [G] Poner uuna Feature para elegir entre salir o no el nombre del servidor en los notices de auth y dnslookup al conectar. - [D] U-lines a traves de la DDB. @@ -52,8 +56,6 @@ - [G] Soporte RC4 para server<->server. - [G] Mirar si el aviso de invites lo haga con wallchops o con raw. - [G] Soporte de +e (exceptions) de canales - - [G] Modo de canal +u de esconder mensajes de quit y part (evitar - publicidad) - [G] Sistema de modulos dinámicos - [G] Bloque Logging en el .conf - [G] Estudiar la remodelación del esquema de "hubs" y "leafs" a un @@ -248,3 +250,101 @@ AUTOCHANMODES_LIST should contain the default channelmodes (e.g. "ntCN") which will be set by default on new channels. + + +Implementaciones IRC-Hispano a implementar (estudiar caso por caso) + +- NICK * para nick aleatorio +- Modo WEBCHAT especifico +- En el MOTD, la hora que salga con el timezone +- Ojo con E-lines al hacer rehash +- Guardar clave cifrado en memoria en ASCII y BINARIO +- Al mandar un notice a un canal que salga los mismos reply de erroes que con privmsg +- Suspends y forbids por BDD de forma inmediata +- Si un nodo hace bounce de modos/topic/kick/invite, hacer un -o +- En un ghost durante una conexion salir GHOST +- DOS a traves deWhois? +- Usuario baneado en canal -t no puede cambiar canal a menos que sea +o +- CPRIVMSG resetea el idle +- Ocultacion de canales en el whois siendo +B +- Estando glineado que al reentrar salga g-line y no k-line +- Soporte PASS claveserver:clavebdd +- En USERHOST/USERIP salir * si eres oper como en el WHO +- Meter lo de nick changed too fast en claves erroneas de +r y en ghost erroneos +- En Users indicar el tiempo de arranque +- Netride de topic +- Eliminacion de canales MODELESS que empiecen por @? +- MOTD por BDD +- Soporte de Ulines por BDD +- Canales persistentes +- Numerico de ircops, helpers e bots +- Usuarios con k saltan targets y nicks seguidos +- Parche ~ en nicks +- Mostrar modos en whois +- Invite en canales inexistentes, error de no such canal +- Ampliacion del comando invite +- Usuario sin +r hace a un +R no puede hacer invite pero si los ircops +- Numeric modo +R +- Salir el +k en el WHO +- Numeric Bots +B +- Chequeo de caracteres raros en el BAN +- Eline 223, silence 509 +- Userip 340 +- Silence 510 +- +R y numerico 480 +- +k sale part y quit +- Ping timeout y read error sin el to nick +- E-lines y numeric 239 +- cambiosde nicks demasiados rapido salia erro +- 432 de Erroneus nickname por invalid nickname +- nicks prohibidos +- Comprobador de TS +- Restringir lista de silence +- Formato humano en gline y stats g +- Comando OPER pass clase +- Class is full y class non-existent +- Ojo con cambio de nick estando baneado, que no salga el notice +- nicks equivalentes +- nicks suspendidos +- user quit +- al hacer un quit, mandar el quit con el closing link +- Quit sin mensaje no sale ningun mensaje +- Usuarios y porcentajes en el map +- Reliable clock desactivado +- Bug de +l 0 o negativos +- Names sin parametros no enought parameters +- /Kick primero comprobar si esta y luego si tiene +k +- No tienes privilegios para ejecutar el comando en vez no eres ircop +- whois nodo_inex nick devolver no such server +- Mensajes autoghost +- Ojo con ips en tracert +- No permitir invitar en canales inexistentes +- DNS -l que salga error +- No permitir caracteres de control en nombre canal, ascii < 32 +- En canales modeless no pueden empezar por +, #, &, @ +- Los bans tienen que comprobar a la real y virtual +- Cambiar mensaje "Cannot kill, kick or deop channel service +- Campos adecuados en stats l +- Mensaje de silenciado +- Helpers pueden ver whois largos y modos extra +- Helpers salen en who 0 o +- lag en el map +- al glinear sale la razon +- Class full y mensaje al llenar la clase +- Mostrar usuarios en el stats Y +- Conexiones con clones no heredan targets +- ocultar ips nodos +- ZLIB +- join OPER +- ip virtual en el path en los kill +- mensaje global +- ircops no tienen limitado canales +- +X mira ip real y virtual en who + + + + + + + + ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2008-01-07 00:14:20
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2008-01-07 00:14:17 UTC Modified files: ChangeLog ChangeLog.es include/channel.h include/client.h include/numeric.h include/patchlevel.h ircd/channel.c ircd/ircd_relay.c ircd/m_clearmode.c ircd/m_invite.c ircd/m_wallchops.c ircd/m_wallvoices.c ircd/s_err.c ircd/s_user.c Log message: Author: zoltan <zo...@ir...> Log message: 2008-01-07 Toni Garcïa <zo...@ir...> 1.0.beta11 * Modo de canal +C * Modo de canal +c * Modo de canal +T * Modo de canal +u * Modo de canal +M * Modo de usuario +R ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.59 ircd-ircdev/ChangeLog:1.60 --- ircd-ircdev/ChangeLog:1.59 Tue Dec 11 15:38:20 2007 +++ ircd-ircdev/ChangeLog Sun Jan 6 16:14:01 2008 @@ -1,10 +1,18 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.59 2007/12/11 23:38:20 zolty Exp $ +# $Id: ChangeLog,v 1.60 2008/01/07 00:14:01 zolty Exp $ # # Insert new changes at beginning of the change list. # +2008-01-07 Toni Garcïa <zo...@ir...> 1.0.beta11 + * Channel mode +C + * Channel mode +c + * Channel mode +T + * Channel mode +u + * Channel mode +M + * Channel mode +R + 2007-12-12 Toni Garc�a <zo...@ir...> 1.0.beta10 * Undernet synchronization Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.59 ircd-ircdev/ChangeLog.es:1.60 --- ircd-ircdev/ChangeLog.es:1.59 Tue Dec 11 15:38:21 2007 +++ ircd-ircdev/ChangeLog.es Sun Jan 6 16:14:02 2008 @@ -1,10 +1,18 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.59 2007/12/11 23:38:21 zolty Exp $ +# $Id: ChangeLog.es,v 1.60 2008/01/07 00:14:02 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2008-01-07 Toni Garc�a <zo...@ir...> 1.0.beta11 + * Modo de canal +C + * Modo de canal +c + * Modo de canal +T + * Modo de canal +u + * Modo de canal +M + * Modo de usuario +R + 2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta10 * Sincronizacion Undernet Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.19 ircd-ircdev/include/channel.h:1.20 --- ircd-ircdev/include/channel.h:1.19 Tue Dec 11 15:38:23 2007 +++ ircd-ircdev/include/channel.h Sun Jan 6 16:14:02 2008 @@ -22,7 +22,7 @@ */ /** @file * @brief Channel management and maintenance. - * @version $Id: channel.h,v 1.19 2007/12/11 23:38:23 zolty Exp $ + * @version $Id: channel.h,v 1.20 2008/01/07 00:14:02 zolty Exp $ */ #ifndef INCLUDED_channel_h #define INCLUDED_channel_h @@ -114,8 +114,11 @@ #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 0x2000 /**< +r Channel registered */ +#define MODE_REGCHAN 0x10000 /**< +r Channel registered */ #define MODE_OWNER CHFL_OWNER /**< +q Channel owner */ #endif #define MODE_SAVE 0x20000 /**< save this mode-with-arg 'til @@ -129,13 +132,18 @@ #endif #define MODE_WASDELJOINS 0x400000 /**< Not DELJOINS, but some joins * pending */ +#define MODE_NOQUITPARTS 0x800000 + +#define MODE_NOMULTITARGET 0x1000000 /**< +T No multiple targets */ +#define MODE_MODERATENOREG 0x2000000 /**< +M Moderate unauthed users */ + #if defined(UNDERNET) /** mode flags which take another parameter (With PARAmeterS) */ #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) ? "AbiklmnopstUvrD" : "biklmnopstvrD" +#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstUvrDcCNuMT" : "biklmnopstvrDcCNuMT" /** Available Channel modes that take parameters */ #define infochanmodeswithparams feature_bool(FEAT_OPLEVELS) ? "AbkloUv" : "bklov" #elif defined(DDB) || defined(SERVICES) @@ -144,7 +152,7 @@ #define MODE_WPARAS (MODE_OWNER|MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT) /** Available Channel modes */ -#define infochanmodes "biklmnopstvrRDq" +#define infochanmodes "biklmnopstvrRDqcCNuMT" /** Available Channel modes that take parameters */ #define infochanmodeswithparams "bklovq" #else @@ -153,7 +161,7 @@ #define MODE_WPARAS (MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT) /** Available Channel modes */ -#define infochanmodes "biklmnopstvrD" +#define infochanmodes "biklmnopstvrDcCNuMT" /** Available Channel modes that take parameters */ #define infochanmodeswithparams "bklov" #endif Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.23 ircd-ircdev/include/client.h:1.24 --- ircd-ircdev/include/client.h:1.23 Sun Nov 11 13:53:04 2007 +++ ircd-ircdev/include/client.h Sun Jan 6 16:14:02 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.23 2007/11/11 21:53:04 zolty Exp $ + * @version $Id: client.h,v 1.24 2008/01/07 00:14:02 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -73,9 +73,9 @@ /** String containing valid user modes, in no particular order. */ #if defined(DDB) || defined(SERVICES) -#define infousermodes "dioswkgxrSZ" +#define infousermodes "dioswkgxrRSZ" #else -#define infousermodes "dioswkgxZ" +#define infousermodes "dioswkgxRZ" #endif /** Operator privileges. */ @@ -158,10 +158,9 @@ FLAG_NICKREG, /**< nick registered */ FLAG_NICKSUSPEND, /**< nick suspended */ #endif + FLAG_MSGONLYREG, /**< only privmsg/notices from +r */ FLAG_HIDDENHOST, /**< user's host is hidden */ -#ifdef USE_SSL FLAG_SSL, /**< is a user with secure connection */ -#endif FLAG_LAST_FLAG, /**< number of flags */ FLAG_LOCAL_UMODES = FLAG_LOCOP, /**< First local mode flag */ FLAG_GLOBAL_UMODES = FLAG_OPER /**< First global mode flag */ @@ -603,6 +602,8 @@ /** Return non-zero if the client has set mode +S (nick suspended) */ #define IsNickSuspended(x) HasFlag(x, FLAG_NICKSUSPEND) #endif +/** Return non-zero if the client has set mode +R. */ +#define IsMsgOnlyReg(x) HasFlag(x, FLAG_MSGONLYREG) /** Return non-zero if the client has operator or server privileges. */ #define IsPrivileged(x) (IsAnOper(x) || IsServer(x)) @@ -656,7 +657,7 @@ /** Mark a client as having a pending PING. */ #define SetPingSent(x) SetFlag(x, FLAG_PINGSENT) #ifdef USE_SSL -/** Mark a client as secure connection .*/ +/** Mark a client as secure connection. */ #define SetSSL(x) SetFlag(x, FLAG_SSL) #endif #if defined(DDB) || defined(SERVICES) @@ -665,6 +666,8 @@ /** Mark a client as having mode +S (nick suspended) */ #define SetNickSuspended(x) SetFlag(x, FLAG_NICKSUSPEND) #endif +/** Mark a client as having mode +R. */ +#define SetMsgOnlyReg(x) SetFlag(x, FLAG_MSGONLYREG) /** Return non-zero if \a sptr sees \a acptr as an operator. */ #define SeeOper(sptr,acptr) (IsAnOper(acptr) && (HasPriv(acptr, PRIV_DISPLAY) \ @@ -708,6 +711,8 @@ /** Remode mode +S (nick suspended) from the client */ #define ClearNickSuspended(x) ClrFlag(x, FLAG_NICKSUSPEND) #endif +/** Remove mode +R from the client. */ +#define ClearMsgOnlyReg(x) ClrFlag(x, FLAG_MSGONLYREG) /* free flags */ #define FREEFLAG_SOCKET 0x0001 /**< socket needs to be freed */ Index: ircd-ircdev/include/numeric.h diff -u ircd-ircdev/include/numeric.h:1.19 ircd-ircdev/include/numeric.h:1.20 --- ircd-ircdev/include/numeric.h:1.19 Tue Dec 11 15:38:23 2007 +++ ircd-ircdev/include/numeric.h Sun Jan 6 16:14:05 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Declarations of numeric replies and supporting functions. - * @version $Id: numeric.h,v 1.19 2007/12/11 23:38:23 zolty Exp $ + * @version $Id: numeric.h,v 1.20 2008/01/07 00:14:05 zolty Exp $ */ #ifndef INCLUDED_numeric_h #define INCLUDED_numeric_h @@ -419,6 +419,7 @@ /* ERR_KILLDENY 485 unreal */ /* ERR_CANTKICKADMIN 485 PTlink */ /* ERR_HTMDISABLED 486 unreal */ +#define ERR_NONONREG 486 /* ERR_CHANTOORECENT 487 IRCnet extension (?) */ /* ERR_TSLESSCHAN 488 IRCnet extension (?) */ #define ERR_VOICENEEDED 489 /* Undernet extension */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.58 ircd-ircdev/include/patchlevel.h:1.59 --- ircd-ircdev/include/patchlevel.h:1.58 Tue Dec 11 15:38:23 2007 +++ ircd-ircdev/include/patchlevel.h Sun Jan 6 16:14:05 2008 @@ -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.58 2007/12/11 23:38:23 zolty Exp $ + * $Id: patchlevel.h,v 1.59 2008/01/07 00:14:05 zolty Exp $ * */ -#define PATCHLEVEL "10" +#define PATCHLEVEL "11" #define RELEASE "1.0.beta" Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.34 ircd-ircdev/ircd/channel.c:1.35 --- ircd-ircdev/ircd/channel.c:1.34 Tue Dec 11 15:38:23 2007 +++ ircd-ircdev/ircd/channel.c Sun Jan 6 16:14:05 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.34 2007/12/11 23:38:23 zolty Exp $ + * @version $Id: channel.c,v 1.35 2008/01/07 00:14:05 zolty Exp $ */ #include "config.h" @@ -734,7 +734,10 @@ #if defined(UNDERNET) /* If only logged in users may join and you're not one, you can't speak. */ - if (member->channel->mode.mode & MODE_REGONLY && !IsAccount(member->user)) + if (member->channel->mode.mode & (MODE_MODERATENOREG|MODE_REGONLY) && !IsAccount(member->user)) + return 0; +#elif defined(DDB) || defined(SERVICES) + if (member->channel->mode.mode & (MODE_MODERATENOREG|MODE_REGONLY) && !IsNickRegistered(member->user)) return 0; #endif @@ -782,7 +785,9 @@ if (!member) { if ((chptr->mode.mode & (MODE_NOPRIVMSGS|MODE_MODERATED)) #if defined(UNDERNET) - || ((chptr->mode.mode & MODE_REGONLY) && !IsAccount(cptr)) + || ((chptr->mode.mode & (MODE_REGONLY|MODE_MODERATENOREG)) && !IsAccount(cptr)) +#elif defined(DDB) || defined(SERVICES) + || ((chptr->mode.mode & (MODE_REGONLY|MODE_MODERATENOREG)) && !IsNickRegistered(cptr)) #endif ) return 0; @@ -811,7 +816,9 @@ continue; if ((member->channel->mode.mode & MODE_MODERATED) #if defined(UNDERNET) - || (member->channel->mode.mode & MODE_REGONLY && !IsAccount(cptr)) + || (member->channel->mode.mode & (MODE_MODERATENOREG|MODE_REGONLY) && !IsAccount(cptr)) +#elif defined(UNDERNET) + || (member->channel->mode.mode & (MODE_MODERATENOREG|MODE_REGONLY) && !IsNickRegistered(cptr)) #endif || is_banned(member)) return member->channel->chname; @@ -858,14 +865,29 @@ *mbuf++ = 'i'; if (chptr->mode.mode & MODE_NOPRIVMSGS) *mbuf++ = 'n'; -#if defined(DDB) || defined(SERVICES) +#if defined(UNDERNET) + if (chptr->mode.mode & MODE_REGONLY) + *mbuf++ = 'r'; +#elif defined(DDB) || defined(SERVICES) if (chptr->mode.mode & MODE_REGCHAN) *mbuf++ = 'r'; -#endif if (chptr->mode.mode & MODE_REGONLY) *mbuf++ = 'R'; +#endif + if (chptr->mode.mode & MODE_NOCOLOUR) + *mbuf++ = 'c'; + if (chptr->mode.mode & MODE_NOCTCP) + *mbuf++ = 'C'; + if (chptr->mode.mode & MODE_NONOTICE) + *mbuf++ = 'N'; + if (chptr->mode.mode & MODE_NOQUITPARTS) + *mbuf++ = 'u'; if (chptr->mode.mode & MODE_DELJOINS) *mbuf++ = 'D'; + if (chptr->mode.mode & MODE_NOMULTITARGET) + *mbuf++ = 'T'; + if (chptr->mode.mode & MODE_MODERATENOREG) + *mbuf++ = 'M'; else if (MyUser(cptr) && (chptr->mode.mode & MODE_WASDELJOINS)) *mbuf++ = 'd'; if (chptr->mode.limit) { @@ -1685,11 +1707,13 @@ MODE_TOPICLIMIT, 't', MODE_INVITEONLY, 'i', MODE_NOPRIVMSGS, 'n', -#if defined(DDB) || defined(SERVICES) +#if defined(UNDERNET) + MODE_REGONLY, 'r', +#elif defined(DDB) || defined(SERVICES) MODE_REGCHAN, 'r', + MODE_REGONLY, 'R', /* MODE_OWNER, 'q', */ #endif - MODE_REGONLY, 'R', MODE_DELJOINS, 'D', /* MODE_KEY, 'k', */ /* MODE_BAN, 'b', */ @@ -1698,6 +1722,12 @@ /* MODE_APASS, 'A', */ /* MODE_UPASS, 'U', */ #endif + MODE_NOQUITPARTS, 'u', + MODE_NOCOLOUR, 'c', + MODE_NOCTCP, 'C', + MODE_NONOTICE, 'N', + MODE_NOMULTITARGET, 'T', + MODE_MODERATENOREG, 'M', 0x0, 0x0 }; static int local_flags[] = { @@ -2184,7 +2214,8 @@ /* TODO-ZOLTAN: Revisar */ /* MODE_REGCHAN | */ #endif - MODE_DELJOINS | MODE_WASDELJOINS); + MODE_DELJOINS | MODE_WASDELJOINS | MODE_NOQUITPARTS | MODE_NOCOLOUR | + MODE_NOCTCP | MODE_NONOTICE | MODE_NOMULTITARGET | MODE_MODERATENOREG); if (!(mode & ~(MODE_ADD | MODE_DEL))) /* don't add empty modes... */ return; @@ -2336,12 +2367,20 @@ #endif /* MODE_BAN, 'b', */ MODE_LIMIT, 'l', -#if defined(DDB) || defined(SERVICES) +#if defined(UNDERNET) + MODE_REGONLY, 'r', +#elif defined(DDB) || defined(SERVICES) MODE_REGCHAN, 'r', + MODE_REGONLY, 'R', /* MODE_OWNER, 'q', */ #endif - MODE_REGONLY, 'R', MODE_DELJOINS, 'D', + MODE_NOQUITPARTS, 'u', + MODE_NOCOLOUR, 'c', + MODE_NOCTCP, 'C', + MODE_NONOTICE, 'N', + MODE_NOMULTITARGET, 'T', + MODE_MODERATENOREG, 'M', 0x0, 0x0 }; unsigned int add, i, len; @@ -3494,12 +3533,20 @@ #endif MODE_BAN, 'b', MODE_LIMIT, 'l', -#if defined(DDB) || defined(SERVICES) +#if defined(UNDERNET) + MODE_REGONLY, 'r', +#elif defined(DDB) || defined(SERVICES) MODE_OWNER, 'q', MODE_REGCHAN, 'r', + MODE_REGONLY, 'R', #endif - MODE_REGONLY, 'R', MODE_DELJOINS, 'D', + MODE_NOQUITPARTS, 'u', + MODE_NOCOLOUR, 'c', + MODE_NOCTCP, 'C', + MODE_NONOTICE, 'N', + MODE_NOMULTITARGET, 'T', + MODE_MODERATENOREG, 'M', MODE_ADD, '+', MODE_DEL, '-', 0x0, 0x0 @@ -3783,11 +3830,11 @@ /* Send notification to channel */ if (!(flags & (CHFL_ZOMBIE | CHFL_DELAYED))) sendcmdto_channel(jbuf->jb_source, CMD_PART, chan, NULL, SKIP_SERVERS, - (flags & CHFL_BANNED || !jbuf->jb_comment) ? + (flags & CHFL_BANNED || (chan->mode.mode & MODE_NOQUITPARTS) || !jbuf->jb_comment) ? ":%H" : "%H :%s", chan, jbuf->jb_comment); else if (MyUser(jbuf->jb_source)) sendcmdto_one(jbuf->jb_source, CMD_PART, jbuf->jb_source, - (flags & CHFL_BANNED || !jbuf->jb_comment) ? + (flags & CHFL_BANNED || (chan->mode.mode & MODE_NOQUITPARTS) || !jbuf->jb_comment) ? ":%H" : "%H :%s", chan, jbuf->jb_comment); /* XXX: Shouldn't we send a PART here anyway? */ /* to users on the channel? Why? From their POV, the user isn't on Index: ircd-ircdev/ircd/ircd_relay.c diff -u ircd-ircdev/ircd/ircd_relay.c:1.12 ircd-ircdev/ircd/ircd_relay.c:1.13 --- ircd-ircdev/ircd/ircd_relay.c:1.12 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ircd/ircd_relay.c Sun Jan 6 16:14:06 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Helper functions to relay various types of messages. - * @version $Id: ircd_relay.c,v 1.12 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: ircd_relay.c,v 1.13 2008/01/07 00:14:06 zolty Exp $ * * There are four basic types of messages, each with four subtypes. * @@ -85,6 +85,7 @@ void relay_channel_message(struct Client* sptr, const char* name, const char* text) { struct Channel* chptr; + const char *ch; assert(0 != sptr); assert(0 != name); assert(0 != text); @@ -104,6 +105,29 @@ check_target_limit(sptr, chptr, chptr->chname, 0)) return; + /* +T check */ +#if 0 + if ((chptr->mode.mode & MODE_NOMULTITARGET) && (targetc > 1)) { + send_reply(sptr, ERR_CANNOTSENDTOCHAN, chptr->chname); + return; + } +#endif + + /* +cC checks */ + if (chptr->mode.mode & MODE_NOCOLOUR) + for (ch=text;*ch;ch++) + if (*ch==2 || *ch==3 || *ch==22 || *ch==27 || *ch==31) { + send_reply(sptr, ERR_CANNOTSENDTOCHAN, chptr->chname); + return; + } + + if ((chptr->mode.mode & MODE_NOCTCP) && ircd_strncmp(text,"\001ACTION ",8)) + for (ch=text;*ch;) + if (*ch++==1) { + send_reply(sptr, ERR_CANNOTSENDTOCHAN, chptr->chname); + return; + } + sendcmdto_channel(sptr, CMD_PRIVATE, chptr, cli_from(sptr), SKIP_DEAF | SKIP_BURST, "%H :%s", chptr, text); } @@ -117,6 +141,7 @@ void relay_channel_notice(struct Client* sptr, const char* name, const char* text) { struct Channel* chptr; + const char *ch; assert(0 != sptr); assert(0 != name); assert(0 != text); @@ -133,6 +158,26 @@ check_target_limit(sptr, chptr, chptr->chname, 0)) return; + if ((chptr->mode.mode & MODE_NONOTICE)) + return; + +#if 0 + /* +T check */ + if ((chptr->mode.mode & MODE_NOMULTITARGET) && (targetc > 1)) + return; +#endif + + /* +cC checks */ + if (chptr->mode.mode & MODE_NOCOLOUR) + for (ch=text;*ch;ch++) + if (*ch==2 || *ch==3 || *ch==22 || *ch==27 || *ch==31) + return; + + if (chptr->mode.mode & MODE_NOCTCP) + for (ch=text;*ch;) + if (*ch++==1) + return; + sendcmdto_channel(sptr, CMD_NOTICE, chptr, cli_from(sptr), SKIP_DEAF | SKIP_BURST, "%H :%s", chptr, text); } @@ -337,6 +382,13 @@ is_silenced(sptr, acptr)) return; +#if defined(DDB) || defined(SERVICES) + if (IsMsgOnlyReg(acptr) && !IsNickRegistered(sptr) && !IsOper(sptr)) { + send_reply(sptr, ERR_NONONREG, cli_name(acptr)); + return; + } +#endif + /* * send away message if user away */ @@ -372,6 +424,12 @@ check_target_limit(sptr, acptr, cli_name(acptr), 0)) || is_silenced(sptr, acptr)) return; + +#if defined(DDB) || defined(SERVICES) + if (IsMsgOnlyReg(acptr) && !IsNickRegistered(sptr) && !IsOper(sptr)) + return; +#endif + /* * deliver the message */ Index: ircd-ircdev/ircd/m_clearmode.c diff -u ircd-ircdev/ircd/m_clearmode.c:1.14 ircd-ircdev/ircd/m_clearmode.c:1.15 --- ircd-ircdev/ircd/m_clearmode.c:1.14 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/m_clearmode.c Sun Jan 6 16:14:06 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for CLEARMODE command. - * @version $Id: m_clearmode.c,v 1.14 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: m_clearmode.c,v 1.15 2008/01/07 00:14:06 zolty Exp $ */ #include "config.h" @@ -66,8 +66,18 @@ MODE_KEY, 'k', MODE_BAN, 'b', MODE_LIMIT, 'l', +#if defined(UNDERNET) MODE_REGONLY, 'r', +#elif defined(DDB) || defined(SERVICES) + MODE_REGONLY, 'R', +#endif MODE_DELJOINS, 'D', + MODE_NOQUITPARTS, 'u', + MODE_NOCOLOUR, 'c', + MODE_NOCTCP, 'C', + MODE_NONOTICE, 'N', + MODE_NOMULTITARGET, 'T', + MODE_MODERATENOREG, 'M', 0x0, 0x0 }; int *flag_p; Index: ircd-ircdev/ircd/m_invite.c diff -u ircd-ircdev/ircd/m_invite.c:1.19 ircd-ircdev/ircd/m_invite.c:1.20 --- ircd-ircdev/ircd/m_invite.c:1.19 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/m_invite.c Sun Jan 6 16:14:06 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for INVITE command. - * @version $Id: m_invite.c,v 1.19 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: m_invite.c,v 1.20 2008/01/07 00:14:06 zolty Exp $ */ #include "config.h" @@ -115,6 +115,13 @@ /* If we get here, it was a VALID and meaningful INVITE */ +#if defined(DDB) || defined(SERVICES) + if (IsMsgOnlyReg(acptr) && !IsNickRegistered(sptr) && !IsOper(sptr)) { + send_reply(sptr, ERR_NONONREG, cli_name(acptr)); + return; + } +#endif + if (check_target_limit(sptr, acptr, cli_name(acptr), 0)) return 0; Index: ircd-ircdev/ircd/m_wallchops.c diff -u ircd-ircdev/ircd/m_wallchops.c:1.10 ircd-ircdev/ircd/m_wallchops.c:1.11 --- ircd-ircdev/ircd/m_wallchops.c:1.10 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_wallchops.c Sun Jan 6 16:14:06 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for WALLCHOPS command. - * @version $Id: m_wallchops.c,v 1.10 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_wallchops.c,v 1.11 2008/01/07 00:14:06 zolty Exp $ */ #include "config.h" @@ -55,6 +55,7 @@ int m_wallchops(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { struct Channel *chptr; + const char *ch; assert(0 != cptr); assert(cptr == sptr); @@ -66,10 +67,24 @@ return send_reply(sptr, ERR_NOTEXTTOSEND); if (IsChannelName(parv[1]) && (chptr = FindChannel(parv[1]))) { - if (client_can_send_to_channel(sptr, chptr, 0)) { + if (client_can_send_to_channel(sptr, chptr, 0) && !(chptr->mode.mode & MODE_NONOTICE)) { if ((chptr->mode.mode & MODE_NOPRIVMSGS) && check_target_limit(sptr, chptr, chptr->chname, 0)) return 0; + + /* +cC checks */ + if (chptr->mode.mode & MODE_NOCOLOUR) + for (ch=parv[parc - 1];*ch;ch++) + if (*ch==2 || *ch==3 || *ch==22 || *ch==27 || *ch==31) { + return 0; + } + + if ((chptr->mode.mode & MODE_NOCTCP) && ircd_strncmp(parv[parc - 1],"\001ACTION ",8)) + for (ch=parv[parc - 1];*ch;) + if (*ch++==1) { + return 0; + } + sendcmdto_channel(sptr, CMD_WALLCHOPS, chptr, cptr, SKIP_DEAF | SKIP_BURST | SKIP_NONOPS, "%H :@ %s", chptr, parv[parc - 1]); Index: ircd-ircdev/ircd/m_wallvoices.c diff -u ircd-ircdev/ircd/m_wallvoices.c:1.11 ircd-ircdev/ircd/m_wallvoices.c:1.12 --- ircd-ircdev/ircd/m_wallvoices.c:1.11 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/m_wallvoices.c Sun Jan 6 16:14:06 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for WALLVOICES command. - * @version $Id: m_wallvoices.c,v 1.11 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: m_wallvoices.c,v 1.12 2008/01/07 00:14:06 zolty Exp $ */ #include "config.h" @@ -55,6 +55,7 @@ int m_wallvoices(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { struct Channel *chptr; + const char *ch; assert(0 != cptr); assert(cptr == sptr); @@ -66,10 +67,24 @@ return send_reply(sptr, ERR_NOTEXTTOSEND); if (IsChannelName(parv[1]) && (chptr = FindChannel(parv[1]))) { - if (client_can_send_to_channel(sptr, chptr, 0)) { + if (client_can_send_to_channel(sptr, chptr, 0) && !(chptr->mode.mode & MODE_NONOTICE)) { if ((chptr->mode.mode & MODE_NOPRIVMSGS) && check_target_limit(sptr, chptr, chptr->chname, 0)) return 0; + + /* +cC checks */ + if (chptr->mode.mode & MODE_NOCOLOUR) + for (ch=parv[parc - 1];*ch;ch++) + if (*ch==2 || *ch==3 || *ch==22 || *ch==27 || *ch==31) { + return 0; + } + + if ((chptr->mode.mode & MODE_NOCTCP) && ircd_strncmp(parv[parc - 1],"\001ACTION ",8)) + for (ch=parv[parc - 1];*ch;) + if (*ch++==1) { + return 0; + } + sendcmdto_channel(sptr, CMD_WALLVOICES, chptr, cptr, SKIP_DEAF | SKIP_BURST | SKIP_NONVOICES, "%H :+ %s", chptr, parv[parc - 1]); Index: ircd-ircdev/ircd/s_err.c diff -u ircd-ircdev/ircd/s_err.c:1.27 ircd-ircdev/ircd/s_err.c:1.28 --- ircd-ircdev/ircd/s_err.c:1.27 Tue Dec 11 15:38:26 2007 +++ ircd-ircdev/ircd/s_err.c Sun Jan 6 16:14:06 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Error handling support. - * @version $Id: s_err.c,v 1.27 2007/12/11 23:38:26 zolty Exp $ + * @version $Id: s_err.c,v 1.28 2008/01/07 00:14:06 zolty Exp $ */ #include "config.h" @@ -1007,7 +1007,7 @@ #if defined(UNDERNET) { ERR_NEEDREGGEDNICK, "%s :Cannot join channel (+r): this channel requires authentication -- you can obtain an account from %s", "477" }, #else - { ERR_NEEDREGGEDNICK, "%s :Cannot join channel (+R): this channel requires authentication -- you can register a nick from $s", "477" }, + { ERR_NEEDREGGEDNICK, "%s :Cannot join channel (+R): this channel requires authentication -- you can register a nick from %s", "477" }, #endif /* 478 */ { ERR_BANLISTFULL, "%s %s :Channel ban/ignore list is full", "478" }, @@ -1025,8 +1025,12 @@ { ERR_ISCHANSERVICE, "%s %s :Cannot kill, kick or deop a network service", "484" }, /* 485 */ { 0 }, +#if defined(DDB) || defined(SERVICES) /* 486 */ + { ERR_NONONREG, ":You need to register your nick to talk with %s", "485" }, +#else { 0 }, +#endif /* 487 */ { 0 }, /* 488 */ Index: ircd-ircdev/ircd/s_user.c diff -u ircd-ircdev/ircd/s_user.c:1.34 ircd-ircdev/ircd/s_user.c:1.35 --- ircd-ircdev/ircd/s_user.c:1.34 Tue Dec 11 15:38:26 2007 +++ ircd-ircdev/ircd/s_user.c Sun Jan 6 16:14:07 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Miscellaneous user-related helper functions. - * @version $Id: s_user.c,v 1.34 2007/12/11 23:38:26 zolty Exp $ + * @version $Id: s_user.c,v 1.35 2008/01/07 00:14:07 zolty Exp $ */ #include "config.h" @@ -529,6 +529,7 @@ #elif defined(DDB) || defined(SERVICES) { FLAG_NICKREG, 'r' }, { FLAG_NICKSUSPEND, 'S' }, + { FLAG_MSGONLYREG, 'R' }, #endif { FLAG_HIDDENHOST, 'x' } }; @@ -1078,6 +1079,14 @@ } if (is_silenced(source, dest)) return 0; + +#if defined(DDB) || defined(SERVICES) + if (IsMsgOnlyReg(dest) && !IsNickRegistered(source) && !IsOper(source)) { + if(!is_notice) + send_reply(source, ERR_NONONREG, cli_name(source)); + return 0; + } +#endif if (is_notice) sendcmdto_one(source, CMD_NOTICE, dest, "%C :%s", dest, text); @@ -1503,6 +1512,12 @@ else ClearNickSuspended(sptr); break; + case 'R': + if (what == MODE_ADD) + SetMsgOnlyReg(sptr); + else + ClearMsgOnlyReg(sptr); + break; #endif /* defined(DDB) || defined(SERVICES) */ /* if none of the given case is valid then compain by * sending raw 501 ( ERR_UMODEUNKNOWNFLAG ) ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2008-01-07 00:35:17
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2008-01-07 00:35:18 UTC Modified files: TODO.es Log message: Actualizacion Todo ---------------------- diff included ---------------------- Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.33 ircd-ircdev/TODO.es:1.34 --- ircd-ircdev/TODO.es:1.33 Fri Jan 4 16:28:37 2008 +++ ircd-ircdev/TODO.es Sun Jan 6 16:35:08 2008 @@ -1,18 +1,13 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.33 2008/01/05 00:28:37 zolty Exp $ +# $Id: TODO.es,v 1.34 2008/01/07 00:35:08 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # URGENTE -------------------------------------------------------------------------------------- - - [G] Modo +M de canal - - [G] Modo +N de canal - - [G] Modo +C de canal - - [G] Modo +c de canal - - [G] Modo +u de canal - [D] Implementar tabla o de Operadores - [D] Implementar tabla p de Privilegios - [D] Implementar tabla f de Features @@ -21,7 +16,6 @@ -------------------------------------------------------------------------------------- - [G] Soporte de E-lines (excepciones a K-lines). - [G] Modo +X de ver ips. Hacerlo por privilegios daria problemas. - - [G] Modo +R de usuarios. - [G] Poner uuna Feature para elegir entre salir o no el nombre del servidor en los notices de auth y dnslookup al conectar. - [D] U-lines a traves de la DDB. @@ -269,27 +263,22 @@ - Ocultacion de canales en el whois siendo +B - Estando glineado que al reentrar salga g-line y no k-line - Soporte PASS claveserver:clavebdd -- En USERHOST/USERIP salir * si eres oper como en el WHO +- En USERHOST/USERIP salir * si eres oper como en el WHO (Tiene para ircops perhelpers?) - Meter lo de nick changed too fast en claves erroneas de +r y en ghost erroneos - En Users indicar el tiempo de arranque - Netride de topic -- Eliminacion de canales MODELESS que empiecen por @? +- Eliminacion de canales MODELESS que empiecen por @? (No hay canales modeless) - MOTD por BDD - Soporte de Ulines por BDD - Canales persistentes - Numerico de ircops, helpers e bots - Usuarios con k saltan targets y nicks seguidos - Parche ~ en nicks -- Mostrar modos en whois -- Invite en canales inexistentes, error de no such canal -- Ampliacion del comando invite -- Usuario sin +r hace a un +R no puede hacer invite pero si los ircops - Numeric modo +R - Salir el +k en el WHO - Numeric Bots +B - Chequeo de caracteres raros en el BAN - Eline 223, silence 509 -- Userip 340 - Silence 510 - +R y numerico 480 - +k sale part y quit @@ -306,21 +295,16 @@ - Ojo con cambio de nick estando baneado, que no salga el notice - nicks equivalentes - nicks suspendidos -- user quit - al hacer un quit, mandar el quit con el closing link -- Quit sin mensaje no sale ningun mensaje -- Usuarios y porcentajes en el map +- Quit sin mensaje no sale ningun mensaje (Sale Quit a secas) - Reliable clock desactivado - Bug de +l 0 o negativos - Names sin parametros no enought parameters - /Kick primero comprobar si esta y luego si tiene +k -- No tienes privilegios para ejecutar el comando en vez no eres ircop -- whois nodo_inex nick devolver no such server +- whois nodo_inex nick devolver no such server (con ocultacion de servers funciona diferente?) - Mensajes autoghost -- Ojo con ips en tracert -- No permitir invitar en canales inexistentes -- DNS -l que salga error -- No permitir caracteres de control en nombre canal, ascii < 32 +- Ojo con ips en trace +- No permitir caracteres de control en nombre canal, ascii < 32 (creo que funciona, comprobar) - En canales modeless no pueden empezar por +, #, &, @ - Los bans tienen que comprobar a la real y virtual - Cambiar mensaje "Cannot kill, kick or deop channel service @@ -331,9 +315,7 @@ - lag en el map - al glinear sale la razon - Class full y mensaje al llenar la clase -- Mostrar usuarios en el stats Y - Conexiones con clones no heredan targets -- ocultar ips nodos - ZLIB - join OPER - ip virtual en el path en los kill ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2008-01-19 13:29:18
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2008-01-19 13:29:04 UTC Modified files: acinclude.m4 include/gline.h include/ircd_events.h ircd/channel.c ircd/class.c ircd/gline.c ircd/ircd_events.c ircd/ircd_features.c ircd/m_burst.c ircd/m_endburst.c ircd/m_list.c ircd/m_lusers.c ircd/m_mode.c ircd/m_names.c ircd/m_nick.c ircd/m_server.c ircd/m_version.c ircd/s_auth.c ircd/s_conf.c ircd/s_err.c ircd/s_misc.c ircd/s_stats.c ircd/s_user.c tools/iauth-test Log message: Limpieza de código ---------------------- diff included ---------------------- Index: ircd-ircdev/acinclude.m4 diff -u ircd-ircdev/acinclude.m4:1.4 ircd-ircdev/acinclude.m4:1.5 --- ircd-ircdev/acinclude.m4:1.4 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/acinclude.m4 Sat Jan 19 05:28:51 2008 @@ -211,10 +211,10 @@ AC_DEFUN([unet_TOGGLE], [AC_MSG_CHECKING([$4]) AC_ARG_ENABLE([$1], - AS_HELP_STRING([--m4_if($2, no, enable, disable)-$1], [$3]), - [unet_cv_enable_$1=$enableval], - [AC_CACHE_VAL(unet_cv_enable_$1, - [unet_cv_enable_$1=$2])]) + AS_HELP_STRING([--m4_if($2, no, enable, disable)-$1], [$3]), + [unet_cv_enable_$1=$enableval], + [AC_CACHE_VAL(unet_cv_enable_$1, + [unet_cv_enable_$1=$2])]) m4_if($5, , , $5) AC_MSG_RESULT([$unet_cv_enable_$1])]) @@ -229,9 +229,9 @@ AC_DEFUN([unet_VALUE], [AC_MSG_CHECKING([$4]) AC_ARG_WITH([$1], AS_HELP_STRING([--with-$1], [$3]), - [unet_cv_with_$1=$withval], - [AC_CACHE_VAL(unet_cv_with_$1, - [unet_cv_with_$1=$2])]) + [unet_cv_with_$1=$withval], + [AC_CACHE_VAL(unet_cv_with_$1, + [unet_cv_with_$1=$2])]) m4_if($5, , , $5) AC_MSG_RESULT([$unet_cv_with_$1])]) Index: ircd-ircdev/include/gline.h diff -u ircd-ircdev/include/gline.h:1.7 ircd-ircdev/include/gline.h:1.8 --- ircd-ircdev/include/gline.h:1.7 Tue Dec 11 15:38:23 2007 +++ ircd-ircdev/include/gline.h Sat Jan 19 05:28:51 2008 @@ -23,7 +23,7 @@ */ /** @file * @brief Structures and APIs for G-line manipulation. - * @version $Id: gline.h,v 1.7 2007/12/11 23:38:23 zolty Exp $ + * @version $Id: gline.h,v 1.8 2008/01/19 13:28:51 zolty Exp $ */ #ifndef INCLUDED_gline_h #define INCLUDED_gline_h @@ -44,34 +44,34 @@ /** Local state of a G-line. */ enum GlineLocalState { - GLOCAL_GLOBAL, /**< G-line state unmodified locally. */ - GLOCAL_ACTIVATED, /**< G-line state locally activated. */ - GLOCAL_DEACTIVATED /**< G-line state locally deactivated. */ + GLOCAL_GLOBAL, /**< G-line state unmodified locally. */ + GLOCAL_ACTIVATED, /**< G-line state locally activated. */ + GLOCAL_DEACTIVATED /**< G-line state locally deactivated. */ }; /** Description of a G-line. */ struct Gline { - struct Gline *gl_next; /**< Next G-line in linked list. */ - struct Gline**gl_prev_p; /**< Previous pointer to this G-line. */ - char *gl_user; /**< Username mask (or channel/realname mask). */ - char *gl_host; /**< Host prtion of mask. */ - char *gl_reason; /**< Reason for G-line. */ - time_t gl_expire; /**< Expiration timestamp. */ - time_t gl_lastmod; /**< Last modification timestamp. */ - time_t gl_lifetime; /**< Record expiration timestamp. */ - struct irc_in_addr gl_addr; /**< IP address (for IP-based G-lines). */ - unsigned char gl_bits; /**< Usable bits in gl_addr. */ - unsigned int gl_flags; /**< G-line status flags. */ + struct Gline *gl_next; /**< Next G-line in linked list. */ + struct Gline**gl_prev_p; /**< Previous pointer to this G-line. */ + char *gl_user; /**< Username mask (or channel/realname mask). */ + char *gl_host; /**< Host prtion of mask. */ + char *gl_reason; /**< Reason for G-line. */ + time_t gl_expire; /**< Expiration timestamp. */ + time_t gl_lastmod; /**< Last modification timestamp. */ + time_t gl_lifetime; /**< Record expiration timestamp. */ + struct irc_in_addr gl_addr; /**< IP address (for IP-based G-lines). */ + unsigned char gl_bits; /**< Usable bits in gl_addr. */ + unsigned int gl_flags; /**< G-line status flags. */ enum GlineLocalState gl_state;/**< G-line local state. */ }; /** Action to perform on a G-line. */ enum GlineAction { - GLINE_ACTIVATE, /**< G-line should be activated. */ - GLINE_DEACTIVATE, /**< G-line should be deactivated. */ - GLINE_LOCAL_ACTIVATE, /**< G-line should be locally activated. */ - GLINE_LOCAL_DEACTIVATE, /**< G-line should be locally deactivated. */ - GLINE_MODIFY /**< G-line should be modified. */ + GLINE_ACTIVATE, /**< G-line should be activated. */ + GLINE_DEACTIVATE, /**< G-line should be deactivated. */ + GLINE_LOCAL_ACTIVATE, /**< G-line should be locally activated. */ + GLINE_LOCAL_DEACTIVATE, /**< G-line should be locally deactivated. */ + GLINE_MODIFY /**< G-line should be modified. */ }; #define GLINE_ACTIVE 0x0001 /**< G-line is active. */ @@ -87,9 +87,9 @@ #define GLINE_OPERFORCE 0x0400 /**< Oper forcing G-line to be set. */ #define GLINE_REALNAME 0x0800 /**< G-line matches only the realname field. */ -#define GLINE_EXPIRE 0x1000 /**< Expiration time update */ -#define GLINE_LIFETIME 0x2000 /**< Record lifetime update */ -#define GLINE_REASON 0x4000 /**< Reason update */ +#define GLINE_EXPIRE 0x1000 /**< Expiration time update */ +#define GLINE_LIFETIME 0x2000 /**< Record lifetime update */ +#define GLINE_REASON 0x4000 /**< Reason update */ /** Controllable flags that can be set on an actual G-line. */ #define GLINE_MASK (GLINE_ACTIVE | GLINE_BADCHAN | GLINE_LOCAL | GLINE_REALNAME) @@ -97,12 +97,12 @@ #define GLINE_ACTMASK (GLINE_ACTIVE | GLINE_LDEACT) /** Mask for G-line update flags. */ -#define GLINE_UPDATE (GLINE_EXPIRE | GLINE_LIFETIME | GLINE_REASON) +#define GLINE_UPDATE (GLINE_EXPIRE | GLINE_LIFETIME | GLINE_REASON) /** Test whether \a g is active. */ -#define GlineIsActive(g) ((((g)->gl_flags & GLINE_ACTIVE) && \ +#define GlineIsActive(g) ((((g)->gl_flags & GLINE_ACTIVE) && \ (g)->gl_state != GLOCAL_DEACTIVATED) || \ - (g)->gl_state == GLOCAL_ACTIVATED) + (g)->gl_state == GLOCAL_ACTIVATED) /** Test whether \a g is remotely (globally) active. */ #define GlineIsRemActive(g) ((g)->gl_flags & GLINE_ACTIVE) /** Test whether \a g is an IP-based G-line. */ @@ -137,7 +137,7 @@ char *reason, time_t expire, time_t lastmod, time_t lifetime, unsigned int flags); extern int gline_destroy(struct Client *cptr, struct Client *sptr, - struct Gline *gline); + struct Gline *gline); extern struct Gline *gline_find(char *userhost, unsigned int flags); extern struct Gline *gline_lookup(struct Client *cptr, unsigned int flags); extern void gline_free(struct Gline *gline); Index: ircd-ircdev/include/ircd_events.h diff -u ircd-ircdev/include/ircd_events.h:1.7 ircd-ircdev/include/ircd_events.h:1.8 --- ircd-ircdev/include/ircd_events.h:1.7 Tue Dec 11 15:38:23 2007 +++ ircd-ircdev/include/ircd_events.h Sat Jan 19 05:28:51 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and public definitions for event loop. - * @version $Id: ircd_events.h,v 1.7 2007/12/11 23:38:23 zolty Exp $ + * @version $Id: ircd_events.h,v 1.8 2008/01/19 13:28:51 zolty Exp $ */ #ifndef INCLUDED_ircd_events_h #define INCLUDED_ircd_events_h @@ -213,9 +213,9 @@ /** List of all event generators. */ struct Generators { - struct GenHeader* g_socket; /**< list of socket generators */ - struct GenHeader* g_signal; /**< list of signal generators */ - struct GenHeader* g_timer; /**< list of timer generators */ + struct GenHeader* g_socket; /**< list of socket generators */ + struct GenHeader* g_signal; /**< list of signal generators */ + struct GenHeader* g_timer; /**< list of timer generators */ }; /** Returns 1 if successfully initialized, 0 if not. @@ -295,7 +295,6 @@ void timer_chg(struct Timer* timer, enum TimerType type, time_t value); void timer_run(void); /** Retrieve the next timer's expiration time from Generators \a gen. */ - #define timer_next(gen) ((gen)->g_timer ? ((struct Timer*)(gen)->g_timer)->t_expire : 0) void signal_add(struct Signal* signal, EventCallBack call, void* data, Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.35 ircd-ircdev/ircd/channel.c:1.36 --- ircd-ircdev/ircd/channel.c:1.35 Sun Jan 6 16:14:05 2008 +++ ircd-ircdev/ircd/channel.c Sat Jan 19 05:28:51 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.35 2008/01/07 00:14:05 zolty Exp $ + * @version $Id: channel.c,v 1.36 2008/01/19 13:28:51 zolty Exp $ */ #include "config.h" @@ -715,8 +715,7 @@ } #if defined(UNDERNET) - /* Discourage using the Apass to get op. They should use the upass. */ - + /* Discourage using the Apass to get op. They should use the Upass. */ if (IsChannelManager(member) && member->channel->mode.apass[0]) return 0; #endif @@ -1996,21 +1995,20 @@ if (mbuf->mb_dest & MODEBUF_DEST_BOTMODE) sendcmdbotto_channel(ddb_get_botname(mbuf->mb_botname), CMD_MODE, mbuf->mb_channel, NULL, 0, - "%H %s%s%s%s%s%s", mbuf->mb_channel, - rembuf_i ? "-" : "", rembuf, - addbuf_i ? "+" : "", addbuf, remstr, addstr); + "%H %s%s%s%s%s%s%s%s", mbuf->mb_channel, + rembuf_i || rembuf_local_i ? "-" : "", + rembuf, rembuf_local, + addbuf_i || addbuf_local_i ? "+" : "", + addbuf, addbuf_local, + remstr, addstr); else #endif /* defined(DDB) */ sendcmdto_channel(app_source, CMD_MODE, mbuf->mb_channel, NULL, SKIP_SERVERS, "%H %s%s%s%s%s%s%s%s", mbuf->mb_channel, -/* TODO-ZOLTAN: Revisar */ -/* rembuf_i || rembuf_local_i ? "-" : "", + rembuf_i || rembuf_local_i ? "-" : "", rembuf, rembuf_local, addbuf_i || addbuf_local_i ? "+" : "", addbuf, addbuf_local, -*/ - rembuf_i ? "-" : "", rembuf, - addbuf_i ? "+" : "", addbuf, remstr, addstr); } } @@ -2174,8 +2172,7 @@ assert(0 != chan); assert(0 != dest); - if (IsLocalChannel(chan->chname)) - dest &= ~MODEBUF_DEST_SERVER; + if (IsLocalChannel(chan->chname)) dest &= ~MODEBUF_DEST_SERVER; mbuf->mb_add = 0; mbuf->mb_rem = 0; @@ -2211,11 +2208,11 @@ mode &= (MODE_ADD | MODE_DEL | MODE_PRIVATE | MODE_SECRET | MODE_MODERATED | MODE_TOPICLIMIT | MODE_INVITEONLY | MODE_NOPRIVMSGS | MODE_REGONLY | #if defined(DDB) || defined(SERVICES) -/* TODO-ZOLTAN: Revisar */ -/* MODE_REGCHAN | */ + MODE_REGCHAN | #endif - MODE_DELJOINS | MODE_WASDELJOINS | MODE_NOQUITPARTS | MODE_NOCOLOUR | - MODE_NOCTCP | MODE_NONOTICE | MODE_NOMULTITARGET | MODE_MODERATENOREG); + MODE_NOCTCP | MODE_NONOTICE | MODE_NOMULTITARGET | + MODE_NOQUITPARTS | MODE_NOCOLOUR | MODE_MODERATENOREG | + MODE_DELJOINS | MODE_WASDELJOINS); if (!(mode & ~(MODE_ADD | MODE_DEL))) /* don't add empty modes... */ return; @@ -2368,13 +2365,13 @@ /* MODE_BAN, 'b', */ MODE_LIMIT, 'l', #if defined(UNDERNET) - MODE_REGONLY, 'r', + MODE_REGONLY, 'r', #elif defined(DDB) || defined(SERVICES) MODE_REGCHAN, 'r', MODE_REGONLY, 'R', /* MODE_OWNER, 'q', */ #endif - MODE_DELJOINS, 'D', + MODE_DELJOINS, 'D', MODE_NOQUITPARTS, 'u', MODE_NOCOLOUR, 'c', MODE_NOCTCP, 'C', @@ -2970,7 +2967,6 @@ channel manager) during a net.break, and only sets the Apass after the net rejoined, they will have oplevel MAXOPLEVEL on all remote servers. */ - if (state->member) SetOpLevel(state->member, 0); } else { /* remove the old apass */ @@ -3534,13 +3530,13 @@ MODE_BAN, 'b', MODE_LIMIT, 'l', #if defined(UNDERNET) - MODE_REGONLY, 'r', + MODE_REGONLY, 'r', #elif defined(DDB) || defined(SERVICES) MODE_OWNER, 'q', MODE_REGCHAN, 'r', MODE_REGONLY, 'R', #endif - MODE_DELJOINS, 'D', + MODE_DELJOINS, 'D', MODE_NOQUITPARTS, 'u', MODE_NOCOLOUR, 'c', MODE_NOCTCP, 'C', Index: ircd-ircdev/ircd/class.c diff -u ircd-ircdev/ircd/class.c:1.14 ircd-ircdev/ircd/class.c:1.15 --- ircd-ircdev/ircd/class.c:1.14 Tue Dec 11 15:38:24 2007 +++ ircd-ircdev/ircd/class.c Sat Jan 19 05:28:51 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of connection class handling functions. - * @version $Id: class.c,v 1.14 2007/12/11 23:38:24 zolty Exp $ + * @version $Id: class.c,v 1.15 2008/01/19 13:28:51 zolty Exp $ */ #include "config.h" @@ -229,7 +229,7 @@ PingFreq(p) = ping; MaxLinks(p) = maxli; MaxSendq(p) = (sendq > 0U) ? - sendq : feature_uint(FEAT_DEFAULTMAXSENDQLENGTH); + sendq : feature_uint(FEAT_DEFAULTMAXSENDQLENGTH); p->valid = 1; } Index: ircd-ircdev/ircd/gline.c diff -u ircd-ircdev/ircd/gline.c:1.22 ircd-ircdev/ircd/gline.c:1.23 --- ircd-ircdev/ircd/gline.c:1.22 Tue Dec 11 15:38:24 2007 +++ ircd-ircdev/ircd/gline.c Sat Jan 19 05:28:51 2008 @@ -23,7 +23,7 @@ */ /** @file * @brief Implementation of Gline manipulation functions. - * @version $Id: gline.c,v 1.22 2007/12/11 23:38:24 zolty Exp $ + * @version $Id: gline.c,v 1.23 2008/01/19 13:28:51 zolty Exp $ */ #include "config.h" @@ -383,7 +383,7 @@ * @param[in] gline G-line to forward. * @return Zero. */ -int +static int gline_propagate(struct Client *cptr, struct Client *sptr, struct Gline *gline) { if (GlineIsLocal(gline)) Index: ircd-ircdev/ircd/ircd_events.c diff -u ircd-ircdev/ircd/ircd_events.c:1.12 ircd-ircdev/ircd/ircd_events.c:1.13 --- ircd-ircdev/ircd/ircd_events.c:1.12 Tue Dec 11 15:38:24 2007 +++ ircd-ircdev/ircd/ircd_events.c Sat Jan 19 05:28:51 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of event loop mid-layer. - * @version $Id: ircd_events.c,v 1.12 2007/12/11 23:38:24 zolty Exp $ + * @version $Id: ircd_events.c,v 1.13 2008/01/19 13:28:51 zolty Exp $ */ #include "config.h" @@ -381,7 +381,7 @@ sig = (int) sigstr[i]; /* get signal */ for (ptr = evInfo.gens.g_signal; ptr; - ptr = ptr->gh_next) + ptr = ptr->gh_next) if (((struct Signal*)ptr)->sig_signal == sig) /* find its descriptor... */ break; Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.23 ircd-ircdev/ircd/ircd_features.c:1.24 --- ircd-ircdev/ircd/ircd_features.c:1.23 Tue Dec 11 15:38:24 2007 +++ ircd-ircdev/ircd/ircd_features.c Sat Jan 19 05:28:51 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of configurable feature support. - * @version $Id: ircd_features.c,v 1.23 2007/12/11 23:38:24 zolty Exp $ + * @version $Id: ircd_features.c,v 1.24 2008/01/19 13:28:51 zolty Exp $ */ #include "config.h" @@ -844,7 +844,7 @@ case FEAT_UINT: /* unsigned integer, report its value */ send_reply(from, SND_EXPLICIT | RPL_FEATURE, - ":Unsigned value of %s: %u", feat->type, feat->v_int); + ":Unsigned value of %s: %u", feat->type, feat->v_int); break; case FEAT_BOOL: /* boolean, report boolean value */ @@ -987,8 +987,8 @@ case FEAT_UINT: /* Report an F-line with unsigned values */ if (features[i].flags & FEAT_MARK) /* it's been changed */ - send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "F %s %u", - features[i].type, features[i].v_int); + send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "F %s %u", + features[i].type, features[i].v_int); break; case FEAT_BOOL: /* Report an F-line with boolean values */ Index: ircd-ircdev/ircd/m_burst.c diff -u ircd-ircdev/ircd/m_burst.c:1.22 ircd-ircdev/ircd/m_burst.c:1.23 --- ircd-ircdev/ircd/m_burst.c:1.22 Tue Dec 11 15:38:25 2007 +++ ircd-ircdev/ircd/m_burst.c Sat Jan 19 05:28:51 2008 @@ -22,7 +22,7 @@ */ /** @file * @brief Handlers for BURST command. - * @version $Id: m_burst.c,v 1.22 2007/12/11 23:38:25 zolty Exp $ + * @version $Id: m_burst.c,v 1.23 2008/01/19 13:28:51 zolty Exp $ */ #include "config.h" @@ -85,7 +85,11 @@ case 'l': ++parv; break; +#if defined(UNDERNET) + case 'r': +#else case 'R': +#endif result |= MODE_REGONLY; break; } @@ -307,6 +311,7 @@ #if defined(UNDERNET) member->status &= ~(CHFL_BURST_JOINED|CHFL_BURST_ALREADY_OPPED|CHFL_BURST_ALREADY_VOICED); #else + /* TODO-ZOLTAN */ member->status &= ~CHFL_BURST_JOINED; #endif Index: ircd-ircdev/ircd/m_endburst.c diff -u ircd-ircdev/ircd/m_endburst.c:1.9 ircd-ircdev/ircd/m_endburst.c:1.10 --- ircd-ircdev/ircd/m_endburst.c:1.9 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/m_endburst.c Sat Jan 19 05:28:51 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for END OF BURST command. - * @version $Id: m_endburst.c,v 1.9 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: m_endburst.c,v 1.10 2008/01/19 13:28:51 zolty Exp $ */ #include "config.h" @@ -79,7 +79,7 @@ /* Newly empty channel, schedule it for removal. */ chan->mode.mode &= ~MODE_BURSTADDED; sub1_from_channel(chan); - } else { + } else { chan->mode.mode &= ~MODE_BURSTADDED; #if !defined(UNDERNET) && !defined(DDB) sendto_opmask(0, SNO_OLDSNO, "Empty channel %H not added by " Index: ircd-ircdev/ircd/m_list.c diff -u ircd-ircdev/ircd/m_list.c:1.13 ircd-ircdev/ircd/m_list.c:1.14 --- ircd-ircdev/ircd/m_list.c:1.13 Tue Dec 11 15:38:25 2007 +++ ircd-ircdev/ircd/m_list.c Sat Jan 19 05:28:51 2008 @@ -20,7 +20,7 @@ */ /** @file * @brief Handlers for LIST command. - * @version $Id: m_list.c,v 1.13 2007/12/11 23:38:25 zolty Exp $ + * @version $Id: m_list.c,v 1.14 2008/01/19 13:28:51 zolty Exp $ */ #include "config.h" @@ -202,9 +202,9 @@ case 2: /* channel topic */ if (dir == '<') - args->min_topic_time = val; - else args->max_topic_time = val; + else + args->min_topic_time = val; break; } break; Index: ircd-ircdev/ircd/m_lusers.c diff -u ircd-ircdev/ircd/m_lusers.c:1.10 ircd-ircdev/ircd/m_lusers.c:1.11 --- ircd-ircdev/ircd/m_lusers.c:1.10 Tue Dec 11 15:38:25 2007 +++ ircd-ircdev/ircd/m_lusers.c Sat Jan 19 05:28:51 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for LUSERS command. - * @version $Id: m_lusers.c,v 1.10 2007/12/11 23:38:25 zolty Exp $ + * @version $Id: m_lusers.c,v 1.11 2008/01/19 13:28:51 zolty Exp $ */ #include "config.h" @@ -65,7 +65,7 @@ assert(UserStats.inv_clients <= UserStats.clients + UserStats.unknowns); - send_reply(sptr, RPL_LUSERCLIENT, + send_reply(sptr, RPL_LUSERCLIENT, UserStats.clients - UserStats.inv_clients + UserStats.unknowns, UserStats.inv_clients, UserStats.servers); if (longoutput && UserStats.opers) Index: ircd-ircdev/ircd/m_mode.c diff -u ircd-ircdev/ircd/m_mode.c:1.16 ircd-ircdev/ircd/m_mode.c:1.17 --- ircd-ircdev/ircd/m_mode.c:1.16 Tue Dec 11 15:38:25 2007 +++ ircd-ircdev/ircd/m_mode.c Sat Jan 19 05:28:53 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for MODE command. - * @version $Id: m_mode.c,v 1.16 2007/12/11 23:38:25 zolty Exp $ + * @version $Id: m_mode.c,v 1.17 2008/01/19 13:28:53 zolty Exp $ */ #include "config.h" @@ -166,7 +166,7 @@ } else if (sptr != acptr) { - sendwallto_group(&me, WALL_WALLOPS, 0, + sendwallto_group(&me, WALL_WALLOPS, 0, "MODE for User %s from %s!%s", parv[1], cli_name(cptr), cli_name(sptr)); return 0; Index: ircd-ircdev/ircd/m_names.c diff -u ircd-ircdev/ircd/m_names.c:1.15 ircd-ircdev/ircd/m_names.c:1.16 --- ircd-ircdev/ircd/m_names.c:1.15 Tue Dec 11 15:38:25 2007 +++ ircd-ircdev/ircd/m_names.c Sat Jan 19 05:28:53 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for NAMES command. - * @version $Id: m_names.c,v 1.15 2007/12/11 23:38:25 zolty Exp $ + * @version $Id: m_names.c,v 1.16 2008/01/19 13:28:53 zolty Exp $ */ #include "config.h" @@ -122,7 +122,7 @@ buf[idx++] = '@'; else if (HasVoice(member)) buf[idx++] = '+'; - strcpy(buf + idx, cli_name(c2ptr)); + strcpy(buf + idx, cli_name(c2ptr)); idx += strlen(cli_name(c2ptr)); flag = 1; if (mlen + idx + NICKLEN + 5 > BUFSIZE) @@ -234,7 +234,7 @@ if (showflag) /* Have we already shown them? */ continue; - + strcpy(buf + idx, cli_name(c2ptr)); idx += strlen(cli_name(c2ptr)); buf[idx++] = ' '; @@ -252,7 +252,7 @@ send_reply(sptr, RPL_NAMREPLY, buf); send_reply(sptr, RPL_ENDOFNAMES, "*"); } - else if ((chptr = FindChannel(para)) != NULL) + else if ((chptr = FindChannel(para)) != NULL) { member = find_member_link(chptr, sptr); if (member) Index: ircd-ircdev/ircd/m_nick.c diff -u ircd-ircdev/ircd/m_nick.c:1.16 ircd-ircdev/ircd/m_nick.c:1.17 --- ircd-ircdev/ircd/m_nick.c:1.16 Tue Dec 11 15:38:25 2007 +++ ircd-ircdev/ircd/m_nick.c Sat Jan 19 05:28:53 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for NICK command. - * @version $Id: m_nick.c,v 1.16 2007/12/11 23:38:25 zolty Exp $ + * @version $Id: m_nick.c,v 1.17 2008/01/19 13:28:53 zolty Exp $ */ #include "config.h" @@ -169,11 +169,9 @@ if (strlen(arg) > IRCD_MIN(NICKLEN, feature_uint(FEAT_NICKLEN))) arg[IRCD_MIN(NICKLEN, feature_uint(FEAT_NICKLEN))] = '\0'; -#if 1 /* Soporte de nicks ~ */ if ((s = strchr(arg, '~'))) *s = '\0'; -#endif strcpy(nick, arg); Index: ircd-ircdev/ircd/m_server.c diff -u ircd-ircdev/ircd/m_server.c:1.14 ircd-ircdev/ircd/m_server.c:1.15 --- ircd-ircdev/ircd/m_server.c:1.14 Tue Dec 11 15:38:26 2007 +++ ircd-ircdev/ircd/m_server.c Sat Jan 19 05:28:53 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for the SERVER command. - * @version $Id: m_server.c,v 1.14 2007/12/11 23:38:26 zolty Exp $ + * @version $Id: m_server.c,v 1.15 2008/01/19 13:28:53 zolty Exp $ */ #include "config.h" @@ -622,7 +622,6 @@ memset(cli_privs(cptr), 255, sizeof(struct Privs)); ClrPriv(cptr, PRIV_SET); SetServerYXX(cptr, cptr, parv[6]); - update_uworld_flags(cptr); if (*parv[7] == '+') @@ -735,7 +734,6 @@ /* Use cptr, because we do protocol 9 -> 10 translation for numeric nicks ! */ SetServerYXX(cptr, acptr, parv[6]); - update_uworld_flags(cptr); if (*parv[7] == '+') Index: ircd-ircdev/ircd/m_version.c diff -u ircd-ircdev/ircd/m_version.c:1.11 ircd-ircdev/ircd/m_version.c:1.12 --- ircd-ircdev/ircd/m_version.c:1.11 Tue Dec 11 15:38:26 2007 +++ ircd-ircdev/ircd/m_version.c Sat Jan 19 05:28:53 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for the VERSION command. - * @version $Id: m_version.c,v 1.11 2007/12/11 23:38:26 zolty Exp $ + * @version $Id: m_version.c,v 1.12 2008/01/19 13:28:53 zolty Exp $ */ #include "config.h" @@ -33,6 +33,7 @@ #include "ircd_reply.h" #include "ircd_snprintf.h" #include "ircd_string.h" +#include "match.h" #include "msg.h" #include "numeric.h" #include "numnicks.h" Index: ircd-ircdev/ircd/s_auth.c diff -u ircd-ircdev/ircd/s_auth.c:1.20 ircd-ircdev/ircd/s_auth.c:1.21 --- ircd-ircdev/ircd/s_auth.c:1.20 Tue Dec 11 15:38:26 2007 +++ ircd-ircdev/ircd/s_auth.c Sat Jan 19 05:28:53 2008 @@ -36,7 +36,7 @@ */ /** @file * @brief Implementation of DNS and ident lookups. - * @version $Id: s_auth.c,v 1.20 2007/12/11 23:38:26 zolty Exp $ + * @version $Id: s_auth.c,v 1.21 2008/01/19 13:28:53 zolty Exp $ */ #include "config.h" @@ -1983,8 +1983,8 @@ case 'U': handler = iauth_cmd_username_good; has_cli = 1; break; case 'u': handler = iauth_cmd_username_bad; has_cli = 1; break; case 'N': handler = iauth_cmd_hostname; has_cli = 1; break; - case 'M': handler = iauth_cmd_usermode; has_cli = 1; break; case 'I': handler = iauth_cmd_ip_address; has_cli = 1; break; + case 'M': handler = iauth_cmd_usermode; has_cli = 1; break; case 'C': handler = iauth_cmd_challenge; has_cli = 1; break; case 'D': handler = iauth_cmd_done_client; has_cli = 1; break; #if defined(UNDERNET) Index: ircd-ircdev/ircd/s_conf.c diff -u ircd-ircdev/ircd/s_conf.c:1.30 ircd-ircdev/ircd/s_conf.c:1.31 --- ircd-ircdev/ircd/s_conf.c:1.30 Tue Dec 11 15:38:26 2007 +++ ircd-ircdev/ircd/s_conf.c Sat Jan 19 05:28:53 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief ircd configuration file driver - * @version $Id: s_conf.c,v 1.30 2007/12/11 23:38:26 zolty Exp $ + * @version $Id: s_conf.c,v 1.31 2008/01/19 13:28:53 zolty Exp $ */ #include "config.h" @@ -854,6 +854,7 @@ static int conf_already_read; extern void yyparse(void); extern int init_lexer(const char *configfile); +extern void deinit_lexer(void); /** Read configuration file. * @return Zero on failure, non-zero on success. */ Index: ircd-ircdev/ircd/s_err.c diff -u ircd-ircdev/ircd/s_err.c:1.28 ircd-ircdev/ircd/s_err.c:1.29 --- ircd-ircdev/ircd/s_err.c:1.28 Sun Jan 6 16:14:06 2008 +++ ircd-ircdev/ircd/s_err.c Sat Jan 19 05:28:53 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Error handling support. - * @version $Id: s_err.c,v 1.28 2008/01/07 00:14:06 zolty Exp $ + * @version $Id: s_err.c,v 1.29 2008/01/19 13:28:53 zolty Exp $ */ #include "config.h" @@ -469,10 +469,7 @@ /* 212 */ { RPL_STATSCOMMANDS, "%s %u %u", "212" }, /* 213 */ -/* TODO-ZOLTAN: OJO PROVISIONAL ZOLTAN { RPL_STATSCLINE, "C %s * %d %d %s %s", "213" }, -*/ - { RPL_STATSCLINE, "C %s %s%s %d %d %s %s", "213" }, /* 214 */ { 0 }, /* 215 */ Index: ircd-ircdev/ircd/s_misc.c diff -u ircd-ircdev/ircd/s_misc.c:1.19 ircd-ircdev/ircd/s_misc.c:1.20 --- ircd-ircdev/ircd/s_misc.c:1.19 Tue Dec 11 15:38:26 2007 +++ ircd-ircdev/ircd/s_misc.c Sat Jan 19 05:28:53 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Miscellaneous support functions. - * @version $Id: s_misc.c,v 1.19 2007/12/11 23:38:26 zolty Exp $ + * @version $Id: s_misc.c,v 1.20 2008/01/19 13:28:53 zolty Exp $ */ #include "config.h" @@ -228,7 +228,6 @@ if (MyUser(bcptr)) set_snomask(bcptr, ~0, SNO_DEL); - if (IsInvisible(bcptr)) if (IsInvisible(bcptr)) { assert(UserStats.inv_clients > 0); --UserStats.inv_clients; Index: ircd-ircdev/ircd/s_stats.c diff -u ircd-ircdev/ircd/s_stats.c:1.22 ircd-ircdev/ircd/s_stats.c:1.23 --- ircd-ircdev/ircd/s_stats.c:1.22 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/s_stats.c Sat Jan 19 05:28:53 2008 @@ -22,7 +22,7 @@ /** @file * @brief Report configuration lines and other statistics from this * server. - * @version $Id: s_stats.c,v 1.22 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: s_stats.c,v 1.23 2008/01/19 13:28:53 zolty Exp $ * * Note: The info is reported in the order the server uses * it--not reversed as in ircd.conf! @@ -72,7 +72,7 @@ /** @file * @brief Report configuration lines and other statistics from this * server. - * @version $Id: s_stats.c,v 1.22 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: s_stats.c,v 1.23 2008/01/19 13:28:53 zolty Exp $ * * Note: The info is reported in the order the server uses * it--not reversed as in ircd.conf! @@ -243,10 +243,7 @@ port = tmp->address.port; if (tmp->status & CONF_SERVER) -/* TODO-ZOLTAN provisional ZOLTAN OJO - send_reply(sptr, RPL_STATSCLINE, name, port, maximum, hub_limit, get_conf_class(tmp)); -*/ - send_reply(sptr, RPL_STATSCLINE, name, (host[0] == ':' ? "0" : ""), host, port, maximum, hub_limit, get_conf_class(tmp)); + send_reply(sptr, RPL_STATSCLINE, name, port, maximum, hub_limit, get_conf_class(tmp)); else if (tmp->status & CONF_CLIENT) send_reply(sptr, RPL_STATSILINE, (tmp->username ? tmp->username : ""), (tmp->username ? "@" : ""), Index: ircd-ircdev/ircd/s_user.c diff -u ircd-ircdev/ircd/s_user.c:1.35 ircd-ircdev/ircd/s_user.c:1.36 --- ircd-ircdev/ircd/s_user.c:1.35 Sun Jan 6 16:14:07 2008 +++ ircd-ircdev/ircd/s_user.c Sat Jan 19 05:28:53 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Miscellaneous user-related helper functions. - * @version $Id: s_user.c,v 1.35 2008/01/07 00:14:07 zolty Exp $ + * @version $Id: s_user.c,v 1.36 2008/01/19 13:28:53 zolty Exp $ */ #include "config.h" @@ -1484,12 +1484,12 @@ break; #if defined(UNDERNET) case 'r': - if (what == MODE_ADD) { - account = *(++p); - SetAccount(sptr); - } - /* There is no -r */ - break; + if (what == MODE_ADD) { + account = *(++p); + SetAccount(sptr); + } + /* There is no -r */ + break; #endif #ifdef USE_SSL case 'Z': @@ -1522,8 +1522,7 @@ /* if none of the given case is valid then compain by * sending raw 501 ( ERR_UMODEUNKNOWNFLAG ) */ - default: - + default: send_reply(sptr, ERR_UMODEUNKNOWNFLAG, *m); break; } @@ -1603,8 +1602,8 @@ len = (ts++) - account; cli_user(sptr)->acc_create = atoi(ts); Debug((DEBUG_DEBUG, "Received timestamped account in user mode; " - "account \"%s\", timestamp %Tu", account, - cli_user(sptr)->acc_create)); + "account \"%s\", timestamp %Tu", account, + cli_user(sptr)->acc_create)); } ircd_strncpy(cli_user(sptr)->account, account, len); } Index: ircd-ircdev/tools/iauth-test diff -u ircd-ircdev/tools/iauth-test:1.1 ircd-ircdev/tools/iauth-test:1.2 --- ircd-ircdev/tools/iauth-test:1.1 Thu Sep 20 14:00:54 2007 +++ ircd-ircdev/tools/iauth-test Sat Jan 19 05:28:54 2008 @@ -162,13 +162,15 @@ '127.0.0.33' => { T_reply => 'R account-3' }, '127.0.0.34' => { T_reply => 'k' }, '127.0.0.35' => { T_reply => 'K' }, - # 127.0.1.x: io/iU/iu functionality. + # 127.0.1.x: io/iU/iu/iM functionality. '127.0.1.0' => { C_reply => 'o forced', H_reply => 'D' }, '127.0.1.1' => { C_reply => 'U t... [truncated message content] |
From: Toni G. <zo...@us...> - 2008-01-19 19:26:18
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2008-01-19 19:26:17 UTC Modified files: ChangeLog ChangeLog.es config.h.in include/channel.h include/ircd_features.h include/patchlevel.h ircd/channel.c ircd/ircd_features.c ircd/m_clearmode.c ircd/m_mode.c ircd/m_opmode.c ircd/m_wallusers.c ircd/m_wallvoices.c Log message: Author: zoltan <zo...@ir...> Log message: 2008-01-19 Toni Garc�a <zo...@ir...> 1.0.beta12 * Transicion con IRC-Hispano * Soporte de XMODE JCEA ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.60 ircd-ircdev/ChangeLog:1.61 --- ircd-ircdev/ChangeLog:1.60 Sun Jan 6 16:14:01 2008 +++ ircd-ircdev/ChangeLog Sat Jan 19 11:25:55 2008 @@ -1,10 +1,14 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.60 2008/01/07 00:14:01 zolty Exp $ +# $Id: ChangeLog,v 1.61 2008/01/19 19:25:55 zolty Exp $ # # Insert new changes at beginning of the change list. # +2008-01-19 Toni Garc�a <zo...@ir...> 1.0.beta12 + * IRC-Hispano Transition + * JCEA XMODE Support + 2008-01-07 Toni Garcïa <zo...@ir...> 1.0.beta11 * Channel mode +C * Channel mode +c Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.60 ircd-ircdev/ChangeLog.es:1.61 --- ircd-ircdev/ChangeLog.es:1.60 Sun Jan 6 16:14:02 2008 +++ ircd-ircdev/ChangeLog.es Sat Jan 19 11:25:56 2008 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.60 2008/01/07 00:14:02 zolty Exp $ +# $Id: ChangeLog.es,v 1.61 2008/01/19 19:25:56 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2008-01-19 Toni Garc�a <zo...@ir...> 1.0.beta12 + * Transicion con IRC-Hispano + * Soporte de XMODE JCEA + 2008-01-07 Toni Garc�a <zo...@ir...> 1.0.beta11 * Modo de canal +C * Modo de canal +c Index: ircd-ircdev/config.h.in diff -u ircd-ircdev/config.h.in:1.15 ircd-ircdev/config.h.in:1.16 --- ircd-ircdev/config.h.in:1.15 Tue Dec 11 15:38:21 2007 +++ ircd-ircdev/config.h.in Sat Jan 19 11:25:56 2008 @@ -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: config.h.in,v 1.15 2007/12/11 23:38:21 zolty Exp $ + * $Id: config.h.in,v 1.16 2008/01/19 19:25:56 zolty Exp $ * */ #ifndef INCLUDED_config_h Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.20 ircd-ircdev/include/channel.h:1.21 --- ircd-ircdev/include/channel.h:1.20 Sun Jan 6 16:14:02 2008 +++ ircd-ircdev/include/channel.h Sat Jan 19 11:25:57 2008 @@ -22,7 +22,7 @@ */ /** @file * @brief Channel management and maintenance. - * @version $Id: channel.h,v 1.20 2008/01/07 00:14:02 zolty Exp $ + * @version $Id: channel.h,v 1.21 2008/01/19 19:25:57 zolty Exp $ */ #ifndef INCLUDED_channel_h #define INCLUDED_channel_h @@ -400,6 +400,9 @@ #if defined(DDB) #define MODEBUF_DEST_BOTMODE 0x20000 /**< Mode send by Bot */ #endif +#if 1 /* TRANSICION IRC-HISPANO */ +#define MODEBUF_DEST_XMODE_JCEA 0x40000 +#endif #define MB_TYPE(mb, i) ((mb)->mb_modeargs[(i)].mbm_type) #define MB_UINT(mb, i) ((mb)->mb_modeargs[(i)].mbm_arg.mbma_uint) Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.22 ircd-ircdev/include/ircd_features.h:1.23 --- ircd-ircdev/include/ircd_features.h:1.22 Tue Dec 11 15:38:23 2007 +++ ircd-ircdev/include/ircd_features.h Sat Jan 19 11:25:57 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.22 2007/12/11 23:38:23 zolty Exp $ + * @version $Id: ircd_features.h,v 1.23 2008/01/19 19:25:57 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -203,6 +203,9 @@ FEAT_SPAM_JOINED_TIME, FEAT_SPAM_FJP_COUNT, +#if 1 /* TRANSICION IRC-HISPANO */ + FEAT_TRANSICION_HISPANO, +#endif FEAT_LAST_F }; Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.59 ircd-ircdev/include/patchlevel.h:1.60 --- ircd-ircdev/include/patchlevel.h:1.59 Sun Jan 6 16:14:05 2008 +++ ircd-ircdev/include/patchlevel.h Sat Jan 19 11:25:58 2008 @@ -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.59 2008/01/07 00:14:05 zolty Exp $ + * $Id: patchlevel.h,v 1.60 2008/01/19 19:25:58 zolty Exp $ * */ -#define PATCHLEVEL "11" +#define PATCHLEVEL "12" #define RELEASE "1.0.beta" Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.36 ircd-ircdev/ircd/channel.c:1.37 --- ircd-ircdev/ircd/channel.c:1.36 Sat Jan 19 05:28:51 2008 +++ ircd-ircdev/ircd/channel.c Sat Jan 19 11:25:58 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.36 2008/01/19 13:28:51 zolty Exp $ + * @version $Id: channel.c,v 1.37 2008/01/19 19:25:58 zolty Exp $ */ #include "config.h" @@ -2001,6 +2001,16 @@ addbuf_i || addbuf_local_i ? "+" : "", addbuf, addbuf_local, remstr, addstr); +#if 1 /* TRANSICION IRC-HISPANO */ + else if (mbuf->mb_dest & MODEBUF_DEST_XMODE_JCEA) + sendcmdto_channel(app_source, CMD_MODE, mbuf->mb_channel, NULL, SKIP_SERVERS, + "%H x%s%s%s%s%s%s%s%s", mbuf->mb_channel, + rembuf_i || rembuf_local_i ? "-" : "", + rembuf, rembuf_local, + addbuf_i || addbuf_local_i ? "+" : "", + addbuf, addbuf_local, + remstr, addstr); +#endif else #endif /* defined(DDB) */ sendcmdto_channel(app_source, CMD_MODE, mbuf->mb_channel, NULL, SKIP_SERVERS, @@ -2110,6 +2120,14 @@ addbuf, remstr, addstr, mbuf->mb_channel->creationtime); #endif /* defined(DDB) */ +#if 1 /* TRANSICION IRC-HISPANO */ + } else if (mbuf->mb_dest & MODEBUF_DEST_XMODE_JCEA) { + sendcmdto_serv(mbuf->mb_source, CMD_MODE, mbuf->mb_connect, + "%H x%s%s%s%s%s%s %Tu", mbuf->mb_channel, + rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", + addbuf, remstr, addstr, + mbuf->mb_channel->creationtime); +#endif } else { /* * We're propagating a normal (or HACK3 or HACK4) MODE command Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.24 ircd-ircdev/ircd/ircd_features.c:1.25 --- ircd-ircdev/ircd/ircd_features.c:1.24 Sat Jan 19 05:28:51 2008 +++ ircd-ircdev/ircd/ircd_features.c Sat Jan 19 11:25:59 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of configurable feature support. - * @version $Id: ircd_features.c,v 1.24 2008/01/19 13:28:51 zolty Exp $ + * @version $Id: ircd_features.c,v 1.25 2008/01/19 19:25:59 zolty Exp $ */ #include "config.h" @@ -532,6 +532,10 @@ F_I(SPAM_JOINED_TIME, 0, 60, 0), F_I(SPAM_FJP_COUNT, 0, 5, 0), +#if 1 /* TRANSICION IRC-HISPANO */ + F_B(TRANSICION_HISPANO, 0, 1, 0), +#endif + #undef F_S #undef F_B #undef F_I Index: ircd-ircdev/ircd/m_clearmode.c diff -u ircd-ircdev/ircd/m_clearmode.c:1.15 ircd-ircdev/ircd/m_clearmode.c:1.16 --- ircd-ircdev/ircd/m_clearmode.c:1.15 Sun Jan 6 16:14:06 2008 +++ ircd-ircdev/ircd/m_clearmode.c Sat Jan 19 11:26:03 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for CLEARMODE command. - * @version $Id: m_clearmode.c,v 1.15 2008/01/07 00:14:06 zolty Exp $ + * @version $Id: m_clearmode.c,v 1.16 2008/01/19 19:26:03 zolty Exp $ */ #include "config.h" @@ -250,6 +250,14 @@ const char *chname, *qreason; int force = 0; +#if 1 /* TRANSICION IRC-HISPANO */ + if (feature_bool(FEAT_TRANSICION_HISPANO)) + { + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Durante la transicion al nuevo ircd, el comando CLEARMODE esta deshabilitado", sptr); + return 0; + } +#endif + if (!feature_bool(FEAT_CONFIG_OPERCMDS)) return send_reply(sptr, ERR_DISABLED, "CLEARMODE"); Index: ircd-ircdev/ircd/m_mode.c diff -u ircd-ircdev/ircd/m_mode.c:1.17 ircd-ircdev/ircd/m_mode.c:1.18 --- ircd-ircdev/ircd/m_mode.c:1.17 Sat Jan 19 05:28:53 2008 +++ ircd-ircdev/ircd/m_mode.c Sat Jan 19 11:26:03 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for MODE command. - * @version $Id: m_mode.c,v 1.17 2008/01/19 13:28:53 zolty Exp $ + * @version $Id: m_mode.c,v 1.18 2008/01/19 19:26:03 zolty Exp $ */ #include "config.h" @@ -115,6 +115,23 @@ MODE_PARSE_FORCE), /* Force it to take */ member); return modebuf_flush(&mbuf); + +#if 1 /* TRANSICION IRC-HISPANO */ + } else if (feature_bool(FEAT_TRANSICION_HISPANO) && IsOper(sptr) && strchr(parv[2], 'x')) { + modebuf_init(&mbuf, sptr, cptr, chptr, + (MODEBUF_DEST_CHANNEL | /* Send MODE to channel */ + MODEBUF_DEST_SERVER | /* And to server */ + MODEBUF_DEST_XMODE_JCEA | /* Use XMODE */ + MODEBUF_DEST_HACK4)); /* Generate a HACK(4) notice */ + + mode_parse(&mbuf, cptr, sptr, chptr, parc - 2, parv + 2, + (MODE_PARSE_SET | /* Set the modes on the channel */ + MODE_PARSE_STRICT | /* Be strict about it */ + MODE_PARSE_FORCE), /* And force them to be accepted */ + NULL); + + modebuf_flush(&mbuf); /* flush the modes */ +#endif } else mode_parse(0, cptr, sptr, chptr, parc - 2, parv + 2, (member ? MODE_PARSE_NOTOPER : MODE_PARSE_NOTMEMBER), member); @@ -194,7 +211,7 @@ (MODEBUF_DEST_CHANNEL | /* Send mode to clients */ MODEBUF_DEST_SERVER)); /* Send mode to servers */ #else - else + else modebuf_init(&mbuf, sptr, cptr, chptr, (MODEBUF_DEST_CHANNEL | /* Send mode to clients */ MODEBUF_DEST_SERVER | /* Send mode to servers */ @@ -217,6 +234,21 @@ MODE_PARSE_STRICT | /* Interpret it strictly */ MODE_PARSE_FORCE), /* And force it to be accepted */ NULL); +#if 1 /* TRANSICION IRC-HISPANO */ + } else if (IsOper(sptr) && strchr(parv[2], 'x')) { + modebuf_init(&mbuf, sptr, cptr, chptr, + (MODEBUF_DEST_CHANNEL | /* Send MODE to channel */ + MODEBUF_DEST_SERVER | /* And to server */ + MODEBUF_DEST_XMODE_JCEA | /* Use XMODE */ + MODEBUF_DEST_HACK4)); /* Generate a HACK(4) notice */ + + mode_parse(&mbuf, cptr, sptr, chptr, parc - 2, parv + 2, + (MODE_PARSE_SET | /* Set the modes on the channel */ + MODE_PARSE_FORCE), /* And force them to be accepted */ + NULL); + + modebuf_flush(&mbuf); /* flush the modes */ +#endif } else if (!(member = find_member_link(chptr, sptr)) || !(IsChanOwner(member) || IsChanOp(member))) { #else Index: ircd-ircdev/ircd/m_opmode.c diff -u ircd-ircdev/ircd/m_opmode.c:1.8 ircd-ircdev/ircd/m_opmode.c:1.9 --- ircd-ircdev/ircd/m_opmode.c:1.8 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_opmode.c Sat Jan 19 11:26:03 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for OPERMODE command. - * @version $Id: m_opmode.c,v 1.8 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_opmode.c,v 1.9 2008/01/19 19:26:03 zolty Exp $ */ #include "config.h" @@ -101,6 +101,14 @@ const char *qreason; int force = 0; +#if 1 /* TRANSICION IRC-HISPANO */ + if (feature_bool(FEAT_TRANSICION_HISPANO)) + { + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Durante la transicion al nuevo ircd, el comando OPMODE esta deshabilitado", sptr); + return 0; + } +#endif + if (!feature_bool(FEAT_CONFIG_OPERCMDS)) return send_reply(sptr, ERR_DISABLED, "OPMODE"); Index: ircd-ircdev/ircd/m_wallusers.c diff -u ircd-ircdev/ircd/m_wallusers.c:1.6 ircd-ircdev/ircd/m_wallusers.c:1.7 --- ircd-ircdev/ircd/m_wallusers.c:1.6 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_wallusers.c Sat Jan 19 11:26:03 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for WALLUSERS command. - * @version $Id: m_wallusers.c,v 1.6 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_wallusers.c,v 1.7 2008/01/19 19:26:03 zolty Exp $ */ #include "config.h" @@ -32,6 +32,8 @@ #include "msg.h" #include "numeric.h" #include "send.h" +#include "ircd_features.h" /* TRANSICION IRC-HISPANO */ +#include "ircd.h" /* TRANSICION IRC-HISPANO */ /* #include <assert.h> -- Now using assert in ircd_log.h */ @@ -77,6 +79,14 @@ { char *message; +#if 1 /* TRANSICION IRC-HISPANO */ + if (feature_bool(FEAT_TRANSICION_HISPANO)) + { + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Durante la transicion al nuevo ircd, el comando WALLUSERS esta deshabilitado", sptr); + return 0; + } +#endif + message = parc > 1 ? parv[parc - 1] : 0; if (EmptyString(message)) Index: ircd-ircdev/ircd/m_wallvoices.c diff -u ircd-ircdev/ircd/m_wallvoices.c:1.12 ircd-ircdev/ircd/m_wallvoices.c:1.13 --- ircd-ircdev/ircd/m_wallvoices.c:1.12 Sun Jan 6 16:14:06 2008 +++ ircd-ircdev/ircd/m_wallvoices.c Sat Jan 19 11:26:07 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for WALLVOICES command. - * @version $Id: m_wallvoices.c,v 1.12 2008/01/07 00:14:06 zolty Exp $ + * @version $Id: m_wallvoices.c,v 1.13 2008/01/19 19:26:07 zolty Exp $ */ #include "config.h" @@ -37,6 +37,9 @@ #include "numnicks.h" #include "s_user.h" #include "send.h" +#include "ircd_features.h" /* TRANSICION IRC-HISPANO */ +#include "ircd.h" /* TRANSICION IRC-HISPANO */ + /* #include <assert.h> -- Now using assert in ircd_log.h */ @@ -60,6 +63,14 @@ assert(0 != cptr); assert(cptr == sptr); +#if 1 /* TRANSICION IRC-HISPANO */ + if (feature_bool(FEAT_TRANSICION_HISPANO)) + { + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :Durante la transicion al nuevo ircd, el comando WALLVOICES esta deshabilitado", sptr); + return 0; + } +#endif + if (parc < 2 || EmptyString(parv[1])) return send_reply(sptr, ERR_NORECIPIENT, "WALLVOICES"); ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2008-01-27 12:47:30
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2008-01-27 12:47:27 UTC Modified files: ircd/s_bsd.c Log message: SSL Fix ---------------------- diff included ---------------------- Index: ircd-ircdev/ircd/s_bsd.c diff -u ircd-ircdev/ircd/s_bsd.c:1.25 ircd-ircdev/ircd/s_bsd.c:1.26 --- ircd-ircdev/ircd/s_bsd.c:1.25 Tue Dec 11 15:38:26 2007 +++ ircd-ircdev/ircd/s_bsd.c Sun Jan 27 04:47:16 2008 @@ -21,7 +21,7 @@ */ /** @file * @brief Functions that now (or in the past) relied on BSD APIs. - * @version $Id: s_bsd.c,v 1.25 2007/12/11 23:38:26 zolty Exp $ + * @version $Id: s_bsd.c,v 1.26 2008/01/27 12:47:16 zolty Exp $ */ #include "config.h" @@ -924,6 +924,9 @@ if (!con_freeflag(con) && !cptr) free_connection(con); +#ifdef USE_SSL + ssl_free(ev_socket(ev)); +#endif break; case ET_CONNECT: /* socket connection completed */ ----------------------- End of diff ----------------------- |