/* modules/m_tb.c
- *
+ *
* Copyright (C) 2003 Lee Hardy <lee@leeh.co.uk>
* Copyright (C) 2003-2005 ircd-ratbox development team
*
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
- *
- * $Id: m_tb.c 1349 2006-05-17 17:37:46Z jilles $
*/
#include "stdinc.h"
#include "hash.h"
#include "s_serv.h"
-static int ms_tb(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
-static int ms_etb(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
+static int ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
+static int ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
+static const char tb_desc[] =
+ "Provides TS6 TB and ETB commands for topic bursting between servers";
struct Message tb_msgtab = {
- "TB", 0, 0, 0, MFLG_SLOW,
+ "TB", 0, 0, 0, 0,
{mg_unreg, mg_ignore, mg_ignore, {ms_tb, 4}, mg_ignore, mg_ignore}
};
struct Message etb_msgtab = {
- "ETB", 0, 0, 0, MFLG_SLOW,
+ "ETB", 0, 0, 0, 0,
{mg_unreg, mg_ignore, {ms_etb, 5}, {ms_etb, 5}, mg_ignore, mg_ignore}
};
mapi_clist_av1 tb_clist[] = { &tb_msgtab, &etb_msgtab, NULL };
-DECLARE_MODULE_AV1(tb, NULL, NULL, tb_clist, NULL, NULL, "$Revision: 1349 $");
+DECLARE_MODULE_AV2(tb, NULL, NULL, tb_clist, NULL, NULL, NULL, NULL, tb_desc);
/* m_tb()
*
* parv[4] - topic
*/
static int
-ms_tb(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
+ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
{
struct Channel *chptr;
const char *newtopic;
* parv[5] - topic
*/
static int
-ms_etb(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
+ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
{
struct Channel *chptr;
const char *newtopic;
* but do propagate the new topicts/topicwho to servers.
*/
if(textchange)
- sendto_channel_local(ALL_MEMBERS, chptr, ":%s TOPIC %s :%s",
- fakesource_p->name, chptr->chname,
- newtopic);
+ {
+ if (IsPerson(fakesource_p))
+ sendto_channel_local(ALL_MEMBERS, chptr,
+ ":%s!%s@%s TOPIC %s :%s",
+ fakesource_p->name,
+ fakesource_p->username,
+ fakesource_p->host,
+ chptr->chname,
+ newtopic);
+ else
+ sendto_channel_local(ALL_MEMBERS, chptr,
+ ":%s TOPIC %s :%s",
+ fakesource_p->name,
+ chptr->chname, newtopic);
+ }
/* Propagate channelts as given, because an older channelts
* forces any change.
*/