Skip to content

Commit e0557b3

Browse files
author
Dr.Abc
committed
remove raw libcurl use
1 parent 90edd8b commit e0557b3

10 files changed

+37
-1398
lines changed

ABCEnchance.vcxproj

-2
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,6 @@ $(FreeImageCheckRequirements)</Command>
246246
<ClCompile Include="src\Source\steamrichpresence.cpp" />
247247
<ClCompile Include="src\Source\Utility\client_steam_context.cpp" />
248248
<ClCompile Include="src\Source\Utility\config.cpp" />
249-
<ClCompile Include="src\Source\Utility\curl.cpp" />
250249
<ClCompile Include="src\Source\Utility\httpclient.cpp" />
251250
<ClCompile Include="src\Source\Utility\liblrc.cpp" />
252251
<ClCompile Include="src\Source\Utility\mymathlib.cpp" />
@@ -493,7 +492,6 @@ $(FreeImageCheckRequirements)</Command>
493492
<ClInclude Include="src\Header\Utility\client_steam_context.h" />
494493
<ClInclude Include="src\Header\Utility\config.h" />
495494
<ClInclude Include="src\Header\Utility\crypto.h" />
496-
<ClInclude Include="src\Header\Utility\curl.h" />
497495
<ClInclude Include="src\Header\Utility\httpclient.h" />
498496
<ClInclude Include="src\Header\Utility\liblrc.h" />
499497
<ClInclude Include="src\Header\Utility\mymathlib.h" />

ABCEnchance.vcxproj.filters

-6
Original file line numberDiff line numberDiff line change
@@ -638,9 +638,6 @@
638638
<ClCompile Include="VGUI2\GameUI\GameConsole.cpp">
639639
<Filter>vgui2</Filter>
640640
</ClCompile>
641-
<ClCompile Include="src\Source\Utility\curl.cpp">
642-
<Filter>Public\Source\LIb</Filter>
643-
</ClCompile>
644641
<ClCompile Include="src\Source\Utility\win32helper.cpp">
645642
<Filter>Public\Source\Utility</Filter>
646643
</ClCompile>
@@ -1423,9 +1420,6 @@
14231420
<ClInclude Include="vgui2\VGUI2ExtensionImport.h">
14241421
<Filter>vgui2</Filter>
14251422
</ClInclude>
1426-
<ClInclude Include="src\Header\Utility\curl.h">
1427-
<Filter>Public\Header\LIb</Filter>
1428-
</ClInclude>
14291423
<ClInclude Include="src\Header\Utility\win32helper.h">
14301424
<Filter>Public\Header\Utility</Filter>
14311425
</ClInclude>

src/Header/Utility/curl.h

-1,321
This file was deleted.

src/Header/Utility/httpclient.h

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include <string>
22
#include <vector>
3+
#include <cstddef>
34
#include <functional>
45

56
#include <IUtilHTTPClient.h>
@@ -35,6 +36,7 @@ class CHttpCookieJar {
3536
typedef struct httpContext_s {
3637
std::string url;
3738
UtilHTTPMethod method;
39+
bool async;
3840
CHttpCookieJar* cookie;
3941
} httpContext_t;
4042

@@ -68,12 +70,12 @@ class CHttpClientItem : IUtilHTTPCallbacks {
6870
return this;
6971
}
7072

71-
CHttpClientItem* Create(bool async);
72-
7373
CHttpClientItem* Start();
7474
IUtilHTTPResponse* StartSync();
7575

7676
CHttpClientItem* SetFeild(const char* key, const char* var);
77+
CHttpClientItem* SetPostBody(const char* contentType, const char* payload, size_t payloadSize);
78+
CHttpClientItem* SetCookieJar(CHttpCookieJar* jar);
7779
HTTPCLIENT_STATE GetState() const;
7880
bool Interrupt();
7981
protected:
@@ -90,7 +92,7 @@ class CHttpClientItem : IUtilHTTPCallbacks {
9092

9193
CHttpCookieJar* m_pCookieJar = nullptr;
9294

93-
std::vector<byte> m_aryReciveData = {};
95+
std::vector<std::byte> m_aryReciveData = {};
9496

9597
bool m_bAsync = false;
9698
IUtilHTTPRequest* m_pRequest = nullptr;
@@ -107,7 +109,7 @@ class CHttpClient {
107109

108110
void CheckAll();
109111
void ClearAll();
110-
CHttpClientItem* Fetch(const char* url, UtilHTTPMethod method);
112+
CHttpClientItem* Fetch(const char* url, UtilHTTPMethod method, bool async = true);
111113
CHttpClientItem* Fetch(httpContext_s* ctx);
112114
bool Interrupt(CHttpClientItem* pDestory);
113115
private:

src/Source/HUD/vgui/neteasemusic.cpp

+1-6
Original file line numberDiff line numberDiff line change
@@ -387,10 +387,6 @@ CNeteasePanel::CNeteasePanel()
387387
m_pSuppressMusic = CREATE_CVAR("cl_netease_suppressmusic", "1", FCVAR_VALUE, nullptr);
388388

389389
s_pNeteaseApi = new netease::CNeteaseMusicAPI();
390-
char buf[MAX_PATH];
391-
vgui::filesystem()->GetLocalPath("abcenchance/", buf, MAX_PATH);
392-
V_snprintf(buf, "%sneteasecookie", buf);
393-
netease::CNeteaseMusicAPI::SetCookie(buf);
394390

395391
LoadControlSettings(VGUI2_ROOT_DIR "NeteasePanel.res");
396392
SetVisible(false);
@@ -516,8 +512,7 @@ void CNeteasePanel::Think() {
516512
}
517513
static std::vector<byte> DownLoad(const std::string& url) {
518514
std::vector<byte> retdata;
519-
auto rep = GetHttpClient()->Fetch(url.c_str(), UtilHTTPMethod::Get)->
520-
Create(false)->
515+
auto rep = GetHttpClient()->Fetch(url.c_str(), UtilHTTPMethod::Get, false)->
521516
StartSync();
522517
const char* bytes = rep->GetPayload()->GetBytes();
523518
size_t len = rep->GetPayload()->GetLength();

src/Source/HUD/vgui/scoreboard.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ class CPlayerImage : public IImage
189189
gifdata.reset();
190190
}, pthis)->Start();
191191
pthis->m_pRequest = nullptr;
192-
}, this)->Create(true)->Start();
192+
}, this)->Start();
193193
m_bIsAnimate = true;
194194
}
195195
m_bRequsetedAnimatedAvatars = true;

src/Source/Utility/curl.cpp

-43
This file was deleted.

src/Source/Utility/httpclient.cpp

+29-12
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,11 @@ void CHttpClient::ClearAll(){
6767
}
6868
m_aryItems.clear();
6969
}
70-
CHttpClientItem* CHttpClient::Fetch(const char* url, UtilHTTPMethod method){
70+
CHttpClientItem* CHttpClient::Fetch(const char* url, UtilHTTPMethod method, bool async){
7171
httpContext_t ctx = {
7272
url,
7373
method,
74+
async,
7475
nullptr
7576
};
7677
CHttpClientItem* item = new CHttpClientItem(&ctx);
@@ -103,25 +104,23 @@ CHttpClientItem::CHttpClientItem(httpContext_s* ctx) : IUtilHTTPCallbacks(){
103104
m_hContext.url = ctx->url;
104105
m_hContext.method = ctx->method;
105106
m_pCookieJar = ctx->cookie;
106-
m_iStatue = HTTPCLIENT_STATE::INVALID;
107-
}
108-
CHttpClientItem* CHttpClientItem::Create(bool async){
109107
m_iStatue = HTTPCLIENT_STATE::PENDING;
110-
if (async)
108+
m_bAsync = ctx->async;
109+
if (m_bAsync)
111110
m_pRequest = g_pUtilHTTPClient->CreateAsyncRequest(m_hContext.url.c_str(), m_hContext.method, this);
112111
else
113112
m_pRequest = g_pUtilHTTPClient->CreateSyncRequest(m_hContext.url.c_str(), m_hContext.method, this);
114113
if (m_pCookieJar)
115114
m_pRequest->SetField("Set-Cookie", m_pCookieJar->Get().c_str());
116-
m_bAsync = async;
117-
return this;
118115
}
119116
CHttpClientItem* CHttpClientItem::Start(){
117+
if (!m_pRequest)
118+
return nullptr;
120119
if (m_bAsync) {
121-
if (m_pRequest)
122-
m_pRequest->Send();
120+
m_pRequest->Send();
121+
return this;
123122
}
124-
return this;
123+
return nullptr;
125124
}
126125
IUtilHTTPResponse* CHttpClientItem::StartSync(){
127126
if (!m_bAsync) {
@@ -130,6 +129,7 @@ IUtilHTTPResponse* CHttpClientItem::StartSync(){
130129
auto reb = m_pRequest->GetResponse();
131130
if (m_pCookieJar) {
132131
char cookiebuf[MAX_COOKIE_LENGTH];
132+
memset(cookiebuf, 0, MAX_COOKIE_LENGTH);
133133
reb->GetHeader("Set-Cookie", cookiebuf, MAX_COOKIE_LENGTH);
134134
m_pCookieJar->Set(cookiebuf);
135135
}
@@ -138,11 +138,28 @@ IUtilHTTPResponse* CHttpClientItem::StartSync(){
138138
return nullptr;
139139
}
140140
CHttpClientItem* CHttpClientItem::SetFeild(const char* key, const char* var){
141-
if (m_pRequest)
141+
if (m_pRequest) {
142142
m_pRequest->SetField(key, var);
143-
return this;
143+
return this;
144+
}
145+
return nullptr;
144146
}
145147

148+
CHttpClientItem* CHttpClientItem::SetPostBody(const char* contentType, const char* payload, size_t payloadSize) {
149+
if (m_pRequest) {
150+
m_pRequest->SetPostBody(contentType, payload, payloadSize);
151+
return this;
152+
}
153+
return nullptr;
154+
}
155+
CHttpClientItem* CHttpClientItem::SetCookieJar(CHttpCookieJar* jar)
156+
{
157+
if (m_pRequest) {
158+
m_pCookieJar = jar;
159+
return this;
160+
}
161+
return nullptr;
162+
}
146163
HTTPCLIENT_STATE CHttpClientItem::GetState() const{
147164
return m_iStatue;
148165
}

src/Source/plugins.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#include "exportfuncs.h"
44
#include "ClientParticleMan.h"
55
#include "httpclient.h"
6-
#include "curl.h"
76
#include "soundengine.h"
87
#include "VGUI2ExtensionImport.h"
98
#include <vgui_controls/Controls.h>

vgui2/GameUI/NeteaseMusicDialog.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -179,14 +179,12 @@ class CNeteaseUserInfo : public Frame {
179179
};
180180
GetHttpClient()->Fetch((myinfo->avatarurl + "?param=130y130").c_str(), UtilHTTPMethod::Get)->
181181
OnRespond(decodecallback, m_pAvatar, this)->
182-
Create(true)->
183182
Start();
184183

185184
int w, h;
186185
GetSize(w, h);
187186
GetHttpClient()->Fetch((myinfo->backgroundurl + "?param=" + std::to_string(w) + "y" + std::to_string(h)).c_str(), UtilHTTPMethod::Get)->
188187
OnRespond(decodecallback, m_pBackgroud, this)->
189-
Create(true)->
190188
Start();
191189

192190
m_pName->SetText(myinfo->name.c_str());

0 commit comments

Comments
 (0)