diff -ru irc2.10.3p5+hemp2+xline2/common/parse.c irc2.10.3p5+hemp2+xline2+kp/common/parse.c --- irc2.10.3p5+hemp2+xline2/common/parse.c Fri Jan 16 15:58:40 2004 +++ irc2.10.3p5+hemp2+xline2+kp/common/parse.c Fri Jan 16 16:03:30 2004 @@ -104,8 +104,8 @@ #endif { MSG_SQUERY, m_squery, MAXPARA, MSG_LAG|MSG_REGU, 0, 0, 0L}, { MSG_SERVLIST,m_servlist, MAXPARA, MSG_LAG|MSG_REG, 0, 0, 0L}, - { MSG_HASH, m_hash, MAXPARA, MSG_LAG|MSG_REG, 0, 0, 0L}, - { MSG_DNS, m_dns, MAXPARA, MSG_LAG|MSG_REG, 0, 0, 0L}, + { MSG_HASH, m_hash, MAXPARA, MSG_LAG|MSG_REG|MSG_OP, 0, 0, 0L}, + { MSG_DNS, m_dns, MAXPARA, MSG_LAG|MSG_REG|MSG_OP, 0, 0, 0L}, #ifdef OPER_REHASH { MSG_REHASH, m_rehash, MAXPARA, MSG_REGU|MSG_OP # ifdef LOCOP_REHASH diff -ru irc2.10.3p5+hemp2+xline2/common/struct_def.h irc2.10.3p5+hemp2+xline2+kp/common/struct_def.h --- irc2.10.3p5+hemp2+xline2/common/struct_def.h Fri Jan 16 15:58:40 2004 +++ irc2.10.3p5+hemp2+xline2+kp/common/struct_def.h Fri Jan 16 21:29:32 2004 @@ -179,6 +179,7 @@ #define FLAGS_INVISIBLE 0x0008 /* makes user invisible */ #define FLAGS_RESTRICTED 0x0010 /* Restricted user */ #define FLAGS_AWAY 0x0020 /* user is away */ +#define FLAGS_NOIDLE 0x0100 /* user doesn't show idle time */ #define FLAGS_BADBOY 0x10000 /* delay close this client */ #ifdef ILINE_FLAGS @@ -186,7 +187,7 @@ #endif #define SEND_UMODES (FLAGS_INVISIBLE|FLAGS_OPER|FLAGS_WALLOP|FLAGS_AWAY) -#define ALL_UMODES (SEND_UMODES|FLAGS_LOCOP|FLAGS_RESTRICTED) +#define ALL_UMODES (SEND_UMODES|FLAGS_LOCOP|FLAGS_RESTRICTED|FLAGS_NOIDLE) /* * flags macros. @@ -198,6 +199,7 @@ (x)->user->flags & FLAGS_RESTRICTED) #define IsAnOper(x) ((x)->user && \ (x)->user->flags & (FLAGS_OPER|FLAGS_LOCOP)) +#define HasNoIdle(x) ((x)->user->flags & FLAGS_NOIDLE) #define IsPerson(x) ((x)->user && IsClient(x)) #define IsPrivileged(x) (IsServer(x) || IsAnOper(x)) #define SendWallops(x) ((x)->user->flags & FLAGS_WALLOP) @@ -213,6 +215,7 @@ #define SetInvisible(x) ((x)->user->flags |= FLAGS_INVISIBLE) #define SetRestricted(x) ((x)->user->flags |= FLAGS_RESTRICTED) #define SetWallops(x) ((x)->user->flags |= FLAGS_WALLOP) +#define SetNoIdle(x) ((x)->user->flags |= FLAGS_NOIDLE) #define SetUnixSock(x) ((x)->flags |= FLAGS_UNIX) #define SetDNS(x) ((x)->flags |= FLAGS_DOINGDNS) #define SetDoneXAuth(x) ((x)->flags |= FLAGS_XAUTHDONE) @@ -227,6 +230,7 @@ #define ClearInvisible(x) ((x)->user->flags &= ~FLAGS_INVISIBLE) #define ClearRestricted(x) ((x)->user->flags &= ~FLAGS_RESTRICTED) #define ClearWallops(x) ((x)->user->flags &= ~FLAGS_WALLOP) +#define ClearNoIdle(x) ((x)->user->flags &= ~FLAGS_NOIDLE) #define ClearDNS(x) ((x)->flags &= ~FLAGS_DOINGDNS) #define ClearAuth(x) ((x)->flags &= ~FLAGS_AUTH) #define ClearXAuth(x) ((x)->flags &= ~FLAGS_XAUTH) diff -ru irc2.10.3p5+hemp2+xline2/common/support.c irc2.10.3p5+hemp2+xline2+kp/common/support.c --- irc2.10.3p5+hemp2+xline2/common/support.c Fri Jan 16 15:58:30 2004 +++ irc2.10.3p5+hemp2+xline2+kp/common/support.c Fri Jan 16 17:17:34 2004 @@ -849,7 +849,7 @@ char *make_version() { int ve, re, mi, dv, pl; - char ver[50]; + char ver[64]; sscanf(PATCHLEVEL, "%2d%2d%2d%2d%2d", &ve, &re, &mi, &dv, &pl); /* version & revision */ @@ -861,7 +861,7 @@ sprintf(ver + strlen(ver), "%c%d", DEVLEVEL, dv); if (pl) /* patchlevel */ sprintf(ver + strlen(ver), "p%d", pl); - strcat(ver,"+hemp2"); + strcat(ver,"+kp"); return mystrdup(ver); } #ifndef CLIENTCOMPILE Only in irc2.10.3p5+hemp2+xline2+kp/: i386-unknown-freebsd4.9 diff -ru irc2.10.3p5+hemp2+xline2/ircd/s_err.c irc2.10.3p5+hemp2+xline2+kp/ircd/s_err.c --- irc2.10.3p5+hemp2+xline2/ircd/s_err.c Fri Jan 16 15:58:30 2004 +++ irc2.10.3p5+hemp2+xline2+kp/ircd/s_err.c Fri Jan 16 21:48:36 2004 @@ -40,7 +40,7 @@ /* 001 */ { RPL_WELCOME, ":Welcome to the Internet Relay Network %s" }, /* 002 */ { RPL_YOURHOST, ":Your host is %s, running version %s" }, /* 003 */ { RPL_CREATED, ":This server was created %s" }, -/* 004 */ { RPL_MYINFO, "%s %s aoOirw abeiIklmnoOpqrstv" }, +/* 004 */ { RPL_MYINFO, "%s %s aoOirwt abeiIklmnoOpqrstv" }, #ifdef SEND_ISUPPORT /* 005 */ //{ RPL_ISUPPORT, "MAP PREFIX=(ov)@+ MODES=3 CHANTYPES=#&!+ MAXCHANNELS=%d NICKLEN=%d TOPICLEN=%d KICKLEN=%d NETWORK=%s CHANMODES=beI,k,l,imnpstaqr :are supported by this server" }, /* 005 */ { RPL_ISUPPORT, "%s :are supported by this server" }, diff -ru irc2.10.3p5+hemp2+xline2/ircd/s_user.c irc2.10.3p5+hemp2+xline2+kp/ircd/s_user.c --- irc2.10.3p5+hemp2+xline2/ircd/s_user.c Fri Jan 16 15:58:40 2004 +++ irc2.10.3p5+hemp2+xline2+kp/ircd/s_user.c Fri Jan 16 17:16:55 2004 @@ -39,6 +39,7 @@ FLAGS_WALLOP, 'w', FLAGS_RESTRICTED, 'r', FLAGS_AWAY, 'a', + FLAGS_NOIDLE, 't', 0, 0 }; /* @@ -1890,7 +1891,7 @@ if (IsAnOper(acptr)) sendto_one(sptr, rpl_str(RPL_WHOISOPERATOR, sptr->name), name); - if (acptr->user && MyConnect(acptr)) + if (acptr->user && MyConnect(acptr) && (!HasNoIdle(acptr) || IsAnOper(sptr))) sendto_one(sptr, rpl_str(RPL_WHOISIDLE, sptr->name), #ifdef WHOIS_SIGNON_TIME name, timeofday - user->last,acptr->firsttime); @@ -3100,6 +3101,9 @@ ClearOper(sptr); if (!(setflags & FLAGS_LOCOP) && IsLocOp(sptr)) sptr->user->flags &= ~FLAGS_LOCOP; + if (!(setflags & FLAGS_NOIDLE) && HasNoIdle(sptr) && + !IsOper(sptr) && !IsLocOp(sptr)) + ClearNoIdle(sptr); if ((setflags & FLAGS_RESTRICTED) && !(sptr->user->flags & FLAGS_RESTRICTED)) {