Kis vezérlő csatlakoztatása NetworkManager VPN-hez
Az aktiválás fogantyút ad vissza, nem kész munkamenetet. Tartsa külön a profilt, a kérést és az aktív kapcsolatot, és építse újra az állapotot újraindítás után.
Egy kis programnak, amely egy meglévő VPN-hez csatlakozik, vezérlőre van szüksége, nem új VPN-megvalósításra. A támogatott motornak kell kezelnie az egyeztetést és az alagút forgalmát; a programjának ki kell fejeznie a felhasználó kérését és őszintén el kell magyaráznia az eredményt. Linuxon a NetworkManager D-Bus felülete konkrét modellt ad ehhez a vezérlőhöz.
Négy ellenőrzés akadályozza meg, hogy a vezérlő összekeverje a mentett profilt, az aktiválási kérést és a működő munkamenetet.
Első ellenőrzés: melyik identitást választjuk
Tartsa a profil UUID-jét állandó identitásként, és oldja fel a kezelőn keresztül, amikor az objektum útvonalára szüksége van. Egy megjelenített nevet két profil is megoszthat, és a futásidejű buszútvonal nem ésszerű tárolható felhasználói beállítás. Írja le a választást a saját konfigurációjába, nem pedig egy megjegyzésbe arról, melyik bejegyzés volt a második a listán.
Ellenőrizze, mit ad vissza a kezelő, mielőtt egyezésnek nevezné. Egy már nem létező UUID keresési hibát eredményez, ami más kódútvonal, mint egy létező profil, amely megtagadja az aktiválást.
Második ellenőrzés: mit ad vissza az aktiválási hívás
A dokumentált aktiválási hívás egy meglévő kapcsolat objektumútvonalát, egy eszközútvonalat és egy konkrét objektumot vesz át. Egy aktív kapcsolat útvonalát adja vissza, és ez a válasz fogantyú, nem készültségi eredmény. Ne állítsa be az alkalmazás készültségi jelzőjét a visszatérési értékből; iratkozzon fel inkább az aktív kapcsolat állapotára és okára.
VPN esetén a konkrét objektum választja ki az aktív alapkapcsolatot. A gyökérútvonal átadása a NetworkManagerre hagyja az eszköz kiválasztását, amely az éppen alapértelmezettet választja. Ez útválasztási kontextus döntése, nem jelszómező, és megváltoztatja, melyik eszközre kerül az alagút.
Ne vegyen át egy általános hozzáadás-és-aktiválás példát, és ne várja, hogy VPN-profilt hoz létre. A dokumentált segéd kizárja a VPN-kapcsolatokat, ezért a profil előkészítése vagy importálása külön, ellenőrzött lépés. Ez azért fontos, mert az előkészítéshez engedélyezés és ellenőrzés kell, amit egy csatlakozás gomb nem biztosít. Kezelje az importálást adminisztratív műveletként, saját naplósorral és saját jóváhagyóval.
Harmadik ellenőrzés: hogyan jelenik meg az állapot
Az aktív kapcsolat aktiváláson, aktív, deaktiváláson és deaktivált állapoton megy át, és az ok mező megmondja, miért. Mindezt egy loggedIn nevű logikai értékbe sűríteni elveszíti az információt, amire a felhasználónak szüksége van, és amit a támogatás kérni fog. Mutassa meg legalább, hogy a kapcsolat függőben van, létrejött vagy eltűnt, és őrizze meg az ok karakterláncát a hiba esetére.
Kapcsolja az aszinkron válaszokat ahhoz a kéréshez, amely létrehozta őket. Egy korábbi próbálkozás késői befejezése nem írhat felül egy újabb felhasználói műveletet, és a Connect ismételt megnyomását vagy figyelmen kívül kell hagyni, vagy látható szabályzattal megszakítás és újrapróbálás kell kezelni.
Negyedik ellenőrzés: mi történik újraindítás után
Amikor a kezelő újraindul, vagy a vezérlő újra csatlakozik a buszhoz, építse újra a megfigyelt állapotot a tulajdonostól. Ne mutassa tovább a gyorsítótárazott munkamenetet aktívként azért, mert egy régi objektumútvonal még a memóriában van. Az állapotváltozási jelek éppen azt szolgálják, hogy a vezérlő újraszinkronizálhasson találgatás helyett.
Válassza ki, mit jelent a vezérlő bezárása. Egy létező gép tulajdonában lévő kapcsolat nyitva hagyása helyes lehet, és egy szándékosan rövid életű munkamenet lebontása is helyes lehet. Egy létező gép tulajdonában lévő kapcsolat nyitva hagyása helyes lehet; egy szándékosan rövid életű munkamenet lebontása is helyes lehet. Írja bele ezt a tulajdonosi szerződést a felületbe, ahelyett hogy feltételezné, hogy a folyamat kilépése elvégzi a hálózati műveletet. A felhasználóknak nem kell találgatniuk, hogy az ablak bezárása megszakítja-e az alagutat. Tegye a választ a felület szövegébe, ne csak egy kódmegjegyzésbe.
Tartsa a jogosultságot és a titkokat a tulajdonosaiknál
Az engedélyek igen, auth vagy nem formában jönnek vissza, és a felületnek tükröznie kell az engedélyezett, a hitelesítés után engedélyezett és a megtagadott közötti különbséget. A vezérlő rootként való futtatása nem valósít meg engedélyezési szabályzatot; eltávolítja a kérdést.
A hitelesítő adatok a támogatott titokügynökhöz vagy az ügyfélintegrációhoz tartoznak a beállított hitelesítési módszerhez. A forráskódban, argumentumban vagy naplóban lévő jelszó lelet, és a helyi adminisztratív jogosultság nem ugyanaz az esemény, mint az átjárónál történő hitelesítés.
Végül a kapcsolat állapotát külön jelentse attól a feladattól, amelyet a felhasználó végre akar hajtani. Az alagút aktív lehet, miközben egy privát név vagy egy alkalmazás elérhetetlen marad, és ez a második hiba saját üzenetet és saját állapotot érdemel. Az a vezérlő, amely pontosan megmondja, melyik réteg hibázott, hasznosabb, mint amelyik azt mondja, hogy a VPN leállt.