जडान गरेको बीस मिनेटपछि सूचना देखा पर्‍यो। त्यसको तलको गणक अघिल्लो बिहानदेखि, वा खाताले अन्तिम पटक प्रमाणीकरण गरेको समयदेखि चलिरहेको थियो, र चेतावनीमा कुन हो भनेर केही भनिएको थिएन। यही लक्षण हो: तपाईंको अगाडिको जडानसँग होइन, अरू कुनै कुरासँग बाँधिएको सम्झना।

समाधान राम्रो चेतावनी होइन। आवश्यकताले कुन घडी भन्न खोजेको हो त्यो निर्णय गर्नु, र त्यसपछि टाइमरलाई त्यो घडीमा रहेको वस्तुसँग बाँध्नु।

के बज्यो, र त्यसले के गन्दै थियो

तीन सम्भावित स्रोतले एउटै सन्देश दिन्छन्। क्यालेन्डर नियम तोकिएको स्थानीय समयमा चल्छ र सुरुङबारे केही जान्दैन। क्लाइन्टको गणक कुनै पनि जडान चालु रहेसम्म थुप्रिन्छ र पुनः जडानमा पनि टिक्छ। गेटवे नीतिले सत्रलाई सर्भरतर्फ अन्त्य गर्छ र पहिले चेतावनी पठाउँछ।

अन्तिम दुई मात्र सत्रबारे हुन्, र ती पनि सहमत छैनन्। क्लाइन्ट गणकले स्थानीय प्रक्रियाले देखेको कुरा नाप्छ; गेटवेले प्रमाणित र हिसाब गरेको कुरा नाप्छ। निद्रा, नेटवर्क परिवर्तन वा पर्यवेक्षकको पुनः सुरुवातले ती दुईलाई घण्टौं टाढा पार्न सक्छ, र त्यसैले चेतावनी र जबरजस्ती समाप्ति अलग-अलग हुन्छन्।

एउटा आवश्यकताको पछाडि तीन घडी

तपाईंले साँच्चै चाहेको वाक्य लेखेर सुरु गर्नुहोस्। गेटवेले यो जडान अन्त्य गर्नुअघि चेतावनी दिनु एक दिनको जोडिएको समयपछि सम्झाउनुसँग एउटै आवश्यकता होइन। यो सत्र 23 घण्टादेखि चालु छ भनी रिपोर्ट गर्नुसँग पनि एउटै होइन। प्रत्येक संस्करणले फरक घटनाको नाम लिन्छ, र फरक घटकले त्यसको जवाफ दिनुपर्छ।

त्यसपछि डेटा छ कि छैन जाँच्नुहोस्। स्थानीय सुरुवातको टाइमस्ट्याम्पले सर्भरमा निर्भर नभई सत्रको उमेर दिन्छ। गेटवे नीतिले बाँकी आयु दिन्छ, तर गेटवेले त्यो खुलाएमा मात्र। प्रयोग प्रतिवेदनले घटना पछिको अवधि दिन्छ, र त्यसले अग्रिम सूचना चलाउन सक्दैन।

टाइमरलाई सत्रमा बाँध्नुहोस्, खातामा होइन

पहिले वस्तु छान्नुहोस्। एउटा खातामा धेरै उपकरण र धेरै एकैसाथ सत्र हुन सक्छन्, त्यसैले प्रयोगकर्ता नाममा अड्किएको सम्झनाले कुन जडान उमेरमा पुग्यो भन्न सक्दैन। यसलाई प्रोफाइल र त्यो सक्रियतासँग बाँध्नुहोस्, र सक्रियता सकिएपछि पर्खिरहेको सूचना रद्द गर्नुहोस्।

Evidence you can readWhat it establishesWhere it misleads
Connection state changes to activeA session started nowDoes not carry the gateway's own session identifier
Duration reported at disconnectTotal service time for that sessionArrives too late for any advance notice
Interim usage updateTime accounted up to that updateStaleness equals the update interval
Local timestamp taken at activationAge of your observationResets whenever the observer restarts

त्यो तालिका तपाईंको आफ्नै सूचकका लागि करार हो, कुनै पनि क्लाइन्टको कलब्याक API को वर्णन होइन। स्थापित उत्पादनले जडान स्थितिबारे जे दस्तावेज गर्छ त्यही बाँध्ने स्रोत हो; जहाँ यसले प्रमाणीकरण घटना मात्र खोल्छ, त्यहाँ स्पष्ट भन्नुहोस् र सत्र अनुमान गर्नुको सट्टा मोटो व्यवहार स्वीकार गर्नुहोस्।

छोटो सीमाले परीक्षण गर्नुहोस्

एक दिनको टाइमरलाई एक दिनको प्रतीक्षाले कहिल्यै डिबग नगर्नुहोस्। कन्फिगर गर्न मिल्ने सीमा थप्नुहोस्, त्यसलाई तीस सेकेन्डमा राख्नुहोस्, र क्रममा चार संक्रमण चलाउनुहोस्: जोड्नु, पर्खनु, छुट्याउनु, फेरि जोड्नु। प्रत्येक संक्रमणले ठ्याक्कै एक स्थिति परिवर्तन दिनुपर्छ, र पुनः जडानले पुरानो म्याद नस्विकारी नयाँ म्याद तोक्नुपर्छ।

# current connection state and profile identity
nmcli -f GENERAL.STATE,GENERAL.CONNECTION connection show work

# the notifier unit you wrote: does it restart the deadline or resume it?
journalctl --user -u vpn-timer.service --since "-5 min" -o cat

शब्द होइन, टाइमस्ट्याम्प हेर्नुहोस्। अघिल्लो सत्रको सुरुवात समय लिएर आउने सूचनाले गलत वस्तु बाँध्यो, र एउटै म्यादका लागि दुई पटक आउने सूचनाको अर्थ पठाइएको झन्डा कहिल्यै सुरक्षित भएन।

निद्रा, पुनः जडान र छुटेको डेलिभरी

निद्राले दुवै सरल डिजाइन तोड्छ। मोनोटोनिक उल्टो गणना मेसिन सुतेको बेला रोकिन्छ, भित्ता-घडीको म्याद अगाडि बढिरहन्छ, र निद्रामा बज्ने टाइमर ढिलो वा बिल्कुलै पुग्दैन। तपाईंको आवश्यकतालाई कुन व्यवहार चाहिन्छ निर्णय गर्नुहोस्, त्यसपछि सीमा नाघेर मेसिन सुताउनुहोस् र पुष्टि गर्नुहोस्।

पुर्‍याउन पनि त्यही ध्यान चाहिन्छ। सूचना देखाउन सकिएन भने त्यसलाई लाइनमा राख्नुहोस्, र अन्तिम पटक देखाउनुअघि लक्ष्य सत्र अझै छ कि छैन फेरि जाँच्नुहोस्; नत्र प्रयोगकर्तालाई पहिले नै सकिएको जडानबारे चेतावनी दिइन्छ। जबरजस्ती विच्छेदन र प्रमाणपत्र नवीकरण यस बाटोबाहिर रहन्छन्, किनकि जडानको भाग्य चुपचाप बदल्ने सम्झना सूचनाको पोशाक लगाएको नीति निर्णय हो।

सम्बन्धित लेखहरू