Home | History | Annotate | Download | only in extensions

Lines Matching full:sinfo

60 parse_state(const char *state, size_t strlen, struct ipt_conntrack_info *sinfo)
63 sinfo->statemask |= IPT_CONNTRACK_STATE_INVALID;
65 sinfo->statemask |= IPT_CONNTRACK_STATE_BIT(IP_CT_NEW);
67 sinfo->statemask |= IPT_CONNTRACK_STATE_BIT(IP_CT_ESTABLISHED);
69 sinfo->statemask |= IPT_CONNTRACK_STATE_BIT(IP_CT_RELATED);
71 sinfo->statemask |= IPT_CONNTRACK_STATE_UNTRACKED;
73 sinfo->statemask |= IPT_CONNTRACK_STATE_SNAT;
75 sinfo->statemask |= IPT_CONNTRACK_STATE_DNAT;
82 parse_states(const char *arg, struct ipt_conntrack_info *sinfo)
87 if (comma == arg || !parse_state(arg, comma-arg, sinfo))
92 if (strlen(arg) == 0 || !parse_state(arg, strlen(arg), sinfo))
97 parse_status(const char *status, size_t strlen, struct ipt_conntrack_info *sinfo)
100 sinfo->statusmask |= 0;
102 sinfo->statusmask |= IPS_EXPECTED;
104 sinfo->statusmask |= IPS_SEEN_REPLY;
106 sinfo->statusmask |= IPS_ASSURED;
109 sinfo->stausmask |= IPS_CONFIRMED;
117 parse_statuses(const char *arg, struct ipt_conntrack_info *sinfo)
122 if (comma == arg || !parse_status(arg, comma-arg, sinfo))
127 if (strlen(arg) == 0 || !parse_status(arg, strlen(arg), sinfo))
157 parse_expires(const char *s, struct ipt_conntrack_info *sinfo)
164 sinfo->expires_min = sinfo->expires_max = parse_expire(buffer);
169 sinfo->expires_min = buffer[0] ? parse_expire(buffer) : 0;
170 sinfo->expires_max = cp[0] ? parse_expire(cp) : -1;
174 if (sinfo->expires_min > sinfo->expires_max)
178 "range value `%llu'", sinfo->expires_min, sinfo->expires_max);
181 "range value `%lu'", sinfo->expires_min, sinfo->expires_max);
193 struct ipt_conntrack_info *sinfo = (struct ipt_conntrack_info *)(*match)->data;
203 parse_states(argv[optind-1], sinfo);
205 sinfo->invflags |= IPT_CONNTRACK_STATE;
207 sinfo->flags |= IPT_CONNTRACK_STATE;
214 sinfo->invflags |= IPT_CONNTRACK_PROTO;
221 sinfo->tuple[IP_CT_DIR_ORIGINAL].dst.protonum = parse_protocol(protocol);
223 if (sinfo->tuple[IP_CT_DIR_ORIGINAL].dst.protonum == 0
224 && (sinfo->invflags & IPT_INV_PROTO))
228 sinfo->flags |= IPT_CONNTRACK_PROTO;
235 sinfo->invflags |= IPT_CONNTRACK_ORIGSRC;
238 &sinfo->sipmsk[IP_CT_DIR_ORIGINAL],
245 sinfo->tuple[IP_CT_DIR_ORIGINAL].src.ip = addrs[0].s_addr;
248 sinfo->flags |= IPT_CONNTRACK_ORIGSRC;
255 sinfo->invflags |= IPT_CONNTRACK_ORIGDST;
258 &sinfo->dipmsk[IP_CT_DIR_ORIGINAL],
265 sinfo->tuple[IP_CT_DIR_ORIGINAL].dst.ip = addrs[0].s_addr;
268 sinfo->flags |= IPT_CONNTRACK_ORIGDST;
275 sinfo->invflags |= IPT_CONNTRACK_REPLSRC;
278 &sinfo->sipmsk[IP_CT_DIR_REPLY],
285 sinfo->tuple[IP_CT_DIR_REPLY].src.ip = addrs[0].s_addr;
288 sinfo->flags |= IPT_CONNTRACK_REPLSRC;
295 sinfo->invflags |= IPT_CONNTRACK_REPLDST;
298 &sinfo->dipmsk[IP_CT_DIR_REPLY],
305 sinfo->tuple[IP_CT_DIR_REPLY].dst.ip = addrs[0].s_addr;
308 sinfo->flags |= IPT_CONNTRACK_REPLDST;
314 parse_statuses(argv[optind-1], sinfo);
316 sinfo->invflags |= IPT_CONNTRACK_STATUS;
318 sinfo->flags |= IPT_CONNTRACK_STATUS;
324 parse_expires(argv[optind-1], sinfo);
326 sinfo->invflags |= IPT_CONNTRACK_EXPIRES;
328 sinfo->flags |= IPT_CONNTRACK_EXPIRES;
335 *flags = sinfo->flags;
436 struct ipt_conntrack_info *sinfo = (struct ipt_conntrack_info *)match->data;
438 if(sinfo->flags & IPT_CONNTRACK_STATE) {
440 if (sinfo->invflags & IPT_CONNTRACK_STATE)
442 print_state(sinfo->statemask);
445 if(sinfo->flags & IPT_CONNTRACK_PROTO) {
447 if (sinfo->invflags & IPT_CONNTRACK_PROTO)
449 printf("%u ", sinfo->tuple[IP_CT_DIR_ORIGINAL].dst.protonum);
452 if(sinfo->flags & IPT_CONNTRACK_ORIGSRC) {
456 (struct in_addr *)&sinfo->tuple[IP_CT_DIR_ORIGINAL].src.ip,
457 &sinfo->sipmsk[IP_CT_DIR_ORIGINAL],
458 sinfo->invflags & IPT_CONNTRACK_ORIGSRC,
462 if(sinfo->flags & IPT_CONNTRACK_ORIGDST) {
466 (struct in_addr *)&sinfo->tuple[IP_CT_DIR_ORIGINAL].dst.ip,
467 &sinfo->dipmsk[IP_CT_DIR_ORIGINAL],
468 sinfo->invflags & IPT_CONNTRACK_ORIGDST,
472 if(sinfo->flags & IPT_CONNTRACK_REPLSRC) {
476 (struct in_addr *)&sinfo->tuple[IP_CT_DIR_REPLY].src.ip,
477 &sinfo->sipmsk[IP_CT_DIR_REPLY],
478 sinfo->invflags & IPT_CONNTRACK_REPLSRC,
482 if(sinfo->flags & IPT_CONNTRACK_REPLDST) {
486 (struct in_addr *)&sinfo->tuple[IP_CT_DIR_REPLY].dst.ip,
487 &sinfo->dipmsk[IP_CT_DIR_REPLY],
488 sinfo->invflags & IPT_CONNTRACK_REPLDST,
492 if(sinfo->flags & IPT_CONNTRACK_STATUS) {
494 if (sinfo->invflags & IPT_CONNTRACK_STATUS)
496 print_status(sinfo->statusmask);
499 if(sinfo->flags & IPT_CONNTRACK_EXPIRES) {
501 if (sinfo->invflags & IPT_CONNTRACK_EXPIRES)
505 if (sinfo->expires_max == sinfo->expires_min)
506 printf("%llu ", sinfo->expires_min);
508 printf("%llu:%llu ", sinfo->expires_min, sinfo->expires_max);
510 if (sinfo->expires_max == sinfo->expires_min)
511 printf("%lu ", sinfo->expires_min);
513 printf("%lu:%lu ", sinfo->expires_min, sinfo->expires_max);