Changeset 1844
- Timestamp:
- 04/26/07 19:42:36 (21 months ago)
- Location:
- branches/3.0
- Files:
-
- 5 modified
-
src/common/cidr.c (modified) (6 diffs)
-
src/common/cidr.h (modified) (1 diff)
-
src/common/xX.c (modified) (2 diffs)
-
src/tcpprep.c (modified) (1 diff)
-
test/test2.rewrite_pnat (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
-
branches/3.0/src/common/cidr.c
r1757 r1844 375 375 } 376 376 377 /* 377 /* 378 378 * checks to see if the ip address is in the cidr 379 * returns TCPR_DIR_C2S for true, TCPR_DIR_S2C for false 380 */ 381 382 tcpr_dir_t 379 * returns 1 for true, 0 for false 380 */ 381 int 383 382 ip_in_cidr(const tcpr_cidr_t * mycidr, const unsigned long ip) 384 383 { 385 384 unsigned long ipaddr = 0, network = 0, mask = 0; 386 int ret ;385 int ret = 0; 387 386 388 387 /* always return 1 if 0.0.0.0/0 */ 389 388 if (mycidr->masklen == 0 && mycidr->network == 0) 390 return TCPR_DIR_C2S;389 return 1; 391 390 392 391 mask = ~0; /* turn on all the bits */ … … 407 406 get_addr2name4(htonl(network), RESOLVE), mycidr->masklen); 408 407 409 ret = TCPR_DIR_C2S;408 ret = 1; 410 409 } 411 410 else { … … 415 414 get_addr2name4(htonl(network), RESOLVE), mycidr->masklen); 416 415 417 ret = TCPR_DIR_S2C;416 ret = 0; 418 417 } 419 418 return ret; 420 } 419 420 } 421 421 422 422 423 /* 423 424 * iterates over cidrdata to find if a given ip matches 424 * returns TCPR_DIR_C2S for true, TCPR_DIR_S2Cfor false425 */ 426 427 tcpr_dir_t425 * returns 1 for true, 0 for false 426 */ 427 428 int 428 429 check_ip_cidr(tcpr_cidr_t * cidrdata, const unsigned long ip) 429 430 { … … 434 435 */ 435 436 if (cidrdata == NULL) { 436 return TCPR_DIR_S2C;437 return 1; 437 438 } 438 439 … … 443 444 444 445 /* if match, return 1 */ 445 if (ip_in_cidr(mycidr, ip) == TCPR_DIR_C2S) {446 if (ip_in_cidr(mycidr, ip)) { 446 447 dbgx(3, "Found %s in cidr", get_addr2name4(ip, RESOLVE)); 447 return TCPR_DIR_C2S;448 return 1; 448 449 } 449 450 /* check for next record */ … … 458 459 /* if we get here, no match */ 459 460 dbgx(3, "Didn't find %s in cidr", get_addr2name4(ip, RESOLVE)); 460 return TCPR_DIR_S2C;461 return 0; 461 462 } 462 463 -
branches/3.0/src/common/cidr.h
r1757 r1844 51 51 typedef struct tcpr_cidrmap_s tcpr_cidrmap_t; 52 52 53 tcpr_dir_t ip_in_cidr(const tcpr_cidr_t *, const unsigned long);54 tcpr_dir_t check_ip_cidr(tcpr_cidr_t *, const unsigned long);53 int ip_in_cidr(const tcpr_cidr_t *, const unsigned long); 54 int check_ip_cidr(tcpr_cidr_t *, const unsigned long); 55 55 int parse_cidr(tcpr_cidr_t **, char *, char *delim); 56 56 int parse_cidr_map(tcpr_cidrmap_t **, const char *); -
branches/3.0/src/common/xX.c
r1757 r1844 134 134 * and NOT true/false or 1/0, etc! 135 135 */ 136 return check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) == TCPR_DIR_C2S? DONT_SEND : SEND;136 return check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) ? DONT_SEND : SEND; 137 137 break; 138 138 case xXDest: 139 return check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) == TCPR_DIR_C2S? DONT_SEND : SEND;139 return check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) ? DONT_SEND : SEND; 140 140 case xXBoth: 141 return (check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) == TCPR_DIR_C2S&&142 check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) == TCPR_DIR_C2S) ? DONT_SEND : SEND;141 return (check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) && 142 check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) ) ? DONT_SEND : SEND; 143 143 break; 144 144 case xXEither: 145 return (check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) == TCPR_DIR_C2S||146 check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) == TCPR_DIR_C2S) ? DONT_SEND : SEND;145 return (check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) || 146 check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) ) ? DONT_SEND : SEND; 147 147 break; 148 148 } … … 152 152 switch (mode) { 153 153 case xXSource: 154 return check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) == TCPR_DIR_C2S? SEND : DONT_SEND;154 return check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) ? SEND : DONT_SEND; 155 155 break; 156 156 case xXDest: 157 return check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) == TCPR_DIR_C2S? SEND : DONT_SEND;157 return check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) ? SEND : DONT_SEND; 158 158 break; 159 159 case xXBoth: 160 return (check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) == TCPR_DIR_C2S&&161 check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) == TCPR_DIR_C2S) ? SEND : DONT_SEND;160 return (check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) && 161 check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) ) ? SEND : DONT_SEND; 162 162 break; 163 163 case xXEither: 164 return (check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) == TCPR_DIR_C2S||165 check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) == TCPR_DIR_C2S) ? SEND : DONT_SEND;164 return (check_ip_cidr(cidr, ip_hdr->ip_dst.s_addr) || 165 check_ip_cidr(cidr, ip_hdr->ip_src.s_addr) ) ? SEND : DONT_SEND; 166 166 break; 167 167 } -
branches/3.0/src/tcpprep.c
r1820 r1844 365 365 dbg(2, "processing cidr mode..."); 366 366 cache_result = add_cache(&options.cachedata, SEND, 367 check_ip_cidr(options.cidrdata, ip_hdr->ip_src.s_addr) );367 check_ip_cidr(options.cidrdata, ip_hdr->ip_src.s_addr) ? TCPR_DIR_C2S : TCPR_DIR_S2C ); 368 368 break; 369 369 case MAC_MODE:
