არსებული VPN-ის დამაკავშირებელ პატარა პროგრამას სჭირდება კონტროლერი და არა VPN-ის ახალი იმპლემენტაცია. მხარდაჭერილმა ძრავმა უნდა იმუშაოს მოლაპარაკებასა და გვირაბის ტრაფიკზე; თქვენმა პროგრამამ უნდა გამოხატოს მომხმარებლის მოთხოვნა და პატიოსნად ახსნას შედეგი. Linux-ზე NetworkManager-ის D-Bus ინტერფეისი ამ კონტროლერს აძლევს კონკრეტულ მოდელს მისაბაძად.

ოთხი შემოწმება ხელს უშლის კონტროლერს, აირიოს შენახული პროფილი, გააქტიურების მოთხოვნა და მუშა სესია.

შემოწმება პირველი: რომელი იდენტობა ირჩევა

შეინახეთ პროფილის UUID მუდმივ იდენტობად და გადაწყვიტეთ ის მენეჯერის მეშვეობით, როცა ობიექტის გზა გჭირდებათ. ჩვენების სახელი შეიძლება ორმა პროფილმა გაიზიაროს, და გაშვების დროის ავტობუსის გზა შესანახად გონივრული მომხმარებლის უპირატესობა არ არის. ჩაწერეთ არჩევანი საკუთარ კონფიგურაციაში და არა კომენტარში იმის შესახებ, რომელი ჩანაწერი იყო სიაში მეორე.

გადაამოწმეთ, რას აბრუნებს მენეჯერი, სანამ დამთხვევას უწოდებთ. UUID, რომელიც აღარ არსებობს, იძლევა ძიების შეცდომას, და ეს სხვა კოდის გზაა, ვიდრე არსებული პროფილი, რომელიც უარს ამბობს გააქტიურებაზე.

შემოწმება მეორე: რას აბრუნებს გააქტიურების გამოძახება

დოკუმენტირებული გააქტიურების გამოძახება იღებს არსებული კავშირის ობიექტის გზას, მოწყობილობის გზას და კონკრეტულ ობიექტს. ის აბრუნებს აქტიური კავშირის გზას, და ეს პასუხი სახელურია და არა მზაობის შედეგი. ნუ დააყენებთ აპლიკაციის მზაობის დროშას დაბრუნებული მნიშვნელობიდან; ნაცვლად ამისა, გამოიწერეთ აქტიური კავშირის მდგომარეობა და მიზეზი.

VPN-ის შემთხვევაში კონკრეტული ობიექტი ირჩევს აქტიურ საბაზისო კავშირს. ძირეული გზის გადაცემა მოწყობილობის არჩევანს NetworkManager-ს უტოვებს, რომელიც ირჩევს იმას, რაც ამ წუთას ნაგულისხმევია. ეს მარშრუტიზაციის კონტექსტის გადაწყვეტილებაა და არა პაროლის ველი, და ის ცვლის, რომელ მოწყობილობაზეა გვირაბი დაშრევებული.

ნუ აიღებთ დამატებისა და გააქტიურების ზოგად მაგალითს და ნუ დაელოდებით, რომ VPN პროფილს შექმნის. დოკუმენტირებული დამხმარე გამორიცხავს VPN კავშირებს, ამიტომ პროფილის მომზადება ან იმპორტი ცალკე, განხილული ნაბიჯია. ეს მნიშვნელოვანია, რადგან მომზადებას სჭირდება ავტორიზაცია და განხილვა, რასაც დაკავშირების ღილაკი არ იძლევა. მოეპყარით იმპორტს როგორც ადმინისტრაციულ ქმედებას, საკუთარი ჟურნალის სტრიქონით და საკუთარი დამამტკიცებლით.

შემოწმება მესამე: როგორ წარმოიდგინება მდგომარეობა

აქტიური კავშირი გადის გააქტიურებას, აქტიურს, გაუქმებასა და გაუქმებულს, და მიზეზის ველი ამბობს, რატომ. ამ ყველაფრის loggedIn სახელის მქონე ლოგიკურ მნიშვნელობაში ჩაჭყლეტა კარგავს ინფორმაციას, რომელიც მომხმარებელს სჭირდება და რომელსაც მხარდაჭერა იკითხავს. აჩვენეთ სულ მცირე, კავშირი მოლოდინშია, დამყარებულია თუ გაქრა, და შეინახეთ მიზეზის სტრიქონი წარუმატებლობის შემთხვევისთვის.

დააკავშირეთ ასინქრონული პასუხები იმ მოთხოვნასთან, რომელმაც ისინი წარმოშვა. ძველი ცდის დაგვიანებული დასრულება არ უნდა გადაფაროს მომხმარებლის უფრო ახალ ქმედებას, და Connect-ის ორმაგი დაჭერა ან უნდა იყოს უგულებელყოფილი, ან განიხილოს გაუქმებად და ხელახალ ცდად ხილული პოლიტიკით.

შემოწმება მეოთხე: რა ხდება გადატვირთვის შემდეგ

როცა მენეჯერი გადაიტვირთება ან თქვენი კონტროლერი ხელახლა დაუკავშირდება ავტობუსს, დაკვირვებული მდგომარეობა თავიდან ააგეთ მფლობელისგან. ნუ გააგრძელებთ ქეშირებული სესიის აქტიურად ჩვენებას იმიტომ, რომ ძველი ობიექტის გზა ჯერ კიდევ მეხსიერებაშია. მდგომარეობის ცვლილების სიგნალები სწორედ იმისთვის არსებობს, რომ კონტროლერმა შეძლოს ხელახალი სინქრონიზაცია და არა გამოცნობა.

აირჩიეთ, რას ნიშნავს კონტროლერის დახურვა. არსებული, მანქანის საკუთრებაში არსებული კავშირის ჩართული დატოვება შეიძლება სწორი იყოს, და განზრახ მოკლევადიანი სესიის დაშლა ასევე შეიძლება სწორი იყოს. არსებული, მანქანის საკუთრებაში არსებული კავშირის ჩართული დატოვება შეიძლება სწორი იყოს; განზრახ მოკლევადიანი სესიის დაშლა ასევე შეიძლება სწორი იყოს. ჩაწერეთ ეს საკუთრების ხელშეკრულება ინტერფეისში, ნაცვლად იმისა, რომ ჩათვალოთ, თითქოს პროცესის გასვლა ასრულებს ქსელურ ქმედებას. მომხმარებლებს არ უნდა მოუწიოთ გამოცნობა, შეწყვეტს თუ არა ფანჯრის დახურვა მათ გვირაბს. პასუხი ჩადეთ ინტერფეისის ტექსტში და არა მხოლოდ კოდის კომენტარში.

ძალაუფლება და საიდუმლოებები მათ მფლობელებთან შეინახეთ

ნებართვები ბრუნდება როგორც დიახ, auth ან არა, და ინტერფეისმა უნდა აისახოს განსხვავება დაშვებულს, ავთენტიფიკაციის შემდეგ დაშვებულსა და უარყოფილს შორის. კონტროლერის root-ად გაშვება ნებართვის პოლიტიკას არ ახორციელებს; ის კითხვას აშორებს.

სერტიფიკატები ეკუთვნის მხარდაჭერილ საიდუმლო აგენტს ან კლიენტის ინტეგრაციას კონფიგურირებული ავთენტიფიკაციის მეთოდისთვის. პაროლი წყაროს კოდში, არგუმენტში ან ჟურნალში აღმოჩენაა, და ლოკალური ადმინისტრაციული ავტორიზაცია არ არის იგივე მოვლენა, რაც ავთენტიფიკაცია კარიბჭესთან.

და ბოლოს, შეატყობინეთ კავშირის მდგომარეობა ცალკე იმ ამოცანისგან, რომლის შესრულებაც მომხმარებელს სურს. გვირაბი შეიძლება აქტიური იყოს, სანამ პირადი სახელი ან აპლიკაცია მიუწვდომელი რჩება, და ეს მეორე წარუმატებლობა იმსახურებს საკუთარ შეტყობინებას და საკუთარ სტატუსს. კონტროლერი, რომელიც ზუსტად ამბობს, რომელი შრე ჩავარდა, უფრო სასარგებლოა, ვიდრე ის, რომელიც ამბობს, რომ VPN გამორთულია.

დაკავშირებული სტატიები