Net-IP-Match-Bin
view release on metacpan or search on metacpan
void
new(class, ...)
SV* class
PREINIT:
XS2_CTX* ctx;
SV* sv;
int i;
PPCODE:
STRLEN len;
char *sclass = SvPV(class, len);
#if PVER >= 5008008
Newx(ctx, 1, XS2_CTX);
#else
Newz(0, ctx, 1, XS2_CTX);
#endif
if (init(aTHX_ ctx) != 1) {
Safefree(ctx);
XSRETURN_UNDEF;
void
add(self, ...)
SV* self
PREINIT:
XS2_CTX* ctx;
SV* sv;
int i;
PPCODE:
if (!SvROK(self)) {
XSRETURN_UNDEF;
} else {
ctx = INT2PTR(XS2_CTX*, SvIV(SvRV(self)));
}
if (items < 2) {
/* too few args */
XSRETURN_UNDEF;
}
for (i=1; i<items; i++) {
void
add_range(self, ...)
SV* self
PREINIT:
XS2_CTX* ctx;
SV* sv;
int i;
PPCODE:
if (!SvROK(self)) {
XSRETURN_UNDEF;
} else {
ctx = INT2PTR(XS2_CTX*, SvIV(SvRV(self)));
}
if (items < 2) {
/* too few args */
XSRETURN_UNDEF;
}
for (i=1; i<items; i++) {
XS2_CTX* ctx;
char *ip;
SV* net;
STRLEN len;
char out[21];
char *p;
int i;
SV* sv;
int func_call;
int res;
PPCODE:
if (items < 2) {
/* too few args */
XSRETURN_UNDEF;
}
if (!SvROK(ST(0))) {
/* can be called as function */
#if PVER >= 5008008
Newx(ctx, 1, XS2_CTX);
#else
Newz(0, ctx, 1, XS2_CTX);
void
list(self)
SV* self
PREINIT:
XS2_CTX* ctx;
AV* out;
I32 i;
PPCODE:
I32 gimme = GIMME_V;
I32 len = 0;
if (!SvROK(self)) {
XSRETURN_UNDEF;
} else {
if (gimme == G_VOID)
XSRETURN_EMPTY;
ctx = INT2PTR(XS2_CTX*, SvIV(SvRV(self)));
}
XSRETURN(len);
void
clean(self)
SV* self
PREINIT:
XS2_CTX* ctx;
PPCODE:
if (!SvROK(self)) {
XSRETURN_UNDEF;
} else {
ctx = INT2PTR(XS2_CTX*, SvIV(SvRV(self)));
_clean(aTHX_ ctx);
}
XSRETURN_YES;
void
dump(self)
SV* self
PREINIT:
XS2_CTX* ctx;
PPCODE:
if (!SvROK(self)) {
XSRETURN_UNDEF;
} else {
ctx = INT2PTR(XS2_CTX*, SvIV(SvRV(self)));
_clean(aTHX_ ctx);
_dump(ctx->root, 0, 0);
}
XSRETURN_YES;
( run in 1.701 second using v1.01-cache-2.11-cpan-5511b514fd6 )