-static void event_join(SILC_SERVER_REC *server, va_list va)
-{
- SILC_CHANNEL_REC *chanrec;
- SILC_NICK_REC *nickrec;
- SilcClientEntry client;
- SilcChannelEntry channel;
-
- client = va_arg(va, SilcClientEntry);
- channel = va_arg(va, SilcChannelEntry);
-
- if (client == server->conn->local_entry) {
- /* You joined to channel */
- chanrec = silc_channel_find(server, channel->channel_name);
- if (chanrec != NULL && !chanrec->joined)
- chanrec->entry = channel;
- } else {
- chanrec = silc_channel_find_entry(server, channel);
- if (chanrec != NULL) {
- SilcChannelUser user;
-
- silc_list_start(chanrec->entry->clients);
- while ((user = silc_list_get(chanrec->entry->clients)) != NULL)
- if (user->client == client) {
- nickrec = silc_nicklist_insert(chanrec, user, TRUE);
- break;
- }
- }
- }
-
- signal_emit("message join", 4, server, channel->channel_name,
- client->nickname,
- 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;
- SILC_NICK_REC *nickrec;
- SilcClientEntry client;
- SilcChannelEntry channel;
-
- client = va_arg(va, SilcClientEntry);
- channel = va_arg(va, SilcChannelEntry);
-
- signal_emit("message part", 5, server, channel->channel_name,
- client->nickname, client->username ? client->username : "",
- client->nickname);
-
- chanrec = silc_channel_find_entry(server, channel);
- if (chanrec != NULL) {
- nickrec = silc_nicklist_find(chanrec, client);
- if (nickrec != NULL)
- nicklist_remove(CHANNEL(chanrec), NICK(nickrec));
- }
-}
-
-/*
- * "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 ? client->username : "",
- message ? message : "");
-
- nicks = nicklist_get_same_unique(SERVER(server), client);
- for (tmp = nicks; tmp != NULL; tmp = tmp->next->next) {
- CHANNEL_REC *channel = tmp->data;
- NICK_REC *nickrec = tmp->next->data;
-
- nicklist_remove(channel, nickrec);
- }
-}
-
-/*
- * "event topic". Changed topic.
- */
-
-static void event_topic(SILC_SERVER_REC *server, va_list va)
-{
- SILC_CHANNEL_REC *chanrec;
- SilcClientEntry client;
- SilcChannelEntry channel;
- char *topic;
-
- client = va_arg(va, SilcClientEntry);
- topic = va_arg(va, char *);
- channel = va_arg(va, SilcChannelEntry);
-
- chanrec = silc_channel_find_entry(server, channel);
- if (chanrec != NULL) {
- g_free_not_null(chanrec->topic);
- chanrec->topic = *topic == '\0' ? NULL : g_strdup(topic);
- signal_emit("channel topic changed", 1, chanrec);
- }
-
- signal_emit("message topic", 5, server, channel->channel_name,
- 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;
- SilcChannelEntry channel;
-
- client = va_arg(va, SilcClientEntry);
- channel = va_arg(va, SilcChannelEntry);
-
- signal_emit("message invite", 4, server, channel->channel_name,
- client->nickname, client->username);
-}
-
-/*
- * "event nick". Changed nickname.
- */
-
-static void event_nick(SILC_SERVER_REC *server, va_list va)
-{
- SilcClientEntry oldclient, newclient;
-
- oldclient = va_arg(va, SilcClientEntry);
- newclient = va_arg(va, SilcClientEntry);
-
- nicklist_rename_unique(SERVER(server),
- oldclient, oldclient->nickname,
- newclient, 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;
- SilcClientEntry client;
- SilcChannelEntry channel;
- char *mode;
- uint32 modei;
-
- client = va_arg(va, SilcClientEntry);
- modei = va_arg(va, uint32);
- (void)va_arg(va, char *);
- (void)va_arg(va, char *);
- channel = va_arg(va, SilcChannelEntry);
-
- mode = silc_client_chmode(modei,
- channel->channel_key->cipher->name,
- channel->hmac->hmac->name);
-
- chanrec = silc_channel_find_entry(server, channel);
- if (chanrec != NULL) {
- g_free_not_null(chanrec->mode);
- chanrec->mode = g_strdup(mode == NULL ? "" : mode);
- signal_emit("channel mode changed", 1, chanrec);
- }
-
- printformat_module("fe-common/silc", server, channel->channel_name,
- MSGLEVEL_MODES, SILCTXT_CHANNEL_CMODE,
- channel->channel_name, mode ? mode : "removed all",
- client->nickname);
-
- 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;
- SilcClientEntry client, destclient;
- SilcChannelEntry channel;
- int mode;
- char *modestr;
-
- client = va_arg(va, SilcClientEntry);
- mode = va_arg(va, uint32);
- destclient = va_arg(va, SilcClientEntry);
- channel = va_arg(va, SilcChannelEntry);
-
- modestr = silc_client_chumode(mode);
- chanrec = silc_channel_find_entry(server, channel);
- if (chanrec != NULL) {
- SILC_NICK_REC *nick;
-
- if (destclient == server->conn->local_entry) {
- chanrec->chanop =
- (mode & SILC_CHANNEL_UMODE_CHANOP) != 0;
- }
-
- nick = silc_nicklist_find(chanrec, destclient);
- if (nick != NULL) {
- nick->op = (mode & SILC_CHANNEL_UMODE_CHANOP) != 0;
- signal_emit("nick mode changed", 2, chanrec, nick);
- }
- }
-
- printformat_module("fe-common/silc", server, channel->channel_name,
- MSGLEVEL_MODES, SILCTXT_CHANNEL_CUMODE,
- channel->channel_name, destclient->nickname,
- modestr ? modestr : "removed all",
- client->nickname);
-
- if (mode & SILC_CHANNEL_UMODE_CHANFO)
- printformat_module("fe-common/silc",
- server, channel->channel_name, MSGLEVEL_CRAP,
- SILCTXT_CHANNEL_FOUNDER,
- channel->channel_name, destclient->nickname);
-
- g_free(modestr);
-}
-
-/*
- * "event motd". Received MOTD.
- */
-
-static void event_motd(SILC_SERVER_REC *server, va_list va)
-{
- char *text = va_arg(va, char *);
-
- if (!settings_get_bool("skip_motd"))
- 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)
-{
-
-}
-