From: sos AT buggy DOT prospect DOT com DOT ru (Sergey Okhapkin) Subject: Winsock initialization patch. 22 Feb 1998 04:23:35 -0800 Message-ID: <01BD3FA5.E36BF9E0.cygnus.cygwin32.developers@sos> To: "'cygwin32-developers AT cygnus DOT com'" Hi! This patch implements on demand dynamic loading of wsock32.dll. Geoffrey, of course it's up to you, to include this patch into b19 or not, but... 1. The patch allows to run cygnus tools on a computers without TCP/IP installed. 2. It's possible now to run cygnus tools with non-MS IP stack (calls rcmd, rexec and rresvport may not be implemented in other stacks). 3. Configure of egcs takes 3m21s with last winsup snapshot and 2m50s with this patch. Makefile.in Do not link cygwinb19.dll with libwsock32.a exceptions.cc Prototype for i_WSACleanup added. (sig_handle): call *i_WSACleanup if winsock was inited. hinfo.cc Prototype for i_getpeername added. (hinfo_vec::build_fhandler): call *i_getpeername if winsock was inited. net.cc wsock32, i_wsockimports - new globals. (winsock_init): dynamically load wsock32.dll and resolve addresses of exports. Other socket calls - call winsock functions via indirect pointers. (cygwin32_rcmd, cygwin32_rexec, cygwin32_rresvport): resolve addresses of exports. select.cc Prototypes for i___WSAFDIsSet, i_WSAGetLastError, i_select, i_socket, i_closesocket added. WINSOCK_FD_ISSET changed to use indirect pointer. Direct winsock calls changed to indirect. (cygwin32_select): initialize winsock before calling select in degenerate case. wihsup.h Prototypes for ScreenRows, ScreenCols, ScreenGetCursor and ScreenSetCursor removed. -- Sergey Okhapkin, http://www.lexa.ru/sos Moscow, Russia Looking for a job begin 600 winsock.diff M9&EF9B M=7 @+W=I;G-U<"]-86ME9FEL92YI;B!W:6YS=7 O36%K969I;&4N M:6X*+2TM("]W:6YS=7 O36%K969I;&4N:6X)1G)I($9E8B Q,R P-SHT.#HU M-2 Q.3DX"BLK*R!W:6YS=7 O36%K969I;&4N:6X)4W5N($9E8B R,B Q-#HP M-#HR-R Q.3DX"D! ("TR,C4L-R K,C(U+#<@0$ @15A44D%?3T9)3$53/2XN M+VQI8FEB97)T>2]R86YD;VTN;R N+B]L:0H AT 3$E"1T-#/6 D*$-#7T9/4E]4 M05)'150I("UP&-E<'1I;VYS+F-C('=I;G-U M<"]E>&-E<'1I;VYS+F-C"BTM+2 O=VEN'1E'1E6=W:6XS,E]S=&%C:U]T6=W M:6XS,E]E>&-E<'1I;VY?:&%N9&QE&ET7&XB+"!S:67,OF4@=&AE('!APH@:6YT(&A?97)R;F\["B!].PH@"BLO*B!( M86YD;&4@;V8@=W-O8VLS,BYD;&P@*B\**PHK2$%.1$Q%('=S;V-K,S(["BL* M*R\J(%!O:6YT97)S('1O('=S;V-K,S(N9&QL(&5X<&]R=',@*B\**VEN=" H M*FE?5U-!07-Y;F-396QE8W0I("A33T-+150@7!OF4 AT 5VEN4V]C:R J+PH@ M=F]I9 H@=VEN&ET4')O8V5S6YC4V5L96-T*0HK("!,3T%$("A74T%#;&5A;G5P*0HK("!, M3T%$("A74T%'971,87-T17)R;W(I"BL@($Q/040@*%=305-T87)T=7 I"BL@ M($Q/040@*%]?5U-!1D1)6=W:6XS,E]I;F5T7VYT;V$@*'-TPH@ M("!I;G0@:3L*+2 @:6YT('=H>2 @/2!74T%'971,87-T17)R;W(@*"D["BL@ M(&EN="!W:'D@(#T@*"II7U=304=E=$QA2 ](%=304=E=$QA2 ]("@J:5]74T%' M971,87-T17)R;W(I("@I.PH@("!F;W(@*&D@/2 P.R!I(#P@:&]S=%]E2 ]/2!H;W-T7V5R6YA;64@*&-O;G-T(&-H87(@*G I"B *(" @:6X@ M*")G971P6YA;64@*' I.PHK("!S=')U8W0@<')O=&]E;G0@*G)E M6=W:6XS,E]S;V-K970@*&EN="!A9BP@ M:6YT('1Y<&4L(&EN="!P"B *(" @9&5B=6=?<')I;G1F("@B7!E+"!P6=W:6XS,E]S;V-K970@*&EN="!A9BP@:6YT('1Y<&4L(&EN="!P"B )"0D@ M1V5T0W5R6=W:6XS,E]S971S;V-K;W!T("AI M;G0 AT 9F0L( H@"6-A6=W:6XS,E]C;VYN96-T("AI;G0 AT 9F0L"B @(" @ M?0H@("!E;'-E"B @(" @>PHM(" @(" @6YA;64B*3L* M+2 @6YA M;64I("AN86UE+"!P7!O6YA;64@ M*&-O;G-T(&-H87(@*FYA;64*(" @("!W:6YS;V-K7VEN:70@*"D["B *(" @ M:6X@*")G971H;W-T8GEN86UE(BD["BT@('-T6%D9'(@*&-O;G-T(&-H87(@ M*F%D9'(*(" @("!W:6YS;V-K7VEN:70@*"D["B *(" @:6X@*")G971H;W-T M8GEA9&1R(BD["BT@('-T6%D9'(I("AA9&1R+"!L96XL('1Y<&4I.PH@("!I M9B H(7!TPH@(" @(" @ MPHM"2 @(" @(&-L;W-E5]A9&1R+"!A9&1R;&5N*3L*(" @(" @(&EF M("AR97,I"B )6=W:6XS,E]S:'5T9&]W;B H:6YT(&9D+"!I;G0@:&]W M*0H@("!F:&%N9&QEPHM(" @(" @7-E;&8L(%!)1%]33T-+15137U53140I*0H@ M(" @('=I;G-O8VM?:6YI=" H*3L*( HM("!I9B H8VQO6=W M:6XS,E]R96-V("AI;G0 AT 9F0L('9O:60@*F)U9BP@:6YT(&QE"B *(" @:6X@ M*")R96-V(BD["B *+2 @:6YT(')E6YA;64I M("AN86UE*3L*(" @:68@*&AE(#T](# I"B @(" @>PH@(" @(" @6YC4V5L96-T("AG971?7-C86QL7W!R:6YT9B H(D%S>6YC($DO3R!O;B!S;V-K970@)7-<;B(L M"B )"2HH:6YT("HI(' @/R B6YC4V5L96-T("AG971?6YC4V5L96-T*2 H9V5T7W-O8VME M=" H*2P AT 9V5T:'=N9" H*2P@,"P@,"D["BL@(" @(" @(')E6YC4V5L96-T*2 H9V5T7W-O8VME=" H*2P AT 9V5T:'=N9" H*2P@ M5TU?05-93D-)3RP*( D)05-93D-?34%32RD["B )("!]"B @(" @(" @(&)R M96%K.PI 0" M,3(Q.2PV("LQ,S X+#D AT 0$ @8WEG=VEN,S)?6=W:6XS,E]R8VUD("AC:&%R("HJ86AOPHM(" @(" @(" @(&-L;W-E7-E;&8L(%!)1%]3 M3T-+15137U53140I*0H@(" @('=I;G-O8VM?:6YI=" H*3L*( HK("!I9B H M(6E?&5C("AC:&%R("HJ86AO&5C("AC:&%R("HJ86AO6=W M:6XS,E]R97AE8R H8VAAPHM M(" @(" @(" @(&-L;W-E7!E+" P*3L**R @ M;F5W7!E+" P*3L*(" @ M:68@*&YE=W-O8VL@/3T AT 24Y604Q)1%]33T-+150I"B @(" @>PH@(" @(" @ MPH@(" @(" @PH@(" @(" @9&5B M=6=?<')I;G1F("@B8V]N;F5C="!EPHM M(" @(" @8VQO'1E'!L:6-I="!W M:&5N('=E(&%R92!UPHM(" @(" @(" @(" @PH@(" @(" @(" @('-T3L*0$ @+3$R-3$L-R K,3(V,"PW($! M('=A:71?86=A:6XZ"B @(" @(" @(" @9&5L971E(%M=(&AA3L*( D@ M(&EF("AS;V-K971?=7-E9"D*(" @(" @(" @(" @('L*+2 @(" @(" @(" @ M(" @8VQOPHM"2 @(" @(&-L;W-E M&-E<'1?:&%N9&QE7)E=" ]('-E;&5C=%]R970["BT)(" @(" @8VQO7)E=" ]/2!33T-+151?15)23U(I"B @(" @(" @ M(" @(" @(" @>PH@"2 @(" @(" @("!D96QE=&4 AT 6UT@:&%RPH@"2 @(" @ M(&EF("AS;V-K971?=7-E9"D*(" @(" @(" @(" @(" @("!["BT@(" @(" @ M(" @(" @(" @("!C;&]S97-O8VME=" H'!O