Stav NEVPNManageru je neplatný, kým sa nenačítajú predvoľby
Čítanie stavu alebo ukladanie pred dokončením loadFromPreferences dáva zastarané alebo neúspešné výsledky. Rozhoduje poradie načítania, odkazy na zväzok kľúčov a prístupové skupiny.
Reštartujte aplikáciu, spýtajte sa správcu na stav pripojenia a on hlási odpojené, zatiaľ čo systémová ponuka jasne ukazuje bežiaci tunel. Alebo volanie uloženia vráti chybu, ktorá nič nevysvetľuje, alebo je zdieľané tajomstvo vyhlásené za chýbajúce pár sekúnd po jeho priradení. Tri príznaky, jeden mechanizmus: správca je pohľad na systémové úložisko a pohľad sa číta ako prázdny, kým ho niekto nenačíta.
Skôr než začnete čokoľvek z toho ladiť, rozhodnite, ktoré API máte používať. Systémový tunel IPsec alebo IKEv2 vyhovuje vstavanému správcovi; protokol, ktorý systém neimplementuje, potrebuje poskytovateľa tunela s vlastným spracovaním paketov, a žiadna kombinácia polí to nezmení.
Správca je pohľad na úložisko
Vytvorte alebo získajte správcu, požiadajte ho o načítanie predvolieb a nechajte dokončovací handler dobehnúť, kým začnete čítať stav alebo meniť nastavenia protokolu. Keď je úlohou vypísať uložené konfigurácie, použite volanie všetkých variantov, namiesto toho, aby ste jednu inštanciu používali na dva účely. Kým načítanie dorazí, stav býva neplatný, a práve preklad neplatného na vypnuté je chyba, pre ktorú aplikácia vyzerá nesprávne až po reštarte.
Zápis ide v rovnakom poradí. Uloženie na správcovi, ktorý nikdy nič nenačítal, môže zlyhať bez užitočnej správy, pretože neexistuje uložená identita, na ktorú by sa zmena aplikovala. Načítajte, upravte, uložte a potom znova prečítajte stav. Objekt, ku ktorému sa systém pripája, je uložený profil, nie ten, ktorý ste upravovali v pamäti.
Zmeny stavu prichádzajú len vtedy, keď sa pozeráte
Po načítaní predvolieb stav prechádza cez odpojené, pripája sa, pripojené, znova potvrdzuje a odpája sa. Inicializujte rozhranie jedným čítaním a potom počúvajte oznámenie o zmene, namiesto dopytovania časovačom. Dopytovanie funguje na popredí a klame na pozadí, a tak aplikácie skončia s indikátorom, ktorý sa nikdy nevyrieši.
Oznámenia prichádzajú len vtedy, keď je aplikácia na popredí. Čokoľvek, čo udržiava stav na pozadí, bude po reštarte vyzerať zastaralo, preto obnovujte pri spustení a znova, keď sa aplikácia vráti na popredie. Ak tunel vlastní poskytovateľ, riaďte ho cez príslušný objekt relácie; bežná vlastnosť pripojenia model životného cyklu poskytovateľa nenapodobňuje.
Tajomstvá sú odkazy, nie reťazce
Hlásenie o chýbajúcom zdieľanom tajomstve málokedy znamená, že ho nikto nepriradil. Objekt protokolu chce odkaz: jeden pre používateľské heslo a jeden pre vopred zdieľaný kľúč IPsec. Odovzdanie nil alebo odkazu odvodeného z nesprávnej položky zväzku kľúčov vyvolá rovnakú sťažnosť ako prázdne miesto. Chyba pomenuje príznak a skryje príčinu, a preto ľudia zadávajú to isté tajomstvo niekoľkokrát.
Najprv zapíšte tajomstvo ako položku všeobecného hesla a potom prečítajte trvalý odkaz naň. Trvalý odkaz prežije reštart, na rozdiel od ukazovateľa v pamäti, a práve on sa serializuje v profile. Zvoľte triedu dostupnosti, ktorá stále povoľuje prístup po odomknutí zariadenia, inak tunel, ktorý sa musí na zamknutej obrazovke znova pripojiť, zlyhá pri overovaní s úplne platným tajomstvom.
Rozšírenie má vlastný pohľad na zväzok kľúčov
Sieťové rozšírenie je samostatný proces, takže sa k nemu predvolený prístup aplikácie k zväzku kľúčov nedostane. Dajte obom cieľom rovnakú prístupovú skupinu zväzku kľúčov v ich oprávneniach, uložte položku raz vnútri tejto skupiny a nechajte každý proces ju čítať. Bez skupiny rozšírenie nič nenájde a nahlási zlyhanie prihlasovacích údajov, ktoré aplikácia nedokáže reprodukovať.
Ak sa poskytovateľ konfiguruje cez svoj konfiguračný objekt, nevkladajte tajomstvo aj do aplikácie. Dve kópie sa rozchádzajú a rozchod sa prejaví ako zlé prihlasovacie údaje, nie ako duplikácia. Widget alebo druhý proces hlásiaci iný stav má rovnaké vysvetlenie: každý potrebuje skupinu a každý musí pred čítaním načítať predvoľby.
Zlaďte API s protokolom
Vstavaný správca nesie objekty protokolov IPsec a IKEv2. Doplnkovými poľami sa nezmení na všeobecného klienta SSL VPN a nezhodný profil sa môže čisto uložiť a napriek tomu sa nikdy nepripojí. Rozhodnite, do ktorej kategórie patríte, skôr než začnete stav skúmať, pretože chyba stavu a nepodporovaný protokol vyzerajú zvonku rovnako.
Pre ďalší reštart je kontrolný zoznam krátky: načítajte predvoľby, prečítajte stav, držte odbery zmien na popredí, znova zostavte odkazy zo zdieľanej skupiny a potvrďte, že objekt protokolu zodpovedá API, ktoré ste implementovali. Prejsť ten zoznam trvá minútu; hádať ho trvá celé popoludnie.