The goal of the stuff contains here is how to have a 2.6b server show into the 2.55 and the 2.6 list, and assume the client redirection.
Hey all,
Here u can found info about how to modify the ET source code to have ->
*a server which accept all client type ( 2.55 and 2.6). 
*a server is shown by the both client type. 
*a server which redirect client which connect in the facade port to the normal step 
*WARNING
I give any warranty of all i said here causes no problems ( in the fact i havenāt any problems on mines tests servers))
I give it as it, originals authors of the differents code can not be accuse of any thing, i make that from my proper chief.
Im sure its better and simple implementation of the solution presented here.
*NOTICE
To found all changes i made, simply search for Facade into the code.
Using this code mean you have how to use and inject my files into.
Didnāt forget to add the news files ( _ Facade Named)in the visual solution or in the linux tools file configuration.
To ET_GPL_PATCH src_ET_LEGACY_PATCH.zip (93.7 KB)
I never try to compile it on linux, so i m sure its require some modifications in the file which replace win_main_facade and win_net_facade
To ET_LEGACY_PATCH src_ET_GPL_FACADE.zip (93.1 KB)
I have run and compile it with success on linux and on windows os, i just never achieve to compile it with an old libc under linux.
Note: i have make more cleaner code in this sdk, note facade port didnāt support ipv6 (because i m too lazy to make the code).
The facade port use the same protection system than the main port.
The facade file will just be add to the et_legacy_dedicated project.
I use their code which have one week old.
First Step A server which accept all client type.
How to?
Found in the code where the client version is test on server side, it s the easy part :
Search in code for multiclient type support
you ll found something about a a version test like the sv_client.c
here is the answer,
if ( version != PROTOCOL_VERSION_FACADE && version != PROTOCOL_VERSION )
Ok , at this point , all clients can connect BUT no magic, 2.6 client specifics commands will not work as it require some mod on client side.
Second Step a server is shown by the both client type
To be listed, its require 2 main things, the first send an hearbeat from the new port and answer to some requests like getstatus .
How to?
1srt : create a new socket for the facade port
Ok, i choice the easy way, i simply duplicate all server socket parts functions.
In the fact only functions which use socket specific , another way can be implement the socket handle in the fucntion argument ( better code)
All these functions are in net_chan_facade.c, win_main_facade, win_net_facade
2nd : Duplicate event fifo system
Now at this point , you have to duplicate event fifo system for the new socket because its require to answer at some request like a client connect or a getstaus from master server.
The main part of this code is in the common_facade.c file , some calls are implement into the
3rd : sending hearbeat and gamestatus on the facade part
At this point, we can send heardbeat
search for that in sv_main.c
NET_OutOfBandPrint_Facade( NS_SERVER, adr[i], "heartbeat %s
", hbname );
and send gamestatus at end map
SVC_GameCompleteStatus_Facade( adr[i] );
Thrid step : A server which redirect client which connect in the facade port to the normal step
Ok ,take a look at SV_ConnectionlessPacket_Facade in sv_main_facade.c, it s the function which decode packets message.
I have comment the rcon part , that mean no rcon on facade port for security reasons.
The fucntion which make the client redirect is the answer at a connect message, take look at SV_DirectConnect_Facade fucntion.
This fucntion just send a connect to the ānormalā port to the client, u can send cmd or popup if u want at this place.
Attached to this message 2 archive which contains et_gpl file and et:l file to apply this patch.
I hoping its can help some of you, have fun 
7Killer :flamethrower:
