Codsiyadaadu way sii shaqeeyaan inta tunnel-ku dhintaan. Wi-Fi weli wuu shaqeynayaa, internet-ku weli wuu jawaabayaa, API-ga gaarka ah ee codsiga ku tiirsan yahay waa mid aan la gaari karin. Dhacdada .NET ee dadku halkan caadi ahaan u galaan, NetworkAvailabilityChanged, si dhab ah uma sharaxdo xaaladdaas. Waxay soo sheegtaa isbeddel ku yimid xaaladda guud ee mishiinka, xaaladdaasina waxay ahaan kartaa mid run ah inta lagu jiro go'a VPN iyo dib u xiriirka. Ilaaliyuhu waa inuu ilaaliyo macmiilka leh tunnel-ka, ma aha soo koobidda stack-ka shabakada.

Helitaanku waa wadar guud, ma aha tunnel-kaaga

NetworkAvailabilityChanged waxay kicisaa marka jawaabta helitaanka guud ee mishiinku isbeddelo, jawaabtaasina waxay tirisaa interface kasta oo firfircoon marka laga reebo loopback ama tunnel.

Hoos u dhaca VPN inta Wi-Fi shaqeynayo waxba kama beddelo waxa ay cabbirto, taas ayaa sabab u ah in dhacdadu aamusto si sax ah inta lagu jiro cilladda aad ka taxaddarayso.

Qulqulka xaaladdu wuxuu leeyahay macmiilka leh tunnel-ka

Aqoonso qaybta leh xiriirka: GUI ama adeega OpenVPN, OpenVPN Connect, ama geeddi-socod ay codsigaadu bilaabay oo maamusho. Kuwani waa milkiilayaal kala duwan oo leh interface kala duwan oo la taageeray, ilaaliyahuna waa inuu isticmaalo kan u dhigma daabacaadda. Geeddi-socodka OpenVPN ee aad ogolaatay inaad ku biirto, interface-ka maamulku wuxuu soo sheegaa xaaladda hadda, taariikh iyo ogeysiisyo waqtiga dhabta ah. Falanqee fariimaha qaab-dhismeedka la diiwaangeliyey halkii aad ka raadin lahayd kelmadda connected cinwaanka GUI ee la dejiyey.

Kanaalka maamulku waa dushiisa kontorool oo mudnaan leh, markaa ha furin dhageyste cusub oo ha kula diririn GUI kanaal ay hore u haysato.

Ilaaliyayaasha jiilka waxay joojiyaan natiijooyinka duugoobay

Indho-indheyn kastaa waxay ka tirsan tahay isku day xiriir gaar ah. Kordhi tirakoobka jiilka marka isku day cusub bilaabmo, marka kanaalku lumo iyo marka macmiilku soo sheego bixitaan.

Tixgeli baaritaan bilaabmay inta lagu jiro xiriirka A. Tunnel-ku wuu dhacaa, xiriirka B wuu bilaabmaa, ka dibna guusha HTTP ee A oo daahday ayaa timaadda. Ilaaliye la'aan, natiijadaas duugga ah waxay bandhigga ka dhigtaa cagaar inta B weli xaqiijinayo. Joojinta waxay yaraysaa shaqada luma, baaritaanka jiilkuna waa waxa ka hortagaya dhammaystir duugoobay inuu noqdo xaaladda hadda:

var generation = _generation;
var reachable = await ProbeAsync(token);
if (generation != _generation) return;
Publish(reachable);

Codso isla qaanuunka agagaarka dirista UI, maxaa yeelay cusboonaysiinta marshalled waxay iman kartaa ka dib marka jiilku horay u socdo.

Bilowga iyo dib u xiriirku waa hal meerto nololeed

U tixgeliso xiriirka koowaad, dib u xiriirka iyo luminta kanaalka sidii hal meerto nololeed oo leh hal qaybood oo qaanuunno ah:

  • Akhri xaaladda hadda oo iso-diiwaangeli ogeysiisyada hal tallaabo meesha interface-ku u oggolaado.
  • Calaamadee indho-indheyn kasta aqoonsiga xiriirka iyo jiilka.
  • Buri diyaarnimada dib u xiriirka, bixitaanka ama kanaal indho-indheyn lumay.
  • Baar kheyraadka gaarka ah kaliya ka dib marka milkiiluhu soo sheego dhamaystirka bilowga.
  • Daabac kaliya natiijooyinka weli ka tirsan jiilka hadda.

Kanaal lumay macneheedu waa aan la garanayn, ma aha go'an. Soo sheegista aan la garanayn waa ka daacad badan tahay soo sheegista go'itaan aadan caddayn karin, waxayna ka hortagtaa in caqliga isku dayga mar kale ku dhaqmo mala-awaal.

Soo sheeg caddaymo, ma aha boolean

Soo celi xaaladda fadhiga la magacaabay iyo diyaargarowga kheyraadka oo ah qiyamno gooni ah, mid kastaa wuxuu qaadaa da'da. Isticmaale go'aan ka gaaraya wax wuxuu markaas arki karaa in baaritaankii ugu dambeeyay ee guulaystay uu da'diisu tahay afartan ilbiriqsi, taas oo ah macluumaad ka duwan mid cusub.

Raadinta IP dadweyne ma aha caddayn in API gaar ah uu isticmaalay waddada loo baahan yahay, markaa ha u soo bandhigin sida ay tahay.

Ku hay dhaqangelinta dibadda ilaaliyaha

Callback-ku wuxuu shaqeeyaa ka dib dhacdada. Ma dammaanad qaadi karo in aanay jirin packet ka baxay mishiinka inta u dhaxaysa dhacdada iyo ka shaqeeya. Haddii naqshaddu u baahan tahay xannibaad, siyaasadda shabakaddu waa inay bixiso, shaqada ilaaliyahuna waa inuu sharraxa caddaymaha u sheego wacitaankiisa. Labada isku daridda waxay soo saartaa kood u malaynaya inuu yahay firewall sababtoo ah wuxuu hayaa boolean. Ku hay lakabka dhaqangelinta mid caajis ah oo la tijaabin karo, ilaaliyahuna ha sii ahaado akhriye.

Markaas su'aasha UI way fududaanaysaa: tus waxa la og yahay, oo la socda da'diisa, oo dheh aan la garanayn marka sidaas tahay.

Maqaallo la xiriira