9#mACkUydW%I+#fNM#ZZ%eFb=LGAS!jcbRQ>E*Q|KY6JjyG&K`MpZIv*0u0GUS39^p^(sCXYz>5D@x?o`MULBxu(Q3YWswi&gdo
z5(us%IJA?yaDcS4g-M~*l!!@5#~T?`MJxd;Dg7Mh?A^i~8%1UV3*6d)bICsH=?Tg~o!b4dO{L=B2O6bJ#c?GeR<;{ZG{T)glT?zsqM
zi~#Ml;Xs{K1c}&cV<0CtFQvWhACnRGBPM{jzsFU8jzhF`CL$z^y{|BMo(#7SFdB+B
zfRq?d1avC2gshOg(#WkT5k85DSbpaHbka+fdxP-m{eW(agBS1R9<3QQxRluzzcH%8cFydHM#jsa6N+qpI9$N<%!f|
zbe^X}ma#aMM5ZT^iBayIlP&090$?3(p-8PajL73N_=p+5U{c3G`Ta@Emg75MsGNHk
zS8Rk{O_+X#-O3VM5Za>-TQ-VZ0#RAaH~9#a1$|T6DUn%-Q7;^ffnbUwv<?WZ@DbZGqTOGFS6w@$L?mpqI
zktIJMI!aoF6ERXZ@)>20{wTu-W#XGe=Q#5aYcYt`_jE*0{A0y*2-Pa>8=9u@|_C&h9RA>rveaAb5_^O;8Z%*V5l;1s1Xu7r+>^Qg~m3rtg8+NRSWPln;AF<
zg2H7avpWeZgz~tS@o%Uxh)0s5*$vuiPf1?P$bF$)`i=1<8v1)XyZdXx11qh|p|}`^
zrgLdJ`w@?Ta@Ewk2{EzrO*GAH)4wNDJvD;Rd7p}m9BC*0v&$B!iFjE6-_M%oGW(2l
z&gbx4&JsrM+o|-(L_k(@T}qE72wm`Hat-C%R-T7Eoh1>Y_^GT40!JhTC{Z?pFp#px
zSY=&!E{cvt3M2$sB<&&^nT;YK3D5Mr6tRz4RFmpzV>Y{=$lHtDB9Y>l$>0~07&Bq@
zoJ64?j~}JHDjn&CxP>9w_n~ln2V`^NDz>_8;(;lglT+z0g|qmB%c(pSSq+qnbF5nt_m
z+CAJJk8anzZ{Cvre?9TPF@&2)Nd^Ovge>sW6ZICFXhsrgOo8yO>3YnE#@^Kkc@>N=
z=56Me`Q|zvJfhKJdOv*Y{oCsEfB9n?9={PbyDh3L&|lgZJMcL=I>3K-Umot7|KivE
zql2A)+uhqc+}k~Z|MvcEXZLV-_vqjJouxrg@R?x}s
zCDTC^Z{NN3?4L%{%x@r~rGLXy&;AWwBm;&0t8zHMCTR~JdVdk#<5%Zbo#sjJve9mw
zt$*6^*U8Oh1HNu}-ZwA&4#*^wqcA6D*QO}~kTNx3*B0%iFHbj_v-rg~9{KHXMHJED
z&B&F4%`BX<>1ADm;FI#7vU?`41;>jy8RlPDWotJ5{1@5rh?*KcRBq7dvODOr7X`y-
z{sh?e{^k9HK(qoi80W9bAC-CU*Poh1yzg#@SU)9}2a!&sDCRxZ5=IbfySmO%gYn%SxbT@?EY>6@GTuq;T@c%!dnc`9P6oB%#P)|UnhajsE`kE>gh5t~i93!&?pgtuh4cjwEqo}c
zB4`oHQsrmYEu;XFj1Fj+oYJiPm{$(>`nq)BRMjS7xScn~pWj(<`TzN!`jNtE9w(Ok
z1r6*p=YsiA&5+b=)G%^)a#!x{Nz)YyxR|DlWTxr5C^eD=l^sy#5-NfMw8Jkd2Eu=q
zgGfu!Zc8g_KD3%BCQJ~OC_+IY=wTvgA+_2QYq2NRT2I6}PmE>eb25_4%X;;wvWX}ID2+hB2Q_JZy2`Hk#5nE#kT=>
zO8r(d9HPo<|KWLfB4F06by8-r)GRxCOgULbR=1>d#dva5Q2q7(OlzUiGmza%#P6Dz
z?8obWv+N1}F3t~EHouquNN-Wn&RE^dVq7Kb@9T-HNe6ga@fuK0h|V33h>yRnr-p5w
zH`}e_UbEf4Xk)WKOauobafgRqgX}fJx5Sa1hhL{`n2oU7)<`Sq6gF-w1@+gX{&*Sm
z4={S_7eKcDqc;j4)+JUm4S5x7VbGWwBT?x}sTH3i3tCI$F+xthizeV+3v^pYtR?A6V0T#2O6R|gYAE7
zZ%~9grkgKdWj+}>M0O@}^Fqf>boAhWda?1;Mk=*Uk%;fnoX$8|NvNli-i`bRUBG6x
zqQ%T@?BV?J6hi9QwC1X$RSTvRtGXFUipv{6y@|2d#>vH5qjfG%*<5OD0MQM6&IHIC
z1lcoQW5YI1@;E0pB8oG%gFa?#3Ryn&@<|{pVaL+uB5wENc+5gNa%ntZgK7UxuaE(-
ze3%QgWl~Ia!xn>Y{O-lc#cSiz*RnNH1vACJbS-kP3eGB`tWKqD7#Egt-K=m;r`c26
z|E>EUHLpq7!+ifsx&tb{|2fz>JUF2HpPl`~ouij8|7~aYXb1jT-Tyqpr}%0HC^(tU
zZf;b9sAwuZ9{h1Q2u3nT6A*BvYaA_`{Y&h}^&Qat|Dd7X=hb_Ho?U_I!VRz>Zv;hu
z8<#f5ftLvqXV&jbnSvk5(B)N*qcSjcr!&bE)cv8B#?4LcQ7D?F4j$cF%gMS^`I`qa
zu)QMs>c#q*j|}@abGqqgdV1+6>aNJM?|o7lLkcPZ@5UR+rnB-ck%@y8oaKxcB85Ns
z`hH<+h$UG|((a}gv1ow=N&LyyQOxQKUrLPbj{0?0a8U{_h%X(yI9&<&5?9ynTuAMov1WDQN3kOr4_2b>ZuOqBmx%;dIs7+xYGn7m28)l
zR-GnAvn`-IvUVHgJYB=knkm}KH(v3_X3v!uA;Z<@+DB$#wTg-L97k}OVpLHnN}bTI
zRxhM2|5-E_FZGtZMp#G*SticE1Y|xP!lcAs2V<_emW%sOhO`PY`Ev0l#OoEI6`mY;
z*jSNRLVn0%Oi#o;4+Dhk!nnMc@*K6uN{nAs%E1@H+bTVzYMCK8>77-Jda@2o!88!{
zS1ZAZvAUl&71HF}_2H+Eo@!F)_Ec*=dHz;k)Rf3wZ-FUs<1cDT(tBlrSt%cyFKS}w
z=T>V{%9rj-n1=E$qP&mmc{_u^!LM^r8NT*J0K0fu257$Rrem)rC(DCA?-*OwjIxZZ
za5A;o*fY;3hl|yi&z#itg!9Q~VKt^yje$M$tg`&8a7NX**OKRu>;7&sVqvmGU_?*k
zvsL3=HarR0wLG_Vk=VNs1bG%Ow(7V|iB$}TrDno~%sTVUwb0CGTefnrP-1wS!^~FK
zsP;4_GKEVT*TkK)h!u((h2lhsJd-R&7UNmQ6lGtF&T@W9o8jO;mog>MRlRdd1ooH*aOHE$`R=owTO|osqxS#`FC{5$u
z&F=#$pT>6{1Os1g^SoSk{`_`1=V3ksI4X`VAu%AJM*)R*VI}v>$oBKfBhIKYHI5n3
zw{?!xK*t68JBQ)Z@0AA#)Bv;80D)tGz%_v5J}X@xH6ypk?Tr^S7#b!>>gns&Kld^{RTcWrGLL0emj5ghSYoyK=Z62Q
zui@@S*cT8pv?@?ur9gSrW8paieq1XX7UaGu3P`lW5wp3380)Fb9@RCJbViVp*?sOD
z4@DowTq^&2LX{@ALVb#gbE)&V4)~PRg}sDKpcAms*q_T9bL23KmMGJG`~Bjwk7CkrL=7
zWr&xEsg@%?AE7c?ykVns(0xu0d6Ad4ehzsBdEG4X;>}8F2%pLKW$z@`E+(-LEQLTS!Q`FE3pj8_1DZU)>2^ignNwx^tqGtTD^Oz9KBW3^SYDs
zt}^njGV(4tBkw97?pj8Sa=+u7MadMWLH
zN4q;z|MBJS&dUDx93O3(qb1+_M%m>uMmwDrTBHVk58|4n6=i_qg5oSvusj#S2`!E;
z(l_R_^;f?aFSql*`O|IVxj*^#e_i5y87aU^_W#k|%Y&5t|LE{=RsZ!_KA*?_Z?h6x
zJzU(tyHYTpzT`_ri?K3o&8yN#Zw;~LI*Fg3DX_)z+z-NF*&y}SC_a_stgdN@Q>RUm
zvSP^?T&d1x?OcgzhS&X2txqD1>v($C!-8+4LGR-cpj?37{H5DG@3bz?d)@X`)6#|A
zmf+GA2XIK!mw@2S7eXKkp8;B^AXSkm*J;KH&5UeMpqjYXM-?!Yn{Nqvrj--ZrEF$t
zZ&RA5&9(lU1?88eWmYrHf3`)p^wHI2*=N2it4aoy>7XJZe2I5+E-F}ETCFav{zR8n
zX$xBgPT?1{vKht77WY+sa`k_7DVQYTlFEOT`Ty-59;WsG!=wF`|KGEGR{no0|G$<0
z-^%~*&!p0n`~OYC@h}RJ{=;w{#ln0a@oxTINsSOMR8u0%-i7KQeyXWBjD}^sn3Mpop@u*&N&-+F
zx%C25kt`fEj|5czQhijT6`&+d1pJafiA4td#H0i3m+vg7fe_56NC`{|MYKS?tr{g5
zb2Z0Nv>+IQX##GaG`bC+(|FVDQrs1vxB$puugJmh6~$IXEg2WCHD67gCc&NsstsSdD&BBm(SIWW6A%Qf4Hdvy4UcIaLxZCXNwhFerD{Y#taO*
zY0l}Hrw)os$O6bI0UY*9;2#*^|IeqLSLS~_mBm4~4pTM!#-GXQR#jWhq3twcKCc5V
zOAOjnUTR9uE}Q#;wRNe~go683dvIbhBu3=??mReCNL~2@&*=|b2f-`f;j)iq|Gx*0
zvL#(Lw}#PZ_Gvp=+zA-1{4Woj{(t)iI|nKM-=o8qFIV>e=lD$S{jJH3|6)6a{|1jB
z_IS7bzP|-*^85a)Z~ZO!eskG6_P1mlslRpWZ?(3+@wYy(1##;G@(}pz6C4HjLdMCj
zpXxIKjvfwV$3xzb*xcWW(W96<*iPbXSMlQD$y+Y?c}t~-$-v0HotOA_aZkd=h9iPk5YP7C`Q{CM6
za`s(+7{KAO?46hHb)mht1Q1=jFWvR>_n$e!vUgy*@2A*k8Vmw
z%nK&N29xl1HVh_jM9BjD3BTbwzfm0plUsTp)m->o$1%KetKN|>&~Ne}R5o&DQ>Vwu
z?L!P~|M)`uI-Xjcr3^ivqJjJA3wka)P$d|2)mm~vz^}56<8tSPFTUot6NX9rr>Ga%
zNlqK#!HfSm`{x1jArMtwsRK1%nfDO>5xt7C>HJfEPwC{2Y^dYw1Q}&Q|Jtj?U(|1O
zd&pnZZ?9-*`X-0gi!C}ZA8>h8(TjY*227yBN$_a?AZ%;80VY+HtQa1MOrQQu9B=sl
zvQsU>PnoJ1q8pK&(d-DHyuf}`V#(`Zf)=-&PVLGZ!Nf7npkS0-Xcc@iYp3J=bTUnR
zISr}yQmTv_iR!Q
z+Pq)0JFOO2g$ak<@EIPPF6L)G%Lm=fENBW2)3!wh?zxgXf>k5Qo{W%LoE=!vcJuD*
zzlrZqUuvWj&C$T}}^LG%V{u-u32mVu`_J{h&`+P9LT~=UNrzDMfXX*5!hhPeQwSsWnkA
zn^aP5S!|~7s;rR_US=>#WjI8RIPL!>j|G*N-?AcRIx+5!_-zN>@8Jna3RQa;lKIe88`~?E!<@&6n=
z!jT;HVX#s^Gy-Ym2D)+sUAciS)eUqRTX5wKy7C5Hd4qo4A4~qr?D6Fk04VnVJUrY#
zNaz2De|A^$-*bFaO!)w_FYWE@?r-hxZSC%E?d@+J?ra_Gf-?1&=mwOr8yT$mqw?5P
zKg^LcY!ptRi|IGf$Z`UeITbF>E?cLKE+$Kc?`O^PF1c+sE?Yh^!h6`z0R^%rcNA=U
zgPFggk&$7E
zNaHZ_e)ZO3@>U|PbqZyJ{VAlIXmuTvXljWDv*472OA#98G*-~vbUq?pP`fX
z&Mz>O^~c_6tJCeZy3I2H`JifB2{47fV|q53gyM!Oh$Pd5GK2*qAeBM*Nzn|PLOo>XRXfri}qOq
zxyh^Qtp!*Y&=&A>k5Z$^9cjRJhhg6VK)Ksr*V3E
z@qt$R+xl-QwBcpYqu%^tpDXSs$dQx4pjqG7W_^)@k4G_z2PEULAKgTlbHxGJS@Z0o
z{i`^H_IF)pgxO30d^HNLhs2}Esw>$g+mwAw4iQagU_4g^WX^L{;0OM@YB&9Z>{(?s
z5D;((3FXg5tPR3xIJu8TyhW}tU11+HHv%Q{+Zh~)PTyVpaMgi9Ge?y9yyBSG@hzww
zr9-yPPnz9k`>b^i2M`RMIjQp6<%59RDFX)P2g5{?6=vT$S6I)STB#-#aS)BFV*dQ1
z+q-PGaihZaImn(tdF|v;tw;(l-X)hrYyj&Na?3jEJ(LE7nSXdayS;_|v%yq(EcVvV
z!6ZUr&ZA5zE8xk}xojLa5hnjIOQE?91+1MgEV;Pe$e<|O-|5A10~DgBysG3*s<2uw>+nl2?`n
z($&dj?|rKcB6s8b1T>V>(;j6d>|XS`$Cm(EM$)MEW-)-aze_Q67w4zH`iEJGA>C#<
zBO>TxL?`EyZI(M?@26(-5`R5!lD^jIU0gQL0S+hkD}Hl1&^0chs}t6D8mAu`zXG-H
zIyqvtbukpCt4%c+81JAG0B<;jqo?t%dD?5d2ib+xYm_ezcb$B*UQbU2``OiLw{@w;
zWNf9T;AF*fb-0X~2u@^-kEGz_;5p4}L1D^G=%Z64GaX-?H1(O-@sHe6Q>v)|>6mSI
zlW<5j&1qbGk~(ojy|G>EC!rZ*9)L?
z4X%^<ZuVvC_RI2gd`6dKcQ>p*6(zG7H9SMT4qegQC?@}kkK4g~C{T1rr;
zBX`?ZB=a5rctP~;6cC*+)g-Ts^J_7fP5kAo@k{IM>WqZL%f_##7mX7*=>H$Apj(hE
zf4dIgg+8nmWB>I-%NzkS-N-Uxin6qK
zcqv6cP)g%)z-53UyiCbr#jX$lgJxNP-NYCYukp};Kc2+5li*(039u?*z0sgW38fTq
zLm}7YWscOCYGX}Z&Xn&E>0W%`!z$Dno39OC=7@q;i=uJGRUubP${CtcJRv1q-1z5s
zvDD$9`#gfc^PNO>G!VYZ(t`P1z;uqcJwvK)u-<-u?C33fSfCSyBSOZ=V-yYtNC?9r
zVBt2Hf^@II$uc9ObF^tmvi~;kmOrnhoIH&7dmcDy1C&f&T!ny0{s9$>Z}aZ@-R(_Q
zAhc-UfS8+{pt%*_>E1%zq9~N`HL$$W6Lq)DwL~gTt!F<3tPc1(cob(_xGv3PnIS#^
z#Vy{?e0|qQlDHocKmUN2ludn)nx)dFRVE$wSC&fcCK5w;5$gqk^Z{{oj1H?6WfOL?Jz#+!SR&xy054_>TRX714*n69@
zFZ$~@llUI}_4c-Q_bB8k!&A8KR3pbxjGq8#Sw_f@&QAO+j}njG`&qvqe#Ee6y>9qv
z=c3_fU0Xz_@BFOOhL%A(%*F)I_
z>Gqw7I`a2jXgXonITxZjt@EG!0~e+)F1!AL3sa5DQ~$t)rjw3;;KEX;^W*zV|GHZ!(b>Z{$=m4I&(0K|>I>+}>aFMIl!7F&~
z!X`YY&Rsa`64!LnS(iAjlg?Vdyl=x}=icPUPHCXgI(-Mvou?i=2iAM&Lh4n!1y7yK
z3fXo66#{d8dF0%Fr$5v4Z-x9li7mR_$U|U<}`idi8f}@ZqY>MlD69%9hhyb
z1kJi(2okAEuA=fY|BK3Ub6%EBpK}1=ztM>P5&2fUKQeE+QZRFeMqcDMo~%Dk*@?M=
z=pT9cm-8|%b5`shZ4Y7=H)%M219Uvn*0Aj<`fR`UZ$;@<&N;ZL{?=0$ezT&c6MFHI
zJ28Sgj+2N>x1&~SzG^g7t@3hxXHo`o>chO0(p1ig@h-DRb0nS42<7Znr{JsBGx@M@
zX33z&h?u~q)?m4bwkwZENvReXPo(XxJf6&8wZM=%r+MX3G2K=}ttg^;X
zbL{~;tL5CI)x~B04yZ9;b^5pRWY!ojkNOSX&pG`zeUU?tsW_>?#d9kLn0r;HKCIZ(
z&Vq<3yb4PJcy)WuOM1g8%)nU4mrHniva}Pke-{l0^u5B6%Q-Z8
z$cnRE=DEoOi$5!jJ^$&+Bk`a15n79f$dfR)W{Jt`T>Qh?bYcEc((`BIA0=>o-TcGK
z;97XDm7I+Z{!v@jsKPz$Jg^Ij8&!BmCTr~C5=TYOVWpX!NA5`RjiO=9Oth7U61+%x
zkI1-Q(sHFnF9=hz0#yQPW1Up);!i#wQH*4>LKlX4!u)7J0M07?*6#e$iIymG8GUHUy~_QgEbiu6xfrnH&?~8^_SCRVC
zPIgx-C0G?rE?vCp*_iS|P-iM*J?B}v5aj9VTVEKySv4{CZ()TC0R%HQo^5Ggu6i5L
z7d;99N0bq*pbuBU3}mA8L&3YQS{XpE(`nm+ElLU(l%d8z&Zx
zKOXb|Q26&qc2GrbDJk$#VFNi2GrA1haFraDJ!o#tS@{M%Ojfl~751FMAr)YDoDc+Y
z)sgKIBUM-=TTjy;)epQi8x?`~LJwILNOd;LY9-HvoWi;$^TR;hR)xVRfinMyqLZp)
z=G9AiCY00jRArUg2e)Q_f`?QmwNx#ZXPULH+Ooi0>*6`L#>+F0pRNe=T=>owk6B>i
zDwZFAstQ7B$(d(Dg`+x6#nE47kAnK685H5BDrF2>VIwVn#?AJ7Zq@h^a)=mv`d2~W`<
xSM`8apVepeS$$TY)o1lteO8~
if (this_callback_type == GETDNS_CALLBACK_COMPLETE) /* This is a callback with data */
{
/* Be sure the search returned something */
- uint32_t * this_error = NULL;
- this_ret = getdns_dict_get_int(this_response, "status", this_error); // Ignore any error
- if (*this_error != GETDNS_RESPSTATUS_GOOD) // If the search didn't return "good"
+ uint32_t this_error;
+ this_ret = getdns_dict_get_int(this_response, "status", &this_error); // Ignore any error
+ if (this_error != GETDNS_RESPSTATUS_GOOD) // If the search didn't return "good"
{
- fprintf(stderr, "The search had no results, and a return value of %d. Exiting.", *this_error);
+ fprintf(stderr, "The search had no results, and a return value of %d. Exiting.\n", this_error);
+ getdns_dict_destroy(this_response);
return;
}
struct getdns_list * just_the_addresses_ptr;
this_ret = getdns_dict_get_list(this_response, "just_address_answers", &just_the_addresses_ptr);
if (this_ret != GETDNS_RETURN_GOOD) // This check is really not needed, but prevents a compiler error under "pedantic"
{
- fprintf(stderr, "Trying to get the answers failed: %d", this_ret);
+ fprintf(stderr, "Trying to get the answers failed: %d\n", this_ret);
+ getdns_dict_destroy(this_response);
return;
}
- size_t * num_addresses_ptr = NULL;
- this_ret = getdns_list_get_length(just_the_addresses_ptr, num_addresses_ptr); // Ignore any error
+ size_t num_addresses;
+ this_ret = getdns_list_get_length(just_the_addresses_ptr, &num_addresses); // Ignore any error
/* Go through each record */
- for ( size_t rec_count = 0; rec_count <= *num_addresses_ptr; ++rec_count )
+ for ( size_t rec_count = 0; rec_count < num_addresses; ++rec_count )
{
struct getdns_dict * this_address;
this_ret = getdns_list_get_dict(just_the_addresses_ptr, rec_count, &this_address); // Ignore any error
/* Just print the address */
struct getdns_bindata * this_address_data;
this_ret = getdns_dict_get_bindata(this_address, "address_data", &this_address_data); // Ignore any error
- printf("The address is %s", getdns_display_ip_address(this_address_data));
+ char *this_address_str = getdns_display_ip_address(this_address_data);
+ printf("The address is %s\n", this_address_str);
+ free(this_address_str);
}
}
else if (this_callback_type == GETDNS_CALLBACK_CANCEL)
- fprintf(stderr, "The callback with ID %"PRIu64" was cancelled. Exiting.", this_transaction_id);
+ fprintf(stderr, "The callback with ID %"PRIu64" was cancelled. Exiting.\n", this_transaction_id);
else
- fprintf(stderr, "The callback got a callback_type of %d. Exiting.", this_callback_type);
+ fprintf(stderr, "The callback got a callback_type of %d. Exiting.\n", this_callback_type);
+ getdns_dict_destroy(this_response);
}
int main()
@@ -1453,7 +1458,8 @@ function.
this_event_base = event_base_new();
if (this_event_base == NULL)
{
- fprintf(stderr, "Trying to create the event base failed.");
+ fprintf(stderr, "Trying to create the event base failed.\n");
+ getdns_context_destroy(this_context);
return(GETDNS_RETURN_GENERIC_ERROR);
}
(void)getdns_extension_set_libevent_base(this_context, this_event_base);
@@ -1467,7 +1473,9 @@ function.