今天在用客戶方案測試iAMT的System Defense功能的時候,碰到一個奇怪的現象,當設定好一條流量過濾規則以後,怎麼也無法成功應用到iAMT中。在應用規則時候,看起來是正常的,程式 也沒有報告什麼錯誤和異常;但是,當通過程式重新浏覽規則時,發現剛才的規則沒有增加進去。 怪事了,讓客戶工程師也測了一把,他說他那邊沒問題,換了幾個版本的iAMT機器試了一下,問題都一樣。一下子有點摸不着頭緒了,問題出在哪呢?
後來,重新寫了一條新的規則,确能夠成功應用到iAMT中,仔細對比一下,發現兩者的差別在于規則的名字有不一樣,不能成功應用的那條規則的名字中有一個 空格,恍然大悟! 這個是老問題了,說實在話,這個問題我以前碰到過好幾次,沒想到這次又碰上了老問題,時間一長,有些東西還真不是一下子能記住的。原因是這樣,在iAMT SDK中的《Network Interface Guide.pdf》文檔中關于CircuitBreakerFilterType(7.9.3.3)結構中的string FilterName是這樣解釋的“Filter name string is optional. Contains 7-bit ASCII characters, in the range of 33 to 126 excluding ‘:’, ‘,’, '>', '<', '&', and ‘”’ characters. String length is limited to 16 characters.”,空格符号,尖括号,冒号,逗号都是不能出現在過濾規則的名稱中的。
至此,真相大白!出現這個問題的原因,第一是我自己沒有時刻記住這個trick,另外,客戶的應用中如果能增加關于過濾規則名稱的檢查,從使用者友好度方面來說,将會是更好的,否則,使用者碰到問題的時候,總歸是有點莫明其妙的。
本文轉自Intel_ISN 51CTO部落格,原文連結:http://blog.51cto.com/intelisn/131467,如需轉載請自行聯系原作者