





Ваш любимый шутер от Valve?
|
|
| eisgottin |
Сообщение #1
|
| Новобранец
Репутация: 0 Группа: Пользователи Сообщений: 16 Регистрация: 21.03.2019 Предупреждения: ![]() |
Доброго времени суток!
Последняя версия эмулятора вызывает краши (CS:S OB) backtrace регистры Крашит здесь Последние 5 записей в логах (сервер упал через 8 секунд после последней записи в логах, sv_logflush включен) Диапазон адресов библиотек во время краша Дизассемблерная часть кода в месте краша UNIX SIGNAL Program terminated with signal 7, Bus error. Dereference _________ И да, ещё как-то репортили на форуме, что с последней версией крашит, если есть расширение connect - действительно крашило даже с UseConectSM=true. Я просто тогда снесла расширение. |
| bir3yk |
Сообщение #2
|
Легенда
Репутация: 284 Группа: Администраторы Сообщений: 2063 Регистрация: 7.11.2012 Предупреждения: ![]() |
eisgottin,
если по быстрому, это не ошибка эмулятора :) краш происходит в #0 0x00f78d1c in CBaseServer::ProcessConnectionlessPacket(netpacket_s*) () from /home/games/cstrike/classic/bin/engine_srv.so где то в этом месте(код староват, но может он и не менялся для css): bool CBaseServer::ProcessConnectionlessPacket(netpacket_t * packet)
{
bf_read msg = packet->message; // handy shortcut
char c = msg.ReadChar();
if ( c== 0 )
{
return false;
}
switch ( c )
{
case A2S_GETCHALLENGE :
{
int clientChallenge = msg.ReadLong();
ReplyChallenge( packet->from, clientChallenge );
}
break;
case A2S_SERVERQUERY_GETCHALLENGE:
ReplyServerChallenge( packet->from );
break;
case C2S_CONNECT :
{
char cdkey[STEAM_KEYSIZE];
char name[256];
char password[256];
char productVersion[32];
int protocol = msg.ReadLong();
int authProtocol = msg.ReadLong();
int challengeNr = msg.ReadLong();
int clientChallenge = msg.ReadLong();
// pull the challenge number check early before we do any expensive processing on the connect
if ( !CheckChallengeNr( packet->from, challengeNr ) )
{
RejectConnection( packet->from, clientChallenge, \\\\"#GameUI_ServerRejectBadChallenge\\\\" );
break;
}
// rate limit the connections
if ( !s_connectRateChecker.CheckIP( packet->from ) )
return false;
msg.ReadString( name, sizeof(name) );
msg.ReadString( password, sizeof(password) );
msg.ReadString( productVersion, sizeof(productVersion) );
// bool bClientPlugins = ( msg.ReadByte() > 0 );
// There's a magic number we use in the steam.inf in P4 that we don't update.
// We can use this to detect if they are running out of P4, and if so, don't do any version
// checking.
const char *pszVersionInP4 = \\\\"2000\\\\";
const char *pszVersionString = GetSteamInfIDVersionInfo().szVersionString;
if ( V_strcmp( pszVersionString, pszVersionInP4 ) && V_strcmp( productVersion, pszVersionInP4 ) )
{
int nVersionCheck = Q_strncmp( pszVersionString, productVersion, V_strlen( pszVersionString ) );
if ( nVersionCheck < 0 )
{
RejectConnection( packet->from, clientChallenge, \\\\"#GameUI_ServerRejectOldVersion\\\\" );
break;
}
if ( nVersionCheck > 0 )
{
RejectConnection( packet->from, clientChallenge, \\\\"#GameUI_ServerRejectNewVersion\\\\" );
break;
}
}
// if ( Steam3Server().BSecure() && bClientPlugins )
// {
// RejectConnection( packet->from, \\\\"Cannot connect to a secure server while plug-ins are\nloaded on your client\n\\\\" );
// break;
// }
if ( authProtocol == PROTOCOL_STEAM )
{
int keyLen = msg.ReadShort();
if ( keyLen < 0 || keyLen > sizeof(cdkey) )
{
RejectConnection( packet->from, clientChallenge, \\\\"#GameUI_ServerRejectBadSteamKey\\\\" );
break;
}
msg.ReadBytes( cdkey, keyLen );
ConnectClient( packet->from, protocol, challengeNr, clientChallenge, authProtocol, name, password, cdkey, keyLen ); // cd key is actually a raw encrypted key
}
else
{
msg.ReadString( cdkey, sizeof(cdkey) );
ConnectClient( packet->from, protocol, challengeNr, clientChallenge, authProtocol, name, password, cdkey, strlen(cdkey) );
}
}
break;
default:
{
// rate limit the more expensive server query packets
if ( !s_queryRateChecker.CheckIP( packet->from ) )
return false;
// We don't understand it, let the master server updater at it.
if ( Steam3Server().SteamGameServer() && Steam3Server().IsMasterServerUpdaterSharingGameSocket() )
{
Steam3Server().SteamGameServer()->HandleIncomingPacket(
packet->message.GetBasePointer(),
packet->message.TotalBytesAvailable(),
packet->from.GetIPHostByteOrder(),
packet->from.GetPort()
);
// This is where it will usually want to respond to something immediately by sending some
// packets, so check for that immediately.
ForwardPacketsFromMasterServerUpdater();
}
}
break;
}
return true;
}
возможно опять что то с плагинами, возможно вас спамят пакетами. |
|
|
| Сейчас: 30 октября 2025 08:20 |