Skip to content

Commit 8b13a54

Browse files
committed
取消https缓存连接
1 parent a21a92c commit 8b13a54

17 files changed

Lines changed: 110 additions & 148 deletions

.github/workflows/windows.yml

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -54,41 +54,19 @@ jobs:
5454
5555
- name: Package
5656
run: |
57-
xmake pack -y -o ./package -F action_xmake.lua
57+
xmake pack -y -o ./ -F action_xmake.lua
5858
5959
- name: Upload Artifact
6060
uses: actions/upload-artifact@v4
6161
with:
6262
name: hcpp-artifact
63-
path: ./package/*
63+
path: ./*.zip
6464

6565
- name: Release
6666
uses: softprops/action-gh-release@v1
6767
if: startsWith(github.ref, 'refs/tags/')
6868
with:
69-
draft: true
69+
# draft: true
7070
# body_path: ${{ github.workspace }}-CHANGELOG.txt
71-
files: ./package/*
71+
files: ./*.zip
7272
generate_release_notes: true
73-
74-
75-
# - name: Create Release
76-
# id: create_release
77-
# uses: actions/create-release@v1
78-
# env:
79-
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
80-
# with:
81-
# tag_name: ${{ github.ref }}
82-
# release_name: Release ${{ github.ref }}
83-
# draft: false
84-
# prerelease: false
85-
86-
# - name: Upload Release Asset
87-
# uses: actions/upload-release-asset@v1
88-
# env:
89-
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
90-
# with:
91-
# upload_url: ${{ steps.create_release.outputs.upload_url }}
92-
# asset_path: ${{ steps.sign_app.outputs.signedReleaseFile }}
93-
# asset_name: my-tv-${{ github.ref_name }}.apk
94-
# asset_content_type: application/vnd.android.package-archive

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ linux下使用clang>16,在debug下编译
2020

2121
windows使用最新编译器
2222

23+
打开终端或`wt`
24+
2325
```shell
2426
xmake g --proxy_pac=github_mirror.lua
2527

@@ -30,7 +32,7 @@ windows使用最新编译器
3032

3133
#### 例子
3234

33-
当前测试了三个主机,`github.com`,`www.gitee.com`,`www.baidu.com`.这三者由mitm代理.使用下面的自签名的`ca证书`,签名了服务的证书.服务的证书包含了上述三个主机名
35+
当前测试了三个主机,`github.com`,`gitee.com`,`www.baidu.com`.这三者由mitm代理.使用下面的自签名的`ca证书`,签名了服务的证书.服务的证书包含了上述三个主机名
3436

3537
其余主机都是正常的http proxy或者http tunnel代理
3638

doc/cert/ca.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
[alt_names]
5757
DNS.1 = github.com
5858
DNS.2 = www.baidu.com
59-
DNS.3 = www.gitee.com
59+
DNS.3 = gitee.com
6060

6161
然后,使用以下命令生成证书和密钥文件:
6262

doc/cert/server.crt.pem

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
-----BEGIN CERTIFICATE-----
2-
MIID5zCCAs+gAwIBAgIUF9qnNGO/xOXUq4so+yJrCsMTYeUwDQYJKoZIhvcNAQEL
2+
MIIEDjCCAvagAwIBAgIUYOZRuCxxLM1NbcV6gDMI7kmtYqEwDQYJKoZIhvcNAQEL
33
BQAwgYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
44
DA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQKDApNeSBDb21wYW55MRQwEgYDVQQDDAtl
55
eGFtcGxlLmNvbTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5jb20wHhcN
6-
MjQwMTI5MTUzODEyWhcNMjUwMTI4MTUzODEyWjBaMQswCQYDVQQGEwJYWDEOMAwG
6+
MjQwMjA3MTIwNTUxWhcNMjUwMjA2MTIwNTUxWjBaMQswCQYDVQQGEwJYWDEOMAwG
77
A1UECAwFU3RhdGUxETAPBgNVBAcMCExvY2FsaXR5MRUwEwYDVQQKDAxPcmdhbml6
88
YXRpb24xETAPBgNVBAMMCG5vZGUxLnBjMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
9-
MIIBCgKCAQEAm/MsCnEItHUNWUgZyyE9dD7AGs364YLR1H2lJ8ffDitH1RzvNedQ
10-
86j1a6IjcJs0oFeznHA+yFJWCl4FaKj01M89wDS/kSWOHNBr+81Utj//v02GrPrJ
11-
1UTlf41vymIZ5DY7Ea5JRpbMf94VFBKMifCKZO+bPqDi4bwW8nh73LyXpZodT5G3
12-
/VXQR+hmIdnhDNkShMW0g20iIS1DzOIY5JzIe4KYXbCb1JmzJtOHCLcKZneDv8+x
13-
qUleovCxKvmPZ+qNl8EGCi3k7m+nC9987OWrCDrfhdTulT4mDEdgGXxFsPludBPc
14-
pZNq90avDZUIlutE17qUGEBJx6Mpvk8fVQIDAQABo3cwdTAzBgNVHREELDAqggpn
15-
aXRodWIuY29tgg13d3cuYmFpZHUuY29tgg13d3cuZ2l0ZWUuY29tMB0GA1UdDgQW
16-
BBTrPrXXvo/P1dA4EzXyLA0Q72sCnzAfBgNVHSMEGDAWgBSTBZg/jW3U771Qa0Y0
17-
q/1nEbnlwjANBgkqhkiG9w0BAQsFAAOCAQEAWIYm28+wxlFrk7NKwtPvN4ugIZUw
18-
9v8edv/qJo9/IWCBaC1y47MBDyfAycA2Kpe45BHthjRp59nIiaPytimWhp+0qUKA
19-
BB/3iAuZZyl0brJ0C7A5fkrJ/geISk/Kx1MbNv/WcaPaE2QtfTZdhk6eR9MJiHXp
20-
vN4yNr9tdFzUlyOO1oB4g0o9C169ORVNN4EX3rSLyqJn1/PRm623oYMidVVxfAVn
21-
FS0uKvUo3S5+8lEyrnvkMYIOkJ5LEvB0ILolli4v7PbCyML15K7n41R32BwJSEP3
22-
J1twLZw2P5ZiQS5TKW+lifNR4+ciE5WPwGii2n8t/da/KrzVweYjE29WpA==
9+
MIIBCgKCAQEA267VvZWv3fzlNyTeLN97j/6FhWA4NdkphncwLS6jmNKJ89870AbH
10+
1lp6trdt41xhusDRKFSF7JpBv0G68zth2WfjBAeSn6NfJvhXRU6TyHBMwSDNvJDN
11+
QLaqcLs6E52FCcwjKTrp9g8w9Pcb9DvDkEKBqeq5GYZ4MmQKOrbTmv7lKrOL3jfd
12+
rf/DyJQDqXk8JnKgfX+UWTlEfyGVaNvbQ1T/+nMNj2wrk4yhZ4fgEZbD/K2GY9su
13+
uhBD/Dpmga3W0EnHKZMG7JXG5cNdDX9nUf3FTzuurwL5gav1yQw4uX5CguGjgB1S
14+
v/MCiqaZd2d7rCHF6EbMXsPpV73ZwlMjFwIDAQABo4GdMIGaMFgGA1UdEQRRME+C
15+
CmdpdGh1Yi5jb22CCWdpdGVlLmNvbYIXZ2l0aHViLmdpdGh1YmFzc2V0cy5jb22C
16+
HWF2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB0GA1UdDgQWBBQfyO8YQSmz
17+
Yp64B13ZOEehwWyqfjAfBgNVHSMEGDAWgBSTBZg/jW3U771Qa0Y0q/1nEbnlwjAN
18+
BgkqhkiG9w0BAQsFAAOCAQEATnrd3IUYNpD1JGbiHmQ0sehxat6D5OY4zff1Osg7
19+
o3qeMYFSFWi7K3hbQOJphFJx+McmacP4kP/mkNv5/orFqM/JLYsJNtPbQbzMfDUc
20+
cB5WBKz1zKWR1IGMnvcCZhJp/ceipRCoDUuEGpBDq0eHLAHZbmG6br48TQxDIJ7T
21+
LTb+UkEp9DxjbaNMcsdr/wtQiByFCe75vkmR0nyu/7MVX1vpF4iVhcVX0UcoDtSf
22+
Z2eXyHb4Zk6FZ/TY/4b3LXRxSbVUtKSrrx/gW2YMuQ4JGdGynUFC7APjZUEC231G
23+
GlcNS68HCt+4bZaoCs+i3Z4d/kNv50Uk8Ujvh5qsMmgiNQ==
2324
-----END CERTIFICATE-----

doc/cert/server.key.pem

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
-----BEGIN PRIVATE KEY-----
2-
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCb8ywKcQi0dQ1Z
3-
SBnLIT10PsAazfrhgtHUfaUnx98OK0fVHO8151DzqPVroiNwmzSgV7OccD7IUlYK
4-
XgVoqPTUzz3ANL+RJY4c0Gv7zVS2P/+/TYas+snVROV/jW/KYhnkNjsRrklGlsx/
5-
3hUUEoyJ8Ipk75s+oOLhvBbyeHvcvJelmh1Pkbf9VdBH6GYh2eEM2RKExbSDbSIh
6-
LUPM4hjknMh7gphdsJvUmbMm04cItwpmd4O/z7GpSV6i8LEq+Y9n6o2XwQYKLeTu
7-
b6cL33zs5asIOt+F1O6VPiYMR2AZfEWw+W50E9ylk2r3Rq8NlQiW60TXupQYQEnH
8-
oym+Tx9VAgMBAAECggEAHcaLNR8p21KyDsbubdNV6XkFsth7O02ABMNMolDOLOVk
9-
nLMelTsqQKuU2E0n2Rs5LBgyqf7gbd0Son4bKEWCIZPEJYusu+jgvm2pAHXO49FK
10-
YltKCIMFwFucOgNmQc0DRoh4NMMDKKAoQY3EloWIIdo0glshWA7d4t3Hv9nzREzN
11-
jjH9evSHLg3X97xuvhiWsfzlVTyxyA6qD56+dTEBPOQy+0/R6IWBdw9zmNVfaHEI
12-
cZrfNY9aUDOxP2hOZ8S3u7OLOWPC3ZJet04/zZOvT2JUh1TZY/bmv9fIdLAjbPLg
13-
t23ue81SU0nD79GFIM+3AhwZvRNPDRhFvX1O672prQKBgQDNz5RhxDgYlSpekH9N
14-
do+coCg/jH7odAMr6eZNRS9iPT10oQbvSVfKFkmf8Lf5/sGWBUTh+wg1Uc1Ftu0m
15-
74kBZlmt0JX4rz0AWJWVEhdDKKCismlyyzGCskeBKqbi3SndvyF9MIjGn/haOoDz
16-
uoFZZhp1ReSBQjLq/vOOmUW7nwKBgQDB+tt98bmxr2LTVWeyBFHXXicmmjTvrxXK
17-
y/RpFGyXuOrBn990IBTwAr+5rZuOZJo2B2Xigv4x5sxJTgUuNRMRjBDYT9prS31l
18-
xLP5Tlk4C/bhzEQu8pEI7tbN3vm/j5+lAfjh/JNzdwGuhgk0qI6AcjMTwUduyjMz
19-
qWyN7WXAiwKBgQCQxXfG3dPn1uWa52HlB4U106L8MMQEl7azaTDLIeOW4yUbqTnL
20-
kHfke5EGpLmFbSKXeNVfcMnxV71hUK+5N73T8j8a+SLFb98lIyr1VWhvoWB9kaqD
21-
SVNmcCnEPlBuPMx6YzwXZ9COh3CXZ5fV2leqnxv1ali2Y+6VRwnkQQTAWQKBgQCk
22-
uwtBBlGjAoVTYRjhhWeXFN78mkJQNYi1IsUZo32gzymVatZRgJknRb5ZyYPrxaVs
23-
MpYkaQfDivN7YSVnGy1pXmBDwnSDX6VLEmOgWRfNT+PF1zkkAVyHkIScajn/otF5
24-
SJZ6G4uAp9SmyC7zKB10GQclRKMMA+y9d6i3Up5xhwKBgD5R8Gy2waTLdj+sYE5+
25-
D3PNLp5z5tyeTYCZElI/K1Ik/+IkM8YItiNi+vhFxDpKZh0iauuOc1Bu48CSxxel
26-
/nBshpZLHwJww3cpGtFKcYrx+xLx6B7a4Y4ViHGGyoOe+O91Cr4nVAAXwHcyKRjm
27-
9mYR6a5w/MeUXEa1lvOWUafj
2+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDbrtW9la/d/OU3
3+
JN4s33uP/oWFYDg12SmGdzAtLqOY0onz3zvQBsfWWnq2t23jXGG6wNEoVIXsmkG/
4+
QbrzO2HZZ+MEB5Kfo18m+FdFTpPIcEzBIM28kM1AtqpwuzoTnYUJzCMpOun2DzD0
5+
9xv0O8OQQoGp6rkZhngyZAo6ttOa/uUqs4veN92t/8PIlAOpeTwmcqB9f5RZOUR/
6+
IZVo29tDVP/6cw2PbCuTjKFnh+ARlsP8rYZj2y66EEP8OmaBrdbQSccpkwbslcbl
7+
w10Nf2dR/cVPO66vAvmBq/XJDDi5fkKC4aOAHVK/8wKKppl3Z3usIcXoRsxew+lX
8+
vdnCUyMXAgMBAAECggEAMD2u6yBtS8KmtRrP/SugTykVugm8njqPb1tKBYn52+vT
9+
5m1NjauHg68/xlL2exiEz4VbCM+yzxe6u1ycSKBwJtU02WQuUwcFtKGRTINqWXgr
10+
qrdg5nkn0X+rYvECWl9bYSDmUb4BtYp1dj2zckkTc2DfZ2hHeG76gxpL0sPmKOFL
11+
RDoE1XSXNGUDdPktTeeGARnogERT8uc5Ftu2NLsk7tyhv4dQMTw3Cciz+xkXidOW
12+
L24alB3y7sMbRSQLmg6eqxgxdoUMgimxeg+qrvHxqb4YsCzml0rsr0/PfVZNt49E
13+
ppidS+QnyG4JBcl7o8oE44K4SGmo8uOFzjwdJkBYSQKBgQD3PpUNPr7Pw+mxjECG
14+
yw+P4fMeE/x73paEBJJ9CAF58pM2yJqkm/IG53tXLUEGPb18cX6mCRkcw/xOqXbZ
15+
g06yLfu+3pK+o9GIVi2V8oE0viQkXVQW9auGgjsmaAiyl6zv7+qymGehi1C2ZK5Z
16+
xkmprupQ05Lnft6cs0CPZXehSQKBgQDjdmQnBmf0/AEHxHmoDqqjKGKg2oq2zKwX
17+
QeXfy3qIstcjh5VxKxyScZEF2mD9A6J9yerPM+PkyL5sO8jiB1eGlNLiFHiOqy9/
18+
DoB7GBmgCxSP/yxSZAdbnqwqCMdYYhG2XmVBx4gWv5uuWgbqoeMLbUxzgRZz1EfM
19+
a4hkdeUBXwKBgQChypwzDKpEv0k/3C2lh1/pocw8FIwWavRH884Ab6q3qFtZcDBy
20+
I3Jfvj7iL0Tr1p8WvhZIhI+gWUfUGeUiNWDcDGc+4dtZUU4eT3aJNyYB46M3ALO0
21+
SpMx9CrM2StH4yVR5cfJkx3NgqMQmBXXvYAav9GpjqoFPuph1JMcwyNjsQKBgG1q
22+
VNDk5vrUghZfb3nk3DYxxgfEOHeoSpvBajdV5PJ+vLhtjvhqGYtkL7OWEZODvRUv
23+
HNFhD53M5rSfqYj4qSSm0C5KVJekRuuiaTFNLX5r9g8yWvqi/VsYH470vBeKzSRh
24+
kemrdo4iy1t6GNui1dl4UQ86qDc9hPATRf+1KlyXAoGBANvOqXKggehmB2vfJIU+
25+
mRPGaNeQhBcmK8E/X86H1AhP8iXt1PuNuLIRYYRkrsNQUJmHmkQKqx6hZ16PhgiD
26+
HZO0MFvR7et9O74gVW9PrwzUWra/XPWcQ6tI4BHISj0Tk3ym67kB6XNGgFApgM69
27+
vAePjHwlNiVOmW1gBheTnjXw
2828
-----END PRIVATE KEY-----

main.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ int main(int argc, char **argv)
5252
}
5353
auto c = hcpp::config::get_config(cfg_path);
5454
c->config_to(hcpp::slow_dns::get_slow_dns());
55-
c->save_callback([sd = hcpp::slow_dns::get_slow_dns()](auto &&cs)
56-
{ sd->save_hm(cs.hm_); });
55+
// c->save_callback([sd = hcpp::slow_dns::get_slow_dns()](auto &&cs)
56+
// { sd->save_hm(cs.hm_); });
5757

5858
asio::io_context io_context;
5959

@@ -76,13 +76,14 @@ int main(int argc, char **argv)
7676

7777
co_spawn(io_context, hs.wait_http(c->get_port()), detached);
7878
co_spawn(io_context, mhs.wait_c(10), detached);
79+
// co_spawn(io_context, []()->asio::awaitable<void>{co_await hcpp::nc->async_send(asio::error_code{}, "ok");}, detached);
7980

80-
auto create_thread = [&io_context](auto self, int i) -> void
81+
auto create_thread = [&](auto self, int i) -> void
8182
{
8283
if (i > 0)
8384
{
84-
std::jthread j(self, self, i - 1);
8585
spdlog::debug("线程{}创建成功",i);
86+
std::jthread j(self, self, i - 1);
8687
while (!io_context.stopped())
8788
{
8889
try

src/dns.cpp

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -128,41 +128,18 @@ namespace hcpp
128128

129129
awaitable<edp_lists> slow_dns::resolve(host_edp hedp)
130130
{
131-
if (auto r = resolve_cache(hedp); !r)
132-
{
133-
auto ip_edp = co_await imp_->resolve(hedp);
134-
local_dns.insert({hedp, ip_edp});
135-
136-
for (auto &&i : ip_edp)
137-
{
138-
spdlog::debug("{} => {} {}", hedp.first, i.address().to_string(), i.port());
139-
}
140-
spdlog::debug("当前线程已缓存endpoint查询 {} 个", local_dns.size());
131+
auto ip_edp = co_await imp_->resolve(hedp);
141132

142-
co_return ip_edp;
143-
}
144-
else
133+
for (auto &&i : ip_edp)
145134
{
146-
co_return r.value();
135+
spdlog::debug("{} => {} {}", hedp.first, i.address().to_string(), i.port());
147136
}
148-
}
149137

150-
std::optional<edp_lists> slow_dns::resolve_cache(host_edp hedp)
151-
{
152-
153-
if (auto ip_cache = local_dns.find(hedp); ip_cache != local_dns.end())
154-
{
155-
return {ip_cache->second};
156-
}
157-
else
158-
{
159-
return std::nullopt;
160-
}
138+
co_return ip_edp;
161139
}
162140

163141
void slow_dns::remove_svc(const host_edp &hedp, std::string_view ip)
164142
{
165-
local_dns.erase(hedp);
166143
imp_->remove(hedp);
167144
// TODO 全局缓存中对应条目,降低优先级或者直接取消这个ip
168145
}

src/dns.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ namespace hcpp
2929

3030
public:
3131
awaitable<edp_lists> resolve(host_edp hedp);
32-
std::optional<edp_lists> resolve_cache(host_edp hedp);
3332
void remove_svc(const host_edp & hedp, std::string_view ip);
3433

3534
void load_hm(const std::vector<host_mapping> & hm);
@@ -44,8 +43,6 @@ namespace hcpp
4443
private:
4544
slow_dns();
4645

47-
inline static thread_local std::map<host_edp, edp_lists> local_dns;
48-
4946
struct slow_dns_imp;
5047
std::shared_ptr<slow_dns_imp> imp_;
5148
};

src/dns/dnshttps.cc

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -484,20 +484,12 @@ namespace harddns
484484
std::cout << "读取数量正确" << std::endl;
485485
}
486486

487-
std::cout << reply << std::endl;
488-
489487
auto ibb = 0;
490488
for (auto &&i : reply.substr(fr))
491489
std::cout << (((unsigned int)i) & 255) << " ";
492490
std::cout << std::endl;
493491
auto r = parse_rfc8484(name, qtype, result, raw, reply, content_idx, cl);
494-
// // else
495-
// // r = parse_json(name, qtype, result, raw, reply, content_idx, cl);
496492

497-
// if (r >= 0)
498-
// co_return r;
499-
// continue;
500-
// }
501493
std::cout << "------" << std::endl;
502494
for (auto &&i : result)
503495
{

src/hcpp-cfg.json

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"host_":"avatars.githubusercontent.com",
3030
"svc_":"443", //端口或服务名.例如 http https
3131
"url_":"", //暂未使用
32-
"mitm_":false,
32+
"mitm_":true,
3333
"doh_":true,
3434
"sni_host_":"", //假的主机名
3535
"close_sni_":false //默认就是false.优先级高于sni_host_
@@ -39,10 +39,21 @@
3939
"host_":"github.githubassets.com",
4040
"svc_":"443", //端口或服务名.例如 http https
4141
"url_":"", //暂未使用
42-
"mitm_":false,
42+
"mitm_":true,
4343
"doh_":true,
4444
"sni_host_":"", //假的主机名
4545
"close_sni_":false //默认就是false.优先级高于sni_host_
4646
}
47+
,
48+
{
49+
50+
"host_":"gitee.com",
51+
"svc_":"443", //端口或服务名.例如 http https
52+
"url_":"", //暂未使用
53+
"mitm_":true,
54+
"doh_":false,
55+
"sni_host_":"", //假的主机名
56+
"close_sni_":false //默认就是false.优先级高于sni_host_
57+
}
4758
]
4859
}

0 commit comments

Comments
 (0)