tmp = silc_client_chmode(tmp_int, channel_entry);
- if (tmp)
- snprintf(message, sizeof(message), "%s changed channel mode to +%s",
- client_entry->nickname, tmp);
- else
- snprintf(message, sizeof(message), "%s removed all channel modes",
- client_entry->nickname);
+ if (tmp) {
+ if (client_entry) {
+ snprintf(message, sizeof(message), "%s changed channel mode to +%s",
+ client_entry->nickname, tmp);
+ } else {
+ snprintf(message, sizeof(message),
+ "channel mode was changed to +%s (forced by router)",
+ tmp);
+ }
+ } else {
+ if (client_entry) {
+ snprintf(message, sizeof(message), "%s removed all channel modes",
+ client_entry->nickname);
+ } else {
+ snprintf(message, sizeof(message),
+ "Removed all channel modes (forced by router)");
+ }
+ }
+
if (app->screen->bottom_line->channel_mode)
silc_free(app->screen->bottom_line->channel_mode);
app->screen->bottom_line->channel_mode = tmp;
return;
case SILC_NOTIFY_TYPE_CHANNEL_CHANGE:
+ return;
break;
case SILC_NOTIFY_TYPE_KICKED:
}
}
- if (mode)
- client->ops->say(client, conn, "%s is %s", nickname,
- (mode & SILC_UMODE_SERVER_OPERATOR) ?
- "Server Operator" :
- (mode & SILC_UMODE_ROUTER_OPERATOR) ?
- "SILC Operator" : "[Unknown mode]");
+ if (mode) {
+ if ((mode & SILC_UMODE_SERVER_OPERATOR) ||
+ (mode & SILC_UMODE_ROUTER_OPERATOR))
+ client->ops->say(client, conn, "%s is %s", nickname,
+ (mode & SILC_UMODE_SERVER_OPERATOR) ?
+ "Server Operator" :
+ (mode & SILC_UMODE_ROUTER_OPERATOR) ?
+ "SILC Operator" : "[Unknown mode]");
+
+ if (mode & SILC_UMODE_GONE)
+ client->ops->say(client, conn, "%s is gone", nickname);
+ }
if (idle && nickname)
client->ops->say(client, conn, "%s has been idle %d %s",