Bug #1562 » 0068-Accept-PACKET_SYNC_SERIAL-from-non-player-connection.patch
| server/srv_main.c | ||
|---|---|---|
| { | ||
|   struct player *pplayer; | ||
|   /* a NULL packet can be returned from receive_packet_goto_route() */ | ||
|   /* A NULL packet can be returned from receive_packet_goto_route() */ | ||
|   if (!packet) { | ||
|     return TRUE; | ||
|   } | ||
| ... | ... | |
|     return TRUE; | ||
|   } | ||
|   /* valid packets from established connections but non-players */ | ||
|   /* Valid packets from established connections but non-players */ | ||
|   if (type == PACKET_CHAT_MSG_REQ | ||
|       || type == PACKET_SINGLE_WANT_HACK_REQ | ||
|       || type == PACKET_NATION_SELECT_REQ | ||
| ... | ... | |
|       || type == PACKET_CONN_PONG | ||
|       || type == PACKET_CLIENT_HEARTBEAT | ||
|       || type == PACKET_SAVE_SCENARIO | ||
|       || type == PACKET_SYNC_SERIAL | ||
|       || is_client_edit_packet(type)) { | ||
|     /* Except for PACKET_EDIT_MODE (used to set edit mode), check | ||
| ... | ... | |
|       handle_observer_ready(pconn); | ||
|       return TRUE; | ||
|     } | ||
|     /* don't support these yet */ | ||
|     /* Don't support these yet */ | ||
|     log_error("Received packet %s(%d) from non-player connection %s.", | ||
|               packet_name(type), type, conn_description(pconn)); | ||
|     return TRUE; | ||
| ... | ... | |
|       && type != PACKET_NATION_SELECT_REQ | ||
|       && type != PACKET_PLAYER_READY | ||
|       && type != PACKET_VOTE_SUBMIT | ||
|       && type != PACKET_RULESET_SELECT | ||
|       && type != PACKET_SYNC_SERIAL) { | ||
|       && type != PACKET_RULESET_SELECT) { | ||
|     if (S_S_OVER == server_state()) { | ||
|       /* This can happen by accident, so we don't want to print | ||
|        * out lots of error messages. Ie, we use log_debug(). */ | ||
| ... | ... | |
|   } | ||
|   pplayer->current_conn = NULL; | ||
|   return TRUE; | ||
| } | ||