TYPEMAP
IPTables::IPv4::Table T_PTROBJ
IPTables::IPv6::Table T_PTROBJ
const char * T_PV
ipt_chainlabel IPT_CLABEL
ip6t_chainlabel IP6T_CLABEL
struct ipt_entry * IPT_ENTRY
struct ip6t_entry * IPT_ENTRY
INPUT
IPT_CLABEL
if( SvPOK($arg) ) {
char *temp;
STRLEN len;
temp = SvPV($arg, len);
if (len > IPT_FUNCTION_MAXNAMELEN) {
SET_ERRSTR(\"$var name too long\");
XSRETURN(FALSE);
}
memset($var, 0, IPT_FUNCTION_MAXNAMELEN + 1);
strncpy($var, temp, len);
}
else {
SET_ERRSTR(\"$var must be string\");
XSRETURN(FALSE);
}
IP6T_CLABEL
if( SvPOK($arg) ) {
char *temp;
STRLEN len;
temp = SvPV($arg, len);
if (len > IP6T_FUNCTION_MAXNAMELEN) {
SET_ERRSTR(\"$var name too long\");
XSRETURN(FALSE);
}
memset($var, 0, IP6T_FUNCTION_MAXNAMELEN + 1);
strncpy($var, temp, len);
}
else {
SET_ERRSTR(\"$var must be string\");
XSRETURN(FALSE);
}
IPT_ENTRY
if( SvROK($arg) && (SvTYPE(SvRV($arg)) == SVt_PVHV)) {
if(!ipt_do_pack((HV *)SvRV($arg), \&$var, self))
XSRETURN(FALSE);
}
else {
SET_ERRSTR(\"$var must be hash ref\");
XSRETURN(FALSE);
}