19 #include "C4Version.h"
50 for (j = 0; (pPlayerInfo = pClientInfos->
GetPlayerInfo(j)); j++)
58 Icon = ::Game.C4S.Head.Icon;
60 GameMode = ::Game.C4S.Game.Mode;
63 Frame = ::Game.FrameCounter;
64 StartTime = ::Game.StartTime;
65 LeaguePerformance = ::Game.RoundResults.GetLeaguePerformance();
73 Statistics = ::Game.RoundResults.GetStatistics();
77 C4Network2Client *pLocalNetClient = ::Game.Clients.getLocal()->getNetClient();
79 for (i = 0; i < iAddrCnt; i++)
80 Addrs[i] = pLocalNetClient->
getAddr(i);
87 int iSortAddrCnt = iAddrCnt;
88 for (
int i = 0; i < iSortAddrCnt; i++)
89 if (Addrs[i].isIPNull())
92 for (
int j = i + 1; j < iAddrCnt; j++)
93 Addrs[j - 1] = Addrs[j];
94 Addrs[iAddrCnt - 1] = Addr;
173 delete pReference; pReference =
nullptr;
179 delete pReference; pReference = pNewReference;
190 const char *pData = getBufPtr<char>(rInBuf);
192 const char *pHeaderEnd = strstr(pData,
"\r\n\r\n");
198 RespondNotImplemented(addr,
"Method not implemented");
203 RespondReference(addr);
207 void C4Network2RefServer::RespondNotImplemented(
const C4NetIO::addr_t &addr,
const char *szMessage)
216 void C4Network2RefServer::RespondReference(
const C4NetIO::addr_t &addr)
223 "HTTP/1.1 200 Found\r\n"
224 "Content-Length: %lu\r\n"
225 "Content-Type: text/plain; charset=UTF-8\r\n"
226 "Server: " C4ENGINENAME
"/" C4VERSION
"\r\n"
228 static_cast<unsigned long>(PacketData.
getLength()));
241 return Query(
nullptr,
false);
289 return Query(
nullptr,
false);
307 for (
int i = 0; i < rRefCount; i++)
308 rpReferences[i] =
nullptr;
311 mkPtrAdaptNoNull<C4Network2Reference>(*rpReferences);
321 for (
int i = 0; i < rRefCount; i++)
C4Application Application
const char * LoadResStr(const char *id)
const int32_t C4ClientMaxAddr
bool SEqual2(const char *szStr1, const char *szStr2)
StdArrayDefaultAdapt< T, D > mkArrayAdaptDM(T(&array)[size], const D &rDefault)
StdArrayAdapt< T > mkArrayAdapt(T *pArray, int iSize)
StdArrayAdapt< T, M > mkArrayAdaptMap(T *pArray, int iSize, M &&map)
StdPtrAdapt< T > mkNamingPtrAdapt(T *&rpObj, const char *szNaming)
StdIntPackAdapt< T > mkIntPackAdapt(T &rVal)
StdParameterAdapt< T, P > mkParAdapt(T &&rObj, P &&rPar)
StdNamingCountAdapt< int_t > mkNamingCountAdapt(int_t &iCount, const char *szName)
StdNamingAdapt< T > mkNamingAdapt(T &&rValue, const char *szName)
StdStrBuf FormatString(const char *szFmt,...)
C4PlayerInfo * GetPlayerInfo(int32_t iIndex) const
ValidatedStdCopyStrBuf< C4InVal::VAL_Comment > Comment
int32_t UseAlternateServer
StdStrBuf GetGameGoalString() const
C4PlayerInfoList PlayerInfos
void SetError(const char *strnError)
bool Query(const StdBuf &Data, bool fBinary)
const C4NetIO::addr_t & getServerAddress() const
StdCopyStrBuf ResultString
bool Send(const C4NetIOPacket &rPacket) override
void SetAddr(C4NetIO::addr_t naddr)
const C4Network2Address & getAddr(int32_t i) const
int32_t getAddrCnt() const
C4NetpuncherID::value & getNetpuncherGameID(C4NetIO::HostAddress::AddressFamily family)
bool isJoinAllowed() const
StdStrBuf getNetpuncherAddr() const
bool isPassworded() const
bool isObservingAllowed() const
bool GetReferences(C4Network2Reference **&rpReferences, int32_t &rRefCount)
size_t UnpackPacket(const StdBuf &rInBuf, const C4NetIO::addr_t &addr) override
void SetReference(C4Network2Reference *pReference)
~C4Network2RefServer() override
void PackPacket(const C4NetIOPacket &rPacket, StdBuf &rOutBuf) override
C4GameParameters Parameters
bool isPasswordNeeded() const
int32_t getSortOrder() const
void CompileFunc(StdCompiler *pComp)
const C4GameVersion & getGameVersion() const
bool isOfficialServer() const
void SetSourceAddress(const C4NetIO::EndpointAddress &ip)
StdStrBuf getGameGoalString() const
bool isJoinAllowed() const
C4Network2Status getGameStatus() const
bool GetVersion(StdStrBuf *pVersion)
bool GetUpdateURL(StdStrBuf *pUpdateURL)
void SetLeaguePerformance(int32_t iNewPerf)
C4ClientPlayerInfos * GetIndexedInfo(int32_t iIndex) const
void Append(const void *pnData, size_t inSize)
void Value(const T &rStruct)
void setInput(const InT &In)
const char * getData() const
ValidatedStdCopyStrBuf< C4InVal::VAL_NameAllowEmpty > sEngineName
void Set(const char *szEngine=C4ENGINENAME, int32_t iVer1=C4XVER1, int32_t iVer2=C4XVER2)
void CopyValidated(const char *szFromVal)