Mail-SpamCannibal
view release on metacpan or search on metacpan
DNSBLserver/CTest.xs view on Meta::CPAN
void
my_iload(u_char * iptr, u_long resp, char * txt)
{
iload(iptr,(u_int32_t *)&resp,txt);
}
MODULE = Mail::SpamCannibal::DNSBLserver::CTest PACKAGE = Mail::SpamCannibal::DNSBLserver::CTest
PROTOTYPES: DISABLE
# first item in list is the program name
int
t_main(...)
PREINIT:
STRLEN len;
unsigned char * ptr[20];
int i;
extern int opterr;
CODE:
if (items > 20) {
i = 0;
} else {
for (i=0; i < items; i++)
{
ptr[i] = (unsigned char *)(SvPV(ST(i), len));
}
opterr = 0;
realMain(items, (char **)ptr);
}
RETVAL = i;
OUTPUT:
RETVAL
void
t_setsig()
CODE:
logopen = 0; /* skip branch in Code */
oflag = 1; /* print to stdout */
set_signals();
int
t_pidrun()
CODE:
RETVAL = (int)pidrun;
OUTPUT:
RETVAL
void
t_savpid(path)
char * path
CODE:
savpid(path);
void
t_chk4pid(path)
char * path
PREINIT:
SV * out;
PPCODE:
path = chk4pid(path);
if (path == NULL) {
ST(0) = &PL_sv_undef;
}
else {
out = sv_newmortal();
out = newSVpv(path,0);
ST(0) = out;
XSRETURN(1);
}
void
t_pidpath()
PREINIT:
SV * out;
PPCODE:
out = sv_newmortal();
out = newSVpv(pidpath(),0);
ST(0) = out;
XSRETURN(1);
int
t_init(home,...)
unsigned char * home
PREINIT:
STRLEN len;
CODE:
my_helpinit(&dbtp,DBtarpit,NULL);
my_helpinit(&dbtp,DBcontrib,NULL);
if (items > 1)
my_helpinit(&dbtp,DBtarpit,(char *)(SvPV(ST(1), len)));
if (items > 2)
my_helpinit(&dbtp,DBcontrib,(char *)(SvPV(ST(2), len)));
RETVAL = dbtp_init(&dbtp,home, -1);
OUTPUT:
RETVAL
int
t_dump(which)
int which
CODE:
RETVAL = mydb_dump(which);
OUTPUT:
RETVAL
void
t_close()
CODE:
dbtp_close(&dbtp);
void
t_get(which, addr);
int which
SV * addr
PREINIT:
SV * out;
STRLEN len;
void * data;
PPCODE:
data = (void *)(SvPV(addr,len));
if (which)
data = myct_getsec(data,len);
else
data = myct_getpri(data,len);
if (data == NULL) {
ST(0) = &PL_sv_undef;
}
else {
out = sv_newmortal();
if(which) {
out = newSVpv((char *)data,0);
}
else {
out = newSViv(*(I32 *)data);
}
ST(0) = out;
}
XSRETURN(1);
void
t_getrecno(which, cursor)
int which
U32 cursor
PREINIT:
SV * netaddr, * tmp; /* older perl does not know about newSVuv */
int ai;
PPCODE:
if (which)
ai = DBcontrib;
else
ai = DBtarpit;
if (dbtp_getrecno(&dbtp,ai,cursor)) {
if(GIMME == G_ARRAY)
XSRETURN_EMPTY;
else
XSRETURN_UNDEF;
}
netaddr = sv_newmortal();
sv_setpvn(netaddr, (char *)dbtp.keydbt.data, (size_t)dbtp.keydbt.size);
XPUSHs(netaddr);
if(GIMME == G_ARRAY) {
if (which)
XPUSHs(sv_2mortal(newSVpv((char *)dbtp.mgdbt.data, (size_t)dbtp.mgdbt.size)));
else {
cursor = my_u32(dbtp.mgdbt.data); /* temp variable */
tmp = newSViv(cursor);
sv_setuv(tmp,cursor);
XPUSHs(sv_2mortal(tmp));
}
XSRETURN(2);
}
XSRETURN(1);
void
t_short()
PPCODE:
gethostname(strbuf,MAXDNAME);
ST(0) = sv_2mortal(newSVpv(strbuf,0));
XSRETURN(1);
int
t_not_numeric(cp)
char * cp
CODE:
RETVAL = not_numericIP(cp);
OUTPUT:
RETVAL
int
t_munge(fd,bp,msglen,is_tcp)
int fd
unsigned char * bp
size_t msglen
int is_tcp
CODE:
memcpy(ns_msgbuf,bp,msglen);
RETVAL = munge_msg(fd,msglen,is_tcp);
OUTPUT:
RETVAL
int
t_cmdline(cmd,stuff)
char * cmd
char * stuff
PREINIT:
char c = *cmd;
CODE:
RETVAL = my_cmdline(c,stuff);
OUTPUT:
RETVAL
int
t_set_resp(serial_ip,stdip,stdbip)
char * serial_ip
char * stdip
char * stdbip
CODE:
if ((inet_aton(serial_ip,&serial_rec) == 0) ||
(inet_aton(stdip,&stdResp) == 0) ||
(inet_aton(stdbip,&stdRespBeg) == 0))
XSRETURN_UNDEF;
RETVAL = 1;
OUTPUT:
RETVAL
int
t_cmp_serial(s1,s2)
unsigned long s1
unsigned long s2
CODE:
RETVAL = my_cmp_serial(s1,s2);
OUTPUT:
RETVAL
int
t_name_skip(buf)
char * buf
PREINIT:
char * out;
CODE:
out = name_skip(buf);
RETVAL = (int)(out - buf);
OUTPUT:
RETVAL
int
t_set_parent(val)
int val
CODE:
RETVAL = parent;
parent = val;
OUTPUT:
RETVAL
int
t_set_qflag(val)
int val
CODE:
RETVAL = qflag;
qflag = val;
OUTPUT:
RETVAL
int
t_set_stop(val)
int val
CODE:
RETVAL = stop;
stop = val;
OUTPUT:
RETVAL
void
t_set_dbhome(path)
char * path
CODE:
strcpy(tmpdbhome,path);
dbhome = tmpdbhome;
void
t_ret_resp()
PPCODE:
XPUSHs(sv_2mortal(newSVpv(my_inet_ntoa(&aa),0)));
if(GIMME != G_ARRAY) {
XSRETURN(1);
}
XPUSHs(sv_2mortal(newSVpv(my_inet_ntoa(&ab),0)));
XPUSHs(sv_2mortal(newSVpv(my_inet_ntoa(&ac),0)));
XPUSHs(sv_2mortal(newSVpv(my_inet_ntoa(&ad),0)));
XSRETURN(4);
void
t_ret_a_nibls()
PPCODE:
XPUSHs(sv_2mortal(newSVpv(my_nib_ntoa(ah,am,al,az),0)));
if(GIMME != G_ARRAY) {
XSRETURN(1);
}
XPUSHs(sv_2mortal(newSVpv(my_nib_ntoa(bh,bm,bl,bz),0)));
XPUSHs(sv_2mortal(newSVpv(my_nib_ntoa(ch,cm,cl,cz),0)));
XPUSHs(sv_2mortal(newSVpv(my_nib_ntoa(dh,dm,dl,dz),0)));
XSRETURN(4);
void
t_mybuffer(which)
int which
PREINIT:
char * bp;
PPCODE:
switch(which) {
case 0 :
bp = mybuffer;
break;
case 1 :
bp = txa;
break;
case 2 :
bp = txb;
break;
case 3 :
bp = txc;
break;
case 4 :
bp = txd;
break;
default :
bp = "unknown selector\n";
}
XPUSHs(sv_2mortal(newSVpv(bp,0)));
XSRETURN(1);
void
t_initlb()
CODE:
initlb();
int
t_set_org(i)
unsigned char i
CODE:
RETVAL = (int)org;
org = i;
OUTPUT:
RETVAL
void
t_tabout(name,type)
char * name
char * type
CODE:
tabout(mybuffer,name,type);
void
t_add_A_rec(name,ipp)
char * name
char * ipp
CODE:
my_add_A_rec(name,ipp);
void
t_ishift()
CODE:
ishift();
void
t_precrd(fd,name,resp,txt)
FILE * fd
char * name
char * resp
char * txt
CODE:
my_precrd(fd,name,resp,txt);
void
t_oflush(fd)
FILE * fd
PREINIT:
char * bp;
CODE:
bp = mybuffer;
oflush(fd,bp);
void
t_iload(iptr,A_resp,txt)
unsigned char * iptr
unsigned long * A_resp
char * txt
CODE:
my_iload(iptr,*A_resp,txt);
void
t_iprint(fd)
FILE * fd
PREINIT:
char * bp;
CODE:
bp = mybuffer;
iprint(fd,bp);
void
t_zone_name()
PREINIT:
SV * out;
PPCODE:
if (zone_name == NULL) {
ST(0) = &PL_sv_undef;
}
else {
out = sv_newmortal();
out = newSVpv(zone_name,0);
ST(0) = out;
XSRETURN(1);
}
int
t_zonefile(fd)
FILE * fd
CODE:
RETVAL = zonefile(fd);
OUTPUT:
RETVAL
void
t_ratelimit(run,nsec,nusec,tsec,tusec,dmax,csum,psum)
int run
U32 nsec
U32 nusec
SV* tsec
SV* tusec
U32 dmax
U32 csum
U32 psum
PPCODE:
now.tv_sec = nsec;
now.tv_usec = nusec;
if (SvOK(tsec) && SvOK(tusec)) {
then.tv_sec = SvIV(tsec);
then.tv_usec = SvIV(tusec);
}
diskmax = dmax;
charsum = csum;
partsum = psum;
partmax = dmax/4;
XPUSHs(sv_2mortal(newSViv(ratelimit(run))));
XPUSHs(sv_2mortal(newSViv(partsum)));
XPUSHs(sv_2mortal(newSViv(partmax)));
XPUSHs(sv_2mortal(newSViv(charsum)));
XSRETURN(4);
( run in 1.131 second using v1.01-cache-2.11-cpan-5511b514fd6 )