From fc30ae4b9ec74e2451bbf172bc74e56c56a70c48 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Wed, 7 Feb 2007 08:50:17 +0000 Subject: [PATCH] Sets ID correctly. And udp forwarder test - test of networking code against ldns-testns and dig. git-svn-id: file:///svn/unbound/trunk@71 be551aaa-1e26-0410-a405-d3ace91eadb9 --- daemon/worker.c | 4 ++++ daemon/worker.h | 2 ++ doc/Changelog | 6 ++++++ testdata/fwd_udp.tpkg | Bin 0 -> 1460 bytes 4 files changed, 12 insertions(+) create mode 100644 testdata/fwd_udp.tpkg diff --git a/daemon/worker.c b/daemon/worker.c index ecc04dfc2..47ac7f422 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -74,6 +74,8 @@ worker_handle_reply(struct comm_point* c, void* arg, int error, struct comm_reply* ATTR_UNUSED(reply_info)) { struct worker* worker = (struct worker*)arg; + LDNS_ID_SET(ldns_buffer_begin(worker->query_reply.c->buffer), + worker->query_id); if(error != 0) { replyerror(LDNS_RCODE_SERVFAIL, worker); return 0; @@ -96,6 +98,8 @@ static void worker_process_query(struct worker* worker) { /* query the forwarding address */ + worker->query_id = LDNS_ID_WIRE(ldns_buffer_begin( + worker->query_reply.c->buffer)); pending_udp_query(worker->back, worker->query_reply.c->buffer, &worker->fwd_addr, worker->fwd_addrlen, UDP_QUERY_TIMEOUT, worker_handle_reply, worker); diff --git a/daemon/worker.h b/daemon/worker.h index baaf756f2..34575c12d 100644 --- a/daemon/worker.h +++ b/daemon/worker.h @@ -69,6 +69,8 @@ struct worker { int num_requests; /** our one and only query, packet buffer and where to send. */ struct comm_reply query_reply; + /** id of query */ + uint16_t query_id; /** address to forward to */ struct sockaddr_storage fwd_addr; diff --git a/doc/Changelog b/doc/Changelog index 45291e97a..226952be2 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,9 @@ +7 February 2007: Wouter + - return answer with the same ID as query was sent with. + - created udp forwarder test. I've done some effort to make it perform + quickly. After servers are created, no big sleep statements but + it checks the logfiles to see if servers have come up. Takes 0.14s. + 6 February 2007: Wouter - reviewed code and improved in places. diff --git a/testdata/fwd_udp.tpkg b/testdata/fwd_udp.tpkg new file mode 100644 index 0000000000000000000000000000000000000000..4f1590a8ceb973a67b15d9cee73187fa1ae2862a GIT binary patch literal 1460 zc-jH91xxxLiwFSNk;z2>1ML`VbJ|AGU%6kgku^>-DMA7ZrZ_OgfE%|l5P|DvIvpZQ z2dEZ0MUN=%${eYcmqV*Wv?cF|ZAGa&bB6Av=u4GzX<=}xpMrbtDQ{;w>`;=;Gys~a~oz?lgi4MNYshil(Tr0Y?gQ}pxz`Cd^I&geBj1LW_U zveK-o(Cts4ia|gwbju0wpL$I&JqfO)uGGPY^@lUpQI=1-$YjpE+a{1MTe{4lPS7OX zrP-q{bxa@e>(MJ}yG=6k*2j@tkCGAdgB%8DWJ2?(0B58Vemt{m%K40R-=}7ioavSw zA~*7--Sl9vEC0DQ9Djc@?#q9?_E-1+F<$(b|8=>@|3`rna4`FQ>V2RdaL2<8bAX6L z?fl2{0nm^7(zU5%u%$%A$>cTQ4J{MWA565j)6+igAs3xV_Z2YLU?zq4!L5tGoGH=z zqt|cYjRu_#42FG88)~G}`{{B#0fV`>Q_Cddes^*{9Kf5){+JI)6h)=;L8-G^=?unK zeQkv=DY8_RrJ5`q%c&OqL63aB3HrdWEC2Dz+^dXx^1oVdC|Uh)RO9|n#eT8K|Hpts zI4qa*#j;#JB!}R$&@(6m3kpl!$AiNMv=YA>AX-odtl+87SFyPM2IUz@Qbh{fo4JJB zq?F=!I6BH0?N~=Cp^qyobaMMJ4=g9Si4bY&*C^7(a%?&CRMaNHhLnvZLbO3|IvQ$| zmiX)$h+1dR8(zQ*P;2TjJbz9u2dBf!)s}2CIlEd@t*}U@APF@V41`U>{7is$ds~f! zX3aGl?b^#tkMS7Wf%jTyCfwfFTDIx<<)knZYnIsO2{(uEE?QW|0>pUVJK==8#UZ7H ztg>KBT1jHJa&0-4JfE3G5-KRWuu=;)+W=_eT(a35s_i2MjuP{n_gdnU{K+^X9enm& zp>xeb>=?O^F}SX=hn#yHLq=M^CGa?r1R~<3l5OS6>U>-2Io#p>3=GFQ6loKL2cS6YAEs^OFi#efdH+m;L` z{0T2xAg+lL}yBnwAL;3ld8`i8*uYib}lyBU)6s zL&%(hxVFPuh;LIom68&1-N`>2?pb9LH$L_;6eY*u7(3+YYYQ(UhY#_{F7tw?Tvc?Q zL^eGGSsnrE|af8QkI`GRE|0kpnR!T)44p zn;#i9h=*kbvf72KOZ|p|k8l0SVz!dIFyqRyVw5K8npLix>|mE${egxT!uEyX0s*PHa|BnHi`5&j%*YpOEZz|&(A-iePKCq1)$sD36lJZ|V1j4aD z*v!!FMSLZ0x1ie;@HcYBt|<)S&nFpk-rJ;opfALIWY$E)lU$8olPsul1G?i!)Dw8C zpLA`x&mKZ1CToHc(&5hnp|(%6`2gE2j!WAr-tCikC>I|~3Mim}0tzUgfC36Apnw9t OJ@^+Q4ptZdC;$LpKG{$J literal 0 Hc-jL100001 -- 2.47.2