void got_initial_version_28 (char **ArgList) { char *server, *sversion, *user_modes, *channel_modes; server = ArgList[0]; sversion = ArgList[1]; user_modes = ArgList[2]; channel_modes = ArgList[3]; if (sversion) { if (!strncmp(sversion, "2.8", 3)) { if (strstr(sversion, "mu") || strstr(sversion, "me")) set_server_version(from_server, Server_u2_8); else if (strstr(sversion, "hybrid-6")) set_server_version(from_server, Server2_8hybrid6); else if (strstr(sversion, "hybrid")) set_server_version(from_server, Server2_8hybrid); else if (strstr(sversion, "comstud")) set_server_version(from_server, Server2_8comstud); else if (strstr(channel_modes, "che")) set_server_version(from_server, Server2_8ts4); else set_server_version(from_server, Server2_8); } else if (!strncmp(sversion, "2.9", 3)) set_server_version(from_server, Server2_9); else if (!strncmp(sversion, "2.10", 4)) set_server_version(from_server, Server2_10); else if (!strncmp(sversion, "u2.9", 4)) set_server_version(from_server, Server_u2_9); else if (!strncmp(sversion, "u2.10", 4)) set_server_version(from_server, Server_u2_10); else if (!strncmp(sversion, "u3.0", 4)) set_server_version(from_server, Server_u3_0); else set_server_version(from_server, Server2_8); } else set_server_version(from_server, Server2_8); set_server_version_string(from_server, sversion ? sversion : "2.8"); set_server_itsname(from_server, server); reconnect_all_channels(from_server); reset_display_target(); reinstate_user_modes(); if (use_nat_address == 1) userhostbase(get_server_nickname(from_server), get_nat_address, 1, "%s", get_server_nickname(from_server)); update_all_status(current_window, NULL, 0); do_hook(CONNECT_LIST, "%s %d %s", get_server_name(from_server), get_server_port(from_server), get_server_itsname(from_server)); }
/* * got_initial_version_28: this is called when ircii gets the serial * number 004 reply. We do this becuase the 004 numeric gives us the * server name and version in an easy to use fashion, and doesnt * rely on the syntax or construction of the 002 numeric. * * Hacked as neccesary by jfn, May 1995 */ void got_initial_version_28 (const char *server, const char *version, const char *umodes) { /* Worthless 004 reply. Hope for the best! */ if (!server || !version || !umodes) { set_server_version(from_server, Server2_8); set_server_version_string(from_server, "<none provided>"); set_server_itsname(from_server, get_server_name(from_server)); } else { if (!strncmp(version, "2.8", 3)) { if (strstr(version, "mu") || strstr(version, "me")) set_server_version(from_server, Server_u2_8); else set_server_version(from_server, Server2_8); } else if (!strncmp(version, "2.9", 3)) set_server_version(from_server, Server2_9); else if (!strncmp(version, "2.10", 4)) set_server_version(from_server, Server2_10); else if (!strncmp(version, "u2.9", 4)) set_server_version(from_server, Server_u2_9); else if (!strncmp(version, "u2.10", 4)) set_server_version(from_server, Server_u2_10); else if (!strncmp(version, "u3.0", 4)) set_server_version(from_server, Server_u3_0); else set_server_version(from_server, Server2_8); set_server_version_string(from_server, version); set_server_itsname(from_server, server); set_possible_umodes(from_server, umodes); } reconnect_all_channels(); server_did_rejoin_channels(from_server); message_from(NULL, LOG_CRAP); reinstate_user_modes(); if (never_connected) { never_connected = 0; permit_status_update(1); if (!ircrc_loaded) load_ircrc(); if (default_channel) { e_channel("JOIN", default_channel, empty_string); new_free(&default_channel); } } else if (get_server_away(from_server)) set_server_away(from_server, get_server_away(from_server)); update_all_status(); do_hook(CONNECT_LIST, "%s %d %s", get_server_name(from_server), get_server_port(from_server), get_server_itsname(from_server)); window_check_channels(); }