|
|
|
@ -462,7 +462,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendError(NetworkErrorCode err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (NetworkClientSocket *new_cs : NetworkClientSocket::Iterate()) {
|
|
|
|
|
if (new_cs->status > STATUS_AUTHORIZED && new_cs != this) {
|
|
|
|
|
if (new_cs->status >= STATUS_AUTHORIZED && new_cs != this) {
|
|
|
|
|
/* Some errors we filter to a more general error. Clients don't have to know the real
|
|
|
|
|
* reason a joining failed. */
|
|
|
|
|
if (error == NETWORK_ERROR_NOT_AUTHORIZED || error == NETWORK_ERROR_NOT_EXPECTED || error == NETWORK_ERROR_WRONG_REVISION) {
|
|
|
|
@ -574,7 +574,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendWelcome()
|
|
|
|
|
|
|
|
|
|
/* Transmit info about all the active clients */
|
|
|
|
|
for (NetworkClientSocket *new_cs : NetworkClientSocket::Iterate()) {
|
|
|
|
|
if (new_cs != this && new_cs->status > STATUS_AUTHORIZED) {
|
|
|
|
|
if (new_cs != this && new_cs->status >= STATUS_AUTHORIZED) {
|
|
|
|
|
this->SendClientInfo(new_cs->GetInfo());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1138,7 +1138,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_MAP_OK(Packet *
|
|
|
|
|
this->last_frame_server = _frame_counter;
|
|
|
|
|
|
|
|
|
|
for (NetworkClientSocket *new_cs : NetworkClientSocket::Iterate()) {
|
|
|
|
|
if (new_cs->status > STATUS_AUTHORIZED) {
|
|
|
|
|
if (new_cs->status >= STATUS_AUTHORIZED) {
|
|
|
|
|
new_cs->SendClientInfo(this->GetInfo());
|
|
|
|
|
new_cs->SendJoin(this->client_id);
|
|
|
|
|
}
|
|
|
|
@ -1249,7 +1249,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_ERROR(Packet *p
|
|
|
|
|
NetworkTextMessage(NETWORK_ACTION_LEAVE, CC_DEFAULT, false, client_name, nullptr, strid);
|
|
|
|
|
|
|
|
|
|
for (NetworkClientSocket *new_cs : NetworkClientSocket::Iterate()) {
|
|
|
|
|
if (new_cs->status > STATUS_AUTHORIZED) {
|
|
|
|
|
if (new_cs->status >= STATUS_AUTHORIZED) {
|
|
|
|
|
new_cs->SendErrorQuit(this->client_id, errorno);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1302,7 +1302,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_QUIT(Packet *p)
|
|
|
|
|
NetworkTextMessage(NETWORK_ACTION_LEAVE, CC_DEFAULT, false, client_name, nullptr, STR_NETWORK_MESSAGE_CLIENT_LEAVING);
|
|
|
|
|
|
|
|
|
|
for (NetworkClientSocket *new_cs : NetworkClientSocket::Iterate()) {
|
|
|
|
|
if (new_cs->status > STATUS_AUTHORIZED && new_cs != this) {
|
|
|
|
|
if (new_cs->status >= STATUS_AUTHORIZED && new_cs != this) {
|
|
|
|
|
new_cs->SendQuit(this->client_id);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1711,7 +1711,9 @@ void NetworkUpdateClientInfo(ClientID client_id)
|
|
|
|
|
DEBUG(desync, 1, "client: date{%08x; %02x; %02x}; client: %02x; company: %02x", _date, _date_fract, _tick_skip_counter, client_id, (int)ci->client_playas);
|
|
|
|
|
|
|
|
|
|
for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) {
|
|
|
|
|
cs->SendClientInfo(ci);
|
|
|
|
|
if (cs->status >= ServerNetworkGameSocketHandler::STATUS_AUTHORIZED) {
|
|
|
|
|
cs->SendClientInfo(ci);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NetworkAdminClientUpdate(ci);
|
|
|
|
|