Skip to content

Commit

Permalink
Fixed some more serversided stuff and cleanup clientside
Browse files Browse the repository at this point in the history
  • Loading branch information
xLuxy committed May 12, 2019
1 parent 9e6e366 commit f231d85
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 43 deletions.
74 changes: 41 additions & 33 deletions Client/mods/deathmatch/logic/lua/CLuaFunctionDefs.World.cpp
Expand Up @@ -1923,61 +1923,62 @@ int CLuaFunctionDefs::FetchRemote(lua_State* luaVM)
return 1;
}

// table getRemoteRequests([resource theResource = nil])
int CLuaFunctionDefs::GetRemoteRequests(lua_State* luaVM)
{
CScriptArgReader argStream(luaVM);
CResource* pResource = nullptr;
SString sResourceName;
CLuaMain* pLuaMain = nullptr;
int iIndex = 0;
if (argStream.NextIsUserData())
{
argStream.ReadUserData(pResource);
}
else if (argStream.NextIsString())
{
argStream.ReadString(sResourceName);
pResource = g_pClientGame->GetResourceManager()->GetResource(sResourceName.c_str());
}

argStream.ReadUserData(pResource, NULL);

// Grab virtual machine
if (pResource)
pLuaMain = pResource->GetVM();

lua_newtable(luaVM);
for (const auto& request : g_pClientGame->GetRemoteCalls()->GetCalls())
{
lua_pushnumber(luaVM, ++iIndex);
lua_pushuserdata(luaVM, request);
lua_settable(luaVM, -3);
if(!pLuaMain || request->GetVM() == pLuaMain)
{
lua_pushnumber(luaVM, ++iIndex);
lua_pushuserdata(luaVM, request);
lua_settable(luaVM, -3);
}
}

return 1;
}

// table getRemoteRequestInfo(element theRequest)
int CLuaFunctionDefs::GetRemoteRequestInfo(lua_State* luaVM)
{
CScriptArgReader argStream(luaVM);
CLuaArguments info, requestedHeaders;
CRemoteCall* pRemoteCall = nullptr;
CResource* pThisResource = g_pClientGame->GetResourceManager()->GetResourceFromLuaState(luaVM);


argStream.ReadUserData(pRemoteCall);

if (!argStream.HasErrors())
{
CResource* pResource = pRemoteCall->GetVM()->GetResource();

if (pResource != pThisResource)
{
lua_pushboolean(luaVM, false);
return 1;
}

bool bExtendedInfo = (pResource == pThisResource);

info.PushString("type");
info.PushString((pRemoteCall->IsFetch() ? "fetch" : "call"));

// TODO: remove query_string from url when bExtendedInfo isn't set
info.PushString("url");
info.PushString(pRemoteCall->GetURL().c_str());

info.PushString("queue");
info.PushString(pRemoteCall->GetQueueName().c_str());

info.PushString("resource");

if (pResource)
info.PushResource(pResource);
else
Expand All @@ -1986,13 +1987,29 @@ int CLuaFunctionDefs::GetRemoteRequestInfo(lua_State* luaVM)
info.PushString("start");
info.PushNumber(pRemoteCall->GetStartTime());

info.PushString("postData");
info.PushString(pRemoteCall->GetOptions().strPostData.c_str());
if (bExtendedInfo)
{
info.PushString("postData");
info.PushString(pRemoteCall->GetOptions().strPostData.c_str());

// requested headers
info.PushString("headers");

for (auto const& header : pRemoteCall->GetOptions().requestHeaders)
{
requestedHeaders.PushString(header.first.c_str());
requestedHeaders.PushString(header.second.c_str());
}

info.PushTable(&requestedHeaders);
}

info.PushString("method");
info.PushString((pRemoteCall->GetOptions().strRequestMethod.length() >= 1 ? pRemoteCall->GetOptions().strRequestMethod.ToUpper().c_str() : "POST"));

info.PushString("connectionAttempts");
info.PushNumber(pRemoteCall->GetOptions().uiConnectionAttempts);

info.PushString("connectionTimeout");
info.PushNumber(pRemoteCall->GetOptions().uiConnectTimeoutMs);

Expand All @@ -2011,16 +2028,6 @@ int CLuaFunctionDefs::GetRemoteRequestInfo(lua_State* luaVM)
info.PushString("currentAttempt");
info.PushNumber(downloadInfo.uiAttemptNumber);

// requested headers
info.PushString("headers");

for (auto const& header : pRemoteCall->GetOptions().requestHeaders)
{
requestedHeaders.PushString(header.first.c_str());
requestedHeaders.PushString(header.second.c_str());
}

info.PushTable(&requestedHeaders);
info.PushAsTable(luaVM);
return 1;
}
Expand All @@ -2029,6 +2036,7 @@ int CLuaFunctionDefs::GetRemoteRequestInfo(lua_State* luaVM)
return 1;
}

// bool abortRemoteRequest(element theRequest)
int CLuaFunctionDefs::AbortRemoteRequest(lua_State* luaVM)
{
CScriptArgReader argStream(luaVM);
Expand Down
15 changes: 5 additions & 10 deletions Server/mods/deathmatch/logic/lua/CLuaFunctionDefs.Server.cpp
Expand Up @@ -728,15 +728,10 @@ int CLuaFunctionDefs::GetRemoteRequests(lua_State* luaVM)
CLuaMain* pLuaMain = nullptr;
int iIndex = 0;

if(argStream.NextIsUserData())
{
argStream.ReadUserData(pResource, NULL);
argStream.ReadUserData(pResource, NULL);

if (pResource)
{
pLuaMain = pResource->GetVirtualMachine();
}
}
if (pResource)
pLuaMain = pResource->GetVirtualMachine();

if(!argStream.HasErrors())
{
Expand Down Expand Up @@ -819,6 +814,8 @@ int CLuaFunctionDefs::GetRemoteRequestInfo(lua_State* luaVM)
requestedHeaders.PushString(header.first.c_str());
requestedHeaders.PushString(header.second.c_str());
}

info.PushTable(&requestedHeaders);
}

info.PushString("method");
Expand All @@ -845,9 +842,7 @@ int CLuaFunctionDefs::GetRemoteRequestInfo(lua_State* luaVM)
info.PushString("currentAttempt");
info.PushNumber(downloadInfo.uiAttemptNumber);

info.PushTable(&requestedHeaders);
info.PushAsTable(luaVM);

return 1;
}

Expand Down

0 comments on commit f231d85

Please sign in to comment.