Pagkonekta ng maliit na controller sa isang NetworkManager VPN
Nagbabalik ng hawak ang pag-activate, hindi ng handang sesyon. Paghiwalayin ang profile, ang kahilingan at ang aktibong koneksyon, at buuin muli ang estado pagkatapos ng restart.
Ang isang maliit na programa na nagkokonekta ng umiiral nang VPN ay nangangailangan ng controller, hindi ng bagong implementasyon ng VPN. Dapat hawakan ng sinusuportahang engine ang negosasyon at trapiko ng tunnel; dapat ipahayag ng iyong programa ang kahilingan ng gumagamit at ipaliwanag nang tapat ang resulta. Sa Linux, binibigyan ng NetworkManager D-Bus interface ang controller na iyon ng kongkretong modelong masusundan.
Apat na pagsusuri ang pumipigil sa controller na paghalo-haluin ang naka-save na profile, kahilingan sa pag-activate at gumaganang sesyon.
Pagsusuri isa: aling pagkakakilanlan ang pinipili
Panatilihin ang UUID ng profile bilang permanenteng pagkakakilanlan, at lutasin ito sa pamamagitan ng manager kapag kailangan mo ang landas ng bagay. Maaaring paghatian ng dalawang profile ang isang display name, at ang bus path sa oras ng pagtakbo ay hindi makatwirang kagustuhan ng gumagamit na itago. Isulat ang pagpili sa sarili mong configuration, hindi sa komento tungkol sa kung aling entry ang pangalawa sa listahan.
Tiyakin kung ano ang ibinabalik ng manager bago mo itong tawaging tugma. Ang UUID na wala na ay gumagawa ng kabiguan sa paghahanap, at ibang landas ng code iyon kaysa sa profile na umiiral at tumatangging ma-activate.
Pagsusuri dalawa: ano ang ibinabalik ng tawag sa pag-activate
Ang dokumentadong tawag sa pag-activate ay kumukuha ng landas ng bagay ng umiiral na koneksyon, landas ng device at partikular na bagay. Ibinabalik nito ang landas ng aktibong koneksyon, at ang sagot na iyon ay hawak, hindi resulta ng kahandaan. Huwag itakda ang flag ng kahandaan ng iyong aplikasyon mula sa ibinalik na halaga; mag-subscribe sa halip sa estado at dahilan ng aktibong koneksyon.
Para sa VPN, pinipili ng partikular na bagay ang aktibong batayang koneksyon. Kapag ipinasa ang landas ng ugat, inilalagay sa NetworkManager ang pagpili ng device, na pumipili ng kasalukuyang default. Iyon ay desisyon sa konteksto ng pag-ruta at hindi field ng password, at binabago nito kung aling device nakapatong ang tunnel.
Huwag kumuha ng pangkalahatang halimbawa ng magdagdag-at-mag-activate at umasa na gagawa ito ng profile ng VPN. Hindi kasama ng dokumentadong katulong ang mga koneksyon ng VPN, kaya ang paghanda o pag-import ng profile ay hiwalay at nasuring hakbang. Mahalaga iyon dahil ang paghahanda ay nangangailangan ng awtorisasyon at pagsusuri na hindi ibinibigay ng pindutan ng konekta. Ituring ang pag-import bilang administratibong aksyon na may sariling linya ng log at sariling nag-apruba.
Pagsusuri tatlo: paano kinakatawan ang estado
Ang aktibong koneksyon ay dumadaan sa pag-activate, aktibo, pag-deactivate at deactivated, at sinasabi ng field ng dahilan kung bakit. Ang pagsiksik ng lahat ng iyon sa isang Boolean na tinatawag na loggedIn ay nawawala ang impormasyong kailangan ng gumagamit at ang itatanong ng suporta. Ipakita man lang kung ang koneksyon ay nakabinbin, naitatag o wala na, at itago ang string ng dahilan para sa kaso ng kabiguan.
Iugnay ang mga asynchronous na sagot sa kahilingang gumawa sa kanila. Ang huling pagtatapos mula sa lumang pagtatangka ay hindi dapat mag-overwrite ng mas bagong aksyon ng gumagamit, at ang dobleng pagpindot sa Connect ay dapat balewalain o ituring na kanselahin at subukang muli na may nakikitang patakaran.
Pagsusuri apat: ano ang nangyayari pagkatapos ng restart
Kapag nag-restart ang manager o muling kumonekta ang iyong controller sa bus, buuin muli ang naobserbahang estado mula sa may-ari. Huwag ipagpatuloy na ipakita ang naka-cache na sesyon bilang aktibo dahil nasa memorya pa ang lumang landas ng bagay. Umiiral ang mga signal ng pagbabago ng estado para makapag-resync ang controller sa halip na manghula.
Piliin kung ano ang ibig sabihin ng pagsasara ng controller. Maaaring tama na iwanang bukas ang umiiral na koneksyong pag-aari ng makina, at maaaring tama rin na gibain ang sadyang panandaliang sesyon. Maaaring tama na iwanang bukas ang umiiral na koneksyong pag-aari ng makina; maaaring tama rin na gibain ang sadyang panandaliang sesyon. Isulat ang kontrata ng pagmamay-ari sa interface sa halip na ipalagay na ang paglabas ng proseso ay gumagawa ng aksyon sa network. Hindi dapat manghula ang mga gumagamit kung mapuputol ang kanilang tunnel kapag isinara ang bintana. Ilagay ang sagot sa teksto ng interface, hindi lang sa komento ng code.
Panatilihin ang awtoridad at mga sikreto sa kanilang may-ari
Ang mga pahintulot ay bumabalik bilang oo, auth o hindi, at dapat ipakita ng interface ang pagkakaiba ng pinapayagan, pinapayagan pagkatapos ng pagpapatunay at tinanggihan. Ang pagpapatakbo ng controller bilang root ay hindi nagpapatupad ng patakaran ng pahintulot; inaalis nito ang tanong.
Ang mga kredensyal ay pag-aari ng sinusuportahang ahente ng sikreto o integrasyon ng kliyente para sa naka-configure na paraan ng pagpapatunay. Ang password sa source code, sa argumento o sa log ay isang natuklasan, at ang lokal na administratibong awtorisasyon ay hindi parehong kaganapan ng pagpapatunay sa gateway.
Sa huli, iulat ang estado ng koneksyon nang hiwalay sa gawaing gustong gawin ng gumagamit. Maaaring aktibo ang tunnel habang hindi pa available ang isang pribadong pangalan o aplikasyon, at ang pangalawang kabiguan na iyon ay karapat-dapat sa sariling mensahe at sariling status. Ang controller na nagsasabi nang tumpak kung aling layer ang nabigo ay mas kapaki-pakinabang kaysa sa nagsasabing bumagsak ang VPN.