本文整理汇总了C++中dns_name_toregion函数的典型用法代码示例。如果您正苦于以下问题:C++ dns_name_toregion函数的具体用法?C++ dns_name_toregion怎么用?C++ dns_name_toregion使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dns_name_toregion函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: fromstruct_naptr
static inline isc_result_t
fromstruct_naptr(ARGS_FROMSTRUCT) {
dns_rdata_naptr_t *naptr = source;
isc_region_t region;
REQUIRE(type == dns_rdatatype_naptr);
REQUIRE(source != NULL);
REQUIRE(naptr->common.rdtype == type);
REQUIRE(naptr->common.rdclass == rdclass);
REQUIRE(naptr->flags != NULL || naptr->flags_len == 0);
REQUIRE(naptr->service != NULL || naptr->service_len == 0);
REQUIRE(naptr->regexp != NULL || naptr->regexp_len == 0);
UNUSED(type);
UNUSED(rdclass);
RETERR(uint16_tobuffer(naptr->order, target));
RETERR(uint16_tobuffer(naptr->preference, target));
RETERR(uint8_tobuffer(naptr->flags_len, target));
RETERR(mem_tobuffer(target, naptr->flags, naptr->flags_len));
RETERR(uint8_tobuffer(naptr->service_len, target));
RETERR(mem_tobuffer(target, naptr->service, naptr->service_len));
RETERR(uint8_tobuffer(naptr->regexp_len, target));
RETERR(mem_tobuffer(target, naptr->regexp, naptr->regexp_len));
dns_name_toregion(&naptr->replacement, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:ajinkya93,项目名称:netbsd-src,代码行数:27,代码来源:naptr_35.c
示例2: configure_staticstub_servernames
/*%
* Configure an apex NS with an out-of-zone NS names for a static-stub zone.
* For example, for the zone named "example.com", something like the following
* RRs will be added to the zone DB:
* example.com. NS ns.example.net.
*/
static isc_result_t
configure_staticstub_servernames(const cfg_obj_t *zconfig, dns_zone_t *zone,
dns_rdatalist_t *rdatalist, const char *zname)
{
const cfg_listelt_t *element;
isc_mem_t *mctx = dns_zone_getmctx(zone);
dns_rdata_t *rdata;
isc_region_t sregion, region;
isc_result_t result = ISC_R_SUCCESS;
for (element = cfg_list_first(zconfig);
element != NULL;
element = cfg_list_next(element))
{
const cfg_obj_t *obj;
const char *str;
dns_fixedname_t fixed_name;
dns_name_t *nsname;
isc_buffer_t b;
obj = cfg_listelt_value(element);
str = cfg_obj_asstring(obj);
dns_fixedname_init(&fixed_name);
nsname = dns_fixedname_name(&fixed_name);
isc_buffer_init(&b, str, strlen(str));
isc_buffer_add(&b, strlen(str));
result = dns_name_fromtext(nsname, &b, dns_rootname, 0, NULL);
if (result != ISC_R_SUCCESS) {
cfg_obj_log(zconfig, ns_g_lctx, ISC_LOG_ERROR,
"server-name '%s' is not a valid "
"name", str);
return (result);
}
if (dns_name_issubdomain(nsname, dns_zone_getorigin(zone))) {
cfg_obj_log(zconfig, ns_g_lctx, ISC_LOG_ERROR,
"server-name '%s' must not be a "
"subdomain of zone name '%s'",
str, zname);
return (ISC_R_FAILURE);
}
dns_name_toregion(nsname, &sregion);
rdata = isc_mem_get(mctx, sizeof(*rdata) + sregion.length);
if (rdata == NULL)
return (ISC_R_NOMEMORY);
region.length = sregion.length;
region.base = (unsigned char *)(rdata + 1);
memcpy(region.base, sregion.base, region.length);
dns_rdata_init(rdata);
dns_rdata_fromregion(rdata, dns_zone_getclass(zone),
dns_rdatatype_ns, ®ion);
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
}
return (result);
}
开发者ID:ElRevo,项目名称:xia-core,代码行数:64,代码来源:zoneconf.c
示例3: fromstruct_rp
static inline isc_result_t
fromstruct_rp(ARGS_FROMSTRUCT) {
dns_rdata_rp_t *rp = source;
isc_region_t region;
REQUIRE(type == dns_rdatatype_rp);
REQUIRE(source != NULL);
REQUIRE(rp->common.rdtype == type);
REQUIRE(rp->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
dns_name_toregion(&rp->mail, ®ion);
RETERR(isc_buffer_copyregion(target, ®ion));
dns_name_toregion(&rp->text, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:NZRS,项目名称:bind9-collab,代码行数:18,代码来源:rp_17.c
示例4: fromstruct_minfo
static inline isc_result_t
fromstruct_minfo(ARGS_FROMSTRUCT) {
dns_rdata_minfo_t *minfo = source;
isc_region_t region;
REQUIRE(type == 14);
REQUIRE(source != NULL);
REQUIRE(minfo->common.rdtype == type);
REQUIRE(minfo->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
dns_name_toregion(&minfo->rmailbox, ®ion);
RETERR(isc_buffer_copyregion(target, ®ion));
dns_name_toregion(&minfo->emailbox, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:iwonasado,项目名称:android_real_web_server,代码行数:18,代码来源:minfo_14.c
示例5: dns_compress_add
void
dns_compress_add(dns_compress_t *cctx, const dns_name_t *name,
const dns_name_t *prefix, isc_uint16_t offset)
{
dns_name_t tname;
unsigned int start;
unsigned int n;
unsigned int count;
unsigned int hash;
dns_compressnode_t *node;
unsigned int length;
unsigned int tlength;
isc_uint16_t toffset;
REQUIRE(VALID_CCTX(cctx));
REQUIRE(dns_name_isabsolute(name));
dns_name_init(&tname, NULL);
n = dns_name_countlabels(name);
count = dns_name_countlabels(prefix);
if (dns_name_isabsolute(prefix))
count--;
start = 0;
length = name_length(name);
while (count > 0) {
if (offset >= 0x4000)
break;
dns_name_getlabelsequence(name, start, n, &tname);
hash = dns_name_hash(&tname, ISC_FALSE) %
DNS_COMPRESS_TABLESIZE;
tlength = name_length(&tname);
toffset = (isc_uint16_t)(offset + (length - tlength));
/*
* Create a new node and add it.
*/
if (cctx->count < DNS_COMPRESS_INITIALNODES)
node = &cctx->initialnodes[cctx->count];
else {
node = isc_mem_get(cctx->mctx,
sizeof(dns_compressnode_t));
if (node == NULL)
return;
}
node->count = cctx->count++;
node->offset = toffset;
dns_name_toregion(&tname, &node->r);
node->labels = (isc_uint8_t)dns_name_countlabels(&tname);
node->next = cctx->table[hash];
cctx->table[hash] = node;
start++;
n--;
count--;
}
}
开发者ID:rodrigc,项目名称:bz-vimage,代码行数:55,代码来源:compress.c
示例6: fromstruct_in_px
static inline isc_result_t
fromstruct_in_px(ARGS_FROMSTRUCT) {
dns_rdata_in_px_t *px = source;
isc_region_t region;
REQUIRE(type == dns_rdatatype_px);
REQUIRE(rdclass == dns_rdataclass_in);
REQUIRE(source != NULL);
REQUIRE(px->common.rdtype == type);
REQUIRE(px->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
RETERR(uint16_tobuffer(px->preference, target));
dns_name_toregion(&px->map822, ®ion);
RETERR(isc_buffer_copyregion(target, ®ion));
dns_name_toregion(&px->mapx400, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:ajinkya93,项目名称:netbsd-src,代码行数:20,代码来源:px_26.c
示例7: fromstruct_soa
static inline isc_result_t
fromstruct_soa(ARGS_FROMSTRUCT) {
dns_rdata_soa_t *soa = source;
isc_region_t region;
REQUIRE(type == 6);
REQUIRE(source != NULL);
REQUIRE(soa->common.rdtype == type);
REQUIRE(soa->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
dns_name_toregion(&soa->origin, ®ion);
RETERR(isc_buffer_copyregion(target, ®ion));
dns_name_toregion(&soa->contact, ®ion);
RETERR(isc_buffer_copyregion(target, ®ion));
RETERR(uint32_tobuffer(soa->serial, target));
RETERR(uint32_tobuffer(soa->refresh, target));
RETERR(uint32_tobuffer(soa->retry, target));
RETERR(uint32_tobuffer(soa->expire, target));
return (uint32_tobuffer(soa->minimum, target));
}
开发者ID:fanf2,项目名称:bind-9,代码行数:23,代码来源:soa_6.c
示例8: fromstruct_ptr
static inline isc_result_t
fromstruct_ptr(ARGS_FROMSTRUCT) {
dns_rdata_ptr_t *ptr = source;
isc_region_t region;
REQUIRE(type == dns_rdatatype_ptr);
REQUIRE(source != NULL);
REQUIRE(ptr->common.rdtype == type);
REQUIRE(ptr->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
dns_name_toregion(&ptr->ptr, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:fatman2021,项目名称:netbsd-src,代码行数:16,代码来源:ptr_12.c
示例9: fromstruct_ns
static inline isc_result_t
fromstruct_ns(ARGS_FROMSTRUCT) {
dns_rdata_ns_t *ns = source;
isc_region_t region;
REQUIRE(type == 2);
REQUIRE(source != NULL);
REQUIRE(ns->common.rdtype == type);
REQUIRE(ns->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
dns_name_toregion(&ns->name, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:Stichting-MINIX-Research-Foundation,项目名称:minix,代码行数:16,代码来源:ns_2.c
示例10: fromstruct_mf
static inline isc_result_t
fromstruct_mf(ARGS_FROMSTRUCT) {
dns_rdata_mf_t *mf = source;
isc_region_t region;
REQUIRE(type == dns_rdatatype_mf);
REQUIRE(source != NULL);
REQUIRE(mf->common.rdtype == type);
REQUIRE(mf->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
dns_name_toregion(&mf->mf, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:NZRS,项目名称:bind9-collab,代码行数:16,代码来源:mf_4.c
示例11: fromstruct_rt
static inline isc_result_t
fromstruct_rt(ARGS_FROMSTRUCT) {
dns_rdata_rt_t *rt = source;
isc_region_t region;
REQUIRE(type == 21);
REQUIRE(source != NULL);
REQUIRE(rt->common.rdtype == type);
REQUIRE(rt->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
RETERR(uint16_tobuffer(rt->preference, target));
dns_name_toregion(&rt->host, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:Stichting-MINIX-Research-Foundation,项目名称:minix,代码行数:17,代码来源:rt_21.c
示例12: fromstruct_afsdb
static inline isc_result_t
fromstruct_afsdb(ARGS_FROMSTRUCT) {
dns_rdata_afsdb_t *afsdb = source;
isc_region_t region;
REQUIRE(type == 18);
REQUIRE(source != NULL);
REQUIRE(afsdb->common.rdclass == rdclass);
REQUIRE(afsdb->common.rdtype == type);
UNUSED(type);
UNUSED(rdclass);
RETERR(uint16_tobuffer(afsdb->subtype, target));
dns_name_toregion(&afsdb->server, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:miettal,项目名称:armadillo420_standard,代码行数:17,代码来源:afsdb_18.c
示例13: fromstruct_lp
static inline isc_result_t
fromstruct_lp(ARGS_FROMSTRUCT) {
dns_rdata_lp_t *lp = source;
isc_region_t region;
REQUIRE(type == dns_rdatatype_lp);
REQUIRE(source != NULL);
REQUIRE(lp->common.rdtype == type);
REQUIRE(lp->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
RETERR(uint16_tobuffer(lp->pref, target));
dns_name_toregion(&lp->lp, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:NZRS,项目名称:bind9-collab,代码行数:17,代码来源:lp_107.c
示例14: fromstruct_ipseckey
static inline isc_result_t
fromstruct_ipseckey(ARGS_FROMSTRUCT) {
dns_rdata_ipseckey_t *ipseckey = source;
isc_region_t region;
isc_uint32_t n;
REQUIRE(type == 45);
REQUIRE(source != NULL);
REQUIRE(ipseckey->common.rdtype == type);
REQUIRE(ipseckey->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
if (ipseckey->gateway_type > 3U)
return (ISC_R_NOTIMPLEMENTED);
RETERR(uint8_tobuffer(ipseckey->precedence, target));
RETERR(uint8_tobuffer(ipseckey->gateway_type, target));
RETERR(uint8_tobuffer(ipseckey->algorithm, target));
switch (ipseckey->gateway_type) {
case 0:
break;
case 1:
n = ntohl(ipseckey->in_addr.s_addr);
RETERR(uint32_tobuffer(n, target));
break;
case 2:
RETERR(mem_tobuffer(target, ipseckey->in6_addr.s6_addr, 16));
break;
case 3:
dns_name_toregion(&ipseckey->gateway, ®ion);
RETERR(isc_buffer_copyregion(target, ®ion));
break;
}
return (mem_tobuffer(target, ipseckey->key, ipseckey->keylength));
}
开发者ID:enukane,项目名称:netbsd-src,代码行数:42,代码来源:ipseckey_45.c
示例15: fromstruct_in_srv
static inline isc_result_t
fromstruct_in_srv(ARGS_FROMSTRUCT) {
dns_rdata_in_srv_t *srv = source;
isc_region_t region;
REQUIRE(type == 33);
REQUIRE(rdclass == 1);
REQUIRE(source != NULL);
REQUIRE(srv->common.rdtype == type);
REQUIRE(srv->common.rdclass == rdclass);
UNUSED(type);
UNUSED(rdclass);
RETERR(uint16_tobuffer(srv->priority, target));
RETERR(uint16_tobuffer(srv->weight, target));
RETERR(uint16_tobuffer(srv->port, target));
dns_name_toregion(&srv->target, ®ion);
return (isc_buffer_copyregion(target, ®ion));
}
开发者ID:SylvestreG,项目名称:bitrig,代码行数:20,代码来源:srv_33.c
示例16: digest_sig
static isc_result_t
digest_sig(dst_context_t *ctx, dns_rdata_t *sigrdata, dns_rdata_rrsig_t *sig) {
isc_region_t r;
isc_result_t ret;
dns_fixedname_t fname;
dns_rdata_toregion(sigrdata, &r);
INSIST(r.length >= 19);
r.length = 18;
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
return (ret);
dns_fixedname_init(&fname);
RUNTIME_CHECK(dns_name_downcase(&sig->signer,
dns_fixedname_name(&fname), NULL)
== ISC_R_SUCCESS);
dns_name_toregion(dns_fixedname_name(&fname), &r);
return (dst_context_adddata(ctx, &r));
}
开发者ID:OPSF,项目名称:uClinux,代码行数:20,代码来源:dnssec.c
示例17: configure_staticstub_serveraddrs
/*%
* Configure an apex NS with glues for a static-stub zone.
* For example, for the zone named "example.com", the following RRs will be
* added to the zone DB:
* example.com. NS example.com.
* example.com. A 192.0.2.1
* example.com. AAAA 2001:db8::1
*/
static isc_result_t
configure_staticstub_serveraddrs(const cfg_obj_t *zconfig, dns_zone_t *zone,
dns_rdatalist_t *rdatalist_ns,
dns_rdatalist_t *rdatalist_a,
dns_rdatalist_t *rdatalist_aaaa)
{
const cfg_listelt_t *element;
isc_mem_t *mctx = dns_zone_getmctx(zone);
isc_region_t region, sregion;
dns_rdata_t *rdata;
isc_result_t result = ISC_R_SUCCESS;
for (element = cfg_list_first(zconfig);
element != NULL;
element = cfg_list_next(element))
{
const isc_sockaddr_t* sa;
isc_netaddr_t na;
const cfg_obj_t *address = cfg_listelt_value(element);
dns_rdatalist_t *rdatalist;
sa = cfg_obj_assockaddr(address);
if (isc_sockaddr_getport(sa) != 0) {
cfg_obj_log(zconfig, ns_g_lctx, ISC_LOG_ERROR,
"port is not configurable for "
"static stub server-addresses");
return (ISC_R_FAILURE);
}
isc_netaddr_fromsockaddr(&na, sa);
if (isc_netaddr_getzone(&na) != 0) {
cfg_obj_log(zconfig, ns_g_lctx, ISC_LOG_ERROR,
"scoped address is not allowed "
"for static stub "
"server-addresses");
return (ISC_R_FAILURE);
}
switch (na.family) {
case AF_INET:
region.length = sizeof(na.type.in);
rdatalist = rdatalist_a;
break;
default:
INSIST(na.family == AF_INET6);
region.length = sizeof(na.type.in6);
rdatalist = rdatalist_aaaa;
break;
}
rdata = isc_mem_get(mctx, sizeof(*rdata) + region.length);
if (rdata == NULL)
return (ISC_R_NOMEMORY);
region.base = (unsigned char *)(rdata + 1);
memcpy(region.base, &na.type, region.length);
dns_rdata_init(rdata);
dns_rdata_fromregion(rdata, dns_zone_getclass(zone),
rdatalist->type, ®ion);
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
}
/*
* If no address is specified (unlikely in this context, but possible),
* there's nothing to do anymore.
*/
if (ISC_LIST_EMPTY(rdatalist_a->rdata) &&
ISC_LIST_EMPTY(rdatalist_aaaa->rdata)) {
return (ISC_R_SUCCESS);
}
/* Add to the list an apex NS with the ns name being the origin name */
dns_name_toregion(dns_zone_getorigin(zone), &sregion);
rdata = isc_mem_get(mctx, sizeof(*rdata) + sregion.length);
if (rdata == NULL) {
/*
* Already allocated data will be freed in the caller, so
* we can simply return here.
*/
return (ISC_R_NOMEMORY);
}
region.length = sregion.length;
region.base = (unsigned char *)(rdata + 1);
memcpy(region.base, sregion.base, region.length);
dns_rdata_init(rdata);
dns_rdata_fromregion(rdata, dns_zone_getclass(zone),
dns_rdatatype_ns, ®ion);
ISC_LIST_APPEND(rdatalist_ns->rdata, rdata, link);
return (result);
}
开发者ID:ElRevo,项目名称:xia-core,代码行数:97,代码来源:zoneconf.c
示例18: addoptout
static isc_result_t
addoptout(dns_message_t *message, dns_db_t *cache, dns_dbnode_t *node,
dns_rdatatype_t covers, isc_stdtime_t now, dns_ttl_t maxttl,
isc_boolean_t optout, isc_boolean_t secure,
dns_rdataset_t *addedrdataset)
{
isc_result_t result;
isc_buffer_t buffer;
isc_region_t r;
dns_rdataset_t *rdataset;
dns_rdatatype_t type;
dns_name_t *name;
dns_ttl_t ttl;
dns_trust_t trust;
dns_rdata_t rdata[DNS_NCACHE_RDATA];
dns_rdataset_t ncrdataset;
dns_rdatalist_t ncrdatalist;
unsigned char data[4096];
unsigned int next = 0;
/*
* Convert the authority data from 'message' into a negative cache
* rdataset, and store it in 'cache' at 'node'.
*/
REQUIRE(message != NULL);
/*
* We assume that all data in the authority section has been
* validated by the caller.
*/
/*
* Initialize the list.
*/
dns_rdatalist_init(&ncrdatalist);
ncrdatalist.rdclass = dns_db_class(cache);
ncrdatalist.covers = covers;
ncrdatalist.ttl = maxttl;
/*
* Build an ncache rdatas into buffer.
*/
ttl = maxttl;
trust = 0xffff;
isc_buffer_init(&buffer, data, sizeof(data));
if (message->counts[DNS_SECTION_AUTHORITY])
result = dns_message_firstname(message, DNS_SECTION_AUTHORITY);
else
result = ISC_R_NOMORE;
while (result == ISC_R_SUCCESS) {
name = NULL;
dns_message_currentname(message, DNS_SECTION_AUTHORITY,
&name);
if ((name->attributes & DNS_NAMEATTR_NCACHE) != 0) {
for (rdataset = ISC_LIST_HEAD(name->list);
rdataset != NULL;
rdataset = ISC_LIST_NEXT(rdataset, link)) {
if ((rdataset->attributes &
DNS_RDATASETATTR_NCACHE) == 0)
continue;
type = rdataset->type;
if (type == dns_rdatatype_rrsig)
type = rdataset->covers;
if (type == dns_rdatatype_soa ||
type == dns_rdatatype_nsec ||
type == dns_rdatatype_nsec3) {
if (ttl > rdataset->ttl)
ttl = rdataset->ttl;
if (trust > rdataset->trust)
trust = rdataset->trust;
/*
* Copy the owner name to the buffer.
*/
dns_name_toregion(name, &r);
result = isc_buffer_copyregion(&buffer,
&r);
if (result != ISC_R_SUCCESS)
return (result);
/*
* Copy the type to the buffer.
*/
isc_buffer_availableregion(&buffer,
&r);
if (r.length < 3)
return (ISC_R_NOSPACE);
isc_buffer_putuint16(&buffer,
rdataset->type);
isc_buffer_putuint8(&buffer,
(unsigned char)rdataset->trust);
/*
* Copy the rdataset into the buffer.
*/
result = copy_rdataset(rdataset,
&buffer);
if (result != ISC_R_SUCCESS)
return (result);
if (next >= DNS_NCACHE_RDATA)
return (ISC_R_NOSPACE);
//.........这里部分代码省略.........
开发者ID:chris-wood,项目名称:bind-prime,代码行数:101,代码来源:ncache.c
示例19: dns_tsig_sign
//.........这里部分代码省略.........
goto cleanup_context;
}
#if defined(__clang__) && \
( __clang_major__ < 3 || \
(__clang_major__ == 3 && __clang_minor__ < 2) || \
(__clang_major__ == 4 && __clang_minor__ < 2))
/* false positive: http://llvm.org/bugs/show_bug.cgi?id=14461 */
else memset(&querytsig, 0, sizeof(querytsig));
#endif
/*
* Digest the header.
*/
isc_buffer_init(&headerbuf, header, sizeof(header));
dns_message_renderheader(msg, &headerbuf);
isc_buffer_usedregion(&headerbuf, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
/*
* Digest the remainder of the message.
*/
isc_buffer_usedregion(msg->buffer, &r);
isc_region_consume(&r, DNS_MESSAGE_HEADERLEN);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
if (msg->tcp_continuation == 0) {
/*
* Digest the name, class, ttl, alg.
*/
dns_name_toregion(&key->name, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
isc_buffer_clear(&databuf);
isc_buffer_putuint16(&databuf, dns_rdataclass_any);
isc_buffer_putuint32(&databuf, 0); /* ttl */
isc_buffer_usedregion(&databuf, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
dns_name_toregion(&tsig.algorithm, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
}
/* Digest the timesigned and fudge */
isc_buffer_clear(&databuf);
if (tsig.error == dns_tsigerror_badtime) {
INSIST(response);
tsig.timesigned = querytsig.timesigned;
}
isc_buffer_putuint48(&databuf, tsig.timesigned);
isc_buffer_putuint16(&databuf, tsig.fudge);
isc_buffer_usedregion(&databuf, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
if (msg->tcp_continuation == 0) {
开发者ID:execunix,项目名称:vinos,代码行数:67,代码来源:tsig.c
示例20: dns_tsig_sign
//.........这里部分代码省略.........
goto cleanup_context;
}
isc_buffer_putmem(&databuf, querytsig.signature,
querytsig.siglen);
isc_buffer_usedregion(&databuf, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
}
/*
* Digest the header.
*/
isc_buffer_init(&headerbuf, header, sizeof(header));
dns_message_renderheader(msg, &headerbuf);
isc_buffer_usedregion(&headerbuf, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
/*
* Digest the remainder of the message.
*/
isc_buffer_usedregion(msg->buffer, &r);
isc_region_consume(&r, DNS_MESSAGE_HEADERLEN);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
if (msg->tcp_continuation == 0) {
/*
* Digest the name, class, ttl, alg.
*/
dns_name_toregion(&key->name, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
isc_buffer_clear(&databuf);
isc_buffer_putuint16(&databuf, dns_rdataclass_any);
isc_buffer_putuint32(&databuf, 0); /* ttl */
isc_buffer_usedregion(&databuf, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
dns_name_toregion(&tsig.algorithm, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
}
/* Digest the timesigned and fudge */
isc_buffer_clear(&databuf);
if (tsig.error == dns_tsigerror_badtime)
tsig.timesigned = querytsig.timesigned;
buffer_putuint48(&databuf, tsig.timesigned);
isc_buffer_putuint16(&databuf, tsig.fudge);
isc_buffer_usedregion(&databuf, &r);
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
if (msg->tcp_continuation == 0) {
/*
* Digest the error and other data length.
开发者ID:miettal,项目名称:armadillo420_standard,代码行数:67,代码来源:tsig.c
注:本文中的dns_name_toregion函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论