diff --git a/degesch.c b/degesch.c index 58b68a4..ba7d029 100644 --- a/degesch.c +++ b/degesch.c @@ -1003,13 +1003,6 @@ struct server // TODO: an output queue to prevent excess floods (this will be needed // especially for away status polling) - // XXX: there can be buffers for non-existent users - // TODO: initialize key_strxfrm according to server properties; - // note that collisions may arise on reconnecting - // TODO: when disconnected, get rid of all users everywhere; - // maybe also broadcast all buffers about the disconnection event - // TODO: when getting connected again, rejoin all current channels - struct buffer *buffer; ///< The buffer for this server struct str_map irc_users; ///< IRC user data @@ -3905,6 +3898,9 @@ irc_process_numeric (struct server *s, case IRC_RPL_ISUPPORT: // TODO: parse this, mainly PREFIX; see // http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt + + // TODO: initialize key_strxfrm according to server properties; + // note that collisions may arise on reconnecting break; case IRC_RPL_NAMREPLY: // TODO: find the channel and if found, push nicks to names_buf @@ -3914,7 +3910,7 @@ irc_process_numeric (struct server *s, // however take care to combine channel user modes break; case IRC_ERR_NICKNAMEINUSE: - // TODO: if not connected yet (irc_ready), use a different nick; + // TODO: if (state == IRC_CONNECTED), use a different nick; // either use a number suffix, or accept commas in "nickname" config break; } @@ -3955,6 +3951,8 @@ irc_process_message (const struct irc_message *msg, const char *autojoin = get_config_string (s->ctx, "server.autojoin"); if (autojoin) irc_send (s, "JOIN :%s", autojoin); + + // TODO: rejoin all current channels (mark those we've left manually?) } struct irc_handler key = { .name = msg->command };