| 510 | } |
| 511 | |
| 512 | ipfw_insn * |
| 513 | add_dstip6(ipfw_insn *cmd, char *av, int cblen, struct tidx *tstate) |
| 514 | { |
| 515 | |
| 516 | fill_ip6((ipfw_insn_ip6 *)cmd, av, cblen, tstate); |
| 517 | if (cmd->opcode == O_IP_DST_SET) /* set */ |
| 518 | ; |
| 519 | else if (cmd->opcode == O_IP_DST_LOOKUP) /* table */ |
| 520 | ; |
| 521 | else if (F_LEN(cmd) == 0) { /* any */ |
| 522 | } else if (F_LEN(cmd) == F_INSN_SIZE(ipfw_insn)) { /* "me" */ |
| 523 | cmd->opcode = O_IP6_DST_ME; |
| 524 | } else if (F_LEN(cmd) == |
| 525 | (F_INSN_SIZE(struct in6_addr) + F_INSN_SIZE(ipfw_insn))) { |
| 526 | /* single IP, no mask*/ |
| 527 | cmd->opcode = O_IP6_DST; |
| 528 | } else { /* addr/mask opt */ |
| 529 | cmd->opcode = O_IP6_DST_MASK; |
| 530 | } |
| 531 | return cmd; |
| 532 | } |
no test coverage detected