From: Michael Poole Date: Sun, 8 May 2005 02:22:57 +0000 (+0000) Subject: Apply patches #1197032, #1194116. X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=commitdiff_plain;h=ab6e262eb88f4d4bbf088728ce44705f8065a94d Apply patches #1197032, #1194116. git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@1399 c9e4aea6-c8fd-4c43-8297-357d70d61c8c --- diff --git a/ChangeLog b/ChangeLog index 9e3fe66..8d6f411 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2005-05-04 Reed Loden + + * ircd/m_trace.c (do_trace): Show the real nickname instead of the + numnick. + +2005-05-02 Jan Krueger + + * 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 * ircd/numnicks.c (base64toip): Fix bugs in parsing IPv6 diff --git a/ircd/channel.c b/ircd/channel.c index 633d28c..ddb85d7 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -655,6 +655,9 @@ int member_can_send_to_channel(struct Membership* member, int reveal) */ 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 diff --git a/ircd/m_trace.c b/ircd/m_trace.c index e261ac5..d5e4a48 100644 --- a/ircd/m_trace.c +++ b/ircd/m_trace.c @@ -106,6 +106,7 @@ void do_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { int i; struct Client *acptr; + struct Client *acptr2; const struct ConnectionClass* cl; char* tname; int doall; @@ -260,14 +261,19 @@ void do_trace(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) */ 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 : "*", "*",