+2005-05-04 Reed Loden <reed@reedloden.com>
+
+ * ircd/m_trace.c (do_trace): Show the real nickname instead of the
+ numnick.
+
+2005-05-02 Jan Krueger <jast@heapsort.de>
+
+ * ircd/channel.c (member_can_send_to_channel): if the channel can only
+ be joined by users with accounts (+r), do not allow users without
+ accounts to speak.
+
2005-05-07 Michael Poole <mdpoole@troilus.org>
* ircd/numnicks.c (base64toip): Fix bugs in parsing IPv6
*/
if (member->channel->mode.mode & MODE_MODERATED)
return 0;
+ /* 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))
+ return 0;
/*
* If you're banned then you can't speak either.
* but because of the amount of CPU time that is_banned chews
{
int i;
struct Client *acptr;
+ struct Client *acptr2;
const struct ConnectionClass* cl;
char* tname;
int doall;
*/
case STAT_SERVER:
- if (cli_serv(acptr)->user)
+ if (cli_serv(acptr)->user) {
+ if (!cli_serv(acptr)->by[0]
+ || !(acptr2 = findNUser(cli_serv(acptr)->by))
+ || (cli_user(acptr2) != cli_serv(acptr)->user))
+ acptr2 = NULL;
send_reply(sptr, RPL_TRACESERVER, conClass, link_s[i],
link_u[i], cli_name(acptr),
- (*(cli_serv(acptr))->by) ? cli_serv(acptr)->by : "*",
- cli_serv(acptr)->user->username, cli_serv(acptr)->user->host,
+ acptr2 ? cli_name(acptr2) : "*",
+ cli_serv(acptr)->user->username,
+ cli_serv(acptr)->user->host,
CurrentTime - cli_lasttime(acptr),
CurrentTime - cli_serv(acptr)->timestamp);
- else
+ } else
send_reply(sptr, RPL_TRACESERVER, conClass, link_s[i],
link_u[i], cli_name(acptr),
(*(cli_serv(acptr))->by) ? cli_serv(acptr)->by : "*", "*",