]>
Commit | Line | Data |
---|---|---|
a87bc2c2 | 1 | Topic by info is either 'nick' or 'account.users.quakenet.org' |
7efbed3b | 2 | |
3 | See info in whoban.patch | |
715c825d | 4 | |
65e36fcf | 5 | diff -r 98e2da930476 include/channel.h |
6 | --- a/include/channel.h Tue Mar 23 14:38:30 2010 +0100 | |
7 | +++ b/include/channel.h Tue Mar 23 14:39:07 2010 +0100 | |
715c825d CP |
8 | @@ -285,9 +285,10 @@ |
9 | struct Mode mode; /**< This channels mode */ | |
10 | unsigned int marker; /**< Channel marker */ | |
11 | char topic[TOPICLEN + 1]; /**< Channels topic */ | |
12 | - char topic_nick[NICKLEN + 1]; /**< Nick of the person who set | |
13 | + char topic_who[ACCOUNTLEN > NICKLEN ? ACCOUNTLEN+1 : NICKLEN+1]; /**< Nick or account of the person who set | |
14 | * The topic | |
15 | */ | |
16 | + int topic_who_is_account; /**< 0 when topic_who is nick, 1 when an account */ | |
17 | char chname[1]; /**< Dynamically allocated string of the | |
18 | * channel name | |
19 | */ | |
65e36fcf | 20 | diff -r 98e2da930476 ircd/m_burst.c |
21 | --- a/ircd/m_burst.c Tue Mar 23 14:38:30 2010 +0100 | |
22 | +++ b/ircd/m_burst.c Tue Mar 23 14:39:07 2010 +0100 | |
ca79de15 | 23 | @@ -361,7 +361,8 @@ |
715c825d CP |
24 | /* clear topic set by netrider (if set) */ |
25 | if (*chptr->topic) { | |
26 | *chptr->topic = '\0'; | |
27 | - *chptr->topic_nick = '\0'; | |
28 | + *chptr->topic_who = '\0'; | |
29 | + chptr->topic_who_is_account = 0; | |
30 | chptr->topic_time = 0; | |
31 | sendcmdto_channel_butserv_butone(&his, CMD_TOPIC, chptr, NULL, 0, | |
32 | "%H :%s", chptr, chptr->topic); | |
65e36fcf | 33 | diff -r 98e2da930476 ircd/m_check.c |
34 | --- a/ircd/m_check.c Tue Mar 23 14:38:30 2010 +0100 | |
35 | +++ b/ircd/m_check.c Tue Mar 23 14:39:07 2010 +0100 | |
ca79de15 | 36 | @@ -378,7 +378,8 @@ |
37 | send_reply(sptr, SND_EXPLICIT | RPL_DATASTR, ": Topic:: %s", chptr->topic); | |
715c825d CP |
38 | |
39 | /* ..set by */ | |
ca79de15 | 40 | - send_reply(sptr, SND_EXPLICIT | RPL_DATASTR, ": Set by:: %s", chptr->topic_nick); |
41 | + send_reply(sptr, SND_EXPLICIT | RPL_DATASTR, ": Set by:: %s%s%s", | |
42 | + chptr->topic_who, chptr->topic_who_is_account ? "." : "", chptr->topic_who_is_account ? feature_str(FEAT_HIDDEN_HOST) : ""); | |
715c825d | 43 | |
65e36fcf | 44 | send_reply(sptr, SND_EXPLICIT | RPL_DATASTR, ": Set at:: %s [%Tu]", myctime(chptr->topic_time), chptr->topic_time); |
ca79de15 | 45 | } |
65e36fcf | 46 | diff -r 98e2da930476 ircd/m_join.c |
47 | --- a/ircd/m_join.c Tue Mar 23 14:38:30 2010 +0100 | |
48 | +++ b/ircd/m_join.c Tue Mar 23 14:39:07 2010 +0100 | |
88a737db | 49 | @@ -283,7 +283,10 @@ |
715c825d CP |
50 | |
51 | if (chptr->topic[0]) { | |
52 | send_reply(sptr, RPL_TOPIC, chptr->chname, chptr->topic); | |
53 | - send_reply(sptr, RPL_TOPICWHOTIME, chptr->chname, chptr->topic_nick, | |
54 | + send_reply(sptr, RPL_TOPICWHOTIME, chptr->chname, | |
715c825d | 55 | + chptr->topic_who, |
88a737db | 56 | + chptr->topic_who_is_account ? "." : "", |
57 | + chptr->topic_who_is_account ? feature_str(FEAT_HIDDEN_HOST) : "", | |
715c825d CP |
58 | chptr->topic_time); |
59 | } | |
60 | ||
65e36fcf | 61 | diff -r 98e2da930476 ircd/m_topic.c |
62 | --- a/ircd/m_topic.c Tue Mar 23 14:38:30 2010 +0100 | |
63 | +++ b/ircd/m_topic.c Tue Mar 23 14:39:07 2010 +0100 | |
715c825d CP |
64 | @@ -65,7 +65,10 @@ |
65 | newtopic=ircd_strncmp(chptr->topic,topic,TOPICLEN)!=0; | |
66 | /* setting a topic */ | |
67 | ircd_strncpy(chptr->topic, topic, TOPICLEN); | |
68 | - ircd_strncpy(chptr->topic_nick, cli_name(from), NICKLEN); | |
69 | + ircd_strncpy(chptr->topic_who, | |
70 | + IsAccount(from) ? cli_user(from)->account : cli_name(from), | |
71 | + IsAccount(from) ? ACCOUNTLEN : NICKLEN); | |
72 | + chptr->topic_who_is_account = IsAccount(from) ? 1 : 0; | |
73 | chptr->topic_time = ts ? ts : TStime(); | |
74 | /* Fixed in 2.10.11: Don't propagate local topics */ | |
75 | if (!IsLocalChannel(chptr->chname)) | |
ca79de15 | 76 | @@ -138,7 +141,10 @@ |
715c825d CP |
77 | else |
78 | { | |
79 | send_reply(sptr, RPL_TOPIC, chptr->chname, chptr->topic); | |
80 | - send_reply(sptr, RPL_TOPICWHOTIME, chptr->chname, chptr->topic_nick, | |
81 | + send_reply(sptr, RPL_TOPICWHOTIME, chptr->chname, | |
715c825d | 82 | + chptr->topic_who, |
88a737db | 83 | + chptr->topic_who_is_account ? "." : "", |
84 | + chptr->topic_who_is_account ? feature_str(FEAT_HIDDEN_HOST) : "", | |
715c825d CP |
85 | chptr->topic_time); |
86 | } | |
87 | } | |
65e36fcf | 88 | diff -r 98e2da930476 ircd/s_err.c |
89 | --- a/ircd/s_err.c Tue Mar 23 14:38:30 2010 +0100 | |
90 | +++ b/ircd/s_err.c Tue Mar 23 14:39:07 2010 +0100 | |
715c825d CP |
91 | @@ -698,7 +698,7 @@ |
92 | /* 332 */ | |
93 | { RPL_TOPIC, "%s :%s", "332" }, | |
94 | /* 333 */ | |
95 | - { RPL_TOPICWHOTIME, "%s %s %Tu", "333" }, | |
88a737db | 96 | + { RPL_TOPICWHOTIME, "%s %s%s%s %Tu", "333" }, |
715c825d CP |
97 | /* 334 */ |
98 | { RPL_LISTUSAGE, ":%s", "334" }, | |
99 | /* 335 */ |