NEVPNManager-statusen er ugyldig til innstillingane blir lasta
Å lese status eller lagre før loadFromPreferences er ferdig gir utdaterte eller mislukka resultat. Lastrekkjefølgje, nøkkelringreferansar og tilgangsgrupper avgjer det.
Start appen på nytt, spør administratoren om tilkoplingsstatus, og han rapporterer fråkopla medan systemmenyen tydeleg viser ein aktiv tunnel. Eller eit lagringskall returnerer ein feil som ikkje forklarer noko, eller ei delt hemmelegheit blir erklært manglande sekund etter at ho vart tildelt. Tre symptom, éin mekanisme: administratoren er ein visning over eit systemlager, og ei visning blir lesen tom til nokon lastar henne.
Før du feilsøkjer noko av dette, avgjer kva API du skal bruke. Ein systemtunnel med IPsec eller IKEv2 passar den innebygde administratoren; ein protokoll systemet ikkje implementerer treng ein tunelleverandør med di eiga pakkehandsaming, og ingen kombinasjon av felt endrar det.
Administratoren er ei visning over eit lager
Opprett eller hent administratoren, be han laste innstillingane sine, og lat fullføringshandteraren bli ferdig før du les status eller endrar protokollinnstillingar. Når oppgåva er å liste lagra konfigurasjonar, bruk kallet for alle variantar i staden for å bruke éin instans til to føremål. Før lastinga kjem, er statusen vanlegvis ugyldig, og å tolke ugyldig som av er nettopp feilen som gjer at ein app ser feil ut berre etter ein omstart.
Skriving følgjer same rekkjefølgje. Eit lagringsforsøk på ein administrator som aldri har lasta noko kan mislukkast utan ei nyttig melding, fordi det ikkje finst noka lagra identitet endringa kan brukast på. Last, endre, lagre, og les deretter statusen på nytt. Objektet systemet koplar til er den lagra profilen, ikkje den du redigerte i minnet.
Statusendringar kjem berre medan du ser på
Når innstillingane er lasta, går statusen gjennom fråkopla, koplar til, tilkopla, stadfester på nytt og koplar frå. Initier grensesnittet frå éi lesing, og lytt deretter etter endringsvarslet i staden for å polle med ein timer. Polling fungerer i framgrunnen og lyg i bakgrunnen, og slik endar apper med ein spinner som aldri blir løyst.
Varsel kjem berre medan appen er i framgrunnen. Alt som held tilstand i bakgrunnen vil sjå utdatert ut etter ein omstart, så oppdater ved oppstart og igjen når appen kjem tilbake til framgrunnen. Viss ein leverandør eig tunnelen, styr han gjennom det samsvarande sesjonsobjektet; den vanlege tilkoplingseigenskapen modellerer ikkje livssyklusen til ein leverandør.
Hemmelegheiter er referansar, ikkje strengar
Ei melding om manglande delt hemmelegheit betyr sjeldan at ingen har tildelt ei. Protokollobjektet vil ha ein referanse: éin for brukarpassordet og éin for den førehandsdelte IPsec-nøkkelen. Å sende nil, eller ein referanse utleia frå feil nøkkelringoppføring, gir same klage som ein tom plass. Feilen namngir symptomet og skjuler årsaka, difor tastar folk inn den same hemmelegheita fleire gonger.
Skriv hemmelegheita først som eit generisk passordselement, og les deretter tilbake ein varig referanse til henne. Ein varig referanse overlever omstart, i motsetnad til ein peikar i minnet, og det er representasjonen profilen serialiserer. Vel ein tilgjengeklasse som framleis tillèt tilgang når eininga er låst opp, elles vil ein tunnel som må kople til på nytt på ein låst skjerm mislukkast i autentiseringa med ei fullstendig gyldig hemmelegheit.
Utvidinga har si eiga nøkkelringvisning
Ei nettverksutviding er ein separat prosess, så standardtilgangen til appen til nøkkelringa når henne ikkje. Gi begge måla den same nøkkelringtilgangsgruppa i rettane deira, lagre elementet éin gong inne i den gruppa, og lat kvar prosess lese det. Utan gruppa finn utvidinga ingenting og rapporterer ein legitimasjonsfeil appen ikkje kan gjenskape.
Viss leverandøren blir konfigurert gjennom sitt leverandørkonfigurasjonsobjekt, må du ikkje også byggje hemmelegheita inn i appen. To kopiar driv frå kvarandre, og drifta framstår som dårlege legitimasjonar snarare enn som duplisering. Ein widget eller ein andre prosess som rapporterer ein annan tilstand har same forklaringa: kvar treng gruppa, og kvar må laste innstillingane før han les.
Tilpass API-et til protokollen
Den innebygde administratoren ber IPsec- og IKEv2-protokollobjekt. Han blir ikkje ein generisk SSL VPN-klient gjennom ekstra felt, og ein upassande profil kan lagrast pent og likevel aldri kople til. Avgjer kva kategori du er i før du granskar statusen, for ein statusfeil og ein protokoll som ikkje blir støtta ser identiske ut utanfrå.
Til neste omstart er sjekklista kort: last innstillingane, les statusen, hald endringsabonnementa i framgrunnen, bygg referansane på nytt frå den delte gruppa, og stadfest at protokollobjektet svarer til API-et du implementerte. Å gå gjennom lista tek eitt minutt; å gjette på henne tek ein heil ettermiddag.