Statusi i NEVPNManager është i pavlefshëm derisa të ngarkohen preferencat
Leximi i statusit ose ruajtja përpara se loadFromPreferences të përfundojë jep rezultate të vjetruara ose të dështuara. Rendi i ngarkimit, referencat e vargut të çelësave dhe grupet e aksesit e vendosin atë.
Rinisni aplikacionin, pyesni menaxherin për statusin e lidhjes dhe ai raporton të shkëputur ndërsa menuja e sistemit tregon qartë një tunel aktiv. Ose një thirrje ruajtjeje kthen një gabim që nuk shpjegon asgjë, ose një sekret i përbashkët shpallet i munguar sekonda pasi u caktua. Tre simptoma, një mekanizëm: menaxheri është një pamje mbi një depo të sistemit, dhe një pamje lexohet bosh derisa dikush ta ngarkojë atë.
Përpara se të korrigjoni ndonjë nga këto, vendosni cilin API duhet të përdorni. Një tunel IPsec ose IKEv2 i sistemit i përshtatet menaxherit të integruar; një protokoll që sistemi nuk e zbaton kërkon një ofrues tuneli me trajtimin tuaj të paketave, dhe asnjë kombinim fushash nuk e ndryshon këtë.
Menaxheri është një pamje mbi një depo
Krijoni ose merrni menaxherin, kërkojini të ngarkojë preferencat e tij dhe lini trajtuesin e përfundimit të mbarojë përpara se të lexoni statusin ose të ndryshoni cilësimet e protokollit. Kur detyra është të numërohen konfigurimet e ruajtura, përdorni thirrjen e të gjitha varianteve në vend që të ripërdorni një instancë për dy qëllime. Përpara se të mbërrijë ngarkimi, statusi është zakonisht i pavlefshëm, dhe trajtimi i të pavlefshmit si i fikur është pikërisht gabimi që e bën një aplikacion të duket i gabuar vetëm pas një rinisjeje.
Shkrimi ndjek të njëjtin rend. Një ruajtje e provuar në një menaxher që nuk ka ngarkuar kurrë asgjë mund të dështojë pa një mesazh të dobishëm, sepse nuk ka identitet të ruajtur ku të zbatohet ndryshimi. Ngarko, ndrysho, ruaj dhe pastaj lexo përsëri statusin. Objekti me të cilin lidhet sistemi është profili i ruajtur, jo ai që po redaktonit në memorie.
Ndryshimet e statusit mbërrijnë vetëm sa kohë shikoni
Pasi preferencat ngarkohen, statusi kalon nëpër të shkëputur, po lidhet, i lidhur, duke rikonfirmuar dhe duke shkëputur. Inicializoni ndërfaqen nga një lexim i vetëm, pastaj dëgjoni njoftimin e ndryshimit në vend që të anketoni me një kohëmatës. Anketimi funksionon në plan të parë dhe gënjen në sfond, dhe kështu aplikacionet mbeten me një rrotullues që nuk zgjidhet kurrë.
Njoftimet mbërrijnë vetëm sa kohë aplikacioni është në plan të parë. Çdo gjë që mban gjendjen në sfond do të duket e vjetruar pas një rinisjeje, prandaj rifreskoni në nisje dhe përsëri kur aplikacioni kthehet në plan të parë. Nëse një ofrues zotëron tunelin, drejtojeni përmes objektit përkatës të sesionit; vetia e thjeshtë e lidhjes nuk modelon ciklin e jetës së një ofruesi.
Sekretet janë referenca, jo vargje
Raporti për një sekret të përbashkët që mungon rrallë do të thotë se askush nuk caktoi një. Objekti i protokollit kërkon një referencë: një për fjalëkalimin e përdoruesit dhe një për çelësin e parandarë të përbashkët të IPsec. Kalimi i nil, ose i një referencë të nxjerrë nga zëri i gabuar i vargut të çelësave, jep të njëjtin ankesë si një vend bosh. Gabimi emërton simptomën dhe fsheh shkakun, prandaj njerëzit ripërsëritin të njëjtin sekret disa herë.
Fillimisht shkruani sekretin si element fjalëkalimi të përgjithshëm, pastaj lexoni një referencë të vazhdueshme drejt tij. Një referencë e vazhdueshme i mbijeton rinisjes, ndryshe nga një tregues i mbajtur në memorie, dhe është përfaqësimi që profili serializon. Zgjidhni një klasë aksesueshmërie që lejon ende aksesin pasi pajisja të jetë zhbllokuar, përndryshe një tunel që duhet të rilidhet në një ekran të bllokuar do të dështojë në vërtetim me një sekret plotësisht të vlefshëm.
Zgjerimi ka pamjen e vet të vargut të çelësave
Një zgjerim rrjeti është një proces i veçantë, kështu që aksesi i parazgjedhur i aplikacionit në vargun e çelësave nuk arrin deri atje. Jepini të dy objektivave të njëjtin grup aksesi në vargun e çelësave në të drejtat e tyre, ruani elementin një herë brenda atij grupi dhe lini çdo proces ta lexojë atë. Pa grupin, zgjerimi nuk gjen asgjë dhe raporton një dështim kredencialesh që aplikacioni nuk mund ta riprodhojë.
Nëse ofruesi konfigurohet përmes objektit të tij të konfigurimit, mos e futni sekretin edhe brenda aplikacionit. Dy kopje ndryshojnë dhe ndryshimi shfaqet si kredenciale të këqija dhe jo si dublim. Një widget ose një proces i dytë që raporton një gjendje tjetër ka të njëjtin shpjegim: secili ka nevojë për grupin dhe secili duhet të ngarkojë preferencat përpara se të lexojë.
Përputh API-n me protokollin
Menaxheri i integruar mban objekte protokolli IPsec dhe IKEv2. Ai nuk bëhet klient i përgjithshëm SSL VPN përmes fushave shtesë, dhe një profil i papërshtatshëm mund të ruhet pastër dhe gjithsesi të mos lidhet kurrë. Vendosni në cilën kategori jeni përpara se të hetoni statusin, sepse një defekt statusi dhe një protokoll i pambështetur duken njësoj nga jashtë.
Për rinisjen e radhës lista e kontrollit është e shkurtër: ngarkoni preferencat, lexoni statusin, mbani abonimet e ndryshimeve në plan të parë, rindërtoni referencat nga grupi i përbashkët dhe konfirmoni se objekti i protokollit përputhet me API-n që keni zbatuar. Kalimi nëpër atë listë merr një minutë; hamendja për të merr një pasdite të tërë.