| 488 | } |
| 489 | |
| 490 | ipfw_insn * |
| 491 | add_srcip6(ipfw_insn *cmd, char *av, int cblen, struct tidx *tstate) |
| 492 | { |
| 493 | |
| 494 | fill_ip6((ipfw_insn_ip6 *)cmd, av, cblen, tstate); |
| 495 | if (cmd->opcode == O_IP_DST_SET) /* set */ |
| 496 | cmd->opcode = O_IP_SRC_SET; |
| 497 | else if (cmd->opcode == O_IP_DST_LOOKUP) /* table */ |
| 498 | cmd->opcode = O_IP_SRC_LOOKUP; |
| 499 | else if (F_LEN(cmd) == 0) { /* any */ |
| 500 | } else if (F_LEN(cmd) == F_INSN_SIZE(ipfw_insn)) { /* "me" */ |
| 501 | cmd->opcode = O_IP6_SRC_ME; |
| 502 | } else if (F_LEN(cmd) == |
| 503 | (F_INSN_SIZE(struct in6_addr) + F_INSN_SIZE(ipfw_insn))) { |
| 504 | /* single IP, no mask*/ |
| 505 | cmd->opcode = O_IP6_SRC; |
| 506 | } else { /* addr/mask opt */ |
| 507 | cmd->opcode = O_IP6_SRC_MASK; |
| 508 | } |
| 509 | return cmd; |
| 510 | } |
| 511 | |
| 512 | ipfw_insn * |
| 513 | add_dstip6(ipfw_insn *cmd, char *av, int cblen, struct tidx *tstate) |
no test coverage detected