fix(proxy): port HTTPS-upstream TLS-wrap from deployed bridge; unify CONNECT establishment

- parseProxyConfig handles PAC 'HTTPS host:port' (tls.connect + CONNECT inside TLS) in
  both the CONNECT and plain-HTTP handlers — ports live fix d8b9db2 into the repo
- CONNECT: split tunnel establishment into establishDirect / sendConnectToProxy,
  removing the duplicate DIRECT 'connect' listener that raced onUpstreamData
- env-overridable PROFILE_FILE / REMOTES_FILE / PAC_DIR (test hermeticity)
- tests: +DIRECT echo exactly-once, +HTTPS upstream via local PAC dir + self-signed
  TLS stub (no internet needed); 8/8 pass
This commit is contained in:
tke committed 2026-09-23 14:49:07 +02:00
1 parent f434d58ef9
commit 0b8c5001fc
5 files changed
+531 -48

No files matched your search

+28
View File
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC9gb0aOGz9nged
WlD2OYbtjPLu/6SSZ5G2WnorLb+nI3lcy6bVa2iPmgynUgicE4063DC3mmLzfvMg
GU4LhyYFFQ+eQFIjJhYzOVw5hOmyFnR2LbCyBQZBZ7j49pSmgP4ShQufEurzC3xB
T37A1AxCd9MyeEutBfxnfJ6DGuOhFwnYbWW6ui5i476qSG8JW4wpPFrWy+GmOVn1
ke2gawa6UScA37hGD0PzmL1xiQvuUi/vVHCExIFRNNkEjH87loY6CuilaiooPys4
E3udzajV2HfaAQI7hVKkHtTcqM7FHZK790kERpoJezGORuWQMX1/s3pbwv6EQnlf
tRGtQ753AgMBAAECggEABoERcHjx+gfBKHwVE0kI1yu4ms4DY/2nWU7kVTRjbjp1
do3hfVRhE6ysioGc8gkUa9TAMfexNbzsXfRVuBI8vSfqj/qSgcpThhE4l8YhZI9e
EpWhiY/1QFbDA9MoFEmRGX701dIxu4MavKhx0pnJ4e4i6DSLbwt+4j5mDQc7O31z
zEHZp3qPQHjSocXX5ydNVLamI8AFSuudk/GLKP12gS1iS/kt3X9NTy1qRm3n8xf2
CDaTxs6ADoKv5XOK/xqyw7q163k7/AfBQQnX33WsGhByBp8Udvc0g07HmPffBwgv
eqUlREU7mh6zlqhCOdESCG6Ha0Icn9c7vk9K4OS8IQKBgQDnmihicfrfA4oEbhym
ytN4u9PY9/orw9nFc0zLqmGCWXBeWbjquOIefHFUtT8HQn2cMNEZR/M1L26OUkrP
2vhFMEWpgIUCqNb+rOnlA2EODQwSlh3U55cuEugPuTkSMWn7M6lcvEesK3Zk+y7m
FgMZD9W9b0qpN1/y+/6k6zPuiwKBgQDReFp+zt5pR6tRiVtkbpMZMSqSl9vCS+MW
6UFw4rG2Tod2tLeDfzwAdcgY7vPbldZFHllOu+AleQVy5NpLEuG4pLCSqSocH9W9
+vPD+sKyLwPGCQjqLINfAgsw6J5S7tceaxj5BMpJcgPYj1FCKYfw7+DKOdbiz7VZ
5zyWUOa5RQKBgGbdfVpcLYSn2cEl9uvN4icZpXoUibSuhCbCkzVSM4TlnJcLWqpF
+4h21Q8+gQQEcC3TMMv9vPO+YWgs/LVdGDACxK4IOwt3WiY7PpdM7OqEuPv4WL+b
LPZ1x0RUjBicgenkhDCAH4VEuI0ZUzc2R6H1+oTszUhjI+aULgGpxaMJAoGAbd0G
8b2Eb4l0dGZrdch9BFiCMLLPQx/UMl8SwKdVd/3GFN+B5Mkl6kPcOB+T7RawdD4P
rzjgvia0UedwCrITi2ltZu6stGWKEIN/uMlbtmLsQsDYWSIRoRIMVpGbAHpef4jC
Z1E4276d/8ZjYyUvNJJLvyUI7JruTgH3CAvUh1UCgYEA5BLu4KdrUdY2e5NaFsxQ
CdszGHfdAVCZiCSa58/f0luN+d0z6tieWJV+hLcquT2eIswICXNAVcyR95bm3JYE
cntWnjjewcm77c2ou/1DrbI6Whg6JMcyesUt/mF0YI+paZfDtdqaw4cR8oaoIhvB
FiPMbAsshl79eGLDyRyxJ9E=
-----END PRIVATE KEY-----