From 76a31aacd3da146bc31e3256e995e5fc6d00cd83 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 15 Jan 2008 10:10:22 +0000 Subject: [PATCH] test for ancillary data and fixes for lint and doxygen. git-svn-id: file:///svn/unbound/trunk@848 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 2 ++ testcode/readhex.h | 6 +++++- testdata/fwd_ancil.tpkg | Bin 0 -> 1764 bytes util/net_help.h | 2 +- util/netevent.c | 19 +++++++++++++------ validator/val_nsec3.h | 3 +++ 6 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 testdata/fwd_ancil.tpkg diff --git a/doc/Changelog b/doc/Changelog index bd39ccd59..1178c8c4f 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,7 @@ 15 January 2008: Wouter - interface-automatic feature. experimental. Nice for anycast. + - tpkg test for ip6 ancillary data. + - removed debug prints. 14 January 2008: Wouter - in no debug sets NDEBUG to remove asserts. diff --git a/testcode/readhex.h b/testcode/readhex.h index 599bc4e6f..bdd9aee52 100644 --- a/testcode/readhex.h +++ b/testcode/readhex.h @@ -41,7 +41,11 @@ #ifndef TESTCODE_READHEX_H #define TESTCODE_READHEX_H -/** helper to convert hex string to packet buffer */ +/** + * Helper to convert hex string to packet buffer. + * @param pkt: buffer to put result in. + * @param hex: string of hex data. Spaces and ';...' comments are skipped. + */ void hex_to_buf(ldns_buffer* pkt, const char* hex); #endif /* TESTCODE_READHEX_H */ diff --git a/testdata/fwd_ancil.tpkg b/testdata/fwd_ancil.tpkg new file mode 100644 index 0000000000000000000000000000000000000000..e8eaac0ed9954e723d6b5a1e67356e87efa0c60e GIT binary patch literal 1764 zc-jHv1{?VwiwFSWf{aH11MM08ciJ{EzoNh5>hPNOWi~dSdv4){CUi~LLQ2TGzHN^> zwg4~2axFWQef;k`$rx-BlKqfoON-iobSK?O_n|u-qnR_beB1Rj#|=w6U!>{S8jV`= zU9aZ87j4JT8`X-T8M^*^1Gh=Z?!_D(6E^_XpW6UL*2xa*@% zMwU%gD~{OIid@@-Ipw5a**4`|MKg{<=9!?&3sf)ZV0j*!U7cW>Dg69ZCpq(mg9s7T3*Zt2ZNpzfI=SDEp}7>@AJFiahw06->3esR~v@#|EgZ!`u}~j zXCSOQxdoDpTL$rBuYdf*aTl^_1t|^&Z=h1wbwWDbLI1<>MF;1Qx9!2%zOU&Z+1S%w-D4 z-9mebX?IWGclt|sA(O5wcG2k`Jus*HAGJ;X?{NFhc--dy)p}#;|Fts0jat1{+4}!| zv=VbLyDnrR91t()@a^n@#?YqPjC4xA=brv#7QBU#r(^ zTmQe0wqE~3y?;&Bzy6{|(kwoC0>ys2d(?Xi`%tUYs_^tF$(B)?#dI=x`F^!(3B_dw zF2R@15|_@~7l@?nk*Am)DbQ-I?=M-iVwd)=n=5pJrYZ#_-XJJHoZjg-J;lCO)Z zj+DtGAt&YIY~tDzD9U*sm9(mpEGtdel$H{+E}gr6DNASMl4O;vHl^Ew_4fg^(vnWO z_1J*NiR6xtn#D)ivkAbWv*Bb@>wC(zF!U+jPu#OJcN6!hYSDyFCvEm1tXD#4lMCccyA@(jid;@~^!JMer_i4%!=3!d{RM0XOC zW>#cRT4WUawusb{&M=`djDsgn;ZIU{+x~fYb~40dyJ?hlQh47!9t;Ps`km8eMVF6a zK=+Emc~ggH;v1efp}1O=0QdLN<*@7E!@ZCiDw=805Dq*_s*%OAA^@$DLoZ8y?0Kot z78b=v2jf2AJ_VN|ekcNUj(Nt#Gwh+=u4oH1n!%^+R@TX#CelI`BUi_Dz-Lh+xJQz* z5O&d!^JTGf1Cud@;z}wjCfuWVDr2!o?4A6b)7H|Ng)Z=wMUk^KK&hX-H!fb3zUbnS zMXhB|Y!!8>k-VaowN>TH5+%nlwbX0bol3iBBWXmgO*eAO8n(jMRz0*D$hX`!=6~$o ze*e|$L?sZ#Vh1caBITj8`n1`5*});sRf; z;?TGQ*-f*PG!xcmsg_level = IPPROTO_IPV6; cmsg->cmsg_type = IPV6_PKTINFO; cmsg->cmsg_len = CMSG_LEN(sizeof(struct in6_pktinfo)); memset(&((struct in6_pktinfo*)CMSG_DATA(cmsg))->ipi6_addr, 0, sizeof(struct in6_addr)); - ((struct in6_pktinfo*)CMSG_DATA(cmsg))->ipi6_ifindex = - (TYPE_MSGIOVLEN)ifnum; + ((struct in6_pktinfo*)CMSG_DATA(cmsg))->ipi6_ifindex = ifnum; msg.msg_controllen = cmsg->cmsg_len; +#endif /* S_SPLINT_S */ - log_info("using interface to sendmsg %d", ifnum); sent = sendmsg(c->fd, &msg, 0); if(sent == -1) { verbose(VERB_OPS, "sendto failed: %s", strerror(errno)); @@ -240,7 +242,9 @@ comm_point_udp_ancil_callback(int fd, short event, void* arg) struct iovec iov[1]; ssize_t recv; char ancil[256]; +#ifndef S_SPLINT_S struct cmsghdr* cmsg; +#endif /* S_SPLINT_S */ rep.c = (struct comm_point*)arg; log_assert(rep.c->type == comm_udp); @@ -259,7 +263,9 @@ comm_point_udp_ancil_callback(int fd, short event, void* arg) msg.msg_iov = iov; msg.msg_iovlen = 1; msg.msg_control = ancil; +#ifndef S_SPLINT_S msg.msg_controllen = sizeof(ancil); +#endif /* S_SPLINT_S */ msg.msg_flags = 0; recv = recvmsg(fd, &msg, 0); if(recv == -1) { @@ -272,16 +278,17 @@ comm_point_udp_ancil_callback(int fd, short event, void* arg) ldns_buffer_skip(rep.c->buffer, recv); ldns_buffer_flip(rep.c->buffer); rep.ifnum = 0; +#ifndef S_SPLINT_S for(cmsg = CMSG_FIRSTHDR(&msg); cmsg != NULL; cmsg = CMSG_NXTHDR(&msg, cmsg)) { if( cmsg->cmsg_level == IPPROTO_IPV6 && cmsg->cmsg_type == IPV6_PKTINFO) { - rep.ifnum = (int)((struct in6_pktinfo*)CMSG_DATA( - cmsg))->ipi6_ifindex; + rep.ifnum = ((struct in6_pktinfo*)CMSG_DATA(cmsg))-> + ipi6_ifindex; /* ignored ipi6_addr with the dest ipv6 address */ } } - log_info("recvmsg if %d", rep.ifnum); +#endif /* S_SPLINT_S */ log_assert(fptr_whitelist_comm_point(rep.c->callback)); if((*rep.c->callback)(rep.c, rep.c->cb_arg, NETEVENT_NOERROR, &rep)) { /* send back immediate reply */ diff --git a/validator/val_nsec3.h b/validator/val_nsec3.h index bf7069277..a31c6e190 100644 --- a/validator/val_nsec3.h +++ b/validator/val_nsec3.h @@ -243,6 +243,9 @@ struct nsec3_cached_hash { /** * Rbtree for hash cache comparison function + * @param c1: key 1. + * @param c2: key 2. + * @return comparison code, -1, 0, 1, of the keys. */ int nsec3_hash_cmp(const void* c1, const void* c2); -- 2.47.2