|
Lines 530-538
import_rule0(struct rule_check_info *ci)
Link Here
|
| 530 |
|
530 |
|
| 531 |
/* |
531 |
/* |
| 532 |
* Alter opcodes: |
532 |
* Alter opcodes: |
| 533 |
* 1) convert tablearg value from 65335 to 0 |
533 |
* 1) convert tablearg value from 65535 to 0 |
| 534 |
* 2) Add high bit to O_SETFIB/O_SETDSCP values (to make room for targ). |
534 |
* 2) Add high bit to O_SETFIB/O_SETDSCP values (to make room |
|
|
535 |
* for targ). |
| 535 |
* 3) convert table number in iface opcodes to u16 |
536 |
* 3) convert table number in iface opcodes to u16 |
|
|
537 |
* 4) convert old `nat global` into new 65535 |
| 536 |
*/ |
538 |
*/ |
| 537 |
l = krule->cmd_len; |
539 |
l = krule->cmd_len; |
| 538 |
cmd = krule->cmd; |
540 |
cmd = krule->cmd; |
|
Lines 554-565
import_rule0(struct rule_check_info *ci)
Link Here
|
| 554 |
case O_NETGRAPH: |
556 |
case O_NETGRAPH: |
| 555 |
case O_NGTEE: |
557 |
case O_NGTEE: |
| 556 |
case O_NAT: |
558 |
case O_NAT: |
| 557 |
if (cmd->arg1 == 65535) |
559 |
if (cmd->arg1 == IP_FW_TABLEARG) |
| 558 |
cmd->arg1 = IP_FW_TARG; |
560 |
cmd->arg1 = IP_FW_TARG; |
|
|
561 |
else if (cmd->arg1 == 0) |
| 562 |
cmd->arg1 = IP_FW_NAT44_GLOBAL; |
| 559 |
break; |
563 |
break; |
| 560 |
case O_SETFIB: |
564 |
case O_SETFIB: |
| 561 |
case O_SETDSCP: |
565 |
case O_SETDSCP: |
| 562 |
if (cmd->arg1 == 65535) |
566 |
if (cmd->arg1 == IP_FW_TABLEARG) |
| 563 |
cmd->arg1 = IP_FW_TARG; |
567 |
cmd->arg1 = IP_FW_TARG; |
| 564 |
else |
568 |
else |
| 565 |
cmd->arg1 |= 0x8000; |
569 |
cmd->arg1 |= 0x8000; |
|
Lines 566-572
import_rule0(struct rule_check_info *ci)
Link Here
|
| 566 |
break; |
570 |
break; |
| 567 |
case O_LIMIT: |
571 |
case O_LIMIT: |
| 568 |
lcmd = (ipfw_insn_limit *)cmd; |
572 |
lcmd = (ipfw_insn_limit *)cmd; |
| 569 |
if (lcmd->conn_limit == 65535) |
573 |
if (lcmd->conn_limit == IP_FW_TABLEARG) |
| 570 |
lcmd->conn_limit = IP_FW_TARG; |
574 |
lcmd->conn_limit = IP_FW_TARG; |
| 571 |
break; |
575 |
break; |
| 572 |
/* Interface tables */ |
576 |
/* Interface tables */ |
|
Lines 612-618
export_rule0(struct ip_fw *krule, struct ip_fw_rul
Link Here
|
| 612 |
|
616 |
|
| 613 |
/* |
617 |
/* |
| 614 |
* Alter opcodes: |
618 |
* Alter opcodes: |
| 615 |
* 1) convert tablearg value from 0 to 65335 |
619 |
* 1) convert tablearg value from 0 to 65535 |
| 616 |
* 2) Remove highest bit from O_SETFIB/O_SETDSCP values. |
620 |
* 2) Remove highest bit from O_SETFIB/O_SETDSCP values. |
| 617 |
* 3) convert table number in iface opcodes to int |
621 |
* 3) convert table number in iface opcodes to int |
| 618 |
*/ |
622 |
*/ |
|
Lines 637-648
export_rule0(struct ip_fw *krule, struct ip_fw_rul
Link Here
|
| 637 |
case O_NGTEE: |
641 |
case O_NGTEE: |
| 638 |
case O_NAT: |
642 |
case O_NAT: |
| 639 |
if (cmd->arg1 == IP_FW_TARG) |
643 |
if (cmd->arg1 == IP_FW_TARG) |
| 640 |
cmd->arg1 = 65535; |
644 |
cmd->arg1 = IP_FW_TABLEARG; |
|
|
645 |
else if (cmd->arg1 == IP_FW_NAT44_GLOBAL) |
| 646 |
cmd->arg1 = 0; |
| 641 |
break; |
647 |
break; |
| 642 |
case O_SETFIB: |
648 |
case O_SETFIB: |
| 643 |
case O_SETDSCP: |
649 |
case O_SETDSCP: |
| 644 |
if (cmd->arg1 == IP_FW_TARG) |
650 |
if (cmd->arg1 == IP_FW_TARG) |
| 645 |
cmd->arg1 = 65535; |
651 |
cmd->arg1 = IP_FW_TABLEARG; |
| 646 |
else |
652 |
else |
| 647 |
cmd->arg1 &= ~0x8000; |
653 |
cmd->arg1 &= ~0x8000; |
| 648 |
break; |
654 |
break; |
|
Lines 649-655
export_rule0(struct ip_fw *krule, struct ip_fw_rul
Link Here
|
| 649 |
case O_LIMIT: |
655 |
case O_LIMIT: |
| 650 |
lcmd = (ipfw_insn_limit *)cmd; |
656 |
lcmd = (ipfw_insn_limit *)cmd; |
| 651 |
if (lcmd->conn_limit == IP_FW_TARG) |
657 |
if (lcmd->conn_limit == IP_FW_TARG) |
| 652 |
lcmd->conn_limit = 65535; |
658 |
lcmd->conn_limit = IP_FW_TABLEARG; |
| 653 |
break; |
659 |
break; |
| 654 |
/* Interface tables */ |
660 |
/* Interface tables */ |
| 655 |
case O_XMIT: |
661 |
case O_XMIT: |