Skip to content

Commit

Permalink
WIP: save at 2024-04-29 12:59:30
Browse files Browse the repository at this point in the history
  • Loading branch information
perkfly committed Apr 29, 2024
1 parent 43362ef commit 532905a
Showing 1 changed file with 81 additions and 15 deletions.
96 changes: 81 additions & 15 deletions chrome/patches/curl-impersonate.patch
Original file line number Diff line number Diff line change
Expand Up @@ -146,12 +146,17 @@ index 54f92d931..ea5895e9b 100644
exit 1
diff --git a/export.sh b/export.sh
new file mode 100755
index 000000000..c237ee2ad
index 000000000..7bced6879
--- /dev/null
+++ b/export.sh
@@ -0,0 +1,4 @@
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# TODO: use cmake to generate mingw makefile, see:
+#
+# 1. https://github.com/curl/curl/pull/13244/files
+# 2. https://everything.curl.dev/build/windows.html
+
+git df curl-8_7_1 > chrome.patch
+mv chrome.patch ../curl-impersonate/chrome/patches/curl-impersonate.patch
diff --git a/include/curl/curl.h b/include/curl/curl.h
Expand Down Expand Up @@ -3715,26 +3720,87 @@ index dfa74d81f..bf280f986 100644

struct GlobalConfig {
diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index c6a9c9358..15e2ccdf4 100644
index c6a9c9358..c04aa954e 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -358,6 +358,7 @@ struct LongShort {
@@ -77,6 +77,7 @@ static ParameterError getstr(char **str, const char *val, bool allowblank)
typedef enum {
C_ABSTRACT_UNIX_SOCKET,
C_ALPN,
+ C_ALPS,
C_ALT_SVC,
C_ANYAUTH,
C_APPEND,
@@ -87,6 +88,7 @@ typedef enum {
C_CACERT,
C_CAPATH,
C_CERT,
+ C_CERT_CERT_COMPRESSION,
C_CERT_STATUS,
C_CERT_TYPE,
C_CIPHERS,
@@ -123,6 +125,7 @@ typedef enum {
C_DOH_INSECURE,
C_DOH_URL,
C_DUMP_HEADER,
+ C_ECH,
C_EGD_FILE,
C_ENGINE,
C_EPRT,
@@ -166,6 +169,10 @@ typedef enum {
C_HTTP1_1,
C_HTTP2,
C_HTTP2_PRIOR_KNOWLEDGE,
+ C_HTTP2_PSEUDO_HEADERS_ORDER,
+ C_HTTP2_SETTINGS,
+ C_HTTP2_WINDOW_UPDATE,
+ C_HTTP2_STREAMS,
C_HTTP3,
C_HTTP3_ONLY,
C_IGNORE_CONTENT_LENGTH,
@@ -283,6 +290,7 @@ typedef enum {
C_SESSIONID,
C_SHOW_ERROR,
C_SILENT,
+ C_SIGNATURE_HASHES,
C_SOCKS4,
C_SOCKS4A,
C_SOCKS5,
@@ -299,6 +307,7 @@ typedef enum {
C_SSL_NO_REVOKE,
C_SSL_REQD,
C_SSL_REVOKE_BEST_EFFORT,
+ CURLOPT_SSL_PERMUTE_EXTENSIONS,
C_SSLV2,
C_SSLV3,
C_STDERR,
@@ -312,6 +321,9 @@ typedef enum {
C_TFTP_NO_OPTIONS,
C_TIME_COND,
C_TLS_MAX,
+ C_TLS_SESSION_TICKET,
+ C_TLS_EXTENSION_ORDER,
+ C_TLS_GREASE,
C_TLS13_CIPHERS,
C_TLSAUTHTYPE,
C_TLSPASSWORD,
@@ -358,6 +370,7 @@ struct LongShort {
static const struct LongShort aliases[]= {
{"abstract-unix-socket", ARG_FILE, ' ', C_ABSTRACT_UNIX_SOCKET},
{"alpn", ARG_BOOL, ' ', C_ALPN},
+ {"alps", ARG_BOOL, ' ', C_ALPS}, // curl-impersonate
{"alt-svc", ARG_STRG, ' ', C_ALT_SVC},
{"anyauth", ARG_BOOL, ' ', C_ANYAUTH},
{"append", ARG_BOOL, 'a', C_APPEND},
@@ -368,6 +369,7 @@ static const struct LongShort aliases[]= {
@@ -368,6 +381,7 @@ static const struct LongShort aliases[]= {
{"cacert", ARG_FILE, ' ', C_CACERT},
{"capath", ARG_FILE, ' ', C_CAPATH},
{"cert", ARG_FILE, 'E', C_CERT},
+ {"cert-compression", ARG_STRG, ' ', C_CERT_CERT_COMPRESSION}, // curl-impersonate
{"cert-status", ARG_BOOL, ' ', C_CERT_STATUS},
{"cert-type", ARG_STRG, ' ', C_CERT_TYPE},
{"ciphers", ARG_STRG, ' ', C_CIPHERS},
@@ -404,6 +406,9 @@ static const struct LongShort aliases[]= {
@@ -404,6 +418,9 @@ static const struct LongShort aliases[]= {
{"doh-insecure", ARG_BOOL, ' ', C_DOH_INSECURE},
{"doh-url" , ARG_STRG, ' ', C_DOH_URL},
{"dump-header", ARG_FILE, 'D', C_DUMP_HEADER},
Expand All @@ -3744,7 +3810,7 @@ index c6a9c9358..15e2ccdf4 100644
{"egd-file", ARG_STRG, ' ', C_EGD_FILE},
{"engine", ARG_STRG, ' ', C_ENGINE},
{"eprt", ARG_BOOL, ' ', C_EPRT},
@@ -447,6 +452,10 @@ static const struct LongShort aliases[]= {
@@ -447,6 +464,10 @@ static const struct LongShort aliases[]= {
{"http1.1", ARG_NONE, ' ', C_HTTP1_1},
{"http2", ARG_NONE, ' ', C_HTTP2},
{"http2-prior-knowledge", ARG_NONE, ' ', C_HTTP2_PRIOR_KNOWLEDGE},
Expand All @@ -3755,15 +3821,15 @@ index c6a9c9358..15e2ccdf4 100644
{"http3", ARG_NONE, ' ', C_HTTP3},
{"http3-only", ARG_NONE, ' ', C_HTTP3_ONLY},
{"ignore-content-length", ARG_BOOL, ' ', C_IGNORE_CONTENT_LENGTH},
@@ -564,6 +573,7 @@ static const struct LongShort aliases[]= {
@@ -564,6 +585,7 @@ static const struct LongShort aliases[]= {
{"sessionid", ARG_BOOL, ' ', C_SESSIONID},
{"show-error", ARG_BOOL, 'S', C_SHOW_ERROR},
{"silent", ARG_BOOL, 's', C_SILENT},
+ {"signature-hashes", ARG_STRG, ' ', C_SIGNATURE_HASHES}, // curl-impersonate
{"socks4", ARG_STRG, ' ', C_SOCKS4},
{"socks4a", ARG_STRG, ' ', C_SOCKS4A},
{"socks5", ARG_STRG, ' ', C_SOCKS5},
@@ -593,6 +603,10 @@ static const struct LongShort aliases[]= {
@@ -593,6 +615,10 @@ static const struct LongShort aliases[]= {
{"tftp-no-options", ARG_BOOL, ' ', C_TFTP_NO_OPTIONS},
{"time-cond", ARG_STRG, 'z', C_TIME_COND},
{"tls-max", ARG_STRG, ' ', C_TLS_MAX},
Expand All @@ -3774,7 +3840,7 @@ index c6a9c9358..15e2ccdf4 100644
{"tls13-ciphers", ARG_STRG, ' ', C_TLS13_CIPHERS},
{"tlsauthtype", ARG_STRG, ' ', C_TLSAUTHTYPE},
{"tlspassword", ARG_STRG, ' ', C_TLSPASSWORD},
@@ -1434,6 +1448,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
@@ -1434,6 +1460,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
case C_ALPN: /* --alpn */
config->noalpn = (!toggle)?TRUE:FALSE;
break;
Expand All @@ -3784,7 +3850,7 @@ index c6a9c9358..15e2ccdf4 100644
case C_LIMIT_RATE: /* --limit-rate */
err = GetSizeParameter(global, nextarg, "rate", &value);
if(!err) {
@@ -1865,6 +1882,19 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
@@ -1865,6 +1894,19 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
case C_TLS_MAX: /* --tls-max */
err = str2tls_max(&config->ssl_version_max, nextarg);
break;
Expand All @@ -3804,7 +3870,7 @@ index c6a9c9358..15e2ccdf4 100644
case C_SUPPRESS_CONNECT_HEADERS: /* --suppress-connect-headers */
config->suppress_connect_headers = toggle;
break;
@@ -1914,6 +1944,28 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
@@ -1914,6 +1956,28 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
return PARAM_LIBCURL_DOESNT_SUPPORT;
sethttpver(global, config, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE);
break;
Expand Down Expand Up @@ -3833,7 +3899,7 @@ index c6a9c9358..15e2ccdf4 100644
case C_HTTP3: /* --http3: */
/* Try HTTP/3, allow fallback */
if(!feature_http3)
@@ -2033,6 +2085,18 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
@@ -2033,6 +2097,18 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
case C_DUMP_HEADER: /* --dump-header */
err = getstr(&config->headerfile, nextarg, DENY_BLANK);
break;
Expand All @@ -3852,7 +3918,7 @@ index c6a9c9358..15e2ccdf4 100644
case C_REFERER: { /* --referer */
char *ptr = strstr(nextarg, ";auto");
if(ptr) {
@@ -2051,6 +2115,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
@@ -2051,6 +2127,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
cleanarg(clearthis);
GetFileAndPassword(nextarg, &config->cert, &config->key_passwd);
break;
Expand All @@ -3862,7 +3928,7 @@ index c6a9c9358..15e2ccdf4 100644
case C_CACERT: /* --cacert */
err = getstr(&config->cacert, nextarg, DENY_BLANK);
break;
@@ -2555,6 +2622,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
@@ -2555,6 +2634,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
case C_SILENT: /* --silent */
global->silent = toggle;
break;
Expand Down

0 comments on commit 532905a

Please sign in to comment.