@ossiana/node-libcurl 1.1.2-alpha-6 → 1.1.3-alpha-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.gyp +2 -1
- package/dist/fetch.js +2 -2
- package/dist/fetch.js.map +1 -1
- package/dist/libcurl.d.ts +3 -3
- package/dist/libcurl.js +18 -33
- package/dist/libcurl.js.map +1 -1
- package/dist/requests.js +2 -2
- package/dist/requests.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +1 -1
- package/src/libcurl/bao_curl.cpp +54 -61
- package/src/libcurl/bao_curl_multi.cpp +123 -0
- package/src/libcurl/bao_curl_node_addon.cpp +88 -49
- package/src/libcurl/include/bao_curl.h +48 -19
- package/src/libcurl/include/utils.h +3 -0
- package/src/libcurl/curlAsyncWorker.cpp +0 -46
- package/src/libcurl/include/curlAysncWorker.h +0 -18
package/binding.gyp
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
"sources": [
|
|
7
7
|
"./src/libcurl/bao_curl_node_addon.cpp",
|
|
8
8
|
"./src/libcurl/bao_curl.cpp",
|
|
9
|
+
"./src/libcurl/bao_curl_multi.cpp",
|
|
9
10
|
"./src/libcurl/utils.cpp",
|
|
10
|
-
"./src/libcurl/curlAsyncWorker.cpp",
|
|
11
|
+
# "./src/libcurl/curlAsyncWorker.cpp",
|
|
11
12
|
],
|
|
12
13
|
"include_dirs": [
|
|
13
14
|
"<!@(node -p \"require('node-addon-api').include\")",
|
package/dist/fetch.js
CHANGED
|
@@ -7,7 +7,7 @@ async function fetch(url, request = {}) {
|
|
|
7
7
|
request.instance ||= new libcurl_1.LibCurl();
|
|
8
8
|
const curl = request.instance;
|
|
9
9
|
const { method = "GET", headers, redirect = false, httpVersion = 0, openInnerLog = false, proxy, body, cookies, timeout, interface: interface_, ja3, } = request;
|
|
10
|
-
curl.open(method, url + ''
|
|
10
|
+
curl.open(method, url + '');
|
|
11
11
|
if (headers) {
|
|
12
12
|
curl.setRequestHeaders(headers);
|
|
13
13
|
}
|
|
@@ -18,7 +18,7 @@ async function fetch(url, request = {}) {
|
|
|
18
18
|
curl.setHttpVersion(httpVersion);
|
|
19
19
|
}
|
|
20
20
|
if (interface_) {
|
|
21
|
-
curl.
|
|
21
|
+
curl.setInterface(interface_);
|
|
22
22
|
}
|
|
23
23
|
if (openInnerLog) {
|
|
24
24
|
curl.printInnerLogger();
|
package/dist/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":";;;AAAA,uCAA+N;AAC/N,mCAAyE;AA+BlE,KAAK,UAAU,KAAK,CAAC,GAAiB,EAAE,UAA8B,EAAE;IAC3E,OAAO,CAAC,QAAQ,KAAK,IAAI,iBAAO,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,KAAK,EAClB,OAAO,EAAE,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,CAAC,EAC1C,YAAY,GAAG,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAC,OAAO,EAClD,SAAS,EAAE,UAAU,EAAE,GAAG,GAC7B,GAAG,OAAO,CAAC;IACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":";;;AAAA,uCAA+N;AAC/N,mCAAyE;AA+BlE,KAAK,UAAU,KAAK,CAAC,GAAiB,EAAE,UAA8B,EAAE;IAC3E,OAAO,CAAC,QAAQ,KAAK,IAAI,iBAAO,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,KAAK,EAClB,OAAO,EAAE,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,CAAC,EAC1C,YAAY,GAAG,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAC,OAAO,EAClD,SAAS,EAAE,UAAU,EAAE,GAAG,GAC7B,GAAG,OAAO,CAAC;IACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAC5B,IAAI,OAAO,EAAE;QACT,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;KACnC;IACD,IAAI,QAAQ,EAAE;QACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC1B;IACD,IAAI,WAAW,EAAE;QACb,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KACpC;IACD,IAAI,UAAU,EAAE;QACZ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;KACjC;IACD,IAAI,YAAY,EAAE;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IACD,IAAI,OAAO,EAAE;QACT,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO,EAAE;YACT,IAAA,yBAAiB,EAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC9C;KACJ;IACD,IAAI,KAAK,EAAE;QACP,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACxB;IACD,IAAI,OAAO,EAAE;QACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAC,OAAO,CAAC,CAAC;KACpC;IACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,IAAA,mCAA2B,GAAE,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO;QACH,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;QACtC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE;QACpD,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM;QACtD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC1C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;QACxC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;QACtC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;KACxB,CAAC;AAE7B,CAAC;AAjDD,sBAiDC"}
|
package/dist/libcurl.d.ts
CHANGED
|
@@ -140,11 +140,11 @@ export declare class LibCurlError extends Error {
|
|
|
140
140
|
}
|
|
141
141
|
export declare class LibCurl {
|
|
142
142
|
private m_libCurl_impl_;
|
|
143
|
-
private m_isAsync_;
|
|
144
143
|
private m_isSending_;
|
|
145
144
|
constructor();
|
|
145
|
+
private static multiExecute;
|
|
146
146
|
private checkSending;
|
|
147
|
-
open(method: LibCurlMethodInfo, url: LibCurlURLInfo
|
|
147
|
+
open(method: LibCurlMethodInfo, url: LibCurlURLInfo): void;
|
|
148
148
|
setRequestHeader(key: string, value: string): void;
|
|
149
149
|
setRequestHeaders(headers: LibCurlHeadersInfo): void;
|
|
150
150
|
setProxy(proxyOpt: LibCurlProxyInfo): void;
|
|
@@ -162,7 +162,7 @@ export declare class LibCurl {
|
|
|
162
162
|
setRedirect(isAllow: boolean): void;
|
|
163
163
|
printInnerLogger(): void;
|
|
164
164
|
setHttpVersion(version: LibCurlHttpVersionInfo): void;
|
|
165
|
-
|
|
165
|
+
setInterface(network: LibCurlInterfaceInfo): void;
|
|
166
166
|
setJA3Fingerprint(ja3: LibCurlJA3FingerPrintInfo): void;
|
|
167
167
|
send(body?: LibCurlBodyInfo): Promise<undefined> | undefined;
|
|
168
168
|
getResponseBody(): Uint8Array;
|
package/dist/libcurl.js
CHANGED
|
@@ -7,6 +7,10 @@ exports.LibCurl = exports.LibCurlError = exports.LibCurlJA3EcPointFormat = expor
|
|
|
7
7
|
const bindings_1 = __importDefault(require("bindings"));
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
9
|
const { BaoLibCurl } = (0, bindings_1.default)('bao_curl_node_addon');
|
|
10
|
+
BaoLibCurl.globalInit();
|
|
11
|
+
process.on('exit', (e) => {
|
|
12
|
+
BaoLibCurl.globalCleanup();
|
|
13
|
+
});
|
|
10
14
|
var LibCurlHttpVersionInfo;
|
|
11
15
|
(function (LibCurlHttpVersionInfo) {
|
|
12
16
|
LibCurlHttpVersionInfo[LibCurlHttpVersionInfo["http1_1"] = 0] = "http1_1";
|
|
@@ -132,20 +136,20 @@ class LibCurlError extends Error {
|
|
|
132
136
|
exports.LibCurlError = LibCurlError;
|
|
133
137
|
class LibCurl {
|
|
134
138
|
m_libCurl_impl_;
|
|
135
|
-
m_isAsync_;
|
|
136
139
|
m_isSending_;
|
|
137
140
|
constructor() {
|
|
138
141
|
this.m_libCurl_impl_ = new BaoLibCurl();
|
|
139
142
|
}
|
|
143
|
+
static multiExecute() {
|
|
144
|
+
}
|
|
140
145
|
checkSending() {
|
|
141
146
|
if (this.m_isSending_) {
|
|
142
147
|
throw new Error('the last request is sending, don\'t send one more request on one instance!');
|
|
143
148
|
}
|
|
144
149
|
}
|
|
145
|
-
open(method, url
|
|
150
|
+
open(method, url) {
|
|
146
151
|
this.checkSending();
|
|
147
152
|
this.m_libCurl_impl_.open(method, url + '');
|
|
148
|
-
this.m_isAsync_ = async;
|
|
149
153
|
}
|
|
150
154
|
setRequestHeader(key, value) {
|
|
151
155
|
this.checkSending();
|
|
@@ -262,9 +266,9 @@ class LibCurl {
|
|
|
262
266
|
this.checkSending();
|
|
263
267
|
this.m_libCurl_impl_.setHttpVersion(version);
|
|
264
268
|
}
|
|
265
|
-
|
|
269
|
+
setInterface(network) {
|
|
266
270
|
this.checkSending();
|
|
267
|
-
this.m_libCurl_impl_.
|
|
271
|
+
this.m_libCurl_impl_.setInterface(network);
|
|
268
272
|
}
|
|
269
273
|
setJA3Fingerprint(ja3) {
|
|
270
274
|
this.checkSending();
|
|
@@ -313,42 +317,23 @@ class LibCurl {
|
|
|
313
317
|
send(body) {
|
|
314
318
|
this.checkSending();
|
|
315
319
|
this.m_isSending_ = true;
|
|
316
|
-
|
|
317
|
-
return new Promise((resolve, reject) => {
|
|
318
|
-
const callStack = '\n ' + new Error().stack.slice(10);
|
|
319
|
-
const callback = (curlcode, curlcodeError) => {
|
|
320
|
-
this.m_isSending_ = false;
|
|
321
|
-
if (curlcode != 0) {
|
|
322
|
-
reject(new LibCurlError(curlcodeError, callStack));
|
|
323
|
-
}
|
|
324
|
-
else {
|
|
325
|
-
resolve(void 0);
|
|
326
|
-
}
|
|
327
|
-
};
|
|
328
|
-
if (body) {
|
|
329
|
-
if (body instanceof URLSearchParams) {
|
|
330
|
-
this.m_libCurl_impl_.sendAsync(body + '', callback);
|
|
331
|
-
}
|
|
332
|
-
else {
|
|
333
|
-
this.m_libCurl_impl_.sendAsync(body, callback);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
else {
|
|
337
|
-
this.m_libCurl_impl_.sendAsync(callback);
|
|
338
|
-
}
|
|
339
|
-
});
|
|
340
|
-
}
|
|
320
|
+
let promise;
|
|
341
321
|
if (body) {
|
|
322
|
+
let sendData;
|
|
342
323
|
if (body instanceof URLSearchParams) {
|
|
343
|
-
|
|
324
|
+
sendData = body + '';
|
|
344
325
|
}
|
|
345
326
|
else {
|
|
346
|
-
|
|
327
|
+
sendData = body;
|
|
347
328
|
}
|
|
329
|
+
promise = this.m_libCurl_impl_.sendAsync(sendData);
|
|
348
330
|
}
|
|
349
331
|
else {
|
|
350
|
-
this.m_libCurl_impl_.
|
|
332
|
+
promise = this.m_libCurl_impl_.sendAsync();
|
|
351
333
|
}
|
|
334
|
+
return promise.finally(() => {
|
|
335
|
+
this.m_isSending_ = false;
|
|
336
|
+
});
|
|
352
337
|
}
|
|
353
338
|
getResponseBody() {
|
|
354
339
|
this.checkSending();
|
package/dist/libcurl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libcurl.js","sourceRoot":"","sources":["../src/libcurl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libcurl.js","sourceRoot":"","sources":["../src/libcurl.ts"],"names":[],"mappings":"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"}
|
package/dist/requests.js
CHANGED
|
@@ -53,7 +53,7 @@ class requests {
|
|
|
53
53
|
curl.printInnerLogger();
|
|
54
54
|
}
|
|
55
55
|
if (interface_) {
|
|
56
|
-
curl.
|
|
56
|
+
curl.setInterface(interface_);
|
|
57
57
|
}
|
|
58
58
|
if (typeof httpVersion != 'undefined') {
|
|
59
59
|
curl.setHttpVersion(httpVersion);
|
|
@@ -166,7 +166,7 @@ class requests {
|
|
|
166
166
|
if (params) {
|
|
167
167
|
assignURLSearchParam(url_.searchParams, new URLSearchParams(params));
|
|
168
168
|
}
|
|
169
|
-
curl.open(method, url_
|
|
169
|
+
curl.open(method, url_);
|
|
170
170
|
if (headers) {
|
|
171
171
|
curl.setRequestHeaders(headers);
|
|
172
172
|
}
|
package/dist/requests.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../src/requests.ts"],"names":[],"mappings":";;;AAAA,uCAA0P;AAC1P,mCAA8E;AAqB9E,MAAM,gBAAgB;IACV,IAAI,CAAU;IACtB,YAAY,IAAa;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC1C,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC7C,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAChD,CAAC;CAGJ;AA8CD,MAAM,oBAAoB,GAAG,CAAC,MAAuB,EAAE,MAAuB,EAAE,EAAE;IAC9E,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAa,QAAQ;IACT,MAAM,CAAqB;IAC3B,cAAc,CAAU;IACxB,GAAG,CAA4B;IAEvC,YAAY,SAA6B,EAAE;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC,QAAQ,GAAG,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC9G,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,iBAAO,EAAE,CAAC;QACpD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC;SACnC;QACD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACrC;QACD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;QACD,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../src/requests.ts"],"names":[],"mappings":";;;AAAA,uCAA0P;AAC1P,mCAA8E;AAqB9E,MAAM,gBAAgB;IACV,IAAI,CAAU;IACtB,YAAY,IAAa;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC1C,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC7C,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAChD,CAAC;CAGJ;AA8CD,MAAM,oBAAoB,GAAG,CAAC,MAAuB,EAAE,MAAuB,EAAE,EAAE;IAC9E,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAa,QAAQ;IACT,MAAM,CAAqB;IAC3B,cAAc,CAAU;IACxB,GAAG,CAA4B;IAEvC,YAAY,SAA6B,EAAE;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC,QAAQ,GAAG,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC9G,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,iBAAO,EAAE,CAAC;QACpD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC;SACnC;QACD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACrC;QACD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;QACD,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;SACjC;QACD,IAAI,OAAO,WAAW,IAAI,WAAW,EAAE;YACnC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACpC;QACD,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1B;QAED,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAA,mCAA2B,GAAE,CAAC;QAChD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,SAA6B,EAAE;QAC1C,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAoB,EAAE,UAAiC;QACpE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAoB,EAAE,UAAiC;QACrE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAoB,EAAE,UAAiC;QACpE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAoB,EAAE,UAAiC;QACtE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAoB,EAAE,UAAiC;QACtE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAoB,EAAE,UAAiC;QACrE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAoB,EAAE,UAA2B;QACvD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAoB,EAAE,UAA2B;QACxD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAoB,EAAE,UAA2B;QACvD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,GAAoB,EAAE,UAA2B;QACzD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,GAAoB,EAAE,UAA2B;QACzD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAoB,EAAE,UAA2B;QACxD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,MAAc,EAAE,OAAe,EAAE;QACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3B,IAAI,EAAE,GAAG;YACT,KAAK;YACL,MAAM;YACN,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,MAAe,EAAE,IAAa;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAClC,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,IAAI,EAAE;SACnB,CAAC,CAAA;IACN,CAAC;IAED,UAAU,CAAC,MAAe,EAAE,IAAa;QACrC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YACnC,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,IAAI,EAAE;SACnB,CAAC,CAAA;IACN,CAAC;IACD,aAAa,CAAC,MAAe,EAAE,IAAa;QACxC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;SAC/C;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtC,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,IAAI,EAAE;SACnB,CAAC,CAAA;IACN,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,IAAa;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC9B,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,IAAI,GAAG;SACpB,CAAC,CAAA;IACN,CAAC;IAED,iBAAiB;QACb,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAA,WAAG,EAAC,IAAI,CAAC,GAAG,CAAC;SAC1B,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAA0B,EAAE,GAAoB,EAAE,UAA2B;QACnG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACtE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;QAElE,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,MAAM,IAAI,sBAAY,CAAC,0BAA0B,CAAC,CAAC;SACtD;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAA,yBAAiB,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SAClF;QACD,IAAI,MAAM,EAAE;YACR,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;SACxE;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxB,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;SACnC;QAED,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACrC;aAAM,IAAI,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;SAC3C;QACD,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;YAE3B,MAAM,iBAAiB,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,cAAc,CAAC,CAAC;YAChG,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;gBAC5B,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAClD;iBAAM,IAAI,OAAO,YAAY,GAAG,EAAE;gBAC/B,cAAc,GAAG,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC3D;iBAAM;gBACH,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;aAC5D;SACJ;QACD,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,cAAc,EAAE;gBACjB,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;aAC7D;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;aAAM,IAAI,IAAI,EAAE;YACb,IAAI,QAAQ,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,cAAc,EAAE;gBACjB,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;oBACzB,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;iBACvD;qBAAM,IAAI,IAAI,YAAY,eAAe,EAAE;oBACxC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,mCAAmC,CAAC,CAAC;iBAC9E;qBAAM,IAAI,IAAI,YAAY,UAAU,EAAE;oBACnC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;iBACrE;qBAAM;oBACH,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,mCAAmC,CAAC,CAAC;iBAC9E;aACJ;YAED,IAAI,IAAI,YAAY,UAAU,EAAE;aAE/B;iBACI,IACD,CAAC,CAAC,IAAI,YAAY,eAAe,CAAC;gBAClC,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,EACzC;gBACE,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;oBAC1B,IAA2B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;wBAE7D,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;qBACrC;yBAAM,IAAI,IAAI,IAAI,WAAW,EAAE;wBAC5B,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;qBAClB;yBAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;wBAC5C,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;qBAC1B;yBAAM;wBACH,MAAM,IAAI,sBAAY,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;qBACrD;gBAEL,CAAC,CAAC;qBACG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAmB,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;qBAClG,IAAI,CAAC,GAAG,CAAC,CAAC;aAClB;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC7B;aAAM;YACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;SACrB;QACD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAA0B,EAAE,GAAoB,EAAE,gBAAuC;QAC3H,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAsC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC/G,CAAC;CACJ;AA5ND,4BA4NC"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -65,7 +65,7 @@ console.log(res.text);
|
|
|
65
65
|
### winhttp style
|
|
66
66
|
```javascript
|
|
67
67
|
const curl = new LibCurl();
|
|
68
|
-
curl.open('POST', 'https://xxx.io/api/graphql/'
|
|
68
|
+
curl.open('POST', 'https://xxx.io/api/graphql/');
|
|
69
69
|
curl.setRequestHeaders(`Host: xxx.io
|
|
70
70
|
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
|
71
71
|
Content-Type: application/octet-stream
|
package/src/libcurl/bao_curl.cpp
CHANGED
|
@@ -10,12 +10,21 @@
|
|
|
10
10
|
} \
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
#define CHECK_CURLSHOK(e) \
|
|
14
|
+
{ \
|
|
15
|
+
CURLSHcode code = (e); \
|
|
16
|
+
if (this->m_verbose && code != CURLcode::CURLE_OK) \
|
|
17
|
+
{ \
|
|
18
|
+
printf("CURL Error:%s\n", curl_share_strerror(code)); \
|
|
19
|
+
} \
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
NAMESPACE_BAO_START
|
|
14
23
|
|
|
15
|
-
size_t write_func(void
|
|
24
|
+
size_t write_func(void* ptr, size_t size, size_t nmemb, std::string& stream)
|
|
16
25
|
{
|
|
17
26
|
const size_t resize = size * nmemb;
|
|
18
|
-
std::string html_data(reinterpret_cast<const char
|
|
27
|
+
std::string html_data(reinterpret_cast<const char*>(ptr), size * nmemb);
|
|
19
28
|
stream += html_data;
|
|
20
29
|
return resize;
|
|
21
30
|
}
|
|
@@ -28,6 +37,11 @@ BaoCurl::BaoCurl()
|
|
|
28
37
|
BaoCurl::~BaoCurl()
|
|
29
38
|
{
|
|
30
39
|
assert(this->m_pCURL);
|
|
40
|
+
if (this->m_pHeaders)
|
|
41
|
+
{
|
|
42
|
+
curl_slist_free_all(this->m_pHeaders);
|
|
43
|
+
this->m_pHeaders = NULL;
|
|
44
|
+
}
|
|
31
45
|
curl_easy_cleanup(this->m_pCURL);
|
|
32
46
|
}
|
|
33
47
|
|
|
@@ -35,6 +49,7 @@ void BaoCurl::init()
|
|
|
35
49
|
{
|
|
36
50
|
this->m_pCURL = curl_easy_init();
|
|
37
51
|
assert(this->m_pCURL);
|
|
52
|
+
CHECK_CURLSHOK(curl_share_setopt(this->m_pCURL, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS));
|
|
38
53
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_SSL_VERIFYPEER, 0L));
|
|
39
54
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_SSL_VERIFYHOST, 0L));
|
|
40
55
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_SSL_CIPHER_LIST, "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:DH-RSA-AES128-GCM-SHA256:AES128-SHA:AES256-SHA"));
|
|
@@ -42,10 +57,11 @@ void BaoCurl::init()
|
|
|
42
57
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_ACCEPT_ENCODING, ""));
|
|
43
58
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1));
|
|
44
59
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_COOKIEFILE, NULL));
|
|
60
|
+
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_PRIVATE, this));
|
|
45
61
|
this->setTimeout(15, 15);
|
|
46
62
|
}
|
|
47
63
|
|
|
48
|
-
void BaoCurl::open(std::string
|
|
64
|
+
void BaoCurl::open(std::string& method, std::string& url)
|
|
49
65
|
{
|
|
50
66
|
this->m_method = method;
|
|
51
67
|
this->m_stream.header = "";
|
|
@@ -70,17 +86,17 @@ void BaoCurl::open(std::string &method, std::string &url)
|
|
|
70
86
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_CUSTOMREQUEST, method.c_str()));
|
|
71
87
|
}
|
|
72
88
|
|
|
73
|
-
void BaoCurl::setRequestHeader(std::string
|
|
89
|
+
void BaoCurl::setRequestHeader(std::string& key, std::string& value)
|
|
74
90
|
{
|
|
75
91
|
this->m_pHeaders = curl_slist_append(this->m_pHeaders, (key + ": " + value).c_str());
|
|
76
92
|
}
|
|
77
93
|
|
|
78
|
-
void BaoCurl::setRequestHeader(std::string
|
|
94
|
+
void BaoCurl::setRequestHeader(std::string& keyValue)
|
|
79
95
|
{
|
|
80
96
|
this->m_pHeaders = curl_slist_append(this->m_pHeaders, keyValue.c_str());
|
|
81
97
|
}
|
|
82
98
|
|
|
83
|
-
void BaoCurl::setRequestHeaders(std::string
|
|
99
|
+
void BaoCurl::setRequestHeaders(std::string& header)
|
|
84
100
|
{
|
|
85
101
|
auto arr = StringSplit(header, "\n");
|
|
86
102
|
for (auto arr_b = arr.begin(); arr_b != arr.end(); ++arr_b)
|
|
@@ -94,14 +110,14 @@ void BaoCurl::setRequestHeaders(std::string &header)
|
|
|
94
110
|
}
|
|
95
111
|
}
|
|
96
112
|
|
|
97
|
-
void BaoCurl::setProxy(std::string
|
|
113
|
+
void BaoCurl::setProxy(std::string& proxy)
|
|
98
114
|
{
|
|
99
115
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_PROXY, proxy.c_str()));
|
|
100
116
|
this->m_bProxy = true;
|
|
101
117
|
}
|
|
102
118
|
|
|
103
|
-
void BaoCurl::setProxy(std::string
|
|
104
|
-
|
|
119
|
+
void BaoCurl::setProxy(std::string& proxy, std::string& username,
|
|
120
|
+
std::string& password)
|
|
105
121
|
{
|
|
106
122
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_PROXY, proxy.c_str()));
|
|
107
123
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_PROXYUSERPWD, (username + ":" + password).c_str()));
|
|
@@ -121,41 +137,7 @@ void BaoCurl::setTimeout(
|
|
|
121
137
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_TIMEOUT, sendTime));
|
|
122
138
|
}
|
|
123
139
|
|
|
124
|
-
void BaoCurl::
|
|
125
|
-
{
|
|
126
|
-
std::string empty = "";
|
|
127
|
-
BaoCurl::send(empty);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
void BaoCurl::send(std::string &data)
|
|
131
|
-
{
|
|
132
|
-
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_HTTPHEADER, this->m_pHeaders));
|
|
133
|
-
if (this->m_bProxy)
|
|
134
|
-
{
|
|
135
|
-
if (this->m_bIsHttps)
|
|
136
|
-
{
|
|
137
|
-
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_HTTPPROXYTUNNEL, 1L));
|
|
138
|
-
}
|
|
139
|
-
else
|
|
140
|
-
{
|
|
141
|
-
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_PROXYTYPE, CURLPROXY_HTTP));
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
if (this->m_method == "POST" || this->m_method == "PUT" || this->m_method == "PATCH")
|
|
145
|
-
{
|
|
146
|
-
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_POSTFIELDS, data.c_str()));
|
|
147
|
-
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_POSTFIELDSIZE, data.size()));
|
|
148
|
-
}
|
|
149
|
-
else
|
|
150
|
-
{
|
|
151
|
-
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_NOBODY, data.size()));
|
|
152
|
-
}
|
|
153
|
-
CHECK_CURLOK(curl_easy_perform(this->m_pCURL));
|
|
154
|
-
curl_slist_free_all(this->m_pHeaders);
|
|
155
|
-
this->m_pHeaders = NULL;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
void BaoCurl::sendByte(const char *data, const int len)
|
|
140
|
+
void BaoCurl::sendByte(const char* data, const int len)
|
|
159
141
|
{
|
|
160
142
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_HTTPHEADER, this->m_pHeaders));
|
|
161
143
|
if (this->m_bProxy)
|
|
@@ -172,12 +154,15 @@ void BaoCurl::sendByte(const char *data, const int len)
|
|
|
172
154
|
|
|
173
155
|
if (this->m_method == "POST" || this->m_method == "PUT" || this->m_method == "PATCH")
|
|
174
156
|
{
|
|
175
|
-
|
|
157
|
+
m_postdata = std::unique_ptr<const char[]>(new char[len]);
|
|
158
|
+
memcpy((void *)m_postdata.get(), data, len);
|
|
159
|
+
|
|
160
|
+
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_POSTFIELDS, m_postdata.get()));
|
|
176
161
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_POSTFIELDSIZE, len));
|
|
177
162
|
}
|
|
178
|
-
CHECK_CURLOK(curl_easy_perform(this->m_pCURL));
|
|
163
|
+
/*CHECK_CURLOK(curl_easy_perform(this->m_pCURL));
|
|
179
164
|
curl_slist_free_all(this->m_pHeaders);
|
|
180
|
-
this->m_pHeaders = NULL
|
|
165
|
+
this->m_pHeaders = NULL;*/
|
|
181
166
|
}
|
|
182
167
|
|
|
183
168
|
/* Hostname */
|
|
@@ -187,23 +172,23 @@ void BaoCurl::sendByte(const char *data, const int len)
|
|
|
187
172
|
/* Expiry in epoch time format. 0 == Session */
|
|
188
173
|
/* Name */
|
|
189
174
|
/* Value */
|
|
190
|
-
void BaoCurl::setCookie(std::string
|
|
175
|
+
void BaoCurl::setCookie(std::string& key, std::string& value, std::string& domain, std::string& path)
|
|
191
176
|
{
|
|
192
177
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_COOKIELIST, StringFormat("%s\tTRUE\t%s\tFALSE\t0\t%s\t%s", domain.c_str(), path.c_str(), key.c_str(), value.c_str()).c_str()));
|
|
193
178
|
// CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_COOKIELIST, StringFormat("Set-Cookie: %s=%s; domain=%s; path=%s;", key.c_str(), value.c_str(), domain.c_str(), path.c_str()).c_str()));
|
|
194
179
|
}
|
|
195
180
|
|
|
196
|
-
void BaoCurl::deleteCookie(std::string
|
|
181
|
+
void BaoCurl::deleteCookie(std::string& key, std::string& domain, std::string& path)
|
|
197
182
|
{
|
|
198
183
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_COOKIELIST, StringFormat("%s\tTURE\t%s\tFALSE\t1600000000\t%s\t%s", domain.c_str(), path.c_str(), key.c_str(), "").c_str()));
|
|
199
184
|
}
|
|
200
185
|
|
|
201
186
|
std::string BaoCurl::getCookies()
|
|
202
187
|
{
|
|
203
|
-
struct curl_slist
|
|
188
|
+
struct curl_slist* cookies = NULL;
|
|
204
189
|
std::string str;
|
|
205
190
|
CHECK_CURLOK(curl_easy_getinfo(this->m_pCURL, CURLINFO_COOKIELIST, &cookies));
|
|
206
|
-
struct curl_slist
|
|
191
|
+
struct curl_slist* cookiesOrign = cookies;
|
|
207
192
|
|
|
208
193
|
if (!cookies)
|
|
209
194
|
{
|
|
@@ -219,12 +204,12 @@ std::string BaoCurl::getCookies()
|
|
|
219
204
|
return str;
|
|
220
205
|
}
|
|
221
206
|
|
|
222
|
-
std::string BaoCurl::getCookie(std::string
|
|
207
|
+
std::string BaoCurl::getCookie(std::string& key, std::string& domain, std::string& path)
|
|
223
208
|
{
|
|
224
|
-
struct curl_slist
|
|
209
|
+
struct curl_slist* cookies = NULL;
|
|
225
210
|
std::string str = "";
|
|
226
211
|
CHECK_CURLOK(curl_easy_getinfo(this->m_pCURL, CURLINFO_COOKIELIST, &cookies));
|
|
227
|
-
struct curl_slist
|
|
212
|
+
struct curl_slist* cookiesOrign = cookies;
|
|
228
213
|
if (!cookies)
|
|
229
214
|
{
|
|
230
215
|
return "";
|
|
@@ -277,6 +262,7 @@ void BaoCurl::setRedirect(bool isAllow)
|
|
|
277
262
|
}
|
|
278
263
|
void BaoCurl::printInnerLogger()
|
|
279
264
|
{
|
|
265
|
+
this->m_verbose = true;
|
|
280
266
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_VERBOSE, 1L));
|
|
281
267
|
}
|
|
282
268
|
|
|
@@ -303,7 +289,7 @@ unsigned int BaoCurl::getLastCurlCode()
|
|
|
303
289
|
return this->m_lastCode;
|
|
304
290
|
}
|
|
305
291
|
|
|
306
|
-
const char
|
|
292
|
+
const char* BaoCurl::getLastCurlCodeError()
|
|
307
293
|
{
|
|
308
294
|
return curl_easy_strerror(this->m_lastCode);
|
|
309
295
|
}
|
|
@@ -315,13 +301,13 @@ curl_off_t BaoCurl::getResponseContentLength()
|
|
|
315
301
|
return size;
|
|
316
302
|
}
|
|
317
303
|
|
|
318
|
-
void BaoCurl::
|
|
304
|
+
void BaoCurl::setInterface(std::string& network)
|
|
319
305
|
{
|
|
320
|
-
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL,
|
|
306
|
+
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_INTERFACE, network.c_str()));
|
|
321
307
|
}
|
|
322
308
|
|
|
323
309
|
void BaoCurl::setJA3Fingerprint(
|
|
324
|
-
int tls_version, std::string
|
|
310
|
+
int tls_version, std::string& cipher, std::string& tls13_cipher, std::string& extensions, std::string& support_groups, int ec_point_formats)
|
|
325
311
|
{
|
|
326
312
|
|
|
327
313
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_SSLVERSION, CURL_SSLVERSION_MAX_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_2 | CURL_SSLVERSION_MAX_TLSv1_3));
|
|
@@ -340,6 +326,13 @@ void BaoCurl::setJA3Fingerprint(
|
|
|
340
326
|
tmp2[i] = i+1;
|
|
341
327
|
} */
|
|
342
328
|
// tmp2[25]=0;
|
|
343
|
-
|
|
329
|
+
|
|
344
330
|
CHECK_CURLOK(curl_easy_setopt(this->m_pCURL, CURLOPT_TLS_EXTENSION_PERMUTATION/* 10316 */, extensions.c_str()));
|
|
345
|
-
}
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
void BaoCurl::setOnPublishCallback(BaoCurlOnPublishCallback callback) {
|
|
334
|
+
this->m_publishCallback = callback;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
NAMESPACE_BAO_END
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#include "bao_curl.h"
|
|
2
|
+
|
|
3
|
+
#define CHECK_CURLMOK(e) \
|
|
4
|
+
{ \
|
|
5
|
+
CURLMcode code = (e); \
|
|
6
|
+
this->m_lastCode = code; \
|
|
7
|
+
if (code != CURLMcode::CURLM_OK) \
|
|
8
|
+
{ \
|
|
9
|
+
printf("CURLM Error:%s\n", curl_multi_strerror(code)); \
|
|
10
|
+
} \
|
|
11
|
+
}
|
|
12
|
+
NAMESPACE_BAO_START
|
|
13
|
+
|
|
14
|
+
BaoCurlMulti::BaoCurlMulti()
|
|
15
|
+
{
|
|
16
|
+
this->m_pCURLM = curl_multi_init();
|
|
17
|
+
CHECK_CURLMOK(curl_multi_setopt(this->m_pCURLM, CURLMOPT_PIPELINING));
|
|
18
|
+
this->m_bRunning = true;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
BaoCurlMulti::~BaoCurlMulti()
|
|
22
|
+
{
|
|
23
|
+
this->m_lock.lock();
|
|
24
|
+
this->m_bRunning = false;
|
|
25
|
+
this->m_lock.unlock();
|
|
26
|
+
if (this->m_pCURLM != nullptr)
|
|
27
|
+
{
|
|
28
|
+
this->m_thread.join(); // 等待执行完在销毁
|
|
29
|
+
curl_multi_cleanup(this->m_pCURLM);
|
|
30
|
+
this->m_pCURLM = nullptr;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void BaoCurlMulti::pushQueue(BaoCurl &curl)
|
|
35
|
+
{
|
|
36
|
+
this->m_lock.lock();
|
|
37
|
+
CHECK_CURLMOK(curl_multi_add_handle(this->m_pCURLM, curl.m_pCURL));
|
|
38
|
+
this->m_lock.unlock();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
void BaoCurlMulti::startThread()
|
|
42
|
+
{
|
|
43
|
+
auto callback = [&]()
|
|
44
|
+
{
|
|
45
|
+
while (true)
|
|
46
|
+
{
|
|
47
|
+
this->m_lock.lock();
|
|
48
|
+
bool isRunning = this->m_bRunning;
|
|
49
|
+
this->m_lock.unlock();
|
|
50
|
+
if (!isRunning)
|
|
51
|
+
{
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
int running;
|
|
56
|
+
do
|
|
57
|
+
{
|
|
58
|
+
this->m_lock.lock();
|
|
59
|
+
CURLMcode mc = curl_multi_perform(this->m_pCURLM, &running);
|
|
60
|
+
this->m_lock.unlock();
|
|
61
|
+
CHECK_CURLMOK(mc);
|
|
62
|
+
if (running)
|
|
63
|
+
{
|
|
64
|
+
mc = curl_multi_poll(this->m_pCURLM, NULL, 0, 1000, NULL);
|
|
65
|
+
if (mc)
|
|
66
|
+
{
|
|
67
|
+
|
|
68
|
+
CHECK_CURLMOK(mc);
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
int ret = 0;
|
|
73
|
+
while (true)
|
|
74
|
+
{
|
|
75
|
+
this->m_lock.lock();
|
|
76
|
+
CURLMsg *msg = curl_multi_info_read(this->m_pCURLM, &ret);
|
|
77
|
+
this->m_lock.unlock();
|
|
78
|
+
|
|
79
|
+
if (!(msg && msg->msg == CURLMSG_DONE))
|
|
80
|
+
{
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
CURL *handle = msg->easy_handle;
|
|
84
|
+
|
|
85
|
+
this->m_lock.lock();
|
|
86
|
+
CHECK_CURLMOK(curl_multi_remove_handle(this->m_pCURLM, handle));
|
|
87
|
+
BaoCurl *pCurl = nullptr;
|
|
88
|
+
curl_easy_getinfo(handle, CURLINFO_PRIVATE, &pCurl);
|
|
89
|
+
this->m_lock.unlock();
|
|
90
|
+
|
|
91
|
+
if (pCurl)
|
|
92
|
+
{
|
|
93
|
+
pCurl->m_postdata.reset(); // 释放内存
|
|
94
|
+
pCurl->m_lastCode = msg->data.result;
|
|
95
|
+
if (pCurl->m_publishCallback)
|
|
96
|
+
{
|
|
97
|
+
bool success = pCurl->m_lastCode == CURLE_OK;
|
|
98
|
+
std::string errMsg = success ? "" : pCurl->getLastCurlCodeError();
|
|
99
|
+
auto &callbackPtr = pCurl->m_publishCallback;
|
|
100
|
+
(*callbackPtr)(success, errMsg);
|
|
101
|
+
callbackPtr.reset(); // 减少引用计数
|
|
102
|
+
|
|
103
|
+
/* callback->NonBlockingCall(
|
|
104
|
+
[success, callback](Napi::Env env, Napi::Function jsCallback)
|
|
105
|
+
{
|
|
106
|
+
callback->Unref(env);
|
|
107
|
+
jsCallback.Call({Napi::Boolean::New(env, success)});
|
|
108
|
+
}); */
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else
|
|
112
|
+
{
|
|
113
|
+
std::cout << "ptr is nullptr" << std::endl;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
} while (running);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
this->m_thread = std::thread(callback);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
NAMESPACE_BAO_END
|
|
@@ -2,17 +2,22 @@
|
|
|
2
2
|
#include <iostream>
|
|
3
3
|
#include "bao_curl.h"
|
|
4
4
|
#include "request_tls_utils.h"
|
|
5
|
-
#include "curlAysncWorker.h"
|
|
6
5
|
|
|
7
6
|
using namespace std;
|
|
7
|
+
using namespace bao;
|
|
8
|
+
|
|
9
|
+
BaoCurlMulti *g_curlMulti = nullptr;
|
|
8
10
|
|
|
9
11
|
void initLibCurl()
|
|
10
12
|
{
|
|
11
13
|
curl_global_init(CURL_GLOBAL_ALL);
|
|
14
|
+
g_curlMulti = new BaoCurlMulti();
|
|
15
|
+
g_curlMulti->startThread();
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
void uninitLibCurl()
|
|
15
19
|
{
|
|
20
|
+
delete g_curlMulti;
|
|
16
21
|
curl_global_cleanup();
|
|
17
22
|
}
|
|
18
23
|
|
|
@@ -40,7 +45,7 @@ private:
|
|
|
40
45
|
Napi::Value setRedirect(const Napi::CallbackInfo &info);
|
|
41
46
|
Napi::Value printInnerLogger(const Napi::CallbackInfo &info);
|
|
42
47
|
Napi::Value setHttpVersion(const Napi::CallbackInfo &info);
|
|
43
|
-
Napi::Value
|
|
48
|
+
Napi::Value setInterface(const Napi::CallbackInfo &info);
|
|
44
49
|
Napi::Value setJA3Fingerprint(const Napi::CallbackInfo &info);
|
|
45
50
|
Napi::Value send(const Napi::CallbackInfo &info);
|
|
46
51
|
Napi::Value sendAsync(const Napi::CallbackInfo &info);
|
|
@@ -48,6 +53,10 @@ private:
|
|
|
48
53
|
Napi::Value getResponseString(const Napi::CallbackInfo &info);
|
|
49
54
|
Napi::Value getResponseHeaders(const Napi::CallbackInfo &info);
|
|
50
55
|
Napi::Value getResponseContentLength(const Napi::CallbackInfo &info);
|
|
56
|
+
|
|
57
|
+
// static Napi::Value multiExecute(const Napi::CallbackInfo &info);
|
|
58
|
+
static Napi::Value globalInit(const Napi::CallbackInfo &info);
|
|
59
|
+
static Napi::Value globalCleanup(const Napi::CallbackInfo &info);
|
|
51
60
|
};
|
|
52
61
|
|
|
53
62
|
Napi::Object BaoLibCurlWarp::Init(Napi::Env env, Napi::Object exports)
|
|
@@ -65,8 +74,11 @@ Napi::Object BaoLibCurlWarp::Init(Napi::Env env, Napi::Object exports)
|
|
|
65
74
|
InstanceMethod<&BaoLibCurlWarp::sendAsync>("sendAsync", static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
|
|
66
75
|
InstanceMethod<&BaoLibCurlWarp::getResponseHeaders>("getResponseHeaders", static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
|
|
67
76
|
InstanceMethod<&BaoLibCurlWarp::getResponseContentLength>("getResponseContentLength", static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
|
|
68
|
-
InstanceMethod<&BaoLibCurlWarp::
|
|
77
|
+
InstanceMethod<&BaoLibCurlWarp::setInterface>("setInterface", static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
|
|
69
78
|
InstanceMethod<&BaoLibCurlWarp::setJA3Fingerprint>("setJA3Fingerprint", static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
|
|
79
|
+
// StaticMethod<&BaoLibCurlWarp::multiExecute>("multiExecute", static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
|
|
80
|
+
StaticMethod<&BaoLibCurlWarp::globalInit>("globalInit", static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
|
|
81
|
+
StaticMethod<&BaoLibCurlWarp::globalCleanup>("globalCleanup", static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
|
|
70
82
|
// StaticMethod<&BaoLibCurlWarp::CreateNewItem>("CreateNewItem", static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
|
|
71
83
|
};
|
|
72
84
|
Napi::Function func = DefineClass(env, "BaoLibCurl", methodList);
|
|
@@ -79,8 +91,6 @@ Napi::Object BaoLibCurlWarp::Init(Napi::Env env, Napi::Object exports)
|
|
|
79
91
|
BaoLibCurlWarp::BaoLibCurlWarp(const Napi::CallbackInfo &info)
|
|
80
92
|
: Napi::ObjectWrap<BaoLibCurlWarp>(info)
|
|
81
93
|
{
|
|
82
|
-
// cout << "BaoLibCurlWarp Initilaze" << endl;
|
|
83
|
-
// this->m_curl.printInnerLogger();
|
|
84
94
|
}
|
|
85
95
|
|
|
86
96
|
BaoLibCurlWarp::~BaoLibCurlWarp()
|
|
@@ -335,16 +345,16 @@ Napi::Value BaoLibCurlWarp::setHttpVersion(const Napi::CallbackInfo &info)
|
|
|
335
345
|
}
|
|
336
346
|
|
|
337
347
|
/*
|
|
338
|
-
|
|
348
|
+
setInterface(string)
|
|
339
349
|
*/
|
|
340
|
-
Napi::Value BaoLibCurlWarp::
|
|
350
|
+
Napi::Value BaoLibCurlWarp::setInterface(const Napi::CallbackInfo &info)
|
|
341
351
|
{
|
|
342
352
|
Napi::Env env = info.Env();
|
|
343
353
|
size_t argsLen = info.Length();
|
|
344
|
-
REQUEST_TLS_METHOD_ARGS_CHECK(env, "BaoCurl", "
|
|
354
|
+
REQUEST_TLS_METHOD_ARGS_CHECK(env, "BaoCurl", "setInterface", 1, argsLen);
|
|
345
355
|
REQUEST_TLS_METHOD_CHECK(env, info[0].IsString(), "argument 0 is not a string")
|
|
346
356
|
std::string network = info[0].As<Napi::String>().Utf8Value();
|
|
347
|
-
this->m_curl.
|
|
357
|
+
this->m_curl.setInterface(network);
|
|
348
358
|
|
|
349
359
|
return env.Undefined();
|
|
350
360
|
}
|
|
@@ -375,8 +385,7 @@ Napi::Value BaoLibCurlWarp::setJA3Fingerprint(const Napi::CallbackInfo &info)
|
|
|
375
385
|
tls13_ciphers,
|
|
376
386
|
extensions,
|
|
377
387
|
supportGroups,
|
|
378
|
-
ecPointFormat
|
|
379
|
-
);
|
|
388
|
+
ecPointFormat);
|
|
380
389
|
|
|
381
390
|
return env.Undefined();
|
|
382
391
|
}
|
|
@@ -390,7 +399,7 @@ Napi::Value BaoLibCurlWarp::send(const Napi::CallbackInfo &info)
|
|
|
390
399
|
size_t argsLen = info.Length();
|
|
391
400
|
if (argsLen == 0 || info[0].IsNull())
|
|
392
401
|
{
|
|
393
|
-
this->m_curl.
|
|
402
|
+
this->m_curl.sendByte(nullptr, 0);
|
|
394
403
|
return env.Undefined();
|
|
395
404
|
}
|
|
396
405
|
REQUEST_TLS_METHOD_ARGS_TOO_MUCH_CHECK(env, "BaoCurl", "send", 1, argsLen)
|
|
@@ -404,12 +413,12 @@ Napi::Value BaoLibCurlWarp::send(const Napi::CallbackInfo &info)
|
|
|
404
413
|
if (info[0].IsString())
|
|
405
414
|
{
|
|
406
415
|
string str = info[0].As<Napi::String>().Utf8Value();
|
|
407
|
-
this->m_curl.
|
|
416
|
+
this->m_curl.sendByte(str.data(), str.size());
|
|
408
417
|
return env.Undefined();
|
|
409
418
|
}
|
|
410
419
|
vector<Napi::Value> argsList{info[0].As<Napi::Value>()};
|
|
411
420
|
string jsonStr = env.Global().Get("JSON").As<Napi::Object>().Get("stringify").As<Napi::Function>().Call(argsList).As<Napi::String>().Utf8Value();
|
|
412
|
-
this->m_curl.
|
|
421
|
+
this->m_curl.sendByte(jsonStr.data(), jsonStr.size());
|
|
413
422
|
return env.Undefined();
|
|
414
423
|
}
|
|
415
424
|
|
|
@@ -420,44 +429,62 @@ Napi::Value BaoLibCurlWarp::sendAsync(const Napi::CallbackInfo &info)
|
|
|
420
429
|
{
|
|
421
430
|
Napi::Env env = info.Env();
|
|
422
431
|
size_t argsLen = info.Length();
|
|
423
|
-
|
|
424
|
-
|
|
432
|
+
Napi::Promise::Deferred deferred = Napi::Promise::Deferred::New(env);
|
|
433
|
+
|
|
434
|
+
Napi::ThreadSafeFunction *tsfn = new Napi::ThreadSafeFunction;
|
|
435
|
+
*tsfn = Napi::ThreadSafeFunction::New(
|
|
436
|
+
env,
|
|
437
|
+
Napi::Function::New(env, [env, deferred](const Napi::CallbackInfo &info)
|
|
438
|
+
{
|
|
439
|
+
bool success = info[0].As<Napi::Boolean>().Value();
|
|
440
|
+
if (success)
|
|
441
|
+
{
|
|
442
|
+
deferred.Resolve(env.Undefined());
|
|
443
|
+
} else {
|
|
444
|
+
Napi::String errMsg = info[1].As<Napi::String>();
|
|
445
|
+
deferred.Reject(errMsg);
|
|
446
|
+
} }),
|
|
447
|
+
"Test", 0, 1, [tsfn](Napi::Env env)
|
|
448
|
+
{ delete tsfn; });
|
|
449
|
+
auto &callbackPtr =
|
|
450
|
+
std::make_shared<std::function<void(bool, std::string)>>([tsfn](bool success, std::string errMsg)
|
|
451
|
+
{ tsfn->NonBlockingCall(
|
|
452
|
+
[tsfn, success, errMsg](Napi::Env env, Napi::Function jsCallback)
|
|
453
|
+
{
|
|
454
|
+
tsfn->Unref(env);
|
|
455
|
+
jsCallback.Call({Napi::Boolean::New(env, success), Napi::String::New(env, errMsg.c_str())});
|
|
456
|
+
}); });
|
|
457
|
+
|
|
458
|
+
this->m_curl.setOnPublishCallback(callbackPtr);
|
|
459
|
+
|
|
460
|
+
if (argsLen > 0)
|
|
425
461
|
{
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
462
|
+
if (info[0].IsTypedArray())
|
|
463
|
+
{
|
|
464
|
+
Napi::Uint8Array u8Arr = info[0].As<Napi::Uint8Array>();
|
|
465
|
+
this->m_curl.sendByte(reinterpret_cast<const char *>(u8Arr.Data()), u8Arr.ByteLength());
|
|
466
|
+
}
|
|
467
|
+
else if (info[0].IsString())
|
|
468
|
+
{
|
|
469
|
+
string str = info[0].As<Napi::String>().Utf8Value();
|
|
470
|
+
size_t strLen = str.size();
|
|
471
|
+
this->m_curl.sendByte(str.c_str(), strLen);
|
|
472
|
+
}
|
|
473
|
+
else
|
|
474
|
+
{
|
|
475
|
+
vector<Napi::Value> argsList{info[0].As<Napi::Value>()};
|
|
476
|
+
string jsonStr = env.Global().Get("JSON").As<Napi::Object>().Get("stringify").As<Napi::Function>().Call(argsList).As<Napi::String>().Utf8Value();
|
|
477
|
+
size_t strLen = jsonStr.size();
|
|
478
|
+
this->m_curl.sendByte(jsonStr.c_str(), strLen);
|
|
479
|
+
}
|
|
429
480
|
}
|
|
430
|
-
|
|
481
|
+
else
|
|
431
482
|
{
|
|
432
|
-
|
|
483
|
+
this->m_curl.sendByte(nullptr, 0);
|
|
433
484
|
}
|
|
434
485
|
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
Napi::Uint8Array u8Arr = info[0].As<Napi::Uint8Array>();
|
|
438
|
-
workerPtr = new curlAsyncWorker(info[1].As<Napi::Function>(), this->m_curl, (const char *)u8Arr.Data(), u8Arr.ElementLength());
|
|
439
|
-
workerPtr->Queue();
|
|
440
|
-
// this->m_curl.sendByte(reinterpret_cast<const char *>(utf8Buffer), u8Arr.ByteLength());
|
|
441
|
-
return env.Undefined();
|
|
442
|
-
}
|
|
443
|
-
if (info[0].IsString())
|
|
444
|
-
{
|
|
445
|
-
string str = info[0].As<Napi::String>().Utf8Value();
|
|
446
|
-
size_t strLen = str.size();
|
|
447
|
-
Napi::Uint8Array u8buffer = Napi::Uint8Array::New(env, strLen);
|
|
448
|
-
memcpy(u8buffer.Data(), str.c_str(), strLen);
|
|
449
|
-
workerPtr = new curlAsyncWorker(info[1].As<Napi::Function>(), this->m_curl, (const char *)u8buffer.Data(), u8buffer.ElementLength());
|
|
450
|
-
workerPtr->Queue();
|
|
451
|
-
return env.Undefined();
|
|
452
|
-
}
|
|
453
|
-
vector<Napi::Value> argsList{info[0].As<Napi::Value>()};
|
|
454
|
-
string jsonStr = env.Global().Get("JSON").As<Napi::Object>().Get("stringify").As<Napi::Function>().Call(argsList).As<Napi::String>().Utf8Value();
|
|
455
|
-
size_t strLen = jsonStr.size();
|
|
456
|
-
Napi::Uint8Array u8buffer = Napi::Uint8Array::New(env, strLen);
|
|
457
|
-
memcpy(u8buffer.Data(), jsonStr.c_str(), strLen);
|
|
458
|
-
workerPtr = new curlAsyncWorker(info[1].As<Napi::Function>(), this->m_curl, (const char *)u8buffer.Data(), u8buffer.ElementLength());
|
|
459
|
-
workerPtr->Queue();
|
|
460
|
-
return env.Undefined();
|
|
486
|
+
g_curlMulti->pushQueue(this->m_curl);
|
|
487
|
+
return deferred.Promise();
|
|
461
488
|
}
|
|
462
489
|
|
|
463
490
|
/*
|
|
@@ -493,11 +520,23 @@ Napi::Value BaoLibCurlWarp::getResponseString(const Napi::CallbackInfo &info)
|
|
|
493
520
|
return Napi::String::New(env, this->m_curl.getResponseBody());
|
|
494
521
|
}
|
|
495
522
|
|
|
523
|
+
Napi::Value BaoLibCurlWarp::globalInit(const Napi::CallbackInfo &info)
|
|
524
|
+
{
|
|
525
|
+
initLibCurl();
|
|
526
|
+
return info.Env().Undefined();
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
Napi::Value BaoLibCurlWarp::globalCleanup(const Napi::CallbackInfo &info)
|
|
530
|
+
{
|
|
531
|
+
uninitLibCurl();
|
|
532
|
+
return info.Env().Undefined();
|
|
533
|
+
}
|
|
534
|
+
|
|
496
535
|
// Initialize native add-on
|
|
497
536
|
Napi::Object Init(Napi::Env env, Napi::Object exports)
|
|
498
537
|
{
|
|
499
|
-
|
|
538
|
+
|
|
500
539
|
BaoLibCurlWarp::Init(env, exports);
|
|
501
540
|
return exports;
|
|
502
541
|
}
|
|
503
|
-
NODE_API_MODULE(
|
|
542
|
+
NODE_API_MODULE(bao_curl_node_addon, Init)
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
#ifndef _CURL_H
|
|
3
3
|
#define _CURL_H
|
|
4
|
+
#define NAMESPACE_BAO_START namespace bao {
|
|
5
|
+
#define NAMESPACE_BAO_END }
|
|
4
6
|
|
|
7
|
+
#include <napi.h>
|
|
5
8
|
#include "curl/curl.h"
|
|
6
9
|
#include "utils.h"
|
|
7
10
|
|
|
11
|
+
NAMESPACE_BAO_START
|
|
12
|
+
|
|
13
|
+
// typedef Napi::ThreadSafeFunction* BaoCurlOnPublishCallback;
|
|
14
|
+
typedef std::shared_ptr<std::function<void (bool, std::string)>> BaoCurlOnPublishCallback;
|
|
15
|
+
|
|
8
16
|
struct Stream_st
|
|
9
17
|
{
|
|
10
18
|
std::string header;
|
|
@@ -16,17 +24,17 @@ class BaoCurl
|
|
|
16
24
|
public:
|
|
17
25
|
BaoCurl();
|
|
18
26
|
~BaoCurl();
|
|
19
|
-
void open(std::string
|
|
20
|
-
void setRequestHeader(std::string
|
|
21
|
-
void setRequestHeader(std::string
|
|
22
|
-
void setRequestHeaders(std::string
|
|
27
|
+
void open(std::string&, std::string&);
|
|
28
|
+
void setRequestHeader(std::string&, std::string&);
|
|
29
|
+
void setRequestHeader(std::string&);
|
|
30
|
+
void setRequestHeaders(std::string&);
|
|
23
31
|
/*
|
|
24
32
|
* setProxy必须在open后 send前设置
|
|
25
33
|
* 在send后失效 需重新设置
|
|
26
34
|
*/
|
|
27
|
-
void setProxy(std::string
|
|
28
|
-
void setProxy(std::string
|
|
29
|
-
|
|
35
|
+
void setProxy(std::string&);
|
|
36
|
+
void setProxy(std::string&, std::string&,
|
|
37
|
+
std::string&);
|
|
30
38
|
/*
|
|
31
39
|
* setTimeout必须在open后 send前设置
|
|
32
40
|
* 在send后失效 需重新设置
|
|
@@ -38,28 +46,28 @@ public:
|
|
|
38
46
|
/*
|
|
39
47
|
* 设置单条Cookie
|
|
40
48
|
*/
|
|
41
|
-
void setCookie(std::string
|
|
49
|
+
void setCookie(std::string& key, std::string& value, std::string& domain, std::string& path);
|
|
42
50
|
/*
|
|
43
51
|
* 移除单条Cookie
|
|
44
52
|
*/
|
|
45
|
-
void deleteCookie(std::string
|
|
46
|
-
void
|
|
47
|
-
void send(std::string &);
|
|
48
|
-
void sendByte(const char *, const int);
|
|
53
|
+
void deleteCookie(std::string& key, std::string& domain, std::string& path);
|
|
54
|
+
void sendByte(const char*, const int);
|
|
49
55
|
/*
|
|
50
56
|
* 重置Curl 此前的操作全部失效
|
|
51
57
|
*/
|
|
52
58
|
void reset();
|
|
53
59
|
|
|
54
60
|
std::string getCookies();
|
|
55
|
-
std::string getCookie(std::string
|
|
61
|
+
std::string getCookie(std::string& key, std::string& domain, std::string& path);
|
|
56
62
|
std::string getResponseHeaders() { return this->m_stream.header; };
|
|
57
63
|
std::string getResponseBody() { return this->m_stream.responseText; };
|
|
58
64
|
long getResponseStatus();
|
|
59
65
|
void setRedirect(bool isAllow); // 重定向
|
|
60
66
|
void printInnerLogger(); // 打印内部日志
|
|
61
|
-
void
|
|
62
|
-
void setJA3Fingerprint(int tls_version, std::string
|
|
67
|
+
void setInterface(std::string& network); // 指定网卡访问
|
|
68
|
+
void setJA3Fingerprint(int tls_version, std::string& cipher, std::string& tls13_cipher, std::string& extensions, std::string& support_groups, int ec_point_formats);
|
|
69
|
+
|
|
70
|
+
void setOnPublishCallback(BaoCurlOnPublishCallback callback);
|
|
63
71
|
|
|
64
72
|
enum HttpVersion
|
|
65
73
|
{
|
|
@@ -68,12 +76,13 @@ public:
|
|
|
68
76
|
};
|
|
69
77
|
void setHttpVersion(HttpVersion);
|
|
70
78
|
unsigned int getLastCurlCode();
|
|
71
|
-
const char
|
|
79
|
+
const char* getLastCurlCodeError();
|
|
72
80
|
curl_off_t getResponseContentLength();
|
|
81
|
+
friend class BaoCurlMulti;
|
|
73
82
|
|
|
74
83
|
private:
|
|
75
|
-
CURL
|
|
76
|
-
struct curl_slist
|
|
84
|
+
CURL* m_pCURL = NULL;
|
|
85
|
+
struct curl_slist* m_pHeaders = NULL;
|
|
77
86
|
std::string m_method = "GET";
|
|
78
87
|
struct Stream_st m_stream;
|
|
79
88
|
// struct curl_slist* m_cookies = NULL;
|
|
@@ -81,8 +90,28 @@ private:
|
|
|
81
90
|
bool m_bIsHttps = false;
|
|
82
91
|
bool m_verbose = false;
|
|
83
92
|
CURLcode m_lastCode;
|
|
84
|
-
|
|
93
|
+
BaoCurlOnPublishCallback m_publishCallback = nullptr;
|
|
85
94
|
void init();
|
|
95
|
+
|
|
96
|
+
std::unique_ptr<const char[]> m_postdata;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
class BaoCurlMulti {
|
|
100
|
+
public:
|
|
101
|
+
BaoCurlMulti();
|
|
102
|
+
~BaoCurlMulti();
|
|
103
|
+
void pushQueue(BaoCurl& curl);
|
|
104
|
+
void startThread();
|
|
105
|
+
private:
|
|
106
|
+
CURLM* m_pCURLM = nullptr;
|
|
107
|
+
CURLMcode m_lastCode;
|
|
108
|
+
std::mutex m_lock;
|
|
109
|
+
|
|
110
|
+
bool m_bRunning = true;
|
|
111
|
+
std::thread m_thread;
|
|
112
|
+
|
|
86
113
|
};
|
|
87
114
|
|
|
115
|
+
NAMESPACE_BAO_END
|
|
116
|
+
|
|
88
117
|
#endif // !_CURL_H
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
#include "curlAysncWorker.h"
|
|
2
|
-
|
|
3
|
-
curlAsyncWorker::curlAsyncWorker(const Napi::Function &callback, BaoCurl &baoCurlInstance, const char *body, size_t bodySize)
|
|
4
|
-
: Napi::AsyncWorker(callback), m_baoCurlInstance(baoCurlInstance)
|
|
5
|
-
{
|
|
6
|
-
this->m_sendBody = (char *)malloc(bodySize);
|
|
7
|
-
this->m_bodySize = bodySize;
|
|
8
|
-
memcpy(this->m_sendBody, body, bodySize);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
curlAsyncWorker::~curlAsyncWorker()
|
|
12
|
-
{
|
|
13
|
-
free(m_sendBody);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// Executed inside the worker-thread.
|
|
17
|
-
// It is not safe to access JS engine data structure
|
|
18
|
-
// here, so everything we need for input and output
|
|
19
|
-
// should go on `this`.
|
|
20
|
-
void curlAsyncWorker::Execute()
|
|
21
|
-
{
|
|
22
|
-
this->m_baoCurlInstance.sendByte(this->m_sendBody, this->m_bodySize);
|
|
23
|
-
this->m_lastCurlCode = this->m_baoCurlInstance.getLastCurlCode();
|
|
24
|
-
if (this->m_lastCurlCode != 0)
|
|
25
|
-
{
|
|
26
|
-
this->m_lastCurlCodeError = this->m_baoCurlInstance.getLastCurlCodeError();
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// Executed when the async work is complete
|
|
32
|
-
// this function will be run inside the main event loop
|
|
33
|
-
// so it is safe to use JS engine data again
|
|
34
|
-
void curlAsyncWorker::OnOK()
|
|
35
|
-
{
|
|
36
|
-
Napi::Env env = Env();
|
|
37
|
-
Napi::HandleScope scope(env);
|
|
38
|
-
/* std::string str = this->m_baoCurlInstance.getResponseBody();
|
|
39
|
-
size_t strLen = str.size();
|
|
40
|
-
Napi::Uint8Array u8buffer = Napi::Uint8Array::New(Env(), strLen);
|
|
41
|
-
memcpy(u8buffer.Data(), strLen, str.c_str(), strLen); */
|
|
42
|
-
Callback().Call({
|
|
43
|
-
Napi::Number::New(env,this->m_lastCurlCode),
|
|
44
|
-
Napi::String::New(env,this->m_lastCurlCodeError),
|
|
45
|
-
});
|
|
46
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
#include <napi.h>
|
|
2
|
-
#include "bao_curl.h"
|
|
3
|
-
|
|
4
|
-
class curlAsyncWorker : public Napi::AsyncWorker
|
|
5
|
-
{
|
|
6
|
-
public:
|
|
7
|
-
curlAsyncWorker(const Napi::Function &callback, BaoCurl &baoCurlInstance, const char *sendBody, size_t bodySize);
|
|
8
|
-
~curlAsyncWorker();
|
|
9
|
-
void Execute();
|
|
10
|
-
void OnOK();
|
|
11
|
-
|
|
12
|
-
private:
|
|
13
|
-
BaoCurl &m_baoCurlInstance;
|
|
14
|
-
char* m_sendBody = nullptr;
|
|
15
|
-
size_t m_bodySize;
|
|
16
|
-
unsigned int m_lastCurlCode = 0;
|
|
17
|
-
const char* m_lastCurlCodeError = "";
|
|
18
|
-
};
|