Unreal Tournament
Menú
Gamersmafia es ahora un archivo de solo lectura.

Parche para servidores UT bajo Windows 2000

Según leo en TheAdminPage hay un nuevo parche para los servidores de UT que corran bajo Windows 2000 (necesario Service Pack 2).

El parche corrige el problema que causa que el ping aumente (¿alguien ha tenido alguna vez ping 20000 ? ).

Email (traducido) de Jack Porter, Programador de Epic Games

Hola,

Steve Sinclair de Digital Extremes ha encontrado la causa del ping que no para de aumentar en Windows 2000. Joe Graf de Perelith ha sido tan amable que lo ha parcheado para la versión 436 del engine y ha recompilado el IpDrv.dll.

http://unreal.epicgames.com/files/IpDrv-creepingping.zip

Necesita Windows 2000 con el Service Pack 2 instalado. Sólo los servidores necesitan el parche. Sólo funciona con la versión 436. Haz una copia de seguridad de tu IpDrv.dll antes por si acaso quieres volver al anterior.

Un saludo,
Jack


Aquí está la explicación de Steve Sinclair`s sobre el bug (sin traducir):

> The problem that causes UT servers on Win2k to become
> unusable after a short period of time is due to the newly added error code
> returned by recvfrom() immediately following sendto() to a connection that
> crashed/left the game without the server getting a disconnect message.
>
> The way the main datagram loop works in IPDrv, this return code causes an
> early out (despite messages still being buffered for the socket). Based on
> the client connection time-out this will create an enormous backlog of
> unprocessed messages.
>
> http://support.microsoft.com/default.aspx?scid=kb;en-us;Q263823
>
> I quickly implemented the fix thusly which has no ill-effects for Win9x, but
> required SP2 for support on Window 2000:
>
> TcpNetDriver.cpp:
>
> // sjs from winsock2 ---
> #define IOC_VENDOR 0x18000000
> #define _WSAIOW(x,y) (IOC_IN|(x)|(y))
> #define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12)
> // --- sjs
>
> At the end of TcpNetDriver::InitBase() before the //Success comment:
>
> #if __WINSOCK__ // sjs --- disable UDP connection reset behavior for Win2K
> DWORD bNewBehavior = FALSE;
> int ret = ioctlsocket( Socket, SIO_UDP_CONNRESET, &bNewBehavior );
> if( ret == SOCKET_ERROR )
> debugf(NAME_Init,TEXT("ioctlsocket failed to set
> SIO_UDP_CONNRESET"));
> else
> debugf(NAME_Init,TEXT("Socket option SIO_UDP_CONNRESET set to
> FALSE"));
> #endif // --- sjs
>



--
Jack Porter Programmer Epic Games

yoooo yo he sufrido ping 20.000 o más tonses habrá ke bajarse dixo parche… > (que sea lo que dios=pc=ulises quiera)

No, no hay que bajarselo , el parche lo tiene que actualizar el servidor.

ahm zorry

si… yo tambien, en canal 21 ¬_¬

Gracias Dharana por fin puedo arreglar mis  problemas de server del cyber

Tags
parche 169
patch 29
server 163
win2000 2