diff -rcN ircii-EPIC4pre2.501/KNOWNBUGS ircii-EPIC4pre2.502/KNOWNBUGS *** ircii-EPIC4pre2.501/KNOWNBUGS Fri Dec 3 11:07:06 1999 --- ircii-EPIC4pre2.502/KNOWNBUGS Fri Dec 3 12:42:45 1999 *************** *** 16,18 **** --- 16,19 ---- -- This might fix most of our reconnect woes. * Fix set_waiting_channels and clean up a lot of server connection messes * Add a bit to the server struct to keep /window server from reg'ing twice. + * Fix a few more bugs from 501, related to primary_server == -1 and stuff. diff -rcN ircii-EPIC4pre2.501/doc/SILLINESS ircii-EPIC4pre2.502/doc/SILLINESS *** ircii-EPIC4pre2.501/doc/SILLINESS Fri Dec 3 11:10:07 1999 --- ircii-EPIC4pre2.502/doc/SILLINESS Fri Dec 3 13:00:02 1999 *************** *** 10,12 **** --- 10,13 ---- epic4pre2.400 Indignation epic4pre2.500 Indigestion epic4pre2.501 Anguish + epic4pre2.502 Perterbed diff -rcN ircii-EPIC4pre2.501/source/irc.c ircii-EPIC4pre2.502/source/irc.c *** ircii-EPIC4pre2.501/source/irc.c Fri Dec 3 11:09:56 1999 --- ircii-EPIC4pre2.502/source/irc.c Fri Dec 3 12:59:52 1999 *************** *** 13,20 **** /* * irc_version is what $J returns, its the common-name for the version. */ ! const char irc_version[] = "EPIC4pre2.501"; ! const char useful_info[] = "epic4 pre2 501"; /* * internal_version is what $V returns, its the integer-id for the --- 13,20 ---- /* * irc_version is what $J returns, its the common-name for the version. */ ! const char irc_version[] = "EPIC4pre2.502"; ! const char useful_info[] = "epic4 pre2 502"; /* * internal_version is what $V returns, its the integer-id for the *************** *** 28,34 **** * reality, I have decided to start doing that with EPIC. These names * are intentionally and maliciously silly. Complaints will be ignored. */ ! const char ridiculous_version_name[] = "Anguish"; #define __need_putchar_x__ #include "status.h" --- 28,34 ---- * reality, I have decided to start doing that with EPIC. These names * are intentionally and maliciously silly. Complaints will be ignored. */ ! const char ridiculous_version_name[] = "Perterbed"; #define __need_putchar_x__ #include "status.h" diff -rcN ircii-EPIC4pre2.501/source/parse.c ircii-EPIC4pre2.502/source/parse.c *** ircii-EPIC4pre2.501/source/parse.c Fri Dec 3 11:04:19 1999 --- ircii-EPIC4pre2.502/source/parse.c Fri Dec 3 11:43:36 1999 *************** *** 1133,1141 **** if ((!(comm = *ArgList++)) || !from || !*ArgList) return; /* Serious protocol violation -- ByeBye */ - /* XXX Ugh. This is bogus. */ - server_registration_is_not_pending(from_server); - /* * I reformatted these in may '96 by using the output of /stats m * from a few busy servers. They are arranged so that the most --- 1133,1138 ---- diff -rcN ircii-EPIC4pre2.501/source/server.c ircii-EPIC4pre2.502/source/server.c *** ircii-EPIC4pre2.501/source/server.c Fri Dec 3 11:05:21 1999 --- ircii-EPIC4pre2.502/source/server.c Fri Dec 3 12:21:23 1999 *************** *** 452,458 **** while (fgets(buffer, BIG_BUFFER_SIZE, fp)) { chop(buffer, 1); - yell("Read [%s]", buffer); build_server_list(buffer); } fclose(fp); --- 452,457 ---- *************** *** 580,586 **** return; } ! if (is_server_connected(i)) { say("Can not delete server that is already open"); return; --- 579,585 ---- return; } ! if (is_server_open(i)) { say("Can not delete server that is already open"); return; *************** *** 714,719 **** --- 713,719 ---- get_connected(i, i); else get_connected(i + 1, i); + i++; /* NEVER DELETE THIS! */ break; } *************** *** 1032,1045 **** */ if (new_conn == 0) { ! /* ! * We need to close off the old connection now. We make ! * sure to set the "save_channels" hint, that way the channels ! * wont be trashcanned, and the windows wont be re-assigned ! * on us. This gives us a chance to do the right thing below. ! */ ! server_list[old_server].save_channels = 1; ! close_server(old_server, "changing servers"); /* * Situation #1: If we are /server'ing to a server --- 1032,1049 ---- */ if (new_conn == 0) { ! if (is_server_open(old_server)) ! { ! /* ! * We need to close off the old connection now. ! * We make sure to set the "save_channels" hint, ! * that way the channels wont be trashcanned, and ! * the windows wont be re-assigned on us. This ! * gives us a chance to do the right thing below. ! */ ! server_list[old_server].save_channels = 1; ! close_server(old_server, "changing servers"); ! } /* * Situation #1: If we are /server'ing to a server *************** *** 1107,1113 **** if (new != old && j == old) continue; if (connect_to_new_server(j, old, 0) == 0) ! return 0; } /* If we reach this point, we have failed. Time to punt */ --- 1111,1121 ---- if (new != old && j == old) continue; if (connect_to_new_server(j, old, 0) == 0) ! { ! if (old == primary_server) ! set_window_server(-1, j, 0); ! return j; ! } } /* If we reach this point, we have failed. Time to punt */ *************** *** 1167,1172 **** --- 1175,1181 ---- if (server_list[old].read == -1) return; /* Can't close server that isn't open */ + server_list[old].registration_pending = 0; clean_server_queues(old); if (waiting_out > waiting_in) /* XXX - hack! */ waiting_out = waiting_in = 0; *************** *** 1455,1466 **** (LocalHostName ? LocalHostName : hostname), username, (*realname ? realname : space)); change_server_nickname(ssn_index, nickname); - } - - /* Called whenever we recieve anything from the server. */ - void server_registration_is_not_pending (int servref) - { - server_list[servref].registration_pending = 0; } /* --- 1464,1469 ---- diff -rcN ircii-EPIC4pre2.501/source/window.c ircii-EPIC4pre2.502/source/window.c *** ircii-EPIC4pre2.501/source/window.c Fri Dec 3 10:55:36 1999 --- ircii-EPIC4pre2.502/source/window.c Fri Dec 3 12:25:54 1999 *************** *** 1904,1912 **** while (traverse_all_windows(&tmp)) { ! if (tmp->server == old_server) ! tmp->server = new_server; } window_check_servers(); } --- 1904,1920 ---- while (traverse_all_windows(&tmp)) { ! if (tmp->server != old_server) ! continue; ! ! tmp->server = new_server; ! if (tmp->current_channel) ! new_free(&tmp->current_channel); ! if (tmp->waiting_channel) ! new_free(&tmp->waiting_channel); } + if (old_server == primary_server) + primary_server = new_server; window_check_servers(); }