MCPcopy Create free account
hub / github.com/F-Stack/f-stack / fill_ext6hdr

Function fill_ext6hdr

tools/ipfw/ipv6.c:220–266  ·  view source on GitHub ↗

fills command for the extension header filtering */

Source from the content-addressed store, hash-verified

218
219/* fills command for the extension header filtering */
220int
221fill_ext6hdr( ipfw_insn *cmd, char *av)
222{
223 int tok;
224 char *s = av;
225
226 cmd->arg1 = 0;
227 while(s) {
228 av = strsep( &s, ",") ;
229 tok = match_token(ext6hdrcodes, av);
230 switch (tok) {
231 case EXT_FRAGMENT:
232 cmd->arg1 |= EXT_FRAGMENT;
233 break;
234 case EXT_HOPOPTS:
235 cmd->arg1 |= EXT_HOPOPTS;
236 break;
237 case EXT_ROUTING:
238 cmd->arg1 |= EXT_ROUTING;
239 break;
240 case EXT_DSTOPTS:
241 cmd->arg1 |= EXT_DSTOPTS;
242 break;
243 case EXT_AH:
244 cmd->arg1 |= EXT_AH;
245 break;
246 case EXT_ESP:
247 cmd->arg1 |= EXT_ESP;
248 break;
249 case EXT_RTHDR0:
250 cmd->arg1 |= EXT_RTHDR0;
251 break;
252 case EXT_RTHDR2:
253 cmd->arg1 |= EXT_RTHDR2;
254 break;
255 default:
256 errx(EX_DATAERR,
257 "invalid option for ipv6 exten header");
258 break;
259 }
260 }
261 if (cmd->arg1 == 0)
262 return (0);
263 cmd->opcode = O_EXT_HDR;
264 cmd->len |= F_INSN_SIZE(ipfw_insn);
265 return (1);
266}
267
268void
269print_ext6hdr(struct buf_pr *bp, const ipfw_insn *cmd )

Callers 1

compile_ruleFunction · 0.85

Calls 2

strsepFunction · 0.85
match_tokenFunction · 0.85

Tested by

no test coverage detected