التطبيق القديم اختفى، وما زالت قائمة النفق المنقسم تحتفظ بمدخل له. لا شيء ينكسر بشكل ظاهر، ولهذا يبقى هناك لأشهر. ثم يثبّت شخص ما برنامجًا مختلفًا في المجلد نفسه، أو يستعيد ملف شخصي مُدار القاعدة عند كل إعادة اتصال، فيبدأ المرور في سلوك مسار لم يخطط له أحد. لقد عاش الاستبعاد أطول من السبب الذي أنشأه.

تنظيف هذا يتعلق في الأساس بالهوية: إلى ماذا تشير القاعدة الآن، ومن يملك القائمة.

العَرَض: استبعاد لا يطابق شيئًا

المدخل القديم غير مرئي في الاستخدام العادي. يصبح مرئيًا بثلاث طرق: تطبيق توقّعت أن يمر عبر النفق يذهب مباشرة، أو برنامج جديد يرث استثناءً قديمًا، أو يرفض العميل حفظ تعديل لأن الملف الشخصي المُدار يكتب فوقه. تبدو الثلاثة كأخطاء منفصلة، وكلها في الحقيقة مشكلة محاسبة واحدة. كل واحد منها رخيص الفحص ومكلف التشخيص الخاطئ.

ابدأ بقراءة القاعدة، لا بحذفها.

اعرف ما الذي تحدّده القاعدة

تستند تطبيقات النفق المنقسم إلى أشياء مختلفة في تحديد الاستبعادات: مسار ملف تنفيذي، أو اسم حزمة، أو معرّف حزمة، أو مسار شبكة. تشير القاعدة المعتمدة على مسار إلى ملف قد لا يكون موجودًا بعد الآن، أو قد يكون الآن ملفًا مختلفًا. أما القاعدة المعتمدة على حزمة فتشير إلى هوية يمكن لتثبيت جديد أن يعيد استخدامها. اقرأ وثائق العميل للحقل الذي تنظر إليه، لأن مربع النص نفسه يعني أشياء مختلفة بين المنتجات. إن دليل VpnService من Android هو المرجع لحالة الاعتماد على الحزمة.

الاسم المعروض هو الجزء الأقل موثوقية في المدخل، وهو الجزء الذي يقرأه الناس.

قواعد المسار وقواعد الحزمة تتصرفان بشكل مختلف

قاعدة المسار التي تنجو من إلغاء التثبيت تصبح عادةً غير فعّالة، وغير الفعّالة هي النتيجة الجيدة. النتيجة السيئة هي مسار يُعاد استخدامه، لأن الملف التنفيذي الجديد يرث الاستثناء بصمت. أما قواعد الحزمة فتتصرف بشكل مختلف مجددًا: قد يتجاهل المنتج حزمة غير متاحة، أو يرفضها، أو يواصل المطابقة بالاسم عندما يستولي شيء جديد على ذلك الاسم.

لا تنقل افتراضًا من عميل إلى آخر. افحص ما يفعله عميلك فعليًا مع هدف مفقود، ويُفضّل أن تخلق الحالة عمدًا على جهاز اختبار وتراقب أي عملية ترث الاستثناء.

أزلها من خلال صاحبها

إذا جاءت القائمة من ملف شخصي مُدار، فتحريرها محليًا تغيير مؤقت سيُستعاد عند إعادة الاتصال التالية. غيّر الملف الشخصي، أو اسأل من يملكه، وتأكد من أن التعديل ينجو من إعادة الاتصال. أما إذا كانت القائمة محلية، فأزل المدخل وتحقّق من أن العميل أعاد كتابة إعداداته بدلًا من إبقاء القديمة في الذاكرة.

القائمة الفارغة ليست الهدف. بل القائمة التي لا تزال مدخلاتها تطابق متطلبات حقيقية.

اختبر الاتجاهين بعد ذلك

بعد التنظيف، اختبر تطبيقًا يجب أن يبقى مستبعدًا وتطبيقًا يجب أن يمر الآن عبر النفق. تحقّق من سلوك DNS بشكل منفصل، لأن سياسة المُحلِّل تحكّم مختلف عن قائمة الاستبعاد. ثم أعد الاتصال مرة واحدة وأعد الاختبار، لأن الملف الشخصي المستعاد هو الطريقة الأكثر شيوعًا لتراجع التنظيف عن نفسه بهدوء.

احتفظ بغرض من سطر واحد بجانب كل استثناء متبقٍ. هذا السطر هو ما يمنع القائمة من أن تصبح متحفًا، ويجعل التنظيف التالي مهمة من خمس دقائق.

مقالات ذات صلة