diff -Nur -X/home/thue/freeciv-dev/freeciv/diff_ignore freeciv/server/civserver.c dipciv/server/civserver.c --- freeciv/server/civserver.c Thu Aug 10 20:06:55 2000 +++ dipciv/server/civserver.c Wed Aug 16 14:54:45 2000 @@ -1795,6 +1795,16 @@ send_conn_info_remove(&pconn->self, &game.est_connections); send_player_info(pplayer, 0); + /* Cancel meetings */ + players_iterate(other_player) { + if (find_treaty(pplayer, other_player)) { + struct packet_diplomacy_info packet; + packet.plrno0 = pplayer->player_no; + packet.plrno1 = other_player->player_no; + handle_diplomacy_cancel_meeting(pplayer, &packet); + } + } players_iterate_end; + if (game.is_new_game && !pplayer->is_connected /* eg multiple controllers */ && (server_state==PRE_GAME_STATE || server_state==SELECT_RACES_STATE)) { diff -Nur -X/home/thue/freeciv-dev/freeciv/diff_ignore freeciv/server/diplhand.c dipciv/server/diplhand.c --- freeciv/server/diplhand.c Mon Aug 14 17:33:45 2000 +++ dipciv/server/diplhand.c Wed Aug 16 14:57:43 2000 @@ -45,7 +45,7 @@ /************************************************************************** ... **************************************************************************/ -static struct Treaty *find_treaty(struct player *plr0, struct player *plr1) +struct Treaty *find_treaty(struct player *plr0, struct player *plr1) { struct genlist_iterator myiter; diff -Nur -X/home/thue/freeciv-dev/freeciv/diff_ignore freeciv/server/diplhand.h dipciv/server/diplhand.h --- freeciv/server/diplhand.h Sat Jun 12 09:42:00 1999 +++ dipciv/server/diplhand.h Wed Aug 16 14:57:52 2000 @@ -14,7 +14,7 @@ #define FC__DIPLHAND_H #include "packets.h" - +struct Treaty *find_treaty(struct player *plr0, struct player *plr1); void handle_diplomacy_cancel_meeting(struct player *pplayer, struct packet_diplomacy_info *packet); void handle_diplomacy_create_clause(struct player *pplayer,