Net-LDNS
view release on metacpan or search on metacpan
src/LDNS.xs view on Meta::CPAN
#include <LDNS.h>
MODULE = Net::LDNS PACKAGE = Net::LDNS
PROTOTYPES: ENABLE
SV *
to_idn(...)
PPCODE:
{
#ifdef WE_CAN_HAZ_IDN
int i;
for( i = 0; i<items; i++ )
{
char *out;
int status;
SV *obj = ST(i);
if (SvPOK(ST(i)))
src/LDNS.xs view on Meta::CPAN
const char *
lib_version()
CODE:
RETVAL = ldns_version();
OUTPUT:
RETVAL
SV *
load_zonefile(filename)
char *filename;
PPCODE:
{
ldns_zone *zone;
ldns_status s;
ldns_rr *soa;
ldns_rr_list *rrs;
ldns_rdf *root = ldns_rdf_new_frm_str(LDNS_RDF_TYPE_DNAME,".");
I32 context = GIMME_V;
size_t i,n;
if (context == G_VOID)
src/LDNS.xs view on Meta::CPAN
ldns_resolver_set_port(obj, (U16)SvIV(ST(1)));
}
RETVAL = ldns_resolver_port(obj);
OUTPUT:
RETVAL
SV *
name2addr(obj,name)
Net::LDNS obj;
const char *name;
PPCODE:
{
ldns_rr_list *addrs;
ldns_rdf *dname;
size_t n, i;
I32 context;
context = GIMME_V;
if(context == G_VOID)
{
src/LDNS.xs view on Meta::CPAN
free(addr_str);
}
ldns_rr_list_deep_free(addrs);
}
}
SV *
addr2name(obj,addr_in)
Net::LDNS obj;
const char *addr_in;
PPCODE:
{
ldns_rr_list *names;
ldns_rdf *addr_rdf;
size_t n, i;
I32 context;
context = GIMME_V;
if(context == G_VOID)
{
src/LDNS.xs view on Meta::CPAN
}
struct timeval t = ldns_pkt_timestamp(obj);
RETVAL = (double)t.tv_sec;
RETVAL += ((double)t.tv_usec)/1000000;
OUTPUT:
RETVAL
SV *
packet_answer(obj)
Net::LDNS::Packet obj;
PPCODE:
{
size_t i,n;
ldns_rr_list *rrs;
I32 context = GIMME_V;
if (context == G_VOID)
{
return;
}
src/LDNS.xs view on Meta::CPAN
for(i = 0; i < n; ++i)
{
mXPUSHs(rr2sv(ldns_rr_clone(ldns_rr_list_rr(rrs,i))));
}
}
SV *
packet_authority(obj)
Net::LDNS::Packet obj;
PPCODE:
{
size_t i,n;
ldns_rr_list *rrs;
I32 context = GIMME_V;
if (context == G_VOID)
{
return;
}
src/LDNS.xs view on Meta::CPAN
for(i = 0; i < n; ++i)
{
mXPUSHs(rr2sv(ldns_rr_clone(ldns_rr_list_rr(rrs,i))));
}
}
SV *
packet_additional(obj)
Net::LDNS::Packet obj;
PPCODE:
{
size_t i,n;
ldns_rr_list *rrs;
I32 context = GIMME_V;
if (context == G_VOID)
{
return;
}
src/LDNS.xs view on Meta::CPAN
for(i = 0; i < n; ++i)
{
mXPUSHs(rr2sv(ldns_rr_clone(ldns_rr_list_rr(rrs,i))));
}
}
SV *
packet_question(obj)
Net::LDNS::Packet obj;
PPCODE:
{
size_t i,n;
ldns_rr_list *rrs;
I32 context = GIMME_V;
if (context == G_VOID)
{
return;
}
src/LDNS.xs view on Meta::CPAN
net_ldns_clone_rrlists();
#endif
MODULE = Net::LDNS PACKAGE = Net::LDNS::RR PREFIX=rr_
SV *
rr_new_from_string(class,str)
char *class;
char *str;
PPCODE:
ldns_status s;
ldns_rr *rr;
char rrclass[40];
char *rrtype;
SV* rr_sv;
s = ldns_rr_new_frm_str(&rr, str, 0, NULL, NULL);
if(s != LDNS_STATUS_OK)
{
croak("Failed to build RR: %s", ldns_get_errorstr_by_id(s));
src/LDNS.xs view on Meta::CPAN
rr_nsec3_iterations(obj)
Net::LDNS::RR::NSEC3 obj;
CODE:
RETVAL = ldns_nsec3_iterations(obj);
OUTPUT:
RETVAL
SV *
rr_nsec3_salt(obj)
Net::LDNS::RR::NSEC3 obj;
PPCODE:
if(ldns_nsec3_salt_length(obj) > 0)
{
ldns_rdf *buf = ldns_nsec3_salt(obj);
ST(0) = sv_2mortal(newSVpvn((char *)ldns_rdf_data(buf), ldns_rdf_size(buf)));
ldns_rdf_deep_free(buf);
}
SV *
rr_nsec3_next_owner(obj)
Net::LDNS::RR::NSEC3 obj;
src/LDNS.xs view on Meta::CPAN
rr_nsec3param_iterations(obj)
Net::LDNS::RR::NSEC3PARAM obj;
CODE:
RETVAL = D_U16(obj,2);
OUTPUT:
RETVAL
SV *
rr_nsec3param_salt(obj)
Net::LDNS::RR::NSEC3PARAM obj;
PPCODE:
ldns_rdf *rdf = ldns_rr_rdf(obj,3);
if(ldns_rdf_size(rdf) > 0)
{
mPUSHs(newSVpvn((char *)ldns_rdf_data(rdf), ldns_rdf_size(rdf)));
}
MODULE = Net::LDNS PACKAGE = Net::LDNS::RR::PTR PREFIX=rr_ptr_
char *
rr_ptr_ptrdname(obj)
( run in 2.128 seconds using v1.01-cache-2.11-cpan-71847e10f99 )