CURLOPT_CONNECT_TO เปลี่ยนอะไรเมื่อใช้พร็อกซี
ใช้การแมป connect-to ของ libcurl สำหรับปลายทางเครือข่ายทางเลือก แทนการสันนิษฐานว่ามันใช้งาน HTTP หรือ SOCKS ที่ที่อยู่ใหม่
CURLOPT_CONNECT_TO เปลี่ยนโฮสต์และพอร์ตที่ libcurl เชื่อมต่อสำหรับปลายทางที่ตรงกัน มันไม่ได้ทำให้ปลายทางทางเลือกพูด HTTP CONNECT หรือ SOCKS
ชื่อโฮสต์เดิมยังคงให้ข้อมูลประจำตัวของโปรโตคอลแอปพลิเคชันและ TLS สิ่งนี้มีประโยชน์เมื่อเข้าถึงอินสแตนซ์เซิร์ฟเวอร์อื่นของบริการเดียวกันโดยเจตนา แต่ตัวรับฟังพร็อกซีใด ๆ จะคาดหวังการจับมือพร็อกซีของตัวเอง ไม่ใช่ไบต์ดิบของแอปพลิเคชัน
การรวมการแมปกับพร็อกซี HTTP
กำหนดค่าพร็อกซี HTTP แยกต่างหาก เส้นทาง HTTP ที่ไม่มีข้อมูลรับรองไปยังบริการสาธารณะอาจใช้ปลายทางจากรายการพร็อกซี HTTP เมื่อได้รับอนุญาตให้ใช้ตัวกลางนั้น ไม่ควรส่งบัญชีพร็อกซีที่มีอยู่ไปยังผู้สมัคร libcurl บันทึกว่าการแมป connect-to ที่แตกต่างกันสามารถเปลี่ยนคำขอเป็นโหมดอุโมงค์ได้: พร็อกซีเปิดการเชื่อมต่อกับปลายทางที่แมปไว้ การแมปเลือกว่าจะเข้าถึงสิ่งใดผ่านพร็อกซี มันไม่ได้แทนที่การกำหนดค่าพร็อกซี
เก็บค่าสามค่าแยกจากกัน: ชื่อบริการที่ต้องการ ปลายทางการเชื่อมต่อทางเลือก และปลายทางของพร็อกซี เลือกแต่ละตัวเลือกตามบทบาทจริงและคงการตรวจสอบชื่อ TLS ตามปกติสำหรับบริการ
หากพอร์ตพร็อกซีเองปฏิเสธการเชื่อมต่อ ตัวเลือกอื่นที่ชี้ไปยังตัวรับฟังที่ไม่มีอยู่เดียวกันไม่สามารถแก้ไขการกระโดดครั้งแรกได้ แก้ไขความล้มเหลวของตัวรับฟังหรือเส้นทางนั้นก่อนเปลี่ยนการแมปปลายทาง