5 #include <sys/socket.h>
8 static int get_set_getsockopt(void *data
, size_t * size
)
11 sockfd
= socket(AF_INET
, SOCK_RAW
, IPPROTO_RAW
);
13 exit_error(OTHER_PROBLEM
,
14 "Can't open socket to ipset.\n");
16 return getsockopt(sockfd
, SOL_IP
, SO_IP_SET
, data
, size
);
20 parse_bindings(const char *optarg
, struct ipt_set_info
*info
)
22 char *saved
= strdup(optarg
);
23 char *ptr
, *tmp
= saved
;
26 while (i
< IP_SET_MAX_BINDINGS
&& tmp
!= NULL
) {
27 ptr
= strsep(&tmp
, ",");
28 if (strncmp(ptr
, "src", 3) == 0)
29 info
->flags
[i
++] |= IPSET_SRC
;
30 else if (strncmp(ptr
, "dst", 3) == 0)
31 info
->flags
[i
++] |= IPSET_DST
;
33 exit_error(PARAMETER_PROBLEM
,
34 "You must spefify (the comma separated list of) 'src' or 'dst'.");
38 exit_error(PARAMETER_PROBLEM
,
39 "Can't follow bindings deeper than %d.",
45 #endif /*_LIBIPT_SET_H*/