61 uint32_t a_ip1 =
SCNtohl(a->
ip.addr_data32[0]);
62 uint32_t a_ip2 =
SCNtohl(a->
ip2.addr_data32[0]);
63 uint32_t b_ip1 =
SCNtohl(b->
ip.addr_data32[0]);
64 uint32_t b_ip2 =
SCNtohl(b->
ip2.addr_data32[0]);
66 if (a_ip1 == b_ip1 && a_ip2 == b_ip2) {
69 }
else if (a_ip1 >= b_ip1 && a_ip1 <= b_ip2 && a_ip2 <= b_ip2) {
72 }
else if (a_ip1 <= b_ip1 && a_ip2 >= b_ip2) {
75 }
else if (a_ip1 < b_ip1 && a_ip2 < b_ip2 && a_ip2 >= b_ip1) {
78 }
else if (a_ip1 < b_ip1 && a_ip2 < b_ip2) {
81 }
else if (a_ip1 > b_ip1 && a_ip1 <= b_ip2 && a_ip2 > b_ip2) {
84 }
else if (a_ip1 > b_ip2) {
89 SCLogDebug(
"Internal Error: should be unreachable");
116 uint32_t a_ip1 =
SCNtohl(a->
ip.addr_data32[0]);
117 uint32_t a_ip2 =
SCNtohl(a->
ip2.addr_data32[0]);
118 uint32_t b_ip1 =
SCNtohl(b->
ip.addr_data32[0]);
119 uint32_t b_ip2 =
SCNtohl(b->
ip2.addr_data32[0]);
144 SCLogDebug(
"DetectAddressCutIPv4: r == ADDRESS_LE");
146 a->
ip.addr_data32[0] = htonl(a_ip1);
147 a->
ip2.addr_data32[0] = htonl(b_ip1 - 1);
149 b->
ip.addr_data32[0] = htonl(b_ip1);
150 b->
ip2.addr_data32[0] = htonl(a_ip2);
157 tmp_c->
ip.addr_data32[0] = htonl(a_ip2 + 1);
158 tmp_c->
ip2.addr_data32[0] = htonl(b_ip2);
167 SCLogDebug(
"DetectAddressCutIPv4: r == ADDRESS_GE");
169 a->
ip.addr_data32[0] = htonl(b_ip1);
170 a->
ip2.addr_data32[0] = htonl(a_ip1 - 1);
172 b->
ip.addr_data32[0] = htonl(a_ip1);
173 b->
ip2.addr_data32[0] = htonl(b_ip2);
180 tmp_c->
ip.addr_data32[0] = htonl(b_ip2 + 1);
181 tmp_c->
ip2.addr_data32[0] = htonl(a_ip2);
201 SCLogDebug(
"DetectAddressCutIPv4: r == ADDRESS_ES");
203 if (a_ip1 == b_ip1) {
206 a->
ip.addr_data32[0] = htonl(a_ip1);
207 a->
ip2.addr_data32[0] = htonl(a_ip2);
209 b->
ip.addr_data32[0] = htonl(a_ip2 + 1);
210 b->
ip2.addr_data32[0] = htonl(b_ip2);
212 }
else if (a_ip2 == b_ip2) {
215 a->
ip.addr_data32[0] = htonl(b_ip1);
216 a->
ip2.addr_data32[0] = htonl(a_ip1 - 1);
218 b->
ip.addr_data32[0] = htonl(a_ip1);
219 b->
ip2.addr_data32[0] = htonl(a_ip2);
224 a->
ip.addr_data32[0] = htonl(b_ip1);
225 a->
ip2.addr_data32[0] = htonl(a_ip1 - 1);
227 b->
ip.addr_data32[0] = htonl(a_ip1);
228 b->
ip2.addr_data32[0] = htonl(a_ip2);
235 tmp_c->
ip.addr_data32[0] = htonl(a_ip2 + 1);
236 tmp_c->
ip2.addr_data32[0] = htonl(b_ip2);
256 SCLogDebug(
"DetectAddressCutIPv4: r == ADDRESS_EB");
258 if (a_ip1 == b_ip1) {
261 a->
ip.addr_data32[0] = htonl(b_ip1);
262 a->
ip2.addr_data32[0] = htonl(b_ip2);
264 b->
ip.addr_data32[0] = htonl(b_ip2 + 1);
265 b->
ip2.addr_data32[0] = htonl(a_ip2);
266 }
else if (a_ip2 == b_ip2) {
269 a->
ip.addr_data32[0] = htonl(a_ip1);
270 a->
ip2.addr_data32[0] = htonl(b_ip1 - 1);
272 b->
ip.addr_data32[0] = htonl(b_ip1);
273 b->
ip2.addr_data32[0] = htonl(b_ip2);
277 a->
ip.addr_data32[0] = htonl(a_ip1);
278 a->
ip2.addr_data32[0] = htonl(b_ip1 - 1);
280 b->
ip.addr_data32[0] = htonl(b_ip1);
281 b->
ip2.addr_data32[0] = htonl(b_ip2);
288 tmp_c->
ip.addr_data32[0] = htonl(b_ip2 + 1);
289 tmp_c->
ip2.addr_data32[0] = htonl(a_ip2);
316 uint32_t next_ip = 0;
322 if (
SCNtohl(ag->
ip.addr_data32[0]) != 0x00000000)
327 if (
SCNtohl(ag->
ip2.addr_data32[0]) == 0xFFFFFFFF)
330 next_ip = htonl(
SCNtohl(ag->
ip2.addr_data32[0]) + 1);
333 for ( ; ag != NULL; ag = ag->
next) {
335 if (ag->
ip.addr_data32[0] != next_ip)
338 if (
SCNtohl(ag->
ip2.addr_data32[0]) == 0xFFFFFFFF)
341 next_ip = htonl(
SCNtohl(ag->
ip2.addr_data32[0]) + 1);
370 uint32_t a_ip1 =
SCNtohl(a->
ip.addr_data32[0]);
371 uint32_t a_ip2 =
SCNtohl(a->
ip2.addr_data32[0]);
377 if (a_ip1 != 0x00000000 && a_ip2 != 0xFFFFFFFF) {
378 a->
ip.addr_data32[0] = htonl(0x00000000);
379 a->
ip2.addr_data32[0] = htonl(a_ip1 - 1);
386 tmp_b->
ip.addr_data32[0] = htonl(a_ip2 + 1);
387 tmp_b->
ip2.addr_data32[0] = htonl(0xFFFFFFFF);
389 }
else if (a_ip1 == 0x00000000 && a_ip2 != 0xFFFFFFFF) {
390 a->
ip.addr_data32[0] = htonl(a_ip2 + 1);
391 a->
ip2.addr_data32[0] = htonl(0xFFFFFFFF);
392 }
else if (a_ip1 != 0x00000000 && a_ip2 == 0xFFFFFFFF) {
393 a->
ip.addr_data32[0] = htonl(0x00000000);
394 a->
ip2.addr_data32[0] = htonl(a_ip1 - 1);
432 if (source == NULL || target == NULL)
436 target->
ip.addr_data32[0] = source->
ip.addr_data32[0];
439 target->
ip2.addr_data32[0] = source->
ip2.addr_data32[0];
448 static int DetectAddressIPv4TestAddressCmp01(
void)
463 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
465 a->
ip.addr_data32[0] = in.s_addr;
466 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
468 a->
ip2.addr_data32[0] = in.s_addr;
469 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
471 b->
ip.addr_data32[0] = in.s_addr;
472 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
474 b->
ip2.addr_data32[0] = in.s_addr;
477 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
479 a->
ip.addr_data32[0] = in.s_addr;
480 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
482 a->
ip2.addr_data32[0] = in.s_addr;
483 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
485 b->
ip.addr_data32[0] = in.s_addr;
486 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
488 b->
ip2.addr_data32[0] = in.s_addr;
491 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
493 a->
ip.addr_data32[0] = in.s_addr;
494 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
496 a->
ip2.addr_data32[0] = in.s_addr;
497 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
499 b->
ip.addr_data32[0] = in.s_addr;
500 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
502 b->
ip2.addr_data32[0] = in.s_addr;
505 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
507 a->
ip.addr_data32[0] = in.s_addr;
508 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
510 a->
ip2.addr_data32[0] = in.s_addr;
511 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
513 b->
ip.addr_data32[0] = in.s_addr;
514 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
516 b->
ip2.addr_data32[0] = in.s_addr;
519 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
521 a->
ip.addr_data32[0] = in.s_addr;
522 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
524 a->
ip2.addr_data32[0] = in.s_addr;
525 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
527 b->
ip.addr_data32[0] = in.s_addr;
528 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
530 b->
ip2.addr_data32[0] = in.s_addr;
533 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
535 a->
ip.addr_data32[0] = in.s_addr;
536 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
538 a->
ip2.addr_data32[0] = in.s_addr;
539 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
541 b->
ip.addr_data32[0] = in.s_addr;
542 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
544 b->
ip2.addr_data32[0] = in.s_addr;
547 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
549 a->
ip.addr_data32[0] = in.s_addr;
550 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
552 a->
ip2.addr_data32[0] = in.s_addr;
553 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
555 b->
ip.addr_data32[0] = in.s_addr;
556 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
558 b->
ip2.addr_data32[0] = in.s_addr;
561 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
563 a->
ip.addr_data32[0] = in.s_addr;
564 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
566 a->
ip2.addr_data32[0] = in.s_addr;
567 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
569 b->
ip.addr_data32[0] = in.s_addr;
570 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
572 b->
ip2.addr_data32[0] = in.s_addr;
575 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
577 a->
ip.addr_data32[0] = in.s_addr;
578 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
580 a->
ip2.addr_data32[0] = in.s_addr;
581 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
583 b->
ip.addr_data32[0] = in.s_addr;
584 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
586 b->
ip2.addr_data32[0] = in.s_addr;
589 if (inet_pton(AF_INET,
"1.2.3.5", &in) < 0)
591 a->
ip.addr_data32[0] = in.s_addr;
592 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
594 a->
ip2.addr_data32[0] = in.s_addr;
595 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
597 b->
ip.addr_data32[0] = in.s_addr;
598 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
600 b->
ip2.addr_data32[0] = in.s_addr;
603 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
605 a->
ip.addr_data32[0] = in.s_addr;
606 if (inet_pton(AF_INET,
"128.128.128.128", &in) < 0)
608 a->
ip2.addr_data32[0] = in.s_addr;
609 if (inet_pton(AF_INET,
"128.128.128.128", &in) < 0)
611 b->
ip.addr_data32[0] = in.s_addr;
612 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
614 b->
ip2.addr_data32[0] = in.s_addr;
617 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
619 a->
ip.addr_data32[0] = in.s_addr;
620 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
622 a->
ip2.addr_data32[0] = in.s_addr;
623 if (inet_pton(AF_INET,
"128.128.128.128", &in) < 0)
625 b->
ip.addr_data32[0] = in.s_addr;
626 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
628 b->
ip2.addr_data32[0] = in.s_addr;
631 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
633 a->
ip.addr_data32[0] = in.s_addr;
634 if (inet_pton(AF_INET,
"180.180.180.180", &in) < 0)
636 a->
ip2.addr_data32[0] = in.s_addr;
637 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
639 b->
ip.addr_data32[0] = in.s_addr;
640 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
642 b->
ip2.addr_data32[0] = in.s_addr;
645 if (inet_pton(AF_INET,
"170.170.170.169", &in) < 0)
647 a->
ip.addr_data32[0] = in.s_addr;
648 if (inet_pton(AF_INET,
"180.180.180.180", &in) < 0)
650 a->
ip2.addr_data32[0] = in.s_addr;
651 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
653 b->
ip.addr_data32[0] = in.s_addr;
654 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
656 b->
ip2.addr_data32[0] = in.s_addr;
659 if (inet_pton(AF_INET,
"170.170.170.169", &in) < 0)
661 a->
ip.addr_data32[0] = in.s_addr;
662 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
664 a->
ip2.addr_data32[0] = in.s_addr;
665 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
667 b->
ip.addr_data32[0] = in.s_addr;
668 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
670 b->
ip2.addr_data32[0] = in.s_addr;
673 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
675 a->
ip.addr_data32[0] = in.s_addr;
676 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
678 a->
ip2.addr_data32[0] = in.s_addr;
679 if (inet_pton(AF_INET,
"180.180.180.180", &in) < 0)
681 b->
ip.addr_data32[0] = in.s_addr;
682 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
684 b->
ip2.addr_data32[0] = in.s_addr;
687 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
689 a->
ip.addr_data32[0] = in.s_addr;
690 if (inet_pton(AF_INET,
"185.185.185.185", &in) < 0)
692 a->
ip2.addr_data32[0] = in.s_addr;
693 if (inet_pton(AF_INET,
"180.180.180.180", &in) < 0)
695 b->
ip.addr_data32[0] = in.s_addr;
696 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
698 b->
ip2.addr_data32[0] = in.s_addr;
702 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
704 a->
ip.addr_data32[0] = in.s_addr;
705 if (inet_pton(AF_INET,
"180.180.180.180", &in) < 0)
707 a->
ip2.addr_data32[0] = in.s_addr;
708 if (inet_pton(AF_INET,
"180.180.180.180", &in) < 0)
710 b->
ip.addr_data32[0] = in.s_addr;
711 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
713 b->
ip2.addr_data32[0] = in.s_addr;
717 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
719 a->
ip.addr_data32[0] = in.s_addr;
720 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
722 a->
ip2.addr_data32[0] = in.s_addr;
723 if (inet_pton(AF_INET,
"180.180.180.180", &in) < 0)
725 b->
ip.addr_data32[0] = in.s_addr;
726 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
728 b->
ip2.addr_data32[0] = in.s_addr;
731 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
733 a->
ip.addr_data32[0] = in.s_addr;
734 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
736 a->
ip2.addr_data32[0] = in.s_addr;
737 if (inet_pton(AF_INET,
"180.180.180.180", &in) < 0)
739 b->
ip.addr_data32[0] = in.s_addr;
740 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
742 b->
ip2.addr_data32[0] = in.s_addr;
745 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
747 a->
ip.addr_data32[0] = in.s_addr;
748 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
750 a->
ip2.addr_data32[0] = in.s_addr;
751 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
753 b->
ip.addr_data32[0] = in.s_addr;
754 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
756 b->
ip2.addr_data32[0] = in.s_addr;
759 if (inet_pton(AF_INET,
"128.128.128.128", &in) < 0)
761 a->
ip.addr_data32[0] = in.s_addr;
762 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
764 a->
ip2.addr_data32[0] = in.s_addr;
765 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
767 b->
ip.addr_data32[0] = in.s_addr;
768 if (inet_pton(AF_INET,
"128.128.128.128", &in) < 0)
770 b->
ip2.addr_data32[0] = in.s_addr;
773 if (inet_pton(AF_INET,
"128.128.128.128", &in) < 0)
775 a->
ip.addr_data32[0] = in.s_addr;
776 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
778 a->
ip2.addr_data32[0] = in.s_addr;
779 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
781 b->
ip.addr_data32[0] = in.s_addr;
782 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
784 b->
ip2.addr_data32[0] = in.s_addr;
787 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
789 a->
ip.addr_data32[0] = in.s_addr;
790 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
792 a->
ip2.addr_data32[0] = in.s_addr;
793 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
795 b->
ip.addr_data32[0] = in.s_addr;
796 if (inet_pton(AF_INET,
"180.180.180.180", &in) < 0)
798 b->
ip2.addr_data32[0] = in.s_addr;
801 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
803 a->
ip.addr_data32[0] = in.s_addr;
804 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
806 a->
ip2.addr_data32[0] = in.s_addr;
807 if (inet_pton(AF_INET,
"170.170.170.169", &in) < 0)
809 b->
ip.addr_data32[0] = in.s_addr;
810 if (inet_pton(AF_INET,
"180.180.180.180", &in) < 0)
812 b->
ip2.addr_data32[0] = in.s_addr;
815 if (inet_pton(AF_INET,
"170.170.170.169", &in) < 0)
817 a->
ip.addr_data32[0] = in.s_addr;
818 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
820 a->
ip2.addr_data32[0] = in.s_addr;
821 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
823 b->
ip.addr_data32[0] = in.s_addr;
824 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
826 b->
ip2.addr_data32[0] = in.s_addr;
829 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
831 a->
ip.addr_data32[0] = in.s_addr;
832 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
834 a->
ip2.addr_data32[0] = in.s_addr;
835 if (inet_pton(AF_INET,
"170.170.169.170", &in) < 0)
837 b->
ip.addr_data32[0] = in.s_addr;
838 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
840 b->
ip2.addr_data32[0] = in.s_addr;
843 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
845 a->
ip.addr_data32[0] = in.s_addr;
846 if (inet_pton(AF_INET,
"200.200.200.200", &in) < 0)
848 a->
ip2.addr_data32[0] = in.s_addr;
849 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
851 b->
ip.addr_data32[0] = in.s_addr;
852 if (inet_pton(AF_INET,
"185.185.185.185", &in) < 0)
854 b->
ip2.addr_data32[0] = in.s_addr;
857 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
859 a->
ip.addr_data32[0] = in.s_addr;
860 if (inet_pton(AF_INET,
"200.200.200.200", &in) < 0)
862 a->
ip2.addr_data32[0] = in.s_addr;
863 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
865 b->
ip.addr_data32[0] = in.s_addr;
866 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
868 b->
ip2.addr_data32[0] = in.s_addr;
871 if (inet_pton(AF_INET,
"182.168.1.2", &in) < 0)
873 a->
ip.addr_data32[0] = in.s_addr;
874 if (inet_pton(AF_INET,
"200.200.200.200", &in) < 0)
876 a->
ip2.addr_data32[0] = in.s_addr;
877 if (inet_pton(AF_INET,
"170.170.170.170", &in) < 0)
879 b->
ip.addr_data32[0] = in.s_addr;
880 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
882 b->
ip2.addr_data32[0] = in.s_addr;
895 static int DetectAddressIPv4IsCompleteIPSpace02(
void)
904 if (inet_pton(AF_INET,
"0.0.0.0", &in) < 0)
906 a->
ip.addr_data32[0] = in.s_addr;
907 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
909 a->
ip2.addr_data32[0] = in.s_addr;
912 if (inet_pton(AF_INET,
"0.0.0.1", &in) < 0)
914 a->
ip.addr_data32[0] = in.s_addr;
915 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
917 a->
ip2.addr_data32[0] = in.s_addr;
925 if (inet_pton(AF_INET,
"0.0.0.0", &in) < 0)
927 a->
ip.addr_data32[0] = in.s_addr;
928 if (inet_pton(AF_INET,
"255.255.255.254", &in) < 0)
930 a->
ip2.addr_data32[0] = in.s_addr;
943 static int DetectAddressIPv4IsCompleteIPSpace03(
void)
954 if (inet_pton(AF_INET,
"0.0.0.0", &in) < 0)
956 a->
ip.addr_data32[0] = in.s_addr;
957 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
959 a->
ip2.addr_data32[0] = in.s_addr;
966 if (inet_pton(AF_INET,
"1.2.3.5", &in) < 0)
968 temp->
ip.addr_data32[0] = in.s_addr;
969 if (inet_pton(AF_INET,
"126.36.62.61", &in) < 0)
971 temp->
ip2.addr_data32[0] = in.s_addr;
978 if (inet_pton(AF_INET,
"126.36.62.62", &in) < 0)
980 temp->
ip.addr_data32[0] = in.s_addr;
981 if (inet_pton(AF_INET,
"222.52.21.62", &in) < 0)
983 temp->
ip2.addr_data32[0] = in.s_addr;
990 if (inet_pton(AF_INET,
"222.52.21.63", &in) < 0)
992 temp->
ip.addr_data32[0] = in.s_addr;
993 if (inet_pton(AF_INET,
"255.255.255.254", &in) < 0)
995 temp->
ip2.addr_data32[0] = in.s_addr;
1002 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
1004 temp->
ip.addr_data32[0] = in.s_addr;
1005 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
1007 temp->
ip2.addr_data32[0] = in.s_addr;
1020 static int DetectAddressIPv4IsCompleteIPSpace04(
void)
1031 if (inet_pton(AF_INET,
"0.0.0.0", &in) < 0)
1033 a->
ip.addr_data32[0] = in.s_addr;
1034 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1036 a->
ip2.addr_data32[0] = in.s_addr;
1043 if (inet_pton(AF_INET,
"1.2.3.5", &in) < 0)
1045 temp->
ip.addr_data32[0] = in.s_addr;
1046 if (inet_pton(AF_INET,
"126.36.62.61", &in) < 0)
1048 temp->
ip2.addr_data32[0] = in.s_addr;
1055 if (inet_pton(AF_INET,
"126.36.62.62", &in) < 0)
1057 temp->
ip.addr_data32[0] = in.s_addr;
1058 if (inet_pton(AF_INET,
"222.52.21.62", &in) < 0)
1060 temp->
ip2.addr_data32[0] = in.s_addr;
1067 if (inet_pton(AF_INET,
"222.52.21.64", &in) < 0)
1069 temp->
ip.addr_data32[0] = in.s_addr;
1070 if (inet_pton(AF_INET,
"255.255.255.254", &in) < 0)
1072 temp->
ip2.addr_data32[0] = in.s_addr;
1079 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
1081 temp->
ip.addr_data32[0] = in.s_addr;
1082 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
1084 temp->
ip2.addr_data32[0] = in.s_addr;
1097 static int DetectAddressIPv4CutNot05(
void)
1107 if (inet_pton(AF_INET,
"0.0.0.0", &in) < 0)
1109 a->
ip.addr_data32[0] = in.s_addr;
1110 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
1112 a->
ip2.addr_data32[0] = in.s_addr;
1127 static int DetectAddressIPv4CutNot06(
void)
1137 if (inet_pton(AF_INET,
"0.0.0.0", &in) < 0)
1139 a->
ip.addr_data32[0] = in.s_addr;
1140 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1142 a->
ip2.addr_data32[0] = in.s_addr;
1145 if (inet_pton(AF_INET,
"1.2.3.5", &in) < 0)
1147 result = (a->
ip.addr_data32[0] == in.s_addr);
1148 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
1150 result &= (a->
ip2.addr_data32[0] = in.s_addr);
1164 static int DetectAddressIPv4CutNot07(
void)
1174 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1176 a->
ip.addr_data32[0] = in.s_addr;
1177 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
1179 a->
ip2.addr_data32[0] = in.s_addr;
1182 if (inet_pton(AF_INET,
"0.0.0.0", &in) < 0)
1184 result = (a->
ip.addr_data32[0] == in.s_addr);
1185 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
1187 result &= (a->
ip2.addr_data32[0] = in.s_addr);
1201 static int DetectAddressIPv4CutNot08(
void)
1211 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1213 a->
ip.addr_data32[0] = in.s_addr;
1214 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1216 a->
ip2.addr_data32[0] = in.s_addr;
1219 if (inet_pton(AF_INET,
"0.0.0.0", &in) < 0)
1221 result &= (a->
ip.addr_data32[0] == in.s_addr);
1222 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
1224 result &= (a->
ip2.addr_data32[0] = in.s_addr);
1232 if (inet_pton(AF_INET,
"1.2.3.5", &in) < 0)
1234 result &= (b->
ip.addr_data32[0] == in.s_addr);
1235 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
1237 result &= (b->
ip2.addr_data32[0] = in.s_addr);
1251 static int DetectAddressIPv4CutNot09(
void)
1261 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1263 a->
ip.addr_data32[0] = in.s_addr;
1264 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1266 a->
ip2.addr_data32[0] = in.s_addr;
1269 if (inet_pton(AF_INET,
"0.0.0.0", &in) < 0)
1271 result &= (a->
ip.addr_data32[0] == in.s_addr);
1272 if (inet_pton(AF_INET,
"1.2.3.3", &in) < 0)
1274 result &= (a->
ip2.addr_data32[0] = in.s_addr);
1282 if (inet_pton(AF_INET,
"192.168.1.3", &in) < 0)
1284 result &= (b->
ip.addr_data32[0] == in.s_addr);
1285 if (inet_pton(AF_INET,
"255.255.255.255", &in) < 0)
1287 result &= (b->
ip2.addr_data32[0] = in.s_addr);
1301 static int DetectAddressIPv4Join10(
void)
1311 if (target == NULL) {
1316 if (inet_pton(AF_INET,
"128.51.61.124", &in) < 0)
1318 target->
ip.addr_data32[0] = in.s_addr;
1319 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1321 target->
ip2.addr_data32[0] = in.s_addr;
1323 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1325 source->
ip.addr_data32[0] = in.s_addr;
1326 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1328 source->
ip2.addr_data32[0] = in.s_addr;
1331 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1333 result &= (target->
ip.addr_data32[0] == in.s_addr);
1334 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1336 result &= (target->
ip2.addr_data32[0] == in.s_addr);
1338 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1340 target->
ip.addr_data32[0] = in.s_addr;
1341 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1343 target->
ip2.addr_data32[0] = in.s_addr;
1345 if (inet_pton(AF_INET,
"1.2.3.5", &in) < 0)
1347 source->
ip.addr_data32[0] = in.s_addr;
1348 if (inet_pton(AF_INET,
"192.168.1.1", &in) < 0)
1350 source->
ip2.addr_data32[0] = in.s_addr;
1353 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1355 result &= (target->
ip.addr_data32[0] == in.s_addr);
1356 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1358 result &= (target->
ip2.addr_data32[0] == in.s_addr);
1360 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1362 target->
ip.addr_data32[0] = in.s_addr;
1363 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1365 target->
ip2.addr_data32[0] = in.s_addr;
1367 if (inet_pton(AF_INET,
"128.1.5.15", &in) < 0)
1369 source->
ip.addr_data32[0] = in.s_addr;
1370 if (inet_pton(AF_INET,
"200.202.200.200", &in) < 0)
1372 source->
ip2.addr_data32[0] = in.s_addr;
1375 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1377 result &= (target->
ip.addr_data32[0] == in.s_addr);
1378 if (inet_pton(AF_INET,
"200.202.200.200", &in) < 0)
1380 result &= (target->
ip2.addr_data32[0] == in.s_addr);
1382 if (inet_pton(AF_INET,
"128.51.61.124", &in) < 0)
1384 target->
ip.addr_data32[0] = in.s_addr;
1385 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1387 target->
ip2.addr_data32[0] = in.s_addr;
1389 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1391 source->
ip.addr_data32[0] = in.s_addr;
1392 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1394 source->
ip2.addr_data32[0] = in.s_addr;
1397 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1399 result &= (target->
ip.addr_data32[0] == in.s_addr);
1400 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1402 result &= (target->
ip2.addr_data32[0] == in.s_addr);
1404 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1406 target->
ip.addr_data32[0] = in.s_addr;
1407 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1409 target->
ip2.addr_data32[0] = in.s_addr;
1411 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1413 source->
ip.addr_data32[0] = in.s_addr;
1414 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1416 source->
ip2.addr_data32[0] = in.s_addr;
1419 if (inet_pton(AF_INET,
"1.2.3.4", &in) < 0)
1421 result &= (target->
ip.addr_data32[0] == in.s_addr);
1422 if (inet_pton(AF_INET,
"192.168.1.2", &in) < 0)
1424 result &= (target->
ip2.addr_data32[0] == in.s_addr);
1442 DetectAddressIPv4TestAddressCmp01);
1444 DetectAddressIPv4IsCompleteIPSpace02);
1446 DetectAddressIPv4IsCompleteIPSpace03);
1448 DetectAddressIPv4IsCompleteIPSpace04);
1449 UtRegisterTest(
"DetectAddressIPv4CutNot05", DetectAddressIPv4CutNot05);
1450 UtRegisterTest(
"DetectAddressIPv4CutNot06", DetectAddressIPv4CutNot06);
1451 UtRegisterTest(
"DetectAddressIPv4CutNot07", DetectAddressIPv4CutNot07);
1452 UtRegisterTest(
"DetectAddressIPv4CutNot08", DetectAddressIPv4CutNot08);
1453 UtRegisterTest(
"DetectAddressIPv4CutNot09", DetectAddressIPv4CutNot09);
1454 UtRegisterTest(
"DetectAddressIPv4Join10", DetectAddressIPv4Join10);
int DetectAddressJoinIPv4(DetectEngineCtx *de_ctx, DetectAddress *target, DetectAddress *source)
Extends a target address range if the the source address range is wider than the target address range...
address structure for use in the detection engine.
int DetectAddressCutIPv4(DetectEngineCtx *de_ctx, DetectAddress *a, DetectAddress *b, DetectAddress **c)
Cut groups and merge sigs.
main detection engine ctx
struct DetectAddress_ * next
void UtRegisterTest(const char *name, int(*TestFn)(void))
Register unit test.
int DetectAddressCmpIPv4(DetectAddress *a, DetectAddress *b)
Compares 2 addresses(address ranges) and returns the relationship between the 2 addresses.
void DetectAddressFree(DetectAddress *ag)
Frees a DetectAddress instance.
DetectAddress * DetectAddressInit(void)
Creates and returns a new instance of a DetectAddress.
int DetectAddressIsCompleteIPSpaceIPv4(DetectAddress *ag)
Check if the address group list covers the complete IPv4 IP space.
int DetectAddressCutNotIPv4(DetectAddress *a, DetectAddress **b)
Cuts and returns an address range, which is the complement of the address range that is supplied as t...
void DetectAddressIPv4Tests(void)