Mail-SpamCannibal

 view release on metacpan or  search on metacpan

BDBaccess/CTest.xs  view on Meta::CPAN

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;

BDBaccess/CTest.xs  view on Meta::CPAN

	dbtp_close(&dbtp);

void
t_get(which, name, addr);
	int which;
	char * name
	unsigned char * addr
    PREINIT:
	SV * out;
	void * data;
    PPCODE:
	if (dbtp_readDB(&dbtp,0, name, addr, 1))
	  XSRETURN_UNDEF;

	if (which)
	  data = myct_getsec();
	else
	  data = myct_getpri();

	if (data == NULL) {
	  ST(0) = &PL_sv_undef;

BDBaccess/CTest.xs  view on Meta::CPAN

	}
	XSRETURN(1);

void
t_getrecno(which, name, cursor)
	int which
	char * name
	U32 cursor
    PREINIT:
	SV * netaddr, * tmp;		/* older perl does not know about newSVuv */
    PPCODE:
	cursor = htonl(cursor);
	if (dbtp_readDB(&dbtp,1,name,&cursor,1)) {
	    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);

BDBaccess/CTest.xs  view on Meta::CPAN

		sv_setuv(tmp,cursor);
		XPUSHs(sv_2mortal(tmp));
	    }
	    XSRETURN(2);
	}
	XSRETURN(1);

void
t_bdberror(status)
	int status
    PPCODE:
	XPUSHs(sv_2mortal(newSVpv(db_strerror(status),0)));
	XSRETURN(1);

void
t_bdbversion()
    PREINIT:
	char version[256];
	int major, minor, patch;
    PPCODE:
	(void)db_version(&major,&minor,&patch);
	(void)sprintf(version,"%d.%d.%d",major,minor,patch);
	XPUSHs(sv_2mortal(newSVpv(version,0)));
	XSRETURN(1);

U32
t_bdbcount(name)
	char * name
    CODE:
	RETVAL = dbtp_statn(&dbtp,name);

DNSBLserver/CTest.xs  view on Meta::CPAN

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;

DNSBLserver/CTest.xs  view on Meta::CPAN

	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 {

DNSBLserver/CTest.xs  view on Meta::CPAN

	}
	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;

DNSBLserver/CTest.xs  view on Meta::CPAN

		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:

DNSBLserver/CTest.xs  view on Meta::CPAN


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;

DNSBLserver/CTest.xs  view on Meta::CPAN

    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);
	}

DNSBLserver/CTest.xs  view on Meta::CPAN

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;



( run in 0.597 second using v1.01-cache-2.11-cpan-5511b514fd6 )