digitalmars.D - looking for testers: std.socket / IPv6
- Thomas Kuehne (249/249) Jan 28 2006 -----BEGIN PGP SIGNED MESSAGE-----
- Thomas Kuehne (249/249) Jan 29 2006 -----BEGIN PGP SIGNED MESSAGE-----
- Chris Miller (9/10) Jan 29 2006 I'm not sure it's a good idea to have InternetAddress support IPv4 and
- Thomas Kuehne (64/75) Jan 30 2006 -----BEGIN PGP SIGNED MESSAGE-----
- Chris Miller (9/59) Feb 02 2006 That was the original plan, but you make a good point.
- Thomas Kuehne (275/310) Feb 04 2006 -----BEGIN PGP SIGNED MESSAGE-----
- Thomas Kuehne (255/255) Feb 04 2006 -----BEGIN PGP SIGNED MESSAGE-----
- Sohgo Takeuchi (4/7) Mar 20 2010 I've compiled the std/socket.d of socket_ip6_4.zip on the current D1 and...
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Attached is the IPv6 enabled std.socket module and a tiny test programm. (only tested on Linux but should work on Windows too) Changes from DMD-0.144's std.socket: * InternetHost and InternetAddress now support IPv4 and IPv6 * "potected sockaddr_in InternetAddress.sin" has been replaced by "potected sockaddr_in* InternetAddress.ip4" * several new constructors in InternetAddress * InternetAddress[] can now be sorted properly * "public uint32_t[] InternetHost.addrList" has been replaced by "public InternetAddress InternetHost.addrList" * various minor changes to account for IPv6 Todo: * documentation ... * testing / unittests Linux users need to fix std.c.linux.socket.addrinfo. The proper struct is: sample output of the test.d: Thomas begin 644 socket_ip6.zip MVT-5>`0`Z`-D`%!+`P04``(`"`"UE#PTR M;V-K970N9%54"0`#YJO;0^:KVT-5>`0`Z`-D`,P\:W/;MK*?U9G^!T0SC2E7 MH>TDQ],KQ[VCV+*K4\?2M9RFO8E'0U.0Q88B=4C*C[;);[^[BP<!D++E-&?N M23LR"2P6^\+NXL6MS6^_:1RDB[LLNIH5S#MHL>?;VR^?P<\_V,$LB_(B7<QX MEK-+SF8\GK`X"BYCSJ:`!'%. GEPQ7-`%`"547+%IEDZIY;+G+-T"H\&D3[1 M/>39/,KS*$V0Z"OL'V N4L28)AR?L+'54O>X6&:+-.=MP!,E8;R<8*=A.I_S M+(R"F`4+8"T,"L">MZ&%0!P7(+VHH/>,3T" 672Y+$!J!2":9IS'=VV6+R]_ MA 5RSX+P8Y+>Q'QR-4>]0CWBE1!LDH9++"=QL9MT"1J^E*A`D!D'D:)N0%2H M*F0HX_]:1B!"4&7CN<^Z*%F`R--E%G)VS3/4:RX8!.87P%H2W[%YD'T$L``( M7H8SH1A;"!5)(?`E1_'7BP*:O4`M",(BZ'T>W"FA9WR>7 ,.M!I)(EDFFI" MB70$8-5Y$20A4K>YA6WF(&D8,'DQ\07F/2Q=9-%U .8W7Z19(6J!CN2J+9_! M"5_3>^B#H4_2FUS];5>+D?X]HWD`SB"O!_.+:,ZO05OC4#X1^8WB;L$G?,I& M X.?>^=,2&1<`.7]TU^Z)_W#L M#G+0?>8!WPUDO)'Q8IDE[-VH>\R+$ZCM95D*]=C?)Y(8CW-MQEXI3EO26OH" M:ZT\"43\MJTB;0:-6DD:[6JEV/AD21+X?/$<)&B(\MG.>N(CN/6%=L516DFJ MLO<7;)[#R))H /-MS9M&"Z7P+*RTJF8!W(BF7MG 1X%&U36PJTT6YGOB-8_^ MX*".F"<2*4#DT`N,<\)18FK)% `JZN'!"_.6; ?=AOE[K'[&=B[8_C[;^)!L MB,ZIV;-G>ZLALUI(D`ATAK^?6;/#FO`'6FXSWT>2+P34)_P5]M8`_?', P;& M8,'_I-I)VLXH43Y'2` &W6'WO,MN)I(QT.,[X2Y$OI$7^!NGP81%4PQ>:3R! ML*V\&R4X%!M\V1HCL%'[.\:3 "(4Q&L"0I7+8=/` ;2/0W]4!%FQ7'C;M\^W MGV^WV=.;B5`!2`^`6FA 9P*))O"Y_YR\?']XO4N8P;RR](8E_,8U7Z_Y-J$D M"<)$E$0%9"5 "FH8 "?/ NRNV4:ZZD7Y>2U9'L0\2(`+!P=/EG/6G4PPU3N" M"!7?==#P!;*WIZ-A[P"D /^Z1V/QWJ::_J^R7-;T?\7R_BFX::,<WZE\6()3 MPS1V*.T/!>+^<' V.!^`6(CQ S=4KDOAG<J/G?)C47Y\+-"H<GC'XO,#NQC> M5RB `,=S%6^NTVC"%NEB"6Z<>PO$!,-ZD]&3-G)$"C2%$(\\L[<6 ?F+,?VE MD8L=DN]4>91?I"-Z\!0P K3\R7(AO0^ZAH :P[CV(HP*>WLL^OY[V]\_4>TE M"^^C"^E.+S,>4#ZD/"1`1T9CV0`0HY.0HHBD9RW[9!%[LJ\$Y(/OO2IF)1TJ MN)2]/\"F0:9DUO#C M'J$U0$)E]+R<7T+T:OEU7*%->15S?BQOH =J^159DEPM(8X4$(_LH<<4&6A MJA`;RAQ,V,3]O/K 1802(`E,BJG7[%[BBL%"]0'UG0_)AP)UWV'?^9OYAP2B ME48CJ; ?JS")+W!6LOU_N*^J4OFU7)4TEZJG:K,:4]!ZMK2_ITK$^,:G>M?5 M'H5LQ*.I>N50G<A% $; DA[HH="E_)%R7!9[N`XB><-I)/'G0^/:H/=3FJ^] M&O+W%CM63>L%'?VDX%G""Z1GS?BKFL 9*%;"TTF4BW5/$75AYAM-$"G8M3<3 M'.D#PRS7 MX%=XV&>SC33/1B5UJQB07'F+9.YT3Q)'*G,GAD:Z(W*;,KUBPB+*O.5/-[VR MELPHR7IL O6J-K]:-[5R"703J]*BZA,J0;C2 "2!2%M/--!P'$/+>X33,,P. MA>&8E.?1A']Y>5?PS585JUBC-`;;1;UQ:_O`UE$R33=9$.ET0AH%Q4NQV``. MU%>ETL$U;$UH,=2+!VMN9E$,/4:E8(+(#Z)Q&"1I0H9F*Q)-O$Z-;JM'B$\T M11*E7!H!JDP4)_RV<(0E$Q%T*S4IH[,!8$")^(H"--*.-5!J%<AX^&`7$NZQ M9\_V/^^W+Z3'K% Y=F N_1E-8! AF!Q*J[/U&F:D1DMV;)5*8E0A8<9R'%HB MZ`*$7E>WJ^/ "IUMMS\^??NF=]8_^&DP.M];:9781\4>)7G:30 :9>EE$'[< MMT=`5*?23X;L$-;<E70G+68FRZ*98U18:BR;13/?UD4S3L, QCRC:2^552T8 M9FX"7YF<.?.P<A:_8O<TN(30'X0%L_"K8QIIP<."3M>$'U%$F^2 /2D258L, M2I`ZV;2H=T#SP MS3H+<0>QEIVM47!/:2(L0TOKBHNID"H91\DFBQ8OW<)=+-TUH *=\*`XW#T\ M/!MW3W^C`S7J9:\&YG1PVBN!\,V`$JM0P\'9N<0ETUNQ+RTFZ8N7THD:A!FG M4Q"RY*R,IY 1HS_7 L<<I3JM9D^?LG7 U!S[OBGVZAFR./90FW];?1L3C,85 M>EYH%FDE=%0LDBMEX"UC::'2JLW,15E+$"KHEVM.*T<%59$B!!OT!T`WY617 MGN+:;%'UHI"YK6XE-Y9F!0Q0K]Q1TBM5#CUZ[4D(QB%H5^'>%?(4)(F_/[R_ M,"1I`-U'P3KZ)H_IKE"Y$W<A?36AJ!/]2 '7RQ?)C8W)POWR-(EP>Z92Y5'; M/+P$%6E\S8DAMH'CDIX^L^9&J;G2)SIIG(QF8ES!3WH-<])HPBO)C#TS-X*( M;F&E"")HWD0%I'H`;GAIP1L,*%[CE#KFBJ-I/4:&L;+Q[LK6NU;S"9\&R[B0 MT.5)2-O*-5_WYB\/)"_,XKT4FF%W7TE68C?;'#FMQPA+-3?\2.LQTM+NP-/> MUV+EWNT! X;8JW$1CW)B=-Z>3IM;>P=M.HS_H:FBAI,!^A+L0[/B[LPX XL: MT;>:'W8Z36/?1=/I2$6O>P&X7O<R+5/;S)K^*>%1 ;?$ D3XIR15S^[V8LV( M--=<OHH;LE`^RB<]*KQ8W=1[J-87N:A_GS!:=.0>\RG;$3Z&[>9[T=Y%>[$2 M[WKL2]]*07<19#FO+HG;,14"'4G9JW'=?XC,V_3=5DZ7+GK_6L*H]P;BWEUJ MQP)<,O,U3&I L1I7MJ0M+,2NY^16.&I3WRD4)V7`[\F((X!D]-%U.E9;.*SX M)* [F"\<OHKL3IA,[4(OC1"GIL52N84GETX#J4S M=75=TEDCPH81/$W)_> *SHZF.]6H>+_<C9U2+=D?+<':SG7'\:HK]?&GCFA2 MG3^6VE3>W\99(JTQ`*?)]EXE,GRRMLW$):Q/]^Y&6/JOV^5J[K[P=[;_X?^7 M6K&XLM$-,0X9"^/.K9C:Y?'Z8TIZK;R-577W6P3NT6Q93-*;Q+A_<=8[Z/5_ MZ='UC<.Q?!,W.TX/U062PS&^8>GKP?E/96D)7NWK"+?OC([D^JGXM]TFU0\& MK\MK)6]&QV,H:+.M+3S8EDXAG"=XXWK8Z_VLP1`*"P ,[\GBX;",ASRZ!N'C M]9;!Z?G9X.TY=8;0NL!JDO-D0 T4Y;>H:;Q(#BX9;_K*^X."^*TM=HBL\&P: MX<3:I:PNM;NU%4!S$I>X+Y43>T('?LYC<*>X'F]:WH 7UK76CIHT)IANY'1? MD&Y/=1B_Q1OC/*?X)F?NK!FFRZ1HTJ%,S$_8Y7*J#XG7WKXB[-3*,\X'RH%O M+.EMM !5RSY:0V=31%LA=?`+F8&ETAP/^A"0C4?=]]QDTRC+ZP A/!JLY0$R M]KW)>?748OW%5X&6C"*XG4ZLFZ./IT-(USZ]/9V`I0"*L7BHW[R10`I!=3NH M7#T$.C6*B HE=<(Z\`YD<,LV]?U9:ST'129<)\TK91-+B&H&C1K5)QOT^?45 MB(UR%?0('>CYJ/^_O9:I"+)LO*!IZ&^5\+](7);U"=;$E$$R9>&SJ(*L0%L M(Y11HD $0;P)/G)(E3)<]4Q!&?2-`.%])FFR08=$$(<XN;V2*1D]!6^OR` ? MPYYL?G38.SGW(/5[)?D"RW`T:P_<RW1RIY 1JO'RMAI*+>=&<VW/-.O_48QN M:55*UOEJ 8[DO6ZM;)(R76^OLPO\'H.C!$7RP<F90W)MXTJ'"FFU3SH#D$-D MQ2R0^\.C1\W`5IC'8XSN`53 BZ2WV5MQ+Z=RZW^5;R_2HWKG+F7OBEX$^V1M M:6Q_`=O"RK]7LY95B>:`,M 3?LUC\U;RH+PI?"*_K=`V[ `SZY*P;U\%=BN= M&\%NM7,QV*EV[ <[M<XU8:?6N2WLU#J7AEVR MD*[.NW9V82RG8L]/OV-VN[=^'D,?S)`XU*N!XC&Y;IJP>)PFZ71JY+F("XH% MIFL0[*1_>MP[J_0(8**F+28U_5-X[550Z1J:7YT>OGY[5(=*U!!5![^L !$U M6XM+7F!R&^4%9?'J4SOR`V&4O-`5)I2T^`280*+;BG[:`$P?V[*$);YKM9R+ M03*)Z7MJ>KR+(H\^A7-%JP_NR<S4.'`MC]*KH5[7[('D3;N)+TCBGGC3,"EB M0<INT>F2;&27I60TI<]VD+S;VOYQJ_-.WH%M-&[9TWWVN92G %&S`:S_:Y^Y M/8ZS<B34'"!&2XKR;AQ=UPXA5(T8X/B+$RW<%<>4V9B_*>/&6]Y`>+I0=F-, M'<MJ/<(5(L:50<^XPA>F28(+OHI6X]M`M90J>$&L_#R)U]*/!J'E(-'6+K8A MWYZSL/;ZI\.SP?%9;S1:%Z6-HW;";A]Q6"]W$<(N]:CV:BP7N[65</%Q5S*C M!,X(/RI*.;,OH/`;=$+P7-GT1B[CI_49V)R^>V DMG)5R4A\'<]2,F-29C7S MK`R60C>T4L&9I']3F]OZLKT0I7F+$_W5X9M#MNWO;.^(:XH=-DTA;6`;W :[ MSM0^))/DE$YS\<%UTE/&I27*XE B-2)EQ8?^]V)?>%-O>R91( I8+!8+[ +[ M+3"OQT70GEURB&'3-1M(NZ*OQD`CV,`B'*P<[LCWE%'YZ`Q+_3$.E'L2]>Q4 MP_'=,S_<JZ;UVJA]9 J1OJ`V0=(D%/+"1'S$*;_^L`'FU%OE;MUNS+"2X\KM MM<F?V293+\M1/INA9RZ]ZNM7!R2V*0&?+ L\[%H[\6.L,<%33T5US^ME28<G M>?536(`B?PEQ[2QJ19R5\Y+/:W]_>8E4FZS38FOZT"`Z8D1SP+0E\W4/\UW? MMWE9V=XF5M`;<,2.CTP<F,,Q 4`QIO:0D8Z4FW.+8FF .PG2ZX")])D7FYF MIY 6A=8O$%/"U>XQB0.$17T1(R<PT%AP;*"PV01J2R:O*V0OW\H1'VKG*TL/ M?#DBT M$#L M 3_V6*_CU875]GDC[*PAKSCA]AG1<._BB*$Y3%1[#U+':Q27'-Q)[13ANW1` MEQX5_$YEIUZ=P_+W68W+R:18 BW!">5L8O>9XP<)NI]%$7C=EOX<>*%Y5>,_ M`\6]8P_>-5UT?8:WN-CJ,MIM=3-XW+CY+ W+ZJ4WV\^3?+`A""+5O6J9.=G/ M<06"8U[\C%[VQS!%,)J0)S.U+6D<LHA^/T9XF/")\TO&D)>.SAPI`]K/.D[E MG_+9JMB\/][LK=5(E/\Y8$7>;%?NP[7Y**&)*OM2:[J'CPJ>?O18?7T^AL/F M>]'CR(Q8CQS+->R``V).SW7'ZT;PW7+%N4.\T9E;TV?Q"P.U7I9MD=^7L[)] M5G.M18V4<S9)<XDV>57!T/HUJ11EWPR'?/_/![6HFZ:\U]U&QBI<13A;85=_ M&$DL"LC':>W&FT6SGAFYJM&T&#W MH- KN$61S;,[DOF2KA7$[?P:/5M^E1AN$G!V^4G]5C8.AWY (U$*.78/Z>%F MJ':Z'?RMDT2(=A=H\40+9K+6?POKICN'LG;MY%->$%Q;IZ9Y0Q<GZO?:G`!I M[I&/)EKMDK0=^\]&Y`--,A76TD H(3G `&ZXDQCY7>67#GA"&UNISZJ2$#N4 M\$V_?>IOF78ISX5;T8H:7<T(/P.4XMOU[4W?2P4^O^B(O"6N[=O0HKW7$)[O MT,[VY(<N!\WZL!O]*\DW08'3_E,R)MT9+GH!PQ/FA%J$)]]1V=+E%.U3)AF> MDHZE'WF9GY_"Y%)GBP^9=5AT&7/9Z9&>.2[+//]5SE=S<25>0 KQCN2N[/I' M5P._;QDGMJAGLS/RA;S5+* \//V;VK`QZ '^]./K]:V:8 G:HJ(1FET7[;I> MJ#YX M:Y^>>1P=%($J*YZHK9TZ#O3 MC5-;:]LP%'Y.H?_A8. F0^TJI6R0=(%=FI&7,NC82],'Q3Z.Q6PY2$JZTNV_ M[^CB)'/[,(PM^SO?Y> RW;3:0O&EKGIBI]HIZ<G\ BSI>S^A;109=<.:5JJ MG*Y7:5>>1O="6=0*[<>RU& ,2$%)"A]A4&"NB7/?6NIZ>-328M4HEAC4.]1O M+)I%J)'&HF)C[L%!2-%(5/:5D!?M:&P[B\2,MJ(H<&-9;QK*N4'*KSK="LN2 M+(.[L(D?DNRSS&W6C[??>5`=S2':>%(_SW0/AV6/IWWX8<04^3ELZ;\CPPA> M1$9X&#D M[F#U9-$LU:>;KXM;F,VH4S**^;)BSG4&W/],T8(E9X9HP?J>0YX[R8,/^>-U M```$``T`````````$`#M00 ` end -----BEGIN PGP SIGNATURE----- iD8DBQFD27Nt3w+/yD4P9tIRApOEAJsF7XK2rQjVfaYDZn17ig9d5CY2LgCgtlWN p8J2j89nRxOsSfz7m21HG8c= =JE+Z -----END PGP SIGNATURE-----
Jan 28 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 This is the second version of the IPv6 enabled std.socket module. Changes since the first post: * improved handling of unhandled AddressFamilies * added unittests / invariant * marked IPv4 only functions with "/// $(D_COMMENT IPv4 only)" * fixed "InternetAddress.this(sockaddr_in6*)" (please check digitalmars.D.bugs before testing the attachement) Thomas begin 644 socket_ip6_2.zip M;V-K970N9%54"0`#H MBDS)CI+*QQOY2.K7Q/:SW>--XO&`)&2QD4A]).6C_=*__>WB(`$"E.4TZ7P] M$G*Q6.R%Q6()87WMVV\:^\G\/HVN)SEI[;=)W_,VG\,?+\C^)(VR/)E/6$H. MN^1=-)VR]-MOH,?%),I(EHSS6YHR`L_S-+F)0A:29S1['F7/.N0VRB?)(B<T MOB?L;IZR+"-)2J+9?!JQ$&A`UY3&^7V7D*.8Q`EA-RS.H=]T2O()(W0!!-*, MZ2S*LBB)D>EK'!]XSA.DF,0,G["ST;,8<;Y(YTG&.D`GBH/I(L1! V0V8VD0 MT2FA<Q`MH#E0SSK00Q">YJ"]*.?O*0M!H6GD+W+06 Z$QBECT_L.R1;^[RS( M*#VAP<<XN9VR\'J&=H5VI"LQ2) $"X1S=9';9`$6]B4I4&3*0*5H&U`5F H% M$88QE6!I"I%]ANIWJP*Z;:`5!&,1C#ZC]TKI*9LE-T`#O4:RR#T374CP*D8M M7`&X%MZ9)<%'EG=#TNMNP.O_ !)Q'LH91^./&?K''HM_IS-0YX\L3;ES(A\4 MO#K M &_3R.?]OOU&:K UC>+%7?O;;_X$MB2,[)"]+#SGHV2`_DG'_S6*-_H2WS%Z MT`5'#Y/;3/W=L<'(_Y;6G4(PR-QHW3R:L1NPUE4 GSC[C?Q^SD(V)N<G^S\= M]FD+Y&Z X(V4Y8LT)K^>C]ZP_"VT'J9I`NTXWB>N,3;-"C=NE>HT-5UH7U!U M0E]"-QF&D0#G`$OSEM?>(NOKY#B1G,&\GW/MW,/DDK[Y[3<0^6!%$CH^O`O8 M'.?AD!2/ C*RQ=!0^TG(.-G3*<UATLV>9W.(46,8EK>#L MR8+_2K-S;5=FB8HY0D,PZ0Y&%R-R&TK!P(Z_BG`A\HTLQS^G"0U)-,;%*YF& ML&RKZ,83'+XV=&5O7(&UUM]Q/:%\A8+UFB.AR>6T:>!$VL&I?Y[3-%_,6]Y= MW^M['?+T-A0F`.T!4AL=[$P0*1CL=_L\RA^=W PX97"O-+DE,;NMNF^K^7/, MDR18)J(XRB$K`5=0TP`B>4K3^V8'^7*K\J^5=+D_930&*2HT6+R8D5$88JKW M&E:HZ?T0'5\0^_GX_/1P'[2`_XQ>7XGW#F\Y^DW"9<O1;P _.H8PK<'QG<-/ M2W0./^7HH]/3MX<7H[<_82.`BW=%:Z!Z25J#CLFYT.4 M/D\A1TN"9%KA].A4$#XZ M!%_LFV!X1_#ISR88WKE%#TPPO/,Q*^`C"3[]96"P`N^=2IA6, M1=0T07(W0 M#V6XC>E,>P4`7^!8IM:;FR0*R3R9+R",L]8<*<&T7B/\J7!R)`H\!;`>M?31 MVARM.[_B?_.9BP/RV*GRJ&Z>G/.'ED)&E'8W7,QE],'0$/'.,*];$:X*6ULD M=2'V7N>3D ^UN)2C/R"FQJ845HOCL-[QY=K!XF(Z5;(TI-4;/NR88-57NM^[ M/P8=MC0;:QF08<*M` :D 0)_].^Q2TMQ_$>+4R B[Y/"^$7&,:;`K:!E^(KH M(Y'R=,&V-*8A>)^C-T!"I8V\F/FP>K6[+JG0IUJ6.S]6-C$"[_D%19)2+6`= MR6$],J<>46R RD =I0YF/")Y;)V(8H((T`2&.?C5G/D8\5 KL:`]N&'^$.. MMA^2[[IKV8<85B]!FYL0.X,_,QI,E'-D6Q)!>IB>*O-!/N0C;-$(9I6%3*:& M++V)`IEA/AQ=&HML DDF9II:/%+"'(N>CA $^KKA-L:' MLE807QNID15="F M*2; <9Y,,H6!L';I-)*+Y52%2WQ&L)+]_\-CE<WEEPI5TEWL2-4A#E<H[&Q8 M?TM!Q/S&)W?HZI`28)`M`X#RIF7SG^,\$-%&6/E2,Y)[)<^8L69"\V`BRC$/ MZ>!OBXN:_\*R57D^A=G2TB;QW[4;TF )0O_9QJH*_GDR?ED+.1<?R3&17/`- MD`!A+QB6SV[+#YML/J-SB//-/) WV]:"(%:=3!+GR'S9D5340O$A1T7!6\B? MI9;+981+RSD0LYX_"MV(1]WT*J!65BZ.J"U<, (]M'2I>*0"ER$>UD&D;+B- MK+JP\XU")`I^W9J(O]?(A+7_E)X[8=W)%7846X`=<T/;Q8UCNUCT.+)8BW!U M+%VJI&Q%[55IJI!37? 5'?*7WD>Z9\-*W2P'DI6W2.9.2Y(X;K+JQE!+=T1N M4Z971'A$F;?\64VOC)(93[(>FV!M._.K55.K*H/5Q*KT*'=")1A7%I`L<-8J MJBGFQM44$%$44U>.R2,J/FWR[W^3VM9!NQ"U=$Y46<7Q6BU>%ECX]SE;:UO, MM$4E4YN2E^VVTT!54;=)KUV=<O:T'2>+.,3/I=;D8VH*5^9:X:Z(%\7C9(W0 M_0IGG,NKJKTT37);BW81=BQ3US2N;&G1'X4T3-B Z(FB,69W^=8_;E>9PF%` MI4*Q]P"*X']K^;1BF SEX!/^]?(ID%<?,=27$UP9/6D(*RF5UBNF"O3O$.5P M=3DW9-SKY+]:!U?[)^_>'1Y?B'4]B:?W[:KRT-ZM!8K*O:G8XEL3:M5YUMLR MX^5[[U)&>,N)<4"]5*EU 7F&:'*NU>\N',)(*Y?BV-X`S" IXQP?4*6WP', MYBF]QL5A='1U_/.[P[.C_1]/SB^V:IT8QQ"&+S\/JH2QB"."1PGU:?!QIXAM ME32<;JEEL(Q=V$'I?K?PH :",7#AWD*/#PI.BVE;F\4 \Z[\Y7-'!$(NHW[2 MM(>X>L9M;K+TS)M$DXI3(50K\T63KFF+YC0)Z!3SHJ99VK,]&/=1(`:0J+2U MS0%<K54M1A0(:KC VOK 1Z=% KHC]TYR+A0;J8A6U,8YLXJ,O!I6AK M/FA- MH5'E0M^%E\9(6L%1X_'Y\^=R4^96+Y]TIH 5CDV%6P)^?6F,G61UA;,VDY5] MFM$N;CZ2L=YAOO"G43!\2,X**9[>&AW:2)W*N*T/8&FG0JHIM=.LW^&K*5QH MSK0G!*<D%GY1Z.J:B8V; EQ%\1J)YIM5X`"A`VU-X.=1^"H\.C XNQH=_Q\_ M4Y[;8C`O]%Y3C!")[ J81=9[S0][\(6G=JMOYZ?UNWUQA,.9O!ML694`M?`8 M#XJA-4>0\T,YXQ*_N,(#IEN:Z*T:Z[?+<=LX$YI>E_\[])I5,R+-PCE*S=1Y MQ\/F])>;D[KMN9(U!S7F'"RUY^#K MD'_>H+QJ9&R;.%AL8=1"TJY1G%QU)`D?I'KO=7J=?F>CL]EYT1ET7G9>=7[H MLJPJ3Q6OM7GS/)>UBZ*7/. PR6$RM,H3#L67DPH_Q M\?>K]Y=ZFE0B+>- E6C+,^+J%Y.EN=$_./'O]O8/>O_P[-?&K`T!#TQ_R7G_ MGPT#Q9 MILW*CN_=O7Y]Y?6NO/[5A >:W'SA=&9E=0VYWCD*(BNKKJHO#E5[TP[Y0I*. MP&>7"+?,VXNNGZP/_UCQ,TP.XQ?IC,%B?5VQI57LGUB513&"\_PI*H;O ^UJ MX8H?7\IC\]"03&\8%X \P_R7/_U%FL_*&(U_B5UTI2`G*Q,");EA:1J%S*I) MF=]C7#V,2H](FF\CG-2`KFVHA6"P;C)'5!OJ<UV?<EJAJ+;SH+;WP. >LC%= M3'.);4>1BEQ+RU`/U*"((7O-1%BVD6 .A[TF["4^8S5ST^OU7_*MY>I4]?E; MSI4O9&)Q]E./DNW'V%AUU[*<]F.,O+(=0%E&*MUXA*)QG1]YO3V3A "M8+#A MD%-X_?IUKT*! U8,U\4BURJR8,-H2X\-:=J>MAP+WZ.22?X[7/XK5.-,48?_ M,'WKPMWNBTPRX_`'>>JT8-M(6E><?NX]R&=/P$)Z6*3J)]5&)7JUC$E$C7V= M]=SR]70!*Y_3\0RL\4E=90 UB9D\_R=K"H]9(\RQ1"6W^=C5XE7/3>E5K[GR M>O'*JZ'A-34-R5]0%HK2OLS:1;_ZNHDZF9*D,YJWFM]E7?5?4QRX>8][/?[0 M4P]]];!QN6(Q1#L'(2*,GR13,J'AWOTIY5_)RZ,QHBV*74UX*D^=>=S!,X3; M1!L2S^7M%)M.F?` !76$CD-XH0</SI'M;?(*\G A2_1][[+\:3$_Q>GA+'Y2 M<*D(-S3>U*F5AK&$BO.0<:5;0Y=7ZV 0U(35CEDH\PR'W_U6GL)N:)J/].-& MKIZNCB9VB5S%E0*:1^'T$R,[VMCJ4RSXLG8DL^"SHI7B `F %P4"W3,+GUDQ MW>R^Z/[PJED6F1PEM5Z']#NDH-R M?\62D2L>?IE,S"#YJ+3L4=LB8QAWDO9UMDGF]M)4H/3KHGVEO>H0G-'S1L.A M^WU1#VOSVRJP(&2F`H_QI>9[T;]*]K*6[M?PJ3ZD_9N8UQC?57=VRL;AJU7L MA.5`[E-H^8T#H/BR2O$]QX$=WL;!Y?!E<]4-MLRE^#Y[3M.,V:=-S6TTL,6G M8LN1AOXA2LCM]O*2D=BW>GUO`UU,C"HWN:"3IM[=*-,E\\-_+2!):)V(&[P2 M,RW&PVS=`B?1J!B=K1^W&%3$[ME184JJ92?QFSO<[)3%C406.LHVXP-'4NZS M)$6U^OFS2$BE>G=+[:KDS:19$G48I-+%V[(2NT_&Z7-QO=(*]?^Z\C\O 4*: MTW9^&/3K>AD[*G??H'[$/O3JN7N%R_G<</=BJ_`Y</<=U_<=/-3WNJZOMU2M MDY79U<+1DQ;_*=^D6JG N?VDS&,U]%V);35LNQNN<8#KMA'IK\6 5>1K'/7: M<ZB*%7Y80=VUV=RUE,]<>F.%WBK [2I)`1Q7Q]EVB.YTIA`U$IK=0Z%A"S2V MMEWB;+NDV78)XS1. /H,3.1`&,P",1LTMD'7-J J86`?]7 B );4 =.* =.* M]NUS04\$T.+)=UK"=UK"=UK"=UK"K[&$CS[BF]B^\$L+%-H 9H/&-NC:!KD6 M=A],Y]N,[[JT9,4`W_(6WQ&.?3L<^TZ'\<&.EEJV+:UL6Z'/=_F/;_N/[PCB M?ET"0_F50"8!*BQG 0(;%-H 9H.JNJ*.K(FZ0 I%WZ)6[YT=VYK4Z?34Z?34 M.0JP6JO]SJYR*:CSUW;N6UJ*G]YUL,EUO:> ?3Y9Y&%R&VO73YX=[A\>_7+( M;Z\\N))OXF++XP-U?^;!%;XA=._DXL<26J+;8[W&7P-K`\D?9(E_O`[7_LG) M7GFKYKOS-U<`Z)#U M7BWM>B19'=%.D*^U 53;O%F$WX4A^ JMYZ!0C8K5'>\YX4 F'77=]1H91VGF MOP652(J`_>O2\N O\%F0L$PHN1/> 5=`TSNR5EP?;IPK1)6)J G_+":[&$I4 MIVO0HL5%"<7U?34*=;&P3HY?'^P=79S7,1.-6XCWG<*3-QLJIG8>(<(EGQ0( M>53=[6\_=;=:K]'X`20?0F`DM5JMEM0M]</$9\:H_GNQ/S4<BOF5,08^ 0WT M1:MJ2PAJ:CO^S+H+]ZJ<//) :&I:5<1+J>T%=`_VC)8-O]#J5ES%M*Z:"3I4 M 3VV8;HUH.1>I':;PX:PI+6D!TU[^Z(\"6_NBO8^Z>FP+S:FQMX3ADU<_H:? M=*_4BY+NE7K!TKU2+V:ZCY8;.KTV8#N">DTBS:6\"GF< )IL]RU_T&NY9), M0/3?(-T>;B['8+X0!8/_M$!L(^N6A<A'95%.IY:<"[#D9QKAX6JNLACJN/OI M>I35J"0BI:9W)O_LUD#I$M2OSHX_79Z$0%$)8O7;UX8Z5!+Y^HY+`ZWXZ"CG M_N($5C^ A3`Z&\AS].A/&TQL?5\!!/CV0+$UI($`HHY^'WP9$JRX]IW7P.CS M9?^"/O=.[,KV]T#E_F"`RRL.?-?5_QCTSD:GD !Z=XF][[IJOWOTM>O4C?WO M45"'KZE1YO!4F8]<SQGC!!-:LABM:W25RZ:0P\H8,3+I3Z1F!QX"D*--)'A_ M`PQ3,TOR!G&ZO7EVE/$\A:Q#U#P0KM0$#DBF?HQE`=GF<C,6J=QFU0*E>,XT MI/*CH?""82:!TI0!C8#HMM1/)"MCKC&'6)36:SDCZ7<S>KL* Z% /96%2I/T MI4J7D]**&HW9!&)?$=E HE>%RWY2EH:&8-E6:H.-YGJ:02J^&S-A ?E>2RTG M\8<C<O[M*FKCO*S2EB^4GDI&6!:3=)X_PI)4K'&3%),<T\GI]4Z?6I )Z!IO M'_Q`3Z6.WJ8C\_%2#S5;([SI;>()0MSKUG1<+/(6X1R)D]%I]^*D'Z'7AQA` MM*1/?2F=M<.JC,8:A_"85HA]M1'V=,TD3_2/XC4TU8JZEVGLH\C*\2)7&PK\ ME_)LJ"K*3 QO`]HK6RPZ.`N47$YT[*^[) =5KJ%-JZ$0#PRX*2L.LJSN^`2 MV'5U^DKN1"T[\J.1C0.<&V-UZAOMC<E[V/H#W8/;6VR%`+'QT+-"!H_+HH`+ MX5'WV^"R?XS+`=_+YG/.1.=8LK,KA;.J3>H]!VJW=_;E?'!ZWAT.-P7IP J M:7ZYQ1:,1^U!:5O)?718#MB M9,&M,.VC)=BJ6R5+\/5V%C,8&S.G6<N18/'HEJWX<$;JWP=EVUBU)U)2T&+* MG0'[U?'G8[$7[^_M4TCD`T%AH7=;N^+^1A*0(G7!P;1[N&NE"=X%YDHAH:Y1 MAE5/DHJW]!L'N`OBI6L%,+.$;BULJ[#Z>`,7Y`/O7=+F!H68.A\4/\LZ-:X` MP(KL$K"9$O!IL6[SN0C$=3.IA_;EKJX3AU4'WG/\>LZL!C<>T\*6&HQ<):<U M*VXD`TL505>8E9/4Z\^H''RPR9851'&E/_4!3;XZVBS;T&%$LB?/RJ$U+>5A M]KHQQD:6*+?5)7]LN QMEN,DSU$RYU&UY=8!<7(%^]C/4\SU+87X";:88M)7 ML.N+]0H$[BJ!&!LK/&(`:(,A,WPC]S7M6V7GI=B\LP_;];;_H=9=P&G&`>9& MZZV%QC:TLXZC<RRK4(7$\-9BEHRE-I_"<0/!83"0N^A-TH0R?<^2XKJ,:S[! M4!=#V00D4ZSR[OV'OQ %J/([`Y?"HF3$/)ME*EW]N_?O$6H5-Y[8$CYTB((8 M`;Y/YI Y*FY;[(1Z;B33;2KY"\ 4$+5W%( G$(O&PH<<N[K6"<=F2M!MP+6% M%Z]-9">XID4^Y,Z?3#T8WP^ 'BVTGT$\DZ6<LY./0MG=.YVYV ?HA P-B_#M M+ADOEO+T>`1;(+G(Y+$ %6]PG 4)3K^I21D<S -P-E[JVS,T;A*8\,`Q]P!( M$I$8FRFA&UK)'VKU6 <N-7<6H6Q>?]5S,*C%#X=B'[,8C*W:(4 7Y>K11"*D M.GHC6Y2;C:U9H]QDT!ZJ`;PL$LC*02)`OYZ:0E>SE7 LEUI?;J-LL"F17H`P MOU4+J1\JVQ*XD?^.I[J'!5+&>]XF'!*PS( E+G?;K$IYE`-"T!Q0"?:F!9!D MXC-Q?>C^!'&-S=:OJGTB195UBQ ,*+7GG*S_`PF,DM-FIQ-4]4\G;WJ RJ9K M2(-SCBS')PMJK#M>7F:6:[/2.`7NW&.[AJT+FVVS(VS,(3]QP6TSH_[=Q3.F MYFFDVGJ2&K915#G4("%6/>RE$>RJ4$![JA+JQ5M0?Q_%))M.TSF<);B K$OL MML+XFA_=6[47>-F7_!DY3_.BQ/\BH4:G)'C[Z,IQ53K*Q5J1T5RKZ\E3G>N_ MN6/67G;R[23):_,$0:":M9;<BL*IC%"DKE^B_2NE3063E&L,8S,1$!`I39 R MJ(,]A["PPMD8QJ.NR7>E("LXW+2UHQJ0.>;^7[7-_CE(D1F-CY->V 8T3ED- M;GX6T9B57:I5S=-'%5]^]A3[NGAT.M6+LVU `$\<;Z>C/2MV*[&\G23JPB<K M2;7(^Z;3^9854/5`W)95E5W)82-B!6H1UE78AW]J2MRFX(^S,!=OQIJUI>DJ MQC?I^/NY[#T2WL M,--[^2\U8KJ5!+;I)I_\ B;E/;S70;22VWDI][49&:2ELUO)$]3%?Y0-MR0 M8*4:%A)0P\*_:K#H:QA6P."[QBW\LHRT"`U478X73K$V[[:#N>G7:AND&=C_ MS(N\QTFZP3UWXE.( SA*WACQ&_FH<&M[..$96XA?1,%/[%!_5*S$^'XEQL30 M3H.4<?#G837&5/LE,$Y]C$T6X8)%0;H2PBVLB*SUIB2*T9CWI;;<E]8LNY#D MHGJ1C/IM>'2:+OH2*HZ0-%PPI>B=79RWG7A);_<;7MZ,Z<0F/4J13G95E-35 MGNR.)3\YGI\??>=2ZXH/D;50M!&ST=DA/K-$EEGRD,V6,Q8E? 05ZC>2FZ*K M>Y<`LN\KONZ^$[\R<.P4?DPG\O2<5-2XT+\I&E+[RR)[P*:P`-YT/,OQB_$M MD>K`,2(/6.N:YU_+RYL-CXT9;SR\..\>?8YJ3BP._0)NB:OR'""'8)S?,;*& MW8!EQ8O2A:<_UZ+;':IXJ2B)FM8AY_C+R4N3Y_CTO$:=R^-G4`<;_1]02P,$ M;#E M3H%4HXL+"%6HY;KV<N<]*FJA[Q^ [HRS2R:3<3*-?/\!V0R:KA`-/;L-L,6W MW;NT)XPOW^><KE=I5YY&]T)9U`KMQ[+4:`Q(04D*'V%08*Z)<]]:ZGIXU-)B MU2B6&-0[U&\-B,"<P)E9ZJ5*SLG,<\76=G#GQPV!'3.^%YL`,RGR*)^+5C9/ M+/7*P,Y74I4LFD6HD<:B8F/NP4%(T4A4]I60%^UH;#N+Q(RVHBAP8UEO&LJY M0<JO.MT*RY(L [NPB1^2[+/,;=:/M]]Y4!W-(=IX4C_/=`^'98^G??AAQ!3Y M`'-T9"]S;V-K970N9%54!0`#H/[<0U5X``!02P$"%P,4``(`"`"XE#PT2LKX ` end -----BEGIN PGP SIGNATURE----- iD8DBQFD3QCq3w+/yD4P9tIRAnVAAJ9tGrAU6NGRhc5JJUtde773rbk0fgCgoVRH GHGUZGoR76/mHpntvSt7hwY= =FFN3 -----END PGP SIGNATURE-----
Jan 29 2006
On Sun, 29 Jan 2006 11:54:30 -0500, Thomas Kuehne <thomas-dloop kuehne.cn> wrote:This is the second version of the IPv6 enabled std.socket module.I'm not sure it's a good idea to have InternetAddress support IPv4 and IPv6. My original plan was to have a separate Address for IPv6 (possibly named Internet6Address). I'm more unsure about InternetHost. Also, there's a somewhat vague naming convention used in std.socket: address refers to an Address or derived (class), and addr refers to the actual value of it (uint for IPv4). I noticed your version doesn't adhere to this.
Jan 29 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Chris Miller schrieb am 2006-01-29:On Sun, 29 Jan 2006 11:54:30 -0500, Thomas Kuehne <thomas-dloop kuehne.cn> wrote:Neither is IPv4 a subset of IPv6 nor is IPv6 a subset of IPv4. While it is possible to represent IPv4 with mapped IPv6 (255.1.16.3 <-> ::FFFF:FF01:1003), it is impossible to use IPv6 sockets for IPv4. Thus the follwing designs aren't usefull: 1) abstract class Address; class InternetAddress4 : Address; class InternetAddress6 : InternetAddress4; 2) abstract class Address; class InternetAddress6 : Address; class InternetAddress4 : InternetAddress6; One seemingly obvious solution would be: 3) abstract class Address; class InternetAddress : Address; (-> IPv4) class InternetAddress6 : Address; The vast majority of applications have no to reason to discriminate between IPv4 and IPv6 but would have to use quite a bit of code duplication to implement 3). OK, next round: 4) abstract class Address; interface InternetAddress; class InternetAddress4 : Address, InternetAddress; class InternetAddress6 : Address, InternetAddress; The design might seem clean, but changing one of the core types from "class" to "interface" will lead to quite a few bugs. The current design is: 5) abstract class Address; class InternetAddress : Address; (-> IPv4 & IPv6) This keeps the commonly required code changes to a minimum and allows incremental updates to use IPv6. e.g. uint addr() (throws exception if used with IPv6) -> ubyte[] address() A possible extension of the current design: 6) abstract class Address; class InternetAddress : Address; (-> IPv4 & IPv6) class InternetAddress4 : InternetAddress; (-> constructors only return IPv4 addresses) class InternetAddress6 : InternetAddress; (-> constructors only return IPv6 addresses)This is the second version of the IPv6 enabled std.socket module.I'm not sure it's a good idea to have InternetAddress support IPv4 and IPv6. My original plan was to have a separate Address for IPv6 (possibly named Internet6Address). I'm more unsure about InternetHost.Also, there's a somewhat vague naming convention used in std.socket: address refers to an Address or derived (class), and addr refers to the actual value of it (uint for IPv4). I noticed your version doesn't adhere to this.I kind of did: uint InternetAddress.addr(); // throws exception if used with IPv6 ubyte[] InternetAddress.address(); // IPv4 & IPv6 The alternatives are: A) ubyte[] InternetAddress.addr(); The clean solution, but would require instant code updates in quite a few applications. B) ucent InternetAddress.addr(); ucent is reserved for 128 bit unsigned ints but not implemented. Would you like C's way and rather use the following? uint InternetAddress.addr(); // throws exception if used with IPv6 ubyte[] InternetAddress.addr2(); // IPv4 & IPv6 Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFD3xhC3w+/yD4P9tIRAh9EAJ0eTQUPOyNcTUTynlVCYnupaCvI+gCeMN94 0HQTywfN9FUNh6VjPG+D9qw= =2CYt -----END PGP SIGNATURE-----
Jan 30 2006
On Tue, 31 Jan 2006 02:38:39 -0500, Thomas Kuehne <thomas-dloop kuehne.cn> wrote:One seemingly obvious solution would be: 3) abstract class Address; class InternetAddress : Address; (-> IPv4) class InternetAddress6 : Address; The vast majority of applications have no to reason to discriminate between IPv4 and IPv6 but would have to use quite a bit of code duplication to implement 3).That was the original plan, but you make a good point.OK, next round: 4) abstract class Address; interface InternetAddress; class InternetAddress4 : Address, InternetAddress; class InternetAddress6 : Address, InternetAddress; The design might seem clean, but changing one of the core types from "class" to "interface" will lead to quite a few bugs. The current design is: 5) abstract class Address; class InternetAddress : Address; (-> IPv4 & IPv6) This keeps the commonly required code changes to a minimum and allows incremental updates to use IPv6. e.g. uint addr() (throws exception if used with IPv6) -> ubyte[] address() A possible extension of the current design: 6) abstract class Address; class InternetAddress : Address; (-> IPv4 & IPv6) class InternetAddress4 : InternetAddress; (-> constructors only return IPv4 addresses) class InternetAddress6 : InternetAddress; (-> constructors only return IPv6 addresses)That might be fair.Not really fond of either, how about: uint addr(); // Current one; throws exception if used with IPv6 ubyte[] getAddr(); // (or getAddrBytes) IPv4 & IPv6 About InternetHost, may wish to leave addrList the way it was and deprecate it, then add addressList for this new stuf.Also, there's a somewhat vague naming convention used in std.socket: address refers to an Address or derived (class), and addr refers to the actual value of it (uint for IPv4). I noticed your version doesn't adhere to this.I kind of did: uint InternetAddress.addr(); // throws exception if used with IPv6 ubyte[] InternetAddress.address(); // IPv4 & IPv6 The alternatives are: A) ubyte[] InternetAddress.addr(); The clean solution, but would require instant code updates in quite a few applications. B) ucent InternetAddress.addr(); ucent is reserved for 128 bit unsigned ints but not implemented. Would you like C's way and rather use the following? uint InternetAddress.addr(); // throws exception if used with IPv6 ubyte[] InternetAddress.addr2(); // IPv4 & IPv6
Feb 02 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Chris Miller schrieb am 2006-02-03:Implemented with a "semi-abstract" InternetAddress class. "semi-abstract" concept: This seems to be the best way to keep the implementation simple and extendeable. e.g. "uint InternetAddress.parse(char[])" could be deprecated in the future and only "uint InternetAddress4.parse(char[])" would remain.A possible extension of the current design: 6) abstract class Address; class InternetAddress : Address; (-> IPv4 & IPv6) class InternetAddress4 : InternetAddress; (-> constructors only return IPv4 addresses) class InternetAddress6 : InternetAddress; (-> constructors only return IPv6 addresses)That might be fair.doneNot really fond of either, how about: uint addr(); // Current one; throws exception if used with IPv6 ubyte[] getAddr(); // (or getAddrBytes) IPv4 & IPv6Also, there's a somewhat vague naming convention used in std.socket: address refers to an Address or derived (class), and addr refers to the actual value of it (uint for IPv4). I noticed your version doesn't adhere to this.I kind of did: uint InternetAddress.addr(); // throws exception if used with IPv6 ubyte[] InternetAddress.address(); // IPv4 & IPv6 The alternatives are: A) ubyte[] InternetAddress.addr(); The clean solution, but would require instant code updates in quite a few applications. B) ucent InternetAddress.addr(); ucent is reserved for 128 bit unsigned ints but not implemented. Would you like C's way and rather use the following? uint InternetAddress.addr(); // throws exception if used with IPv6 ubyte[] InternetAddress.addr2(); // IPv4 & IPv6About InternetHost, may wish to leave addrList the way it was and deprecate it, then add addressList for this new stuf.How are you goning to ensure that addrList and addressList are synchronized? Thomas begin 644 socket_ip6_3.zip MVT-5>`0`Z`-D`%!+`P04``(`"`#T9D0T M5BC945))]HUB.ZFOC>VSG;;/)!X/1$(6&XG40U)VW#SI;[]=O)```4IRDO;: MR&&;O`YG,Y9\^PU07$S#E*3Q)+NE"2-PO4CBFS! `7E$TZTP?=0BMV$VC9<9 MH=$=81\6"4M3$B<DG"]F(0N`!Y`F-,KNVH0<122*";MA409TLQG)IHS0)3!( M4C)F9,IF`9F%=#QC9`),D&=`Y_2:I<"( I1A=$TF23SGE,N4D7 "EYJ0;2[W M*4OF89J&<81"7V/_(',6(\<X8GB%Q`9EWN-BF2SBE+6`3QCYLV6`G?KQ?,X2 M/Z0S0A> FD\SX)ZV $(PGF5 O3#C]PD+P*!).%YF8+4,&$T2QF9W+9(NQ[\S M,]2>4/]]%-_.6'`]1[]"._*5&"2(_27"N;G(;;P$#X\E*S!DPL"DZ!LP%;H* M%4K8OY<AF!!<6>NVR0 M"QAIO$Q\1FY8 GY-A8* _`)4BV9W9$Z3]X!&0>"E M/Q6.,8U 60J1QPS-[S8%D&VC%X1 (?0^IW?*Z`F;QS?``Z-&BL C$T-(R"IZ MS4,!I!;1F<;^>Y:U`])I;\/M_X`1<1S*$4>C]RG&QPL6_4[G8,X?69+PX$0Y M*$1UFM'(EY$.A+TMK[OE[8"<\1P4^FG)IA#B6Z`3WC=HUGS/06T_`H+:%J$! MCN`CL$`2L6P4!#AH=[C!2L">07!ZTR, 7C#C M899!F,-8?OP$A9]#B,!(3[. +4PR0. B"6\HCIOY(DXRT0H&C*Y;\AK&8R:N M?;R;A6-.]^TW,C0:(-_R0_/;;SZ"`!)&=LF+-#CGO:2`_DG'_S6,MKL2W]&[ MIY(&Z%U#Q6L)RY9)1'X]'[UBV<_0>I D,;1C?Y^XQ= LS<=?HS"G:>G<^H*K M!2:0/LDO!6<4BZ&C]N.`<;:G,YI!MIAOI0M(KA/HEK>#LH'(&6 A2"4-?TJ3 M<TZVM36HQDR<F&`1Z`Q__DGJ?5*'7T#ID78;1;X46)_PIXBW&OB/)0T T`8+ MJ.S&*S,^J;4E-98.6NOO.!%2/K5"!N9(Z'(Y;&HXD'9QZ)]G-,F6BX;WH>MU MO19Y>!L(%X#U`*F)`78FF.0"=MM=/CWA_,`Y0W E\2V)V&TY?!OU-Q&O[F#V M"&$Z '(*0D$-`\CD"4WNZBV4RVW*/S>RY?Z,T0BT*/% T7).Y&3U$J;6V5T? M`U\P>W-\?GJX#U;`_T8OK\1]B[<<_2;ALN7H-X0?'4.:UN!XS^&G!3J'GW+T MP:NSO$FT<0 VG8U^+63D30#A MGI4D/3H5C(].3\].+D[`+%SQ_=<<GD/AGL-?E>"O!/S5*\%&P>$>P1?[)ACN M;SYRL4.>.U4=U<[B<W[14,B(TFP'RX7,/I :0DX,X[H1XJPP&)#P^^_-?/]` MT4L5WH:7,IV.$T9Y/:0R)&"'&K$D`,:8)*0I0IE9BSY)2![L* .U(?=>9]-" M#C6Y%+VO45,34RJKY7&8[_AT[1!Q.9LI76K2Z[4Q/.K!K*]L_^+N&&S8T'RL M`9%0UF`B)E;KVH8L(IP`16"431KUT1B7.A:J#VCOOXO>9>C[/OFN_3A]%\'L MTRD6F5AI:OE(*7,L*!TY".QUPWV,%[FT*](*XK53(ZN 3Q,LP*,LGJ8*`V'- M(FBD%*NYBI#XC M`!ALBP2 HFG5^.<X:S+:")?LU(CD4<DK9ESLH9D_%>M(ZVSPQ>JBY;^R;F69 M%G.Z #Q?S_Q%O6E-"&+6225SCLRG'<E%313O,C04W`7\6EJYF$:XMEP",>KY MI;"-N-1=KQ)J:>;BB-K$)3/0NJE+Y2.5N`SU<!U$ZH:/D5R_-A`[)SU<5]QT M->3+%CNJ'NN%'/HZYX;S;VFY%!OAZN<P%>N>8M:%)]\P0*80UXVI^/V83%GS MHXS<*6M/KY!0/`+LF ^T;7QP;.:3'D<6<Q'.3CNR17M`E]3:$_H+RI=Z=[AT MT%1OZK,/7P/<3(Q>I1R=WCT$Z54+\K&TVF`$1Z.^C.3"&J[TRS7J"9</`K-8 MRVN:,Z;P`^!+B1KE96[H25X*+=0H*>/%,\5BD'NZ,$G1BM8K\U0IISSQ*S[D M3YU&AF?-*MVL`)(K;Z&LG584<=QEY0=#K=P1M4U17A$1$47=\K%<7AE+9KS( MNF^!-7365YN65F4!RX55$5'N DH(KCP 1>"BE4R3CXVK&2"B*J:M-AK#Y M(9N-LMP`1<BB(4OAV&CPQ8+E^"YCCYN6B$VQOJD-U,MFT^FVL &&I-,L#T1[ MN:_</L26VVDX Q[#PEDT;-/PRJ=1'/'18$8;CD-7K)6I-$OR"!#M(AEQOXHE M/^'UBL:-/2WH44G#A36*\2D:(_8A&_SM?I6%':;I%8\ALAAHEC98-"J!CKYO MY=A:#ES331%/4ZP$=B4CLW<CM J*1"[4U8I20Y2;"L5^,E`,_UNKLI70I"\[ MG_(]S8?`7FUMJ/T4G"\]Z0BK5)7>RX<*T+>("KBJ2ASJ\"?DOQH'5_LGKU\? M'E^(V3Z.9G?-LO'0WXTEJLJC*7_PMP;4IN.L,S"SZ%OO4N9]*XBQ0WT!4R.! M(1 3%SYQZ/E!P6D^;"MK&Q3>5=5\;H_`R.743YKU$%>OP\U'+[T>)^&T%%0( MG9XE5KR\-0B:R)W*O*UW8%FGQ*HNK5.O?NY70SBWG.E/2$YQ).(BMY6P2 ZX M"B.$[92!/83VM"F!'U+AD_#HX.#L:G3\+WXF2-T,'#C')\>'!1+>:5AB(>WT MY.Q"\I+%KVS&!X2WG=YEWEMO($>\4FX<QS-R\.;UZW^56_C X,W!<CZ_X^G_ M4[$(4U3J[DE_1SL_(R *ZQ4SMJQ5"]>N7`59U1L/&=T?35*4'?E2QR:=]=;V MUK-ZZ]G=K:^WJ]<TQ$$5Y\.(H8"UWJ$F4B-<91%`=<4=>HL"S5&^/:2J!,TY MCCGR>`W'7C7+L<72Y\C^*I:GOW&<++D3QG5R]J5-?%R$;I2M3IA1?^N5=W&B MRQVW?)`7H;LJ&/-06.&5*SQ].]`Z;E38OEEXOXD16_?:_%_?JY>-B#QSUX31 M.M^L-^9XM3&IVYH;V;*WF3%[FQJS]YG6?-OO7[I-V=-MV5LS=/X^6]:4,45Z M%P]`+:)MJH",:DHPTZRJ?(OEXW51W"+%QJZ910M>G4TRII/9)CF2S][E-=^5 M>4^?_.!)"R1ZZ[4ZK6YKN[73>MKJM9ZUGK=^:'4`V&EUNJW.=JNST^H\%<N4 MSL+>Y5#I3U4HTW:IIJF:74I4Y7#L]+O>=G_'>]KO><_ZS[T?^B/O17_?.^ ? M)EWG"U>*VPIVP 3>I5HIJ^+9K5R8-P=;92[[?PFW%NETMW>>?F'\<![K8FA- M_+3(TYWM;F?#B."X]XT*5/8OB`Q N_V71\?*-3F1N=4RW.JT?8_D[(C+C2/+ M^_#RY977N?*Z5]L>6&CGZ;HDU7WZE#MWYWD?L>OW4U[;_5^KIGIP^4JJBGT3 MT?<4?>ZW^(8E21 P:XW&7,<8V`3&PL?'BH&?8Z]<ZUBST$&<*QUFO*^J<>O] M"-`&1NCW.8>7+U]V2APX2%-&3JC7 GI#K?-:'J*[6I-MY8:<N2XY->I[0R?* M-V> 5.\^:Y*'#PD`Q'LSV^JV>REL*F^W!7I3):9JN<"`_?[V1D)U>A52>:90 MG?SVJ10R%T,RS<4UNI)2EZ$[3NA3)[3GA#YS0I M*GAX=9>%]/V++TY09K(TF7,AM/:-,F_?Z_8];]3O0TV_ F>_VP<<CK*>K??R M8-3W]H'O"^"+3VQ.MHBUWP>4C7 B(Z\/Z%7L9-NZ_=$OMCX\<K1W,`R,I9[= M=GY=30`E.8JD6L>WT^O\R:%<.O%9&3'06.K1(E^A7U'[0<?OUO?\CG?];F7? MYOS6DFY_OEBM%R+$^AQ0T#E4JFFKB[HF>V5%S%,O'7L]<;4=BE,)A:9[AJ+& MMXA<*RE3C:NHC#G73>M7]] %JHZ;*E MY[:;BFTB9\]-.ZFF[:VCO:ZB]5:: M&Y /!-`2$.%[-ML]P;6$."PC"J"#Z00%FYC($Z&`!2KW-$%!)Z5^)D(E%]1I M'*9B>1R64/=L,?<LXS.7W5ANMQ)X6&8I )-R/T.'ZLY "M`B 4D>"`M;H(D- MNK9!94L$:)Z )$T 3.Z"3IS0:R?4&5L!&,_2:,]2:,_29\]2QS54`S!D8$LS M=*DS=&DS="GC=(Z/]O1-9%\XS`(Q&S2Q0=<VJ*RACX;U2P+ZPHDN*'-")T[H MVX+ON:QDY8"Q%2UC1SH>V^EX[`R8,?C1,LO0LLK02GUC5_R,[? 9.Y+XN*J` MH?R]:Y,!%9ZS0+X-"FP0LT%E6U%'U41=*85B;%&+>G?7]B9U!CUU!CUU!CUU M!#UU%6VT(N(I^-LRY9XU/*DK[J ==]2*.^J(.VK''55Q9_EZ6)9/`,=E^J'E M:SL<J2L<J2N=45<ZHT5$?JJM.B2Z0_IET$=]`:%T-E+;O\SW!$O;B!ON!:=T M5GV!P&*TW-?KC^4.M_Q<WN,F;UYD7R$(OO9V=_&Z#G]QIN+UG*JC=BLVRA]. M\X]*_BW[Y;K_Q+<]UVV I_:[(FUY(K_*!2LVHM4"7A$ Y7/X!;6]'2NIY;=< MM/AP=5Y>7-:(9PU'1'[6(KXX7-+IM3VUX5SLM'J=CN=YUEFB"D;:3GCC*YX* M+LSAW.J51C'>T24/G>9IZ >NY'IKSKUZATI/3N*5Q7S?51,`/QQ)LT;]N[2M M_J^+-R;?XD$H?M%1%UUUL7WITM2]5Z/>TS,W>_!#BQC\YA:<IN'FJ_<BL$)P MYRX?JJJ&WHJRX0LF*.W`[J8S5*]ZANK9,U1/SC8]<7):A+SX_?SM93$):SA_ MIF-M<&C]!_GN*:F<FC^C^&P1<T-8VP"NWWOZ<P_^55/+?:<Y[4UJ\9H&OJLV MI<&+NU/*7[,MWJWG36'D:,%/?: /J>SBATF&1$N6^+&/774>6#H+Z1O&05(^ M-5W/ LI 5BBIO9VMBH)^_[O?BD\Z:9N:H?Z1` >= \S`+5!+F*6OWY1>,-^U MOHP`(M;S=QD*\4Q#Y"^C`_+`WE[5WC/?N)JIOQ7%2[FFN:PN:LPAN4%YL\&A MC/4'(<Q165&T],QWEZK/ )IEB_ ^\<A'J;3WITN? ':^1>W^)E?^2G4+FUP? M:(%N]_42O_* =23?M!7_>2UNUI.3%\4WE%^?O[H"0(L\>8)?<8LG$&`1_EV4 MT\/#GW(TQ$(`1\._9H$3$00'"V\ :/!;SB?'%V<G;RYX9XB=`PR2E$4!)U"2 M] VJ(HZ5Y^1'^P45R6ZNX++X4(C!$UN7LKGP[I,G%,BYN<3'P<74+'S03MF, M^1F^MJU'WCG+C+_AT%<GFR*<$U+^<7S^J?`^81_P[[JPE`\X.=>2NA\OHZS. MOT"(#V M.':+!,/ZBN`4AJ3VJE(^8X]A*O8,Y;'YJ+K;WW[]H=;7:(P-)`\A,)):K59+ M,V^3<&HD\/X+JS$=X 9ZUNO\N]UT)X(X&[,1./-71_Q'D<OC/AX:VT3TH#QX M'E9PFAH.5`0RRP5%(,3GP8]4E8L9Z <%3`9E\N'=9U3DFQ1+B)/A),L&);>M M,PF=O_/JUEPEM"[K"=K324S,9!.5*9=+C"\P:U(P"8+RI^/3`.5HXTJ'`K3: MTPU&!=)ZN6O[`ZSE LWNYF^4;G=7EV,H.Y2&(7\Z(-:1=8M<3?I%7HS'CIR+ MAN%*-5."U8X[)T?MTTJ/4(U+6JS4=$[ SW8%E"DA_>KDX./Y80P4EQ!6G[[6 M24A_")H=6C`PE: :D/V`+"5)-;:4K-X:H3]X0SMN.4F3*'-)R]N:3"AZ:W(H MR!SEJ2I-_J6!X!B&:2;AY+F9(WFC.-U</1?6<)9BCCEN' E.;4WJ W$845]A M4M2)'0LHMUDY)RE>\LKI-)XDO%`D8:0T)^ID(*8M]]."RI02TR,69Y]<3%GZ M78W>OL) *5A-7*23XGTIT\6H<'($4.Z8)%1$5ICH9<D1'I63IR8U I/(9J6Y M'F>8,?;*3EADOA^DEI?FR1,Y__85M>&D*--&*)0>`2,L\E$ZF]SCDM2L0;D] M== _:I\='K?H ;+J8AB\C\< G37CJHS!FH9PGY:$?;D2]FQF A-]3[W$ID91 M7:*-[M)2QF#Z9AO1NXOVCW;W>YWPX<6+.[6QI_ZV].0ZH U ^7_W5%AL>O#Q M1.),(B=EY?XDNXDN(9P:7N#X$Q4MO)A!D=G1WX2Y,:4)(%Y<"]\XR :*16=_ M?6GKG8*R;38W&/2&P*ZJTQ>P$S7<B+Y6-HYP;D+5N6^Z[N(H&,X?=*/97&,K M1(BUAYX3"GY8Y#D:?`57)Q%>%%.IS\CJ7%R-IOG50=0N$L/M?`UAL9%<H[C9 M"_-X29VJNX(IPD;?>OOM;]WSXP-:#N2X.YM)WE$O8)"^\/)7M4VTZD%M=TZ^ MG':/3MN]WJH ?1A1A=V[<UM1=F%BVWF4NQIOB]W:RE-.P4YLU&0KL4PP)B&` M.<%IP.NW27&Y?()U?9Y?:;$&XW%[5-J6<A\?EEWCI\M9XP<*#LX,4W^3S)QP M+4RXRH1/A:<W2WU^>LG:2TKRZPBVVJKD"+[!SF('XV+F-6MX$BP=W=!*#F>B M_FU4MDUT>R8E!Z/G3$FX7QU\/E!OD^VWVQSJ?D=QN/_-QJ:ZO0("IG?7,`8\ MDBXW:,3T^:#Y MD<[GK;<_ZD!CZFFY#YH;$VKDB')K&?D3VV5LLQP.)A.2S&543= Z,/ZY$C^< MDZB.;A:BU3O[L%YOVQ\JW=%?HW0\ /8Q8'X4]DK*`TL[YS ZI;*25$A*6Z"F M R%H\RD>-^BP1 DZ5&>4#M1X5DSQ'NNR2*P/K>,*2&YW$<F4JKQ[_^&[H(!5 MC6C02T(6.3(R8V`R004*`-TWS5,3KRAD;>UC5ED"8D\6-S_MI)EX(?QKR72= M`G\AF2*B]H8&\0AB\5CDD!-_TBKAY+T4=AN)L2&+UR6R..:&Y"/N_,74P_'] M!.KQ0OL5Q./(L#A^/2[EC=.:36=Z'V`+&3D6T=W=8#A M&Y\KH`1G[M1`!L?S`'TA%\9Z1LY-BA+9>.X>"`D02:B9%KJQ%?S0J]<Y<+FY M8H<7\6]QC5 !B 2EQ2RM64"ZW:H$1<N!(1N>MW)7K4`_U+XE:)'_0:=Z `51 M)KC>9AP&Z)F1`"XWZZQ*.,H1(6R.J$1[,P+(8!0R<77HX01)C=76KZY]"*+* M0XL8'2A-"!^H_Q,)3)+3:J<35 U/IV!ZL,JJ:\B`\XXL+S ,UGCH>'F>6:[, M`.1`Z?L$NGY!_J^<)!M=4B[A1$-NQH<JZ4`H0SK84PB+*UR<80+JVCR&&K*& M(TT;&[H!NV-N?Z]L]D]!BMUH0IS,TK: :<HJ\)M5#P]S?>*4)-KEI68P3Z0! MV[.>QO(W \DB76X?+]?F: *J_WN$1EX^S-R/Y^8G$4U8V:=:63]]7/'Y9T^S MKX_'UE;Y[&P;&<`CQ[NU95Y6;)9J<3T::(-/EM/["0K/JM"PDQH?U]NK;' % M,ZF 'XP".AR"%#VJ'"-6(J=ZI1;`T6,.UKHC=9/SW6RAWPYI0^?`'GW6?Z&E M;F?9/!U<9)-L?J^FP$6EU'.,I`.Y;?*:XD'KM^1:_/IF:^M;EF/5'75=E&5V MM9"6O.-YI>8WH1O[U'BQYT6>RO'LSN2`[,A0"<WY!4FV>BLQV$3<V:5(O<Q* MN$5NEHD6L8%JXWCN%1OW;C=GCKFM=D': ?W/WL 'G&0:W$HG(85VY0'M7/7E MCKR?^[4#G.B,S=7O*I<K=JS?SY=B?+L48V9HKT$J.(3SL!QCKOT<&*<AQC9Y M*3HG9Z=-+W#SF M[4_1.^G:ZZ*?</"$;T*MAR?//!Q(?"5^D\ +3WF.!9^\EY][X>-2Q\1'R#HH M'K_VN`][1]VBHJ\8*O^*:K")BF=H<I+.;XO9CS8#E MP>DY*KEQ;G[3-.3VYWEV1TUQ`;S>"CS'SX;73*H=SXD\XJUKKW^=5][B>&S= M>)/>V6E[_W.K\HC%HU_D6>*RW$+$(12!84BLX3806?&L\.&9SY4P^[LZE1]) MHK9U+*_X^>BYR7-P=%JASOG!$ZA#C MH?_A8. F0^TJI6R0=(%=FI&7,NC82],'Q3Z.Q6PY2$JZTNV_[^CB)'/[,(PM M^SO?Y> RW;3:0O&EKGIBI]HIZ<G\ BSI>S^A;109=<.:5JJ-6&$* NMD(JE M[L%!2-%(5/:5D!?M:&P[B\2,MJ(H<&-9;QK*N4'*KSK="LN2+(.[L(D?DNRS MS&W6C[??>5`=S2':>%(_SW0/AV6/IWWX8<04^3ELZ;\CPPA>1$9X&#D]/FZK MKXM;F,VH4S**^;)BSG4&W/],T8(E9X9HP?J>0YX[R8,/^>-UAZCK:[BY_9+X MFD:[U0HXO7O:7U!+`0(7`PH``````&Z6/30````````````````$``T````` M````$`#M00 M(7*J(28``"FD```,``T```````$```"D 3<```!S=&0O<V]C:V5T+F155`4` M`0```*2!ER8``'1E<W0N9%54!0`#ZZO &I2 ````` ` end -----BEGIN PGP SIGNATURE----- iD8DBQFD5Jpq3w+/yD4P9tIRAkqlAJ9hZqZgazcvQK6YVwhEwpNoYg07lQCfasJo gv+/wFwbq4C5Y5USAChWZko= =zlc0 -----END PGP SIGNATURE-----
Feb 04 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 some more code clean up from the previous post As far as I'm aware, there aren't any bugs left in the code. Thomas begin 644 socket_ip6_4.zip M;V-K970N9%54"0`#C+3D0^:KVT-5>`0`Z`-D`,P];5?;1K.?W7/Z'S8^MXE- M2+,SL_.VL[.KE7BZ\>TWM?UD?I=&UY.<-/:;I.MYVYOPXQG9GZ11EB?S29B2 MPS9Y$TVG8?KM-T!Q,8DRDB7C_):F(8'K>9K<1$$8D"<TVXRR)RUR&^639)$3 MF/H1G1(Z!]5\F /WK`44G/$T!^M%.;M/PP`,FD:C10Y6RX'1.`W#Z5V+9(O1 M[Z&?(P5J,$ZFT^06^8/= ,!G3/M,ATZ;7`!*`AZ+8DM/,EMD.5 S1[N!KFF( MI ]1SP&Y2Q9%.W`BA/A3&J'1:,X:;],D#YD$G#UH51B0'(T9CF4 S EDH1 & MH:M0H33\]R("$X(K:]TV&:)E`2-+%JD?DILP1;]F7$%0? ZJQ=,[,J/I!T"C MEY7W6H0"2,VC,TO\#V'>#DBGO06W_P- M?! $F`:V60\&L*<1G-[T". ;3)D/$A-98_!CDN6<./R8AS'2+^(HSV' 9"K3 MSM/HAN(XGB$9;P6'QM<M<0WY(>?7/MY-HQ&C^_8;$:H-T&[QL?GM-W^"F`)& MZ)Q9YPX&D8C-;[^!*01&)+?QX4<_G&-"ZY/BDG-&L4)TU'X2A(SMZ93FD+QF MS]YA\R;I7)+=7?+D??R$=\[(-C<'U9BI$Q,L`IWAS[](O4_J\`LH/=)NH\B7 M+<OQYS2A`8G&6`4DTP"F%)G=6*7()MFVH,921FG]'2=FRJ9ZR-\,"5TNADT- M!](N#OWSG M+0P>8;R8$3'5O8)9>'K7Q\#GS-X>GY\>[H,5\+_AJRM^WV(M1[\)N& Y^ WA M1\>0IA4XWC/X:8G.X*<,?7AZ^O/AQ?#GG[`1P,6]Y-635()7KZ5+SFUY`<E- M$?O\XNQP^$908A*[XA!D>O#ZK M9ZZJ: &"LQ'&H4BW,9TIMP! $UR8R?GF)HD"*)CF"TCC86..G&!8;Q!V500Y M, 69?)B/&FIO38;6GE^QWVSD8H<L=\HZJITGY^RB(9$1I=D.%G.1?3`U1(P8 M+?LD$7FT*PW4AMQ[G4]*.>3D4O:^0DU%3*&LDL=AOF/3M4/$Q70J=:D)K]=& ML/2$65_:_N7=,=BPH?A8J8`T%PX*&+`&#NQR MF(*TG)<6*YQ&(.7I(APH0D/R/L=H ()*Z7DQ&\'LU6R[M,*8:ECA?%_=>`^, M\ NJ)+22BQ)]Z!$I! :8!"*AJ,%X3"S7M0U9A#L M?Q^_S]'W??)=>R-['\/LQ7DS%R(QQ'-(_8D,CFP $$2$J:4RZ^1]/L06A6%F M3&2B-`S3F\ 7%>;J[%)3%F-*/I+*''-*1PX">]TP'^-%(>V2M()X[4S+*NC3 M%`OP.$\FF<1 Z\(R:(04R[GRD'A`LA+T__!<94OYI5*5"!<[4[6((Q0*/VO> M-OAL=='R7U W4^93&"T-91!_KM^01X,S^F<[RU3\83I^60\Y)Q\A,1%2L`40 M!R$5=,M&MQ6']7`^HW/(\_7<G]>;UH3`9YU,,&?(;-H17.1$\3Y'0\%=P*Z% ME<MIA&G+)."CGEURV_!+U?4RH1HS%T-4)BZ1 59-73(?R<2EJ8?[($(W7$8R M_=I`[)ST<%=RW=V0S]OLJ%K6<SG47=(UYU]CLQ4;X>KG*./[GGS6A95O%"!3 MB.O&A/_>().P^:>(W$G8GEPA(5\"[.H+VC8N')O%I,>0^5R$L].V:%$6Z(): M6:&_I&RC>)M)!TWUICK[L#W`]<3H5<K1Z=U#D MR5.F''/BEWS(7RJ-",^:5;I9`21VWB)1.RTIXIC+S(6A4N[PVJ8LKPB/B+)N M^=,LK[0M,U9DW;?`VG'65^N65J:`9F%51I2[H.*"2P\($9AHAFF*L7$U!414 MOBVA( O7]'`I?.7V(;;<3J(I]!B5SJ)1FT97/HV3F(T&/=IP'+IBS:12+,DB M +?S9,3\RK?\N-<K&M?V-*=')347UBC&)V^,PX_YX&_WJRCL,$TO68:(8J!I MJW%PM7_RYLWA\06?[9-X>M<TC8?^;BQ0519-Q<+?&E#KCK/.0,^B[[Q+D?>M M(,8.U0U,A03&&:*)L5:]YG`H([Q<JF-'`P C 8PSPM4!63X=T)NG]!JGC.'1 M6H^3:&($%4*5S;]HTM9]49\F/IUBM537-_SL",;5%: !+(RVIMZ!J]6T8D2! M-J!^3C3^\K!)DH=^S Y;^1_01!LL>S>$260K*HSPG\.8-VEEH`P2?L<1K#PR M%Z-IY/=7Z6FP8N6M1M!$[E3D;;4#RSH&J[JP3KUZW2^'<&$YM G`SI.P^7)X M<'!V-3S^%SN^(V\&#ISCD M*"Q+/RS=LEC6&_.O[.(JBC>:I*P1BGV)=3KKK>RM9_76L[M;71Q7;T#P4R7. ME8.F +4Y(6<]GG/DT.0S-E45=^C-JRE'K?68RGJQX#ABR*,5''O5+$<62Y\A M^\M8GO[&</+TCAO7R=D7-O%QQ[AA6IV$6K&LELGE\2MWW&)0*:&[+!B+4%CB ME2L\NCM0.FY4V+Y9>K^)$5OWVNQ?WZN;1D2>A6NB>)5O5AMSM-R8U&W-M6S9 MEGN]JZ*X1<JGL'H6+7EUULF83F;KY$ VU9H;M$OSGCH[PK(()'KGM3JM;FNK M!I49CIU^U]OJ;WO/^CWO>?^%]T-_Z+WL[WL'_4/OE8S4& 9!3:KH X0COD.W M?5GL6U8*[C](\!5R>^U.N]O>4D92,1JJ!<&CDRO2=;'+)+DM8<=-X%W*;:TJ MGMW*771]L%7FLO^7<&N13G=K^]EGQ _CL2J&5L1/BSS;WNIVUHP(AGO?J$!E MOT)D`-NMKQX=2S?0>.:6>V;+T_8]DK,C+M>.+._CJU=77N?*ZUYM>6"A[6>K MDE3WV3/FW.T7?<2NWT]YY5']2C7ERN8+J<H?<C`!FFN%,*^TB A6:YFJ5UDL M-Z[>?&HHV[J/K.TGWH/SZ"+JP9X*V%M*:^[0+XH3U]"03&]"IA!Y L0=O47 MJ3\IYUO%7_;.%&]/;L(TC8+0VK40SI:R\!=(ZH:+VAR73"A[ZVH4$LDOQG>G MLL5HDRVUY?,#HT]M-V']#AGZ0_M M8[_/.+QZ]:IC<&` 11DQ7U]SZG4-5Z!_CNV*!0>,_FI[;,EX*/I4]:?:(D2S M_857P<.KNRRD/A%9;\#K-%]M0M$F`*-/U$=I7VLVZ7O=ON<-^WU8PRSAV>_V M`8>AK&;KO3H8]KU]X/L2^.(*U<D6L?;[ +(63V3D]0&]BIUH6_7P= U'_BU. M;#S`KP7X^(F"/OLB0EU.297S71V_"%!G"RYS<<$*%L1`8\D5F>461\D,';]? MW?-[UO7[I7V_KW^>^N*]1W<7<YIF\G!+LUZ^9\RPU49E(U9DW I>QE:L5G4G ME8BZJFPKJR+67-Q:TNW/YLOU0H1$G95*.H=*-6535M5DSU1$/]G3L;=AE]NA M/'E1:KJG*:IM=8 .RAXJ[?-G\=*T,.]>:5W19O`LF3H<8I!XDL0Z8" 0^'OZ M:VP$5.T#L(50BX M)I-J5$6E50%N6K^ZQRY0==Q4P7(YM]Q4X3IR]MRTXVK: MWBK:ZRI:;ZE9)VN+J\PRCQKL3/C$K*Y9K3XI]S$5]#V!;37LN!NNL8/KIC:Y M7?-.3>1K[/5:PWS$ 9:`"-^SV>YQK ;BCHG( 0ZF8Q1LK"./N0(6R.QIC(*. MC7[&7"47U&FM,: PMM'W7#SVJECLV MP>G00MW=M;4,':8*BS T4/=L,?<LXX<NNX6%W0SPCLF2`\=F/SL.U9W!%*!% MN1-=T-`)'3NAUTZH4_,]6_$]2^\]2^T]2^L]2VF75WWP &]+M^-2>L>E\XY+ M!EW;(-?$/ +7C6S!]UQ6LG+`R(J6D2,=C^QT/'(&S`C\:)EEQ[+*CI7Z1J[X M&=GQ,W(D\5%5`4/9N^4Z`\H]9X%\&Q38H-`&F;:BCJJ)NE(*Q=BB%O7NKNU- MZ QZZ QZZ QZZ AZZBK::$7$4_"W9<H]:WA25]Q1.^ZH%7?4$7?4CCLJX\[R MP6`<.54>"Q>/6HVGLVL^8H>NQ*I$D6` 6M 9.G[BDOT"S$F>Q%/E[1.))9AC M<]:0CZK+ ]_L?.TZ!V+YD^4E9UE7'TPLCKF6!P`?+3U46[W3Q9[TLL]MNM[Y M/-8]5E"^P\3>)JIX9ZGJ2..2`PF/)\67-O^6<PFJ0_GW5T$,?E(:KUQ'%)C7 MG?C\CA+.KMU><Z]<(9XV'`/H0<\D^!&C3J_MR:,%Y0-QK]/Q/,\Z45;!2#GS MT/B"9\-+<SB?R`NC:*]5D\=.\S358W>FKZH?`:JYE+]E6CS85 3`;WW2O%'_ M 16!4YF]&HZ,\P>?DE<^%^;1XW6]+8PEWFUQFFVKKF_\W]`THK%&KX^MY2=< MJJNAWCVJH1Z60^*P?E45U%M2!GW&A*N<ZUYWQNU5S[ ]>\;MB=FSQP_8\S'! M?[]X=UD6%0K.5ZVS>JL+K5Y%I=5;6FI]$4.69EROUGIH9?'U:XO>/[*XZ'V! M??W>\[D[62V;*^\[;RMO\_.WC_`5S`D-7MZ=4O:J=_E]!]84Q8X6_-R,_)C/ MRD/G2/U0AH/.0:;AEJ &INL;..IG#G:M[W.`D/7B)9U20-T4Q2<1`'E /P!7 MOG:P=H%6?\?K,;-,NZRNT_1!N4;%ML:QF=5'5?1Q65&']?27\JH/,.N5&/]* M%[,/KL0=_YCV\8'\9O?!%=XA].7)Q8\EM$2W^WJ%WQI1.A(OD?/_O!8SZ\G) MR_)+WF_.7U\!H$6>/L5O"29C"+`8_UK0Z>'A3P4:8B&`H>'?>,%Y$H(CC&X M$J9CROZ("WHA"_TD#MB7S?!V%OEI4L(XU;Y&5<:Q])SXTQ&<BN0W5W!9?JY& MEH.&.ZFS`HQY3![ :MXP6WA((CL2>U;BKE`31`,EK-]1V1VB'64U33B]FZL? MQ]6R7/Q(>3#Q3*DNEU.3ES>:\)ZH4ZV.DY)1KPF.8^MY%TAU_6QFE&F+Z[+4 MX4`U=Z TJF-N-2KDTQ&(C>=JFL_K&"/&\*%BW0X04R_<GC<31<:Q1I L*45Z M-YUX8!V;\\'2]1/F3B> *4!BQ'_$,TWH0D* F;O".JF!3T.B,82:.]8.A)U( MV-&PW$]23F=3%J;>;="%/VE2X$.+"4%QL*^2<& $_N&9/>,=X`)Z/CSZ]Z#K M/+Y4,!B$;\6KSZ0JMRFC%6,O):LZ)??AU+=_DA)NTCU=_6!_<'S>J<%&U/T" M"KJ%9O.D4W=&B0B5;IR6&&9.:M1310XJ9R=2(GL6R/WAV2-'OQ;UV$3I'B`% M:Y%>;79;4J$W );:UO9%=1!?W+7L0]'S9E^N+8U7C^ V:_D+B0)N,S1/R8(] M(8PR34-^.B0VL76K4A6CJJRF4\?.15KPF'NXNUJK'(7:'[R_.+0G"(L)-*(W M)_!ST"!EWM#YZF3__ M.CF%?73O#Y=,XCQ?003U=D>K-4)/H5!'OYU^&C*MI/%<YL#HX\7Q.3\^.G`+ MN\\CA8]/3VEZ)9'GIOB_3H].1H< `+.Z),%S4_1XL/?[P"N;A,][4="[QC'* M]K88_8'W==ISH+L(/Z?G+4T&$,&Z'"IR2'E'E2[_T4%R3,-4$U`#KN98WFA. M.NN$1NDA*,*RG&3SXAZGI%8-PJ<E+&`SW_E1A]`'K\C[$*:1K!QOJ<[[*U,] M5NT!X\TL$X\PXG[H3,?EHN PSSUU,#H<G!\<]^BC=G6*&1[?'X-UUHT?90S7 MU(7[K";NZ[6X9S<3[.COU`]8U1S4`W33=RJOQHM"+RCX/V#S"/ Z.NVI+2" M/Z![=H6Z*& 8S]S%TY!?4SC(V1TNNB0;W:25C.'TY6MD[R[:/OK=[S7LR+-G M=VKKG?K+RI/+R&D`W__WG0I?FQ9\/H;,QUVTWTX.8EH;ADO8&^J:H:41-V3' M$>$Z7?.GPZB=)$;;^1K"<B.(M[C8B_)XT&+-5<&\PDJ?AWN#SZ<7Q_LT'2BT M>CX7]%LO$Y:^\O)GM87[]: .CDX^G9T>G V&PW5)^C2B!W;OUFU-VX6%;<=1 M[FJ\);;?+S,TXGC083:0EU &&*$P8$QP&/#ZK:BN5 ^P+L_C*S4V4#RN;P#D M%^UK`4S:4Q,I79&9FBK8.&%*3SBQ=,*E$/:7!9^)3F_7>O]4,P0!+JL%.GYJ M_8_[ZE7R^M5K!ES840PZL=W95K?7(,#L[ ;Z !O3]NXVO"R*ZI9^H7)ELZQ< MV,.P; FD>,-_20;;*%^F5(0SQ^ VQK:&\B$/7%0/ GM)5QLT8WI_T/H,91I: M 82UV(&P'1*,DW2\^?(*S74[J+NN<]>42>)'!UESPG+>J$87'EO#M1JL707 M<N_N2=3;IVI]O]OQKWO5=75KU#XQA5A?2)L0X0$+>==$&E5>+W_4 .;4.^4^ MZ&Y,J))CRFWDY$]LD['%<IP6!5GFTJLN+!V8A5])),X\&U<SF&$3\D3U^U," MFA?5?5G-<YA]9BFJS5;*YP'IW"AD0ZN9IXTQ\3F07&P9L0)8RE(`_ED6/$MJ M.':"JDB";><6*`5Q10*BFG$'.Y)3`8FNS([N`V"MW\+;-9IXVVB"?DVR:0IU M8 3\I/\-A`TK)&??.:-W-9T5"25#S=(Q'-LSW%<P>)#P8-31)$O5=%[-\,+J MJDIL_*\3I7C"F?\:)B 5>?/SVS^%!2SRFQ`'JQ`TKLAG^8+W[C<__TQ4ZZ1U M:P;ZV"!97$RSIVD+'L<&^W1UN4CSTO8V<E1>D<_*,8:9`P,\%ECZ=+&TR$PR MTS5L-I+N1&:I*V2)&0[%1]KY-TL/^_<=I,<3[>\0'N<VQO[K?BFOG]8_.M?K M`+O"*(*(+NG2\6()V\0]!OW`)(/U'T[8^*D%FFKF\ R,;5SX,>QQ:=QD%,6D MO%K=FYZ*G1&#GBVJ]?K6?G1<I],!JQ&^'!%`X: 0L-W /,(^V%K=5TMS,.Z2 M$;"ND+Z!8- <?[52$!NSNHE `J$\.$<XE YOW%_A'+&6$EE$RWG6,H%TO74% MBBX"(S;<;^526L%!4`>1H.O]"^WJ`1<DF>`>FWE(,00C`5Z^;C(K82M'AK`Z MLA)MS1 Z214XF;7PP&2$NO-7UWZ`$R5AR8Q1DJ:;$I0_CL*F"RG]78G+!KN M3L'P8)%UYY`AYVU97IX>+/'0]O)M1KDQ*JU#X(\]U6M9NJC:)BO"VAKR-TZX M'/<2FE".M[JK.;Z2V_5.XZH=VH)_>]X=O*KH?SVE>Z<M>'?K*FA6>H>+!TU& M;<9O4K)4)$-GL*<(%F>X1+T$TK6PF9JRIB-5.UNZ`L==OOZSL= _A2F.EPEY M,E/;DJ8A:]#O-D,YS#V M(T[D]</*_7AM?I+01)5]J=7MP\<%O_WH:?7U^>CWZV^NMI$./+*__;[YA&*[ M5LN;2:H=/GE)'TI0IER%CIW,!+/>7N?C:QA)!>U 0M;Q&*SH26,;L18YE:NU MN5;RJN)&Z]?D4OR93;__.2^QZ(ZZJ>HZOX1N$V,EG2(<5]C;?QA)W&3XX<W" M.MYLV&K'R%6-K[/QES-HO:>"AY^Q-XVGE+.Z)Q_L/%>+KV&\^LR$JY=5F<GV M[(YD2 YC*(1^^XHL6[V4&&XB<>OR2OV0UPZ'_ U&I!1Q['C!I1FN'6^'WK62 M",/:)89X"H*9WL)_F373'2SY-I<]?P`TJ6YKRO>=8 .K&LSCCS+9C> $]S$ M?W2P- 0+4 TZ<CE"<<%_)C3=GYKRPYLHC\%ZJI?G8<VWEECCK,8I[>&$,M` M*-&O!BE^VD8K,[1( (86_6K0XJ=Q6I'([H:VR!4RR2+64>T<+[W7)H[;17TR MU](N2=NQ_]FK]T"33(5;:224T*Y\*[M0([D,'Y5^Z8`GVF-+]8LJY2X=RX_* ME1S?KN28%=JKD`D/X3BLYIA+?PN.LY!C^X%M*:8 NX1H"2M[SGS3%L5H+.M2 MR,.&Q'??7Q/YE%.^NX)'WB>>[\*O2!T7'S'KL. RYK*SQ7KFF"RS]"Z?+6=B M2GP/*30]DNNR:YP`AM\7.B#LIBJ*#MM"WFD651Z?#KD->QG=HU>_(VK!-95 M%Q6/4'&2+6ZK^9<!$Y2/7.D:]XWZ58A3H_C/=`*[YZ3FRJ7Y2\N0ZU^4^1U5 MQ0GPHA^$B)^/;UA4.UZT>"0LU][S.I]S2X2QC==-AN=G [V/O<;7*I[\(M\? MKD+`( VA9`MC4 VW MB*YY5/SSQN(![L:C!*LD1M;?<[D;"MMA0QILFU\\!L M--[)4V_'YW"1D`U_4Z]QA\IV8_D?:HI#I]GE,-*ZLDIFB6F:%VRW2[ :_/D3 M`P04``(`"`"XE#PT2LKX MVT-5>`0`Z`-D`(U36VO;,!1^3J'_X6#H)D/M*J5LD'2!79J1ES+HV$O3!\4^ MCL5L.4A*NM+MO^_HXB1S^S",+?L[W^7H(,MVTVD+QI:YZ8J?:*>G)_((LZ7L M_H6T4&77#FE:JC5AA"H+K9"*I<^G)Z.MJ1W'$S\`_S7GG,-O8`<CO\`;JO'Y M?)Y. 52CBPL(5:CENO9RYSTJ:J'O'Z#NC MTF+5*)88U#O4 M-D\L]<K`SE=2E2R:1:B1QJ)B8^[!04C12%3VE9`7[6AL.XO$C+:B*'!C66\: MRKE!RJ\ZW0K+DBR#N[")'Y+LL\QMUH^WWWE0'<TAVGA2/\]T#X=ECZ=]^&'$ M%/DY;.F_(\,(7D1&>! Y/3YNJVU5H79-A+>\0;6V-0UIS"^O'.X./8&$[/T* ME#MD03`X(+%8NNY ]631+-6GFZ^+6YC-J%,RBOFR8LYU!MS_3-&")6>&:,'Z M````````````````!``-`````````!``[4$`````<W1D+U54!0`#GP ` end -----BEGIN PGP SIGNATURE----- iD8DBQFD5LV63w+/yD4P9tIRAv1mAJ9Y5higuTDJ8BLmNR4SleGZmFlBQACeJMlw EIBMYDL8/zw7mFjVgZgcNgM= =paHq -----END PGP SIGNATURE-----
Feb 04 2006
Thomas Kuehne Wrote:some more code clean up from the previous post As far as I'm aware, there aren't any bugs left in the code.I've compiled the std/socket.d of socket_ip6_4.zip on the current D1 and D2 environment. But the compiler outputs a lot of error messages. Do you have a plan to catch up with current D1 and D2? regards,
Mar 20 2010