מוסכמת PAC המשמשת את דפדפני האינטרנט העיקריים, כולל מנוע אינטרנט, היא להשתמש בתחביר ביטוי רגיל שונה. עד עכשיו, pacmanager השתמש בביטויים רגילים להתאמה. אנחנו משנים את פונקציית shExpMatch כדי להשתמש בתאימות הדומה לדפדפנים.
שינוי זה אומר ש-RoomOS יפעל עם אותם התאמות קובץ PAC כמו לקוחות אינטרנט אחרים ברשת. ייתכן שיהיה צורך לעדכן קובצי PAC שנכתבו במיוחד עבור RoomOS כדי להמשיך לעבוד כמתוכנן.
הערכת קובץ ה-PAC מתבצעת בשני מקומות נפרדים בתוכנת RoomOS:
-
מנוע אינטרנט עבור תעבורה משלו.
-
Pacmanager עבור כל תעבורת HTTP אחרת: HttpFeedback, הקצאת Webex, איתות על שיחות וכן הלאה.
קובץ PAC יכול להשתמש בפונקציה זו: shExpMatch (מחרוזת, תבנית)
הפונקציה הזו היא ניסיונית. כלומר, התנהגות הפונקציה,שם הפונקציה ובאופן כללי כל מה שמתועד כאן עשוי להשתנות בהפצה עתידית.
ההבדלים העיקריים בין שתי המוסכמות מפורטים להלן, כאשר "REGEX" כלומר ביטויים רגילים מסורתיים ו-"BROWSER" כלומר מוסכמות דפדפן האינטרנט.
סימן הנקודה, "."
-
REGEX: . תואם תו יחיד, שניתן לחזור עליו באמצעות כמות
-
דפדפן: . מתאים רק תו נקודה ליטרלי
הכוכב, "*":
-
REGEX: * הוא מכמת אפס או יותר לאחר פריט, אך אינו תואם לשום דבר בפני עצמו
-
דפדפן: * תואם אפס תווים או יותר
סימן השאלה, "?":
-
REGEX: ? הוא מכמת אפס או אחד אחרי פריט, או יכול לשנות את הכמת * להיות לא חמדן, אבל לא תואם שום דבר בפני עצמו
-
דפדפן: ? תואם תו יחיד
האם כל הביטוי חייב להתאים:
-
regex: ללא שימוש ב- ^ מוביל ו- $ trailing, התבנית לא צריכה להתאים את המחרוזת כולה: דוגמה 1. STRING_string() example
-
דפדפן: תמיד יש להתאים את המחרוזת בדיוק לפי התבנית
דוגמאות
אנחנו רוצים להתאים את כל שמות המארח תחת "provider.domain", אבל לא "otherprovider.domain", "provider.domain.tld" או "providersdomain":
regex:
shExpMatch( url, ".*\\.provider\\.domain$")
דפדפן:
shExpMatch( url, "*.provider.domain")
אנחנו רוצים להתאים את "proxy1.domain", "proxy2.domain" וכן הלאה, אבל לא "proxytest.domain":
regex:
shExpMatch( url, "$proxy.\\. domain")
דפדפן:
shExpMatch( url, "proxy?.domain")
משאבים אחרים
לקבלת פרטים נוספים על תבנית קובץ PAC, ראה: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .