Asio krevur eina SOCKS5-avlan eftir at hava knýtt samband við proxy-ið
Viðgerið SOCKS5 sum eina protokoll-støðu-maskinu yvir Asio-socketið, við fullum lesingum, váttaðum svarum og TLS til málsins fyrst eftir at CONNECT eydnast.
At knýta eitt Asio TCP-socket at einum SOCKS5-lyttara fullger eitt stig: TCP-sambandið til tann lyttaran. Tað biður ikki proxy-ið um at knýta samband við endaliga servaran. Til eina loyvda roynd móti einum almennum máli bjóðar SOCKS5-proxy-listin evnar til tann fyrsta TCP-endan; sambindarin má kortini fullgera avluna niðanfyri.
Síðani má SOCKS5-sambindarin framføra protokoll-avluna:
- Send eina heilsan av versjón 5, sum listar tær váttanar-hættir, sum klienturin stuðlar.
- Les ta valdu hætt og framfør váttanar-avluna hennar, tá ið neyðugt er.
- Send CONNECT við slagi av málsadressu, adressu og porti í netbýtis-raðfylgju.
- Les svarið, kanna versjónina og úrslitskotuna, og nýt tað fulla bundnu adressuna og portið av skiftandi longd.
- Lat tað uppreista streymin yvir til protokollina hjá tólini.
Ein hjálpari, sum eitur socks5::async_proxy_connect, hoyrir til ta SOCKS-útførsluna, sum veitir tann hjálparan. At nevna hann við síðuna av boost::asio ger hann ikki til part av TCP-socket-umbúnaðinum hjá Asio.
TCP-lesingar kunnu bert geva eitt brot av einum svari. Set lesingar saman fyri tey neyðugu býtis-tølini, vel síðani ta eftirverandi longdina úr adressuslags-økinum. Ikki vænta tær, at hvørt servarasvar hevur ta fóstu IPv4-uppsetingina.
Fyri HTTPS, framfør TLS-handtakið við málið eftir at SOCKS CONNECT hevur eydnast, við at varðveita SNI og vertsnavns-váttan mássins. Eitt eydnað proxy-svar eitt sær váttar ikki heimasíðuna.
Varðveit avlýsing og tíðarfrestr gjøgnum alla uppsetingar-raðfylgjuna. Um tíðin at knýta TCP-sambandið rennur út, verða seinni heilsan-, váttanar- og CONNECT-avlurnar annars óavmarkaðar.