| 3660 | } |
| 3661 | |
| 3662 | static ipfw_insn * |
| 3663 | add_srcip(ipfw_insn *cmd, char *av, int cblen, struct tidx *tstate) |
| 3664 | { |
| 3665 | fill_ip((ipfw_insn_ip *)cmd, av, cblen, tstate); |
| 3666 | if (cmd->opcode == O_IP_DST_SET) /* set */ |
| 3667 | cmd->opcode = O_IP_SRC_SET; |
| 3668 | else if (cmd->opcode == O_IP_DST_LOOKUP) /* table */ |
| 3669 | cmd->opcode = O_IP_SRC_LOOKUP; |
| 3670 | else if (F_LEN(cmd) == F_INSN_SIZE(ipfw_insn)) /* me */ |
| 3671 | cmd->opcode = O_IP_SRC_ME; |
| 3672 | else if (F_LEN(cmd) == F_INSN_SIZE(ipfw_insn_u32)) /* one IP */ |
| 3673 | cmd->opcode = O_IP_SRC; |
| 3674 | else /* addr/mask */ |
| 3675 | cmd->opcode = O_IP_SRC_MASK; |
| 3676 | return cmd; |
| 3677 | } |
| 3678 | |
| 3679 | static ipfw_insn * |
| 3680 | add_dstip(ipfw_insn *cmd, char *av, int cblen, struct tidx *tstate) |
no test coverage detected