Које стање NetworkManager-а је ваш обавештавач заиста добио?
Исти цели број значи деактивирано у једном набрајању и средину подешавања у другом. Ускладите тип стања са објектом пре него што копирате услов.
Стање четири покреће обавештење на једном API-ју и значи нешто друго на другом, а код не показује никакву разлику. Свака вредност стања у NetworkManager-у припада именованом набрајању, а набрајања се не слажу шта значи дати број. Зато копирање целог броја из радног исечка у други повратни позив није пренос понашања; то је случајност која чека да се поквари. Најпре пронађите тип и број постаје читљив.
Број без типа је само гласина
Овде су важна два набрајања. Једно описује активну везу уопште: непознато, активирање, активно, деактивирање, деактивирано. Друго описује конкретно VPN везу и има више заустављања на путу, укључујући припрему, подешавање везе, IP конфигурацију и захтев за аутентификацију пре него што се било шта активира. Њихово нумерисање почиње од нуле у оба случаја и затим се разилази, па вредност која значи деактивирано у општем набрајању завршава негде у средини VPN низа. Ниједно заглавље није погрешно; она одговарају на различита питања.
Користите симболичку константу из инсталираног заглавља или повезивања уместо литерала. Име преживљава пренумерацију; цели број не.
Пратите једну везу, не машину
Почните од UUID-ја профила који вас занима и од објекта активне везе који је то активирање створило. Стање уређаја или стање другог тунела није замена, чак и када се обоје мења у истом тренутку. Задржите идентитет објекта уз посматрање, како би каснији извештај могао да каже који је профил то произвео. Машина има много стања; обавештење се односи на једно од њих.
Затим одлучите шта обавештење треба да значи. Веза која никада није достигла активирање је неуспех подешавања, а сесија која је била активна и затим нестала је губитак. Оне заслужују различите речи.
Реците који прелаз пријављујете
Сачувајте претходно стање и упоредите га са новим, уместо да нову вредност испитујете изоловано. Прелаз у неуспешно стање и прелаз из активираног стања различити су догађаји чак и када оба заврше без ичега повезаног. Запишите низ са разлогом поред, јер је често једини део на који корисник може да делује.
Намерно прекидање везе није квар. Ако обавештење не може да разликује, научиће људе да га игноришу.
Одржите посматрача живим
Поновљено испитивање не сме да створи још једно упозорење за стање које се није променило. То једно правило уклања већину шума који ови обавештавачи стварају.
Обрадите и случај када се управљач поново покрене или се посматрани објекат замени. Посматрач везан за застарели идентитет утихне тачно у тренутку када се догоди нешто занимљиво, а тишина изгледа као здравље. Поново откријте тренутни објекат након промене присутности управљача и забележите када се поновно откривање догодило. Иначе запис показује тунел који је једноставно престао да извештава.
Доставите обавештење тамо где је корисник
Привилеговани системски повратни позив не наслеђује услугу обавештења сесије радне површине. Порука послата из руковаоца на нивоу root може да нестане без грешке, што даје обавештавач који ради када га ручно тестирате и никада у пракси. Доставите у сесију која поседује радну површину или пустите сопственог клијента радне површине да подигне обавештење.
Преферирајте постојеће обавештење клијента ако већ покрива случај, јер два обавештавача за један догађај је проблем подршке, а не сувишност. Задржите време догађаја, профил и разлог у запису подршке, а лозинке и потпуне профиле оставите изван њега. Запамтите шта је обавештење: извештај о посматраном стању, а не механизам спровођења, јер блокирање саобраћаја док тунел није присутан је засебна политика са сопственом реализацијом.