From a64adc395f29c636fecff6eb67a39b6e41e7ab37 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 24 Jun 2008 14:18:06 +0000 Subject: [PATCH] ipv6 test working for windows. git-svn-id: file:///svn/unbound/trunk@1130 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 3 ++ testcode/do-tests.sh | 1 + testcode/streamtcp.c | 89 ++++++++++++++++++++++++++------------ testdata/fwd_ancil.tpkg | Bin 1756 -> 1896 bytes testdata/fwd_tcp_tc6.tpkg | Bin 1685 -> 1724 bytes 5 files changed, 65 insertions(+), 28 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index b030e1e92..f9f938807 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,8 @@ 24 June 2008: Wouter - removed testcode/checklocks from production code compilation path. + - streamtcp can use UDP mode (connected UDP socket), for testing IPv6 + on windows. + - fwd_ancil test fails if platform support is lacking. 23 June 2008: Wouter - fixup minitpkg to cleanup on windows with its file locking troubles. diff --git a/testcode/do-tests.sh b/testcode/do-tests.sh index 4c13c9fb8..a52e0c7ce 100755 --- a/testcode/do-tests.sh +++ b/testcode/do-tests.sh @@ -23,6 +23,7 @@ if dig @::1 -v >/dev/null 2>&1; then else HAVE_IPV6=no fi +HAVE_IPV6=yes cd testdata; sh ../testcode/mini_tpkg.sh clean diff --git a/testcode/streamtcp.c b/testcode/streamtcp.c index f646cb519..0b93835e8 100644 --- a/testcode/streamtcp.c +++ b/testcode/streamtcp.c @@ -54,13 +54,15 @@ void usage(char* argv[]) printf("usage: %s [options] name type class ...\n", argv[0]); printf(" sends the name-type-class queries over TCP.\n"); printf("-f server what ipaddr@portnr to send the queries to\n"); + printf("-u use UDP. No retries are attempted.\n"); + printf("-n do not wait for an answer.\n"); printf("-h this help text\n"); exit(1); } /** open TCP socket to svr */ static int -open_svr(char* svr) +open_svr(char* svr, int udp) { struct sockaddr_storage addr; socklen_t addrlen; @@ -71,7 +73,7 @@ open_svr(char* svr) exit(1); } fd = socket(addr_is_ip6(&addr, addrlen)?PF_INET6:PF_INET, - SOCK_STREAM, 0); + udp?SOCK_DGRAM:SOCK_STREAM, 0); if(fd == -1) { #ifndef USE_WINSOCK perror("socket() error"); @@ -93,7 +95,7 @@ open_svr(char* svr) /** write a query over the TCP fd */ static void -write_q(int fd, ldns_buffer* buf, int id, +write_q(int fd, int udp, ldns_buffer* buf, int id, char* strname, char* strtype, char* strclass) { struct query_info qinfo; @@ -121,15 +123,18 @@ write_q(int fd, ldns_buffer* buf, int id, ldns_buffer_write_u16_at(buf, 2, BIT_RD); /* send it */ - len = (uint16_t)ldns_buffer_limit(buf); - len = htons(len); - if(send(fd, (void*)&len, sizeof(len), 0) < (ssize_t)sizeof(len)) { + if(!udp) { + len = (uint16_t)ldns_buffer_limit(buf); + len = htons(len); + if(send(fd, (void*)&len, sizeof(len), 0)<(ssize_t)sizeof(len)){ #ifndef USE_WINSOCK - perror("send() len failed"); + perror("send() len failed"); #else - printf("send len: %s\n", wsa_strerror(WSAGetLastError())); + printf("send len: %s\n", + wsa_strerror(WSAGetLastError())); #endif - exit(1); + exit(1); + } } if(send(fd, ldns_buffer_begin(buf), ldns_buffer_limit(buf), 0) < (ssize_t)ldns_buffer_limit(buf)) { @@ -146,29 +151,47 @@ write_q(int fd, ldns_buffer* buf, int id, /** receive DNS datagram over TCP and print it */ static void -recv_one(int fd, ldns_buffer* buf) +recv_one(int fd, int udp, ldns_buffer* buf) { uint16_t len; ldns_pkt* pkt; ldns_status status; - if(recv(fd, (void*)&len, sizeof(len), 0) < (ssize_t)sizeof(len)) { + if(!udp) { + if(recv(fd, (void*)&len, sizeof(len), 0)<(ssize_t)sizeof(len)){ #ifndef USE_WINSOCK - perror("read() len failed"); + perror("read() len failed"); #else - printf("read len: %s\n", wsa_strerror(WSAGetLastError())); + printf("read len: %s\n", + wsa_strerror(WSAGetLastError())); #endif - exit(1); - } - len = ntohs(len); - ldns_buffer_clear(buf); - ldns_buffer_set_limit(buf, len); - if(recv(fd, ldns_buffer_begin(buf), len, 0) < (ssize_t)len) { + exit(1); + } + len = ntohs(len); + ldns_buffer_clear(buf); + ldns_buffer_set_limit(buf, len); + if(recv(fd, ldns_buffer_begin(buf), len, 0) < (ssize_t)len) { #ifndef USE_WINSOCK - perror("read() data failed"); + perror("read() data failed"); #else - printf("read data: %s\n", wsa_strerror(WSAGetLastError())); + printf("read data: %s\n", + wsa_strerror(WSAGetLastError())); #endif - exit(1); + exit(1); + } + } else { + ssize_t l; + ldns_buffer_clear(buf); + if((l=recv(fd, ldns_buffer_begin(buf), + ldns_buffer_capacity(buf), 0)) < 0) { +#ifndef USE_WINSOCK + perror("read() data failed"); +#else + printf("read data: %s\n", + wsa_strerror(WSAGetLastError())); +#endif + exit(1); + } + ldns_buffer_set_limit(buf, l); } printf("\nnext received packet\n"); log_buf(0, "data", buf); @@ -186,17 +209,18 @@ recv_one(int fd, ldns_buffer* buf) /** send the TCP queries and print answers */ static void -send_em(char* svr, int num, char** qs) +send_em(char* svr, int udp, int noanswer, int num, char** qs) { ldns_buffer* buf = ldns_buffer_new(65553); - int fd = open_svr(svr); + int fd = open_svr(svr, udp); int i; if(!buf) fatal_exit("out of memory"); for(i=0; i7X`!Ej^$S2Z^bhKG`YyKPs?<-Pk~t~p1JU8~iqwUUEn+o@IT+7Z}? zn!xAqjqg8a@dp;yNe(}6Lhg%s9UPK7h9H@mVjMH-an%xqv8cmYx6|vNkzB%=$>)3$ zj_MGEB!|YsTvQB>HVh>8y`ev0SV@ALFbO;hTd>_7$6+W^8e|a%bjs427n(sR%=Zb4 z=jJ4I>0}&okuvuK+?gSDnMo57PO0$SI?Nd-IqJHMa}$kK#Nnh4wxxawHqgl=oPA1A zudh0XVLYR;XZ{`r3>C1Li-nWPdZ_2c*yI#zim!8a*6%0<7=--4H|{{#=l>pe4<_SI z|F71h|CdWhS1FdI|CgMy_Wy^#OUhYWS^jeG$-h|4{V+hcw`_93xEuSCPz`;?1^7eo zqbexc361A~uK!`mN7&*4XMrcnvoOB3$T`LjIr4%El+aHYd`|;#D&W}la;;vf!Fj6> zcJIY%ZV6=KMFIE~P215qdEQ}2RBC>6sL zS(RS1NmM7@czt136f@FQVP&li>qM?=y-{GDG?S07Fo;QRUCKH0>f{ymCkgWWTD*V1 z|4X$TO2%FOU#;2;|92|oqOH#VqW1p>!7&`0=9W8vX&#ef;9(NG48)khlyX!Kd_Yaf za~)=57Jx5Kxa>uz`Weh2SXRLj(e21WGHWs7Kk)c*#%M?XrWEOQcga{XP{bSTH@b*i zffvFYJCQL4kZ=}&VuT&H7`f!4aR#cGfA#KS(7n8XM!{nr3PFNx#l~X?NvHId0Y|65 zgEHf~NO%_1*X@^`>-Jye{W)s((HCGJJn-!G|Ck+2#vT4&vP-pP{$DJs{J&Jz`Tv99 z6aSCdLwY}60=9h`lW*{YWiasR4T_BL0QQ5?mj(gSliq|G`)U5k6Ug_P?TgM^cm|bH zr3_D>lBL5bl8l%rA76}Gw&E}chcI^>g0VSpy=Fk8u|17+%!+GP+C?i>j~1!)ATJ@P zCM0k5PA6W#O-T}Pf+?6<`Xi|hn;{G;`?$%aK?&&pK5lTQo&NSPABtO`s9 zC%m9;mcN`8PByf8QaH)_)2o-F$R;X#U%=+01vDVJQKh9O7a>_$6`J!6b#F(p3ew$P z>(r2ziMPHyRtg!ZiT~V;5j3(}?3xPJV)aT58;xs~o$7F@*rB2s^-~{6Z{{FE7=@5T z|4=>vFK`M{bMm&@fEO5#&@Cjor;nh5sSt8nD z-jR+t9K|dGBVROR!|D{vtTLBNRpnv+4meLKC66D5?7G4G!tHY`p<%9g%WkxS_v=&H zW_Oip3%3}hdcFriC{o2eQk2 z_rgV&L&?ej)&88k!IOgpvWQETPbnvIs<@XH+1x0|Jk9uIh_N9sv(%m9u9V$}LuEw1 z%l1lJH*AA%jrw|CIW+cRU;Zb3;!rZ~%Ks|0;@bOvS-<~2Ahz?rG?;%y8Q}U6FRz45 zFjqh{p#sHB@%9zT*ow=Fmx)?K#!*J6!i~TTz)Ymbv*jx=%w{u-eWcT9!Z1IWTF`{c z_9B7UF>>{Myph`MW&?lXy76F4gvyVy3AtnD-U1EyjKzjb|I$;oJ7E;{=lNXeXvagj zu^!^H^DO1s`N1G;!dX^thdb1QTd{iR^QfRkMvjxhGj)-UaQV28)$H_2YipucLIg;` zi(^=3peQa|E=e!#*<--2{rEdOaj$#e*jCZDO14$Djcm;46@4$7+pVg4{R@dY9j!ORhU9$@lwjpj5SOLRxLSgAZP|kcPZ%_Rn8K z7`dUx;Juhf_$ir^UaR}&C-|`k%_g)vtzNIwBh8ENudn)eWsT+o-y>J8^ZsS04L@GD zu4I8=WXN5%bIoN>vwiih)mygb*8F}ki&pzWUsN?TG&D3cG&D3cG&D3cG&D3cG&D3c iG&D3cG&D3cG&D3cG&D3cG&D564g3!_ZJ7K3PyhfJe8hwR literal 1756 zc-jHn1|#_&iwFRwcK=5J1ML}WbJ|AGU%6kgkr_J~S3=_1!G6z= z5C$$6i>vIPFI4iv{>6fUE%XK5DC;G(zy4SgxDUQ@`)|XxszTcCpsL$s8#s#si$XZ0 zFfutV9&S)meaEFR9#RjSaF>hGfRbN8?SrP}w9vmEXo#jwDSm^UorKXH<0vKKI5O*& z;`=NB#{=2MPRG1Lk-o{f;|->w(gZ0fsUbqnI?b9QL~9B`aW<0+l4H~wGEnMZI|DeZ zRt*@B#~S@;j(nGD78@bOY)JJXd(nE?zGxly&f1;sEnN5;nNmP65gMBDwuaQY2GiqX z8Ysl+!yuqOD2A@(b*-RlMO{f~_QlLRl8H&%KPrT}oF?zc$_&9}1A)pFk`b?HHx0WW zev7;-7J0HKp=z-Z1g8xB=!9U9zC(i1Y?5gW82O5((m@mUa7;ZW=Wha`iiw#p|Q!>I}$ zBN=oaYK1I7Y6WA}cWe=f_>u%3_K0127%&#bILIRK%n^;>Y^HiFR6j&Cn5ZtZOn1n5 z7&CV~)O_ExsA@(b8=0YFRbfIo$(WW!IakqH!+^O}(B;mh=X5Y#myK^DRIBqrOf$x2 zV5@&JkD>ymbHQyelZ=?Q9bngNM?5_2wxt3vmH5(zdnC9o|M&Rg$apCJ3x+<;|Kq&? zw*toxWk*+R5SYw6ei5Cl)%ud#Y(kMfum*@^1A*#IW_T^$3IL) zzz#IH)Q+?UKAbCMw^Z4j|LcL}`XAc;DOLYE)3QY^`}{d%JB`+H`xN$|R45hU#S5}n*{Ed`Wb*2A zPBrUAG6PBCfSB__)a*@)(1@6BB~UT%?3-yt!Ttn(z(g5_%f)RSULzP@9? zPOPAl<68FF;@U*Vw6S7kBlDVqC@naHIM2jg6;uklJST6KzaHjxQ`+3k?Iz>#)k|U| z6BVNekS95?e90xKD*m?;Mo?cUA0;Z7&2mu< zsm_I$JJliTQnyt!Hk~*IlAN5ufI;McCu0B(rbRB1VAtV*hXIC#KpLB&HLR0<|FRcs0)?o``;!HAEox<3e9HuZWI%&ZajxFLK?)D>Ku&o{i@>;5>zt zEdD5B=nC_N>wRpYW6pVtVf2Czi&I%Ic%EqDl0_+HS45e+ZUdRDHf%kpbo3B(mX8{ z3iwZHshH>gDzZd9q61Z>IjWXQxl-|fss*)>KY+rgn9Mo_p0Bw82QxeHnfq|RnlUvk z)AL=;w_R@+GusIb*Y-bI*KKR~6gqIXX)&LFaQ}12Q)#JGDwcBjZ0>+&X%?G-K85ma z^o{So$J`IhEt3@f-rAn&&&!Y{sY9@WsqBwkrWsxtRFZOR*Du3ar`_$JkyPL@*_(S4 zdsGI?CMm;~O(&ly7t1hb9#%}3>1Z(&tDq3m7@8AS1}U&^?Z7e=5q z+d|+glr)&9yQbp{#zlxMaGCGU!L*=X@4#iJ2vgf&3aO*R;2j&9k0P&Z3);F5Y5`PQ zrr+ZS>djssaDz+aN;54VzvzCza22>w>Pij&%s;G=hB`b_M=2xWJ4oH0ItX*iFO&Mz zXfTIa+%b`5=@pweWzun1m!dc>BOT!~R=CI^eYVc_kwa?1#|v~)TxLh}JZ6;1g=S6y zl>GI%j>quNjr0^cw&A~+&2s!>)GweHD2Vu9*yDdEbO?vCd=DBR%ZKC;JUei82L71A zRP)e0@BwYbBRI^)%mULt_IN8o>{pP7pePx|ckV_Cc2lAezr)c{ENDafsuqsFZ8{bL zMCTRpD@}y2z_4MCjVKr$iaoPH2*QRtb28z}#u_f&1ke96pIa;90{6DXX z_+QHJ@xKe&fPa_m68)I&uVWgscb-|q&cM`eQKf^S*tACf*9nj=M;j*omGtxHknYx6 zjrJA1ghH;6hZir%0+6Ch+?fc>N23;89H!zBrjKoqRtF|)5>%_}(+I~brN*UAeYxrJ zObR>jTno*F-J9LY#IQV>cd7BFlp+@)W%D34aAgB=U@v^t0pwIU_1Ousq=v`Rjr? z66c9vk_9q@V=p5vn7^H6j#o^2oH>r$!)u)A5zm&lp2GUe1ymup6{UqiBTp?37oO@{ zO}`tt!gqJN&5FbiDBd2^Sjog)W&G%|AgIRI)`SrfE`4c;6=tHc(IC3!Z!pqKGeanZ zS9I`g7}*dw-w7zdDNcdgj^BE#aEguz(ZM^-G+!TA$uO{Vo{0-NgHXmGaGt+_zewt; z_RHY9Gw65UR@5vdshiqmf6#x`ZT2cTDz49fXu%A>Lg9q}!)XQ5%TXco_7u2T<(K@oNkr%;H5{GJjJ!=2OMJRLJT^L5wx&-VkX;VSG|Is_Th! zZx6*GGIjQ#w&cN35)6-i)~tPyWK-s!}COl^j*_7-b_h zajXi5wttccn|Lg)w=f!VUKIU!{`Yw@eg9L7(fdCJfP(P<{7G={ z|93zqz%LN-6+`%5?yA!5?&S~Yz>+SFr2GBXkSkJ3NVA2h_u#yVeaKaowyQJ3m@w(T?gw>f3OoQ~A_5NkM1#hmK zJzgN_PE(hyRBh2xYxQoL-333j^n5g$OtaPakMru+SLgLfCbfa7ZenJW)BoJ3VNZM7 S)1LP9txzN>4GFb&7(}^a1v!EDEWAcfW_)zfc;i`9EC` zX%M=>=j-4O*4O-=_P?&_-2ZA(*KnJt=>M{&YkQ!6zUqhRfA0SyaLow~sQ-cbz#R?) zXG}@9)j9v}yb1K9Iq}9+vDic**3cVUMTa8Yq)gjgT_m|xsSj?OC9h-C;wcdHF32!eOU0xv5 z=`?fR%v2XG)n@mq(OK{_nyTbgrJyQBbv~I!v;K+m>eW`~^(2$pz|=M|^Xcht-~adF z-(v3IF?2kH{{og5=RY3&s-~C979~H6i_*s1!Fcez-1(3GuiQqsj_asj0RY7d}@WvN3jYDacq9P7$8ON zHH%zZL5@T+*2rfJ#Y>V9?Q@vMH5BHuP<|g#e-nEvEEIP5-v;f&zAVF< z*JXL1>_fmJ-=YwXC``-%7Y`rMQXIc99Z?sY@G#)5J|#bcJOD+>DWP{WRIr;eAMq<3 z93+A^w4)Y;J1p682Eu%B+&CLSrej{CO3w@e#~sd9tqxexveHCIr&;fF;GbllKZk6m z+N`%O;3bp_r6Rm|K`xuGT9=D1NoR6)wH&qJ;xG+|P;10MS{<0KNl>Y*Pa__)l$w+_ z_2s6=Jt^$KPcbwTc5ie}#L$v#UjkTd3mJC-*w zZz%BW!WqWtWBLY-l5++_29fuTfC3!j6u9kp)T_X85c-G?-f3!v)~G@Tk!ytxbA_CKETbQJ&tJfw zBy&;ysejq-W8Qh9CaK!)N_yn@cQ8Dx7OGFSB zZ4COEWJBV1%xWBugP~77kg|D+Gb%Zoe#p7ec${p`OeQv!jnNx$o?J^7e?jfuz2 z5teX&E@ks(+z0Q|Q&|_+jje?)My0`PNz!xwM!zLdx}>_kr}14kz0M?FO-Kt zEDA+7lZfS^W*(&jNksYNOc#~Zk-Ho+qSg(VZZM_3#FM-@h^C&4q(n^;lj5PRA0$G@ z0Zr;njC!0mk8(WEBciCT9_9Dm|JZi$ujlg||9LfE!c(9m@UP`}_}>O?xc{*&<3FV( z0sMVBJ{kD?G1_O?h=MUEV^bG|AZ)mC#$�oPj7NHUq)^#**(uSpoAd$l&4w{@5>n<}J+_cq?KZiXoG0xv8r3&T$d zG}TbQ#ShdP-5#Ky%jCjz+z`LiH^BB4xKe6L75|*y-Jyv(0#ZXML-BS@YHZ@+Wy=i> zQk&Ry>QR?JOp|5lH642fY5S{7;m=v5EuM_m4>{7K>uhmuRHKh)JY=KHHl`fZHprRj fj1k1f?i#eC9qnjGJKE8XzI^%z`ub2L04M+eP#aPe -- 2.47.2