Malgranda programo, kiu konektas ekzistantan VPN, bezonas regilon, ne novan VPN-realigon. La subtenata motoro devus pritrakti la intertraktadon kaj la tunelan trafikon; via programo devus esprimi la peton de la uzanto kaj honeste klarigi la rezulton. En Linux la NetworkManager D-Bus-interfaco donas al tiu regilo konkretan modelon por sekvi.

Kvar kontroloj malhelpas la regilon konfuzi konservitan profilon, aktivigan peton kaj funkciantan seanon.

Kontrolo unu: kiu identeco estas elektata

Tenu la UUID de la profilo kiel la daŭran identecon, kaj solvu ĝin tra la administrilo kiam vi bezonas la objekton. Montra nomo povas esti kunhava de du profiloj, kaj busa koridoro dum plenumo ne estas prudenta uzantprefero por konservi. Skribu la elekton en via propra agordo, ne en komento pri tio, kiu ero estis la dua en la listo.

Kontrolu kion la administrilo redonas antaŭ ol nomi tion kongruo. UUID, kiu ne plu ekzistas, produktas serĉan malsukceson, kio estas alia koda vojo ol profilo, kiu ekzistas kaj rifuzas aktiviĝi.

Kontrolo du: kion la aktiviga voko redonas

La dokumentita aktiviga voko prenas objekto-vojon de ekzistanta konekto, aparatan vojon kaj specifan objekton. Ĝi redonas vojon de aktiva konekto, kaj tiu respondo estas tenilo, ne rezulto pri preteco. Ne agordu la pretan flagon de via aplikaĵo laŭ la redonita valoro; abonu anstataŭe la staton kaj kaŭzon de la aktiva konekto.

Por VPN la specifa objekto elektas la aktivan bazan konekton. Transdoni la radikan vojon lasas la elekton de aparato al NetworkManager, kiu elektas tiun, kiu nun estas defaŭlta. Tio estas decido pri enkursiga kunteksto, ne pri pasvorta kampo, kaj ĝi ŝanĝas sur kiu aparato la tunelo stariĝas.

Ne prenu ĝeneralan ekzemplon de aldoni-kaj-aktivi kaj atendu, ke ĝi kreu VPN-profilon. La dokumentita helpanto ekskludas VPN-konektojn, do provizado aŭ importo de la profilo estas aparta, reviziita paŝo. Tio gravas, ĉar provizado bezonas rajtigon kaj revizion, kiujn konekta butono ne donas. Traktu importon kiel administran agon kun propra protokollinio kaj propra aprobanto.

Kontrolo tri: kiel la stato estas prezentata

Aktiva konekto trapasas aktivigadon, aktivan, malaktivigadon kaj malaktivan, kaj la kaŭza kampo diras kial. Kunpremi ĉion tion en bulean valoron nomatan loggedIn perdas la informojn, kiujn la uzanto bezonas kaj kiujn la subteno demandos. Montru almenaŭ ĉu la konekto atendas, estas establita aŭ malaperis, kaj konservu la kaŭzan ĉenon por la malsukcesa kazo.

Ligu nesinkronajn respondojn al la peto, kiu produktis ilin. Malfrua finiĝo de pli malnova provo ne rajtas anstataŭigi pli novan uzantagon, kaj duobla premo de Connect estu aŭ ignorata aŭ traktata kiel nuligo kaj reprovo kun videbla politiko.

Kontrolo kvar: kio okazas post restarto

Kiam la administrilo restartiĝas aŭ via regilo rekonektiĝas al la buso, rekonstruu la observatan staton el la posedanto. Ne daŭre montru kaŝmemoran seanon kiel aktivan ĉar malnova objekto-vojo ankoraŭ estas en la memoro. La signaloj pri ŝanĝo de stato ekzistas ĝuste por ke regilo povu resinkronigi anstataŭ diveni.

Elektu, kion signifas fermi la regilon. Lasi ekzistantan maŝinposedatan konekton malferma povas esti ĝuste, kaj malkonstrui intence mallongdaŭran seanon ankaŭ povas esti ĝuste. Lasi ekzistantan maŝinposedatan konekton malferma povas esti ĝuste; malkonstrui intence mallongdaŭran seanon ankaŭ povas esti ĝuste. Skribu tiun posedkontrakton en la interfacon anstataŭ supozi, ke eliro de la procezo plenumas la retan agon. Uzantoj ne devus devi diveni, ĉu fermo de la fenestro faligos ilian tunnelon. Metu la respondon en la interfacan tekston, ne nur en kodan komenton.

Tenu aŭtoritatecon kaj sekretojn ĉe iliaj posedantoj

Permesoj revenas kiel jes, auth aŭ ne, kaj la interfaco devus speguli la diferencon inter permesita, permesita post aŭtentigo kaj rifuzita. Ruli la regilon kiel root ne efektivigas permespolitikon; ĝi forigas la demandon.

Akreditiloj apartenas al la subtenata sekreta agento aŭ klienta integriĝo por la agordita aŭtentiga metodo. Pasvorto en fontkodo, en argumento aŭ en protokolo estas konkludo, kaj loka administra rajtigo ne estas la sama okazaĵo kiel aŭtentigo ĉe la enirejo.

Fine, raportu la konektan staton aparte de la tasko, kiun la uzanto volas plenumi. Tunelo povas esti aktiva dum privata nomo aŭ aplikaĵo restas neatingebla, kaj tiu dua malsukceso meritas propran mesaĝon kaj propran statuson. Regilo, kiu diras precize kiu tavolo malsukcesis, estas pli utila ol tiu, kiu diras, ke la VPN estas malŝaltita.

Rilataj artikoloj