diff -Nurd -x*.[Poa] -x*.orig -x *.rej -x*.bak -x*.pot -x*.deps -x Makefile -xlibintl.h -xFreeciv.h -xpo -xintl freeciv/server/civserver.c freeciv-mar9+nonobsbarb/server/civserver.c --- freeciv/server/civserver.c Sat Mar 4 16:14:59 2000 +++ freeciv-mar9+nonobsbarb/server/civserver.c Thu Mar 9 16:50:22 2000 @@ -551,6 +551,7 @@ static struct timer *time_since_last_send = NULL; char desc[4096], info[4096]; int i; + int num_nonbarbarians; if (reset_timer && time_since_last_send) { @@ -569,6 +570,12 @@ time_since_last_send = new_timer(TIMER_USER, TIMER_ACTIVE); } + for (num_nonbarbarians=0, i=0; iname)) || (pplayer=find_player_by_user(req->name)) ) { if(!pplayer->conn) { + if(is_barbarian(pplayer)) { + reject_new_player(_("Sorry, you can't observe a barbarian."), pconn); + freelog(LOG_NORMAL, _("No observation of barbarians - %s was rejected."), req->name); + close_connection(pconn); + return; + } + pplayer->conn=pconn; pplayer->is_connected=1; sz_strlcpy(pplayer->addr, pconn->addr);