소스 검색

Fix ICMP match.

Adam Ierymenko 9 년 전
부모
커밋
4f3775bb86
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      node/Network.cpp

+ 2 - 2
node/Network.cpp

@@ -383,8 +383,8 @@ static _doZtFilterResult _doZtFilter(
 				break;
 			case ZT_NETWORK_RULE_MATCH_ICMP:
 				if ((etherType == ZT_ETHERTYPE_IPV4)&&(frameLen >= 20)) {
-					if (frameData[9] == 0x01) {
-						const unsigned int ihl = (frameData[0] & 0xf) * 32;
+					if (frameData[9] == 0x01) { // IP protocol == ICMP
+						const unsigned int ihl = (frameData[0] & 0xf) * 4;
 						if (frameLen >= (ihl + 2)) {
 							if (rules[rn].v.icmp.type == frameData[ihl]) {
 								if ((rules[rn].v.icmp.flags & 0x01) != 0) {