server->channels_join = (void *) silc_channels_join;
}
+/*
+ * "event join". Joined to a channel.
+ */
+
SILC_CHANNEL_REC *silc_channel_find_entry(SILC_SERVER_REC *server,
SilcChannelEntry entry)
{
channel = va_arg(va, SilcChannelEntry);
if (client == server->conn->local_entry) {
- /* you joined to channel */
+ /* You joined to channel */
chanrec = silc_channel_find(server, channel->channel_name);
if (chanrec != NULL && !chanrec->joined)
chanrec->entry = channel;
client->username == NULL ? "" : client->username);
}
+/*
+ * "event leave". Left a channel.
+ */
+
static void event_leave(SILC_SERVER_REC *server, va_list va)
{
SILC_CHANNEL_REC *chanrec;
channel = va_arg(va, SilcChannelEntry);
signal_emit("message part", 5, server, channel->channel_name,
- client->nickname,
- client->username == NULL ? "" : client->username, "");
+ client->nickname, client->username ? client->username : "",
+ client->nickname);
chanrec = silc_channel_find_entry(server, channel);
if (chanrec != NULL) {
}
}
+/*
+ * "event signoff". Left the network.
+ */
+
static void event_signoff(SILC_SERVER_REC *server, va_list va)
{
SilcClientEntry client;
GSList *nicks, *tmp;
+ char *message;
client = va_arg(va, SilcClientEntry);
+ message = va_arg(va, char *);
signal_emit("message quit", 4, server, client->nickname,
- client->username == NULL ? "" : client->username, "");
+ client->username ? client->username : "",
+ message ? message : "");
nicks = nicklist_get_same_unique(SERVER(server), client);
for (tmp = nicks; tmp != NULL; tmp = tmp->next->next) {
}
}
+/*
+ * "event topic". Changed topic.
+ */
+
static void event_topic(SILC_SERVER_REC *server, va_list va)
{
SILC_CHANNEL_REC *chanrec;
topic, client->nickname, client->username);
}
+/*
+ * "event invite". Invited or modified invite list.
+ */
+
static void event_invite(SILC_SERVER_REC *server, va_list va)
{
SilcClientEntry client;
client->nickname, client->username);
}
+/*
+ * "event nick". Changed nickname.
+ */
+
static void event_nick(SILC_SERVER_REC *server, va_list va)
{
SilcClientEntry oldclient, newclient;
oldclient, oldclient->nickname,
newclient, newclient->nickname);
- signal_emit("message nick", 4, server, newclient->nickname,
+ signal_emit("message nick", 4, server, newclient->nickname,
oldclient->nickname, newclient->username);
}
+/*
+ * "event cmode". Changed channel mode.
+ */
+
static void event_cmode(SILC_SERVER_REC *server, va_list va)
{
SILC_CHANNEL_REC *chanrec;
g_free(mode);
}
+/*
+ * "event cumode". Changed user's mode on channel.
+ */
+
static void event_cumode(SILC_SERVER_REC *server, va_list va)
{
SILC_CHANNEL_REC *chanrec;
g_free(modestr);
}
+/*
+ * "event motd". Received MOTD.
+ */
+
static void event_motd(SILC_SERVER_REC *server, va_list va)
{
char *text = va_arg(va, char *);
printtext_multiline(server, NULL, MSGLEVEL_CRAP, "%s", text);
}
+/*
+ * "event channel_change". Channel ID has changed.
+ */
+
static void event_channel_change(SILC_SERVER_REC *server, va_list va)
{
}
+/*
+ * "event server_signoff". Server has quit the network.
+ */
+
static void event_server_signoff(SILC_SERVER_REC *server, va_list va)
{
}
+/*
+ * "event kick". Someone was kicked from channel.
+ */
+
static void event_kick(SILC_SERVER_REC *server, va_list va)
{
}
+/*
+ * "event kill". Someone was killed from the network.
+ */
+
static void event_kill(SILC_SERVER_REC *server, va_list va)
{
}
+/*
+ * "event ban". Someone was banned or ban list was modified.
+ */
+
static void event_ban(SILC_SERVER_REC *server, va_list va)
{
cmd_return_error(CMDERR_CHAN_NOT_FOUND);
signal_emit("message part", 5, server, chanrec->name,
- server->nick, "", "");
+ server->nick, server->conn->local_entry->username, "");
silc_command_exec(server, "LEAVE", chanrec->name);
signal_stop();