آپ کی ایپ CFNetwork سے پوچھتی ہے کہ ویب سائٹ تک کیسے پہنچا جائے اور ایسا URL وصول کرتی ہے جو .pac پر ختم ہوتا ہے۔ اس ہوسٹ نام کو socket کنکشن میں ڈالنا غلط راستہ ہے: یہ ترتیب کی اسکرپٹ کی نشاندہی کرتا ہے۔

CFNetworkCopyProxiesForURL ہدف URL کے لیے لغات کی ترتیب شدہ صف واپس کرتا ہے۔ آخری نقطے کے فیلڈز پڑھنے سے پہلے kCFProxyTypeKey چیک کریں۔ kCFProxyTypeAutoConfigurationURL قسم کی لغت kCFProxyAutoConfigurationURLKey فراہم کرتی ہے، جس کے لیے ایک اور جائزے کا مرحلہ درکار ہے۔

  1. سسٹم کی موجودہ پراکسی ترتیبات حاصل کریں اور اصل منزل URL تک راستے طلب کریں۔
  2. جب کوئی نتیجہ PAC URL کی طرف اشارہ کرے تو اسی منزل کے لیے اس اسکرپٹ کا جائزہ لیں۔
  3. حاصل ہونے والے امیدواروں کی اقسام اور آخری نقطے پڑھیں۔ HTTP پراکسی، SOCKS پراکسی اور براہ راست راستہ مختلف کنکشن ہینڈلنگ چاہتے ہیں۔
  4. اجازت شدہ ناکامی اور فال بیک رویے کو لاگو کرتے وقت امیدواروں کی ترتیب برقرار رکھیں۔

CFNetworkExecuteProxyAutoConfigurationURL اسکرپٹ کو غیر ہم وقت طریقے سے ڈاؤن لوڈ اور جانچتا ہے۔ اس کی فوری واپسی قدر ایک run loop ماخذ ہے۔ اس ماخذ کو شیڈول کریں؛ کام مکمل ہونے کے بعد کال بیک جانچ کا نتیجہ یا خرابی فراہم کرتا ہے۔ ماخذ بنا کر خالی نتیجہ متغیر فوراً پڑھنا کسی چیز کا انتظار نہیں کرتا۔ اگر کارروائی منسوخ کرنی ہو تو ماخذ کو باطل کریں۔

ہدف URL کو تلاش کے ساتھ منسلک رکھیں۔ PAC اسکرپٹ دو ہوسٹس کے لیے مختلف راستے چن سکتی ہے، اس لیے ایک حل شدہ پراکسی کو ہر آئندہ منزل کا جواب بنا کر محفوظ کرنا اسکرپٹ کی پالیسی بدل دیتا ہے۔ اسی طرح، براہ راست امیدوار واضح راستہ ہے، گمشدہ پراکسی ہوسٹ نام نہیں۔

یہ APIs اس وقت مفید ہیں جب کسی حسب ضرورت ٹرانسپورٹ کو سسٹم کی ترتیبات کی تشریح کرنی ہو۔ وہ اس ٹرانسپورٹ کے لیے اگلا پراکسی پروٹوکول نافذ نہیں کرتے، اور تلاش Keychain سے پاس ورڈ حاصل نہیں کرتی۔ macOS پر، Keychain میں پراکسی اسناد کو الگ سے ملائیں۔

متعلقہ مضامین