Паралельныя запыты праз проксі патрабуюць асобнага валодання дэскрыптарамі libcurl
Трымайце дэскрыптары libcurl ва ўладанні аднаго патоку адначасова, калі запыты выкарыстоўваюць розныя проксі.
Параметр проксі належыць дэскрыптару libcurl easy handle. Змена гэтага параметра з аднаго патоку, пакуль другі паток выконвае перадачу на тым жа дэскрыптары, парушае правілы валодання дэскрыптарам.
libcurl бяспечны для патокаў, калі выконваюцца яго дакументаваныя правілы. Ён не сінхранізуе ўнутры адвольны адначасовы доступ да аднаго дэскрыптара. Дайце параллельным працоўным свае дэскрыптары або перадавайце валоданне толькі пасля таго, як папярэдні карыстальнік скончыў.
Інтэрфейс share мае асобныя патрабаванні да блакіровак і абмежаванні. Гэта не дазвол змяняць усе налады агульнага easy handle з кожнага працоўнага.
Старыя прыклады проксі-патокаў часта ўтрымліваюць блокіровачныя callbacks для старых версій бібліятэк TLS. Праверце актуальную дакументацыю па бяспецы патокаў для фактычнага TLS backend і зборкі. Капіраванне гістарычных callbacks OpenSSL у сучасную праграму не замяняе правільнае валоданне дэскрыптарам.
Ініцыялізуйце глабальны стан бібліятэкі згодна з дакументаванымі патрабаваннямі запуску, перш чым выкарыстоўваць яго адначасова. Для публічных запытаў, дазволеных праз публічных пасярэднікаў, бясплатны спіс проксі прапануе кандыдатаў для параметра проксі кожнага працоўнага; узгадніце пратакол са зборкай libcurl. Для кожнай няўдалай аперацыі захоўвайце наладжаны проксі дэскрыптара і ўласны вынік памылкі. Глабальная зменная “бягучы проксі” — дрэнны ідэнтыфікатар, калі некалькі перадач выконваюцца адначасова.