From 6153bd69835da0e7217ae844bdba4e2ba676f981 Mon Sep 17 00:00:00 2001 From: runge Date: Sat, 5 Dec 2009 14:31:31 -0500 Subject: [PATCH] Update java and scripts in classes/ssl. x11vnc: declare crypt() on all platforms. more wishes. --- classes/ssl/SignedUltraViewerSSL.jar | Bin 107702 -> 107710 bytes classes/ssl/SignedVncViewer.jar | Bin 83705 -> 83719 bytes classes/ssl/UltraViewerSSL.jar | Bin 104692 -> 104686 bytes classes/ssl/VncViewer.jar | Bin 80797 -> 80791 bytes classes/ssl/ss_vncviewer | 999 +++++++++++++++--- .../ssl/ultravnc-102-JavaViewer-ssl-etc.patch | 7 +- x11vnc/ChangeLog | 21 +- x11vnc/README | 6 +- x11vnc/appshare.c | 6 +- x11vnc/gui.c | 15 +- x11vnc/unixpw.c | 6 +- x11vnc/x11vnc.1 | 2 +- x11vnc/x11vnc_defs.c | 2 +- 13 files changed, 908 insertions(+), 156 deletions(-) diff --git a/classes/ssl/SignedUltraViewerSSL.jar b/classes/ssl/SignedUltraViewerSSL.jar index 1053cf27ba9375b9e40235f5f071aaaf14da0ff1..312b9d6bffd5d829413b0684c4390c6ea1977f38 100644 GIT binary patch delta 27737 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 YE$_cIynYM1z)5)kve(yXFJVFbALtKkUH||9 diff --git a/classes/ssl/SignedVncViewer.jar b/classes/ssl/SignedVncViewer.jar index 017c01785cc43650fe0713140040de8c42e43560..03777148e257bea7bbaba45157d62b111b5d2279 100644 GIT binary patch delta 27513 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

=qi3hAf3-46~gvM_rWS%B4?%3 zLA~6(*t#47pvVg!iYp7oj5GsopG%{cv4444W~@9`yoTh@B}dW8og%{PVsvC z_9U^GUA7`{vuQ>rdGPw^d9eDbyyGfX*Y^pk-%F!gHL|ttT7r3tbTh`sfI~|3hcvJw z$QPrJHfr3`MG)~0=|xviiGh<;iRc%R!E(wyW@smtxl4)X@ z@qz{UmCmi&@%)0}3REu}spk}iX&$(x`}V4JEdE{;-EnVNFMKtj8Z69K>1?@*NV0yl zLdg_Lf9I>4sGls0Yw|g!fQ7%y-MgA92jYg&&A&0zs-005z1ErQSoJnZGw@Sl!2ccy z^FC&sAnlmOI=AY`$$^Bft`=nQLyRZoVL>IR3r~=-u3e_i($yS99^$Yc!A8;-%~1XD zd$~oPq0v!^tn~BODP89}UfWpMD9k@-xgge8PW)ThmK>$h>ky|L3LK%SZ{dKNMV?W+ zY_y%Z^y0LaK2;EB4UnP2l6V8D&5o(Gp3Crah~kBg5K`xiZ*onc(HC1^Kh}d5Iy=4m zA9BN)+-DK{v*0pQ1UoqeLLKmTMq!qg)&QPlaO-%`2Q84spu*UlAo;V6JhOEk(Zo>+PPkvp^O95gOrT&! ziWgr-zEE*FgX4LnpyXim6DU=@LrppHI?1n=vO&sk+FT_{jqlk-6pcMuCR16~x8k_? zz@cG%bAjOCz2(vOf`A=8sYlP@@lWwgL99?|(_SACsQ-{|)Exu()}GE48soR+Cn~H* zTf8l=0Zn;}7B5wrFOe*p%t8|f82~~}q!MEOK(ZX_h-|-;nY&Rd(U$Fo{-g6PrQFcs zdobAE8;a1bG0pQw9Q>|uIhiqMA>^MzO!`n1MX`L{Grh7RtB2)H2p)5nZL76c!r>JrE zSkgZ<7)k1{ppE1->t;}sCG!Fb*S zuOv6J*7K3t9uW5S&>G1(YDZWu%<8(L>!X{OZ-sEz5AObg_^+xoGD8yLpOhE^|Gy5c zKiug4!G-oexVT-bV}cdMWRBG)2o9FE)3irJrGpO+))VNYKtY%BJhU3z*K}yEk*;a3 z>DIT?zcTy>7t1X`k+1T=ob@Cbm5C?dO~doO)P^DO1vv@JQc@ zxm?(xxZa?cLjaR#B3;WERiJx*wA+-%F+j%aQUj=Esz z?1z1ULvHz7?41?oZ#bL=1D2&brX;^CM0s~KT{MUN=zh_rb0()&B*)sfs>Oo?PwRlJ zwj4u9Zsi55_2wrk=1Rq*4LMr?C%FxHIg%Z`iX|P1pt=$?Wg40~DNGITjab&Q0?I3% zRN0AWa#nIjBtg&iY0JA34kACZnqc1cNg>|rrcn!l`?EkIv=)UC-8u5~MoO!Z>@-Zs z5O(vk^zq8=vi$PpXc?$Re)H0;6eS>{Oy?|aBu3ehj@|}_QD~Sbwq``}Vzy`DkzO5_ zagr5*DYaFG-~w^eWoWSm1KdgQ&!QtA@kaWEktRFii{=GSotDwH(%#nA##Q(PnX=j6 zNq^ooq;a0kyx|o2TG(u?<_7Yy6yfvDsY&?eiw^>bNcO~`Qg}}{Mh4l&sc3;qaduq4 zR8^kFiaa-EelBAPwr~oet&t~`n71fE@mPTz!Nc+3+9aDVVc%SG#QY0Qraon)`Hf0# zg|up|euF~|3c3J_E%K+`i;2?nbs*l3Mf#e{1=%p!A(S+rU#lq)HZbgU{cQg3JH$v{ zfo>tS0G9+V(;`U*N>CkMD~&*U5_M#2Po!P{LUVpT_e+yoTA?iB=+*S4x@~?Bd-1IJ z*}Jgd%51Q9(krEqcQ1GUsM_*zuXzdykFCDdCGVP~Lvkif5J7SIv`pfWBGWeai`J-D zTgf5U6HWS?#bHx13`|MQq2GJH$odrJrTSe_eBNziw6Xj9#Obd4RzJ{#$je1}^yX~Q zC9hetE#r~ON#C<_!VS9vCfqU|+S6r+=`yy25YVuT)lN->Iga|^AAig%lL6~_Y$YsJv)7@%#mzFnxJJJv0R&D z@=vZ>8+dG`e;Cz)xCq3Zki$-bgVMi$N%LE_rA$gapK%bPYR}>rXu6ZDAg{=8iG3W2 zU-X_vT2V4~g9DVB?cf*Bcu<}|J;1dAWF>1@lQ@!O0Z9>6_muw7lNaS9qkIKk!RX@h z?Q_#oDbG|^oR4!55xKJDqA1t`0s4ttJ3yw8LM7ZwWlLhtCLj&SKYCFjWe&rsU$C8{ zd&d5;g-)3ciXcvsA^?Hlyt8^wa;k8a<4W+>$qt*_+C?6_)rwWICI*1ko^G{0%-`T` zt@UehSn}~^fT>|YaY+$Vq|V+3UQQ-M;#-Iqv?L;A$iYwJoY2`Y$^t%Yy+;_1q|Ug8 zX-U%F>!h%PWgvxL8poaa5L0rLqee8bM$EPj1F~5=PpF;? z=AVH+Xx1N!WU*Fg{amE;q|maHj+b}unw2WCVhewtA(EfoCQHu_v3!5re|8koYA6hR zfu($W^4k8*KA_d`m|x!dyw9Ya%98l=IQTvnFvW~wSqJ>lhVb?gQ(EVZ&N);=dV)Ss zOgkqWR)WWH2m=1CMAW+U8c%_&V)q{57o4nQgY_-b(@GQ_6SPzr9V0*guuZ7!mH*~l z0g#3&p+Z(nPp6JIEvc(lDxRYtw8sHlVioZ)jIfeXvCzdIX7dEu9Z)z%s<$yJnX6^@ z8y_$LE`XB8EyV=o#g7gW(-0ggkalC`%puL69{*sFG`atkKf#~I3gAL4Uyt+Fz!#qs z4?b{lv)|r0i6xO!{7BK#8tH*;K~v))|}^|D|AI3Z|e<8k7=Ig4xi@h;;FUvdmOIF`vI zC9!m0kSp255bJThx7png!=H5SZ2a(do>KO)FQJKb1?k8f9t`?*zXfcRiJWjiS91@A7ky2|=7AcoYOb46zTF)d{xO1MXg7D#r zobC8T##&jCIhpy|t#qw9qoKWn)&@NkiSx8N0JoCJ$p#Rf)8%a2T0(F&pVM;6d||98 zD$y&I!@+6O(j~74@uFJP9{F=8&88I?1urO4_W)&oI%BONG~mapJbwz|M9XA;%pI7c z1=KSoIdR5_uF|lJ)-Tfi6Y0~zjmi8T=Ae3KtNV#TSMytYY35dx_L4{zsN5OTL&LQ1 z`!_7H+x7jwRxhD3Yv^~sfq|j_|7@B3_pK@j@Cyr+Uk3-={kQGFKGr zl!ye1V1#I7iD{C_a5BmTLwIJJc6K}93^=ZDvpjAC`&^`m+@(|@tsg}()nS^Z&O*r9 zd3s)sVw^rP;(f0j7dQaW4%V~X&+o52ezWb|D4#u@&?cDH8jqy&QAQMlGPFGTVgvn3 z4aHa%m_UIFvKVnwff6xEv3^t5c(}VJ)L9x_?VswbLE`Z7G(43iY9(jZgWgQB{x^r@{wf{Wi<$xAJLL5TC-F~$d+(7aBwZixd; zFAB#CgkEy51{oZ`@2a4UpArvY zP5ng70Z-0W0?HU}{T%Mfb5Z#6TW#sgSzGsVO2Z`#i0v<5(a8Q29nI-XzVQIY*QStI z$!i1Bfj_af^S^kYg-zi<=S#ceqZ!bKoCSgd5mEng%@LTaax3dv+cV~0M?+E%c(VqB z(t&1clGr2$RXmo85}ldXJg*ZpgYnZX^DIWudzP5Eo-K~Qbu3MT_z^!SH&>X>SLE!R zm10cr*~PM>_prJq<`hv2p^)(v#~6R}Jp#gW{~RItDVgKK&dhr)-^&k0&)SJgH?x-^ zBs-BH@lIp7N5vF-<3oEvRcAK!vv}pO4;%~B{D$ZlBuT-=lJV-87jp!cGthD zyWzC$vm(MTFEkd3k1ZWl$%$>G-9U8Zyrd{YWyGeM0{n9-fWxehG4q$+S|D0; zz0&h)$upTa^N7ra`rNfn!TiIr^zo*ov4#Nwe%_B4(0Pn0D(PkEI!hcW{_+u>4%;6j zu~yQFUx}CbXx=E|ftbsQJ*JnWv}A7p%qP^h2Fe4*B=WV+`0w+=q+22GOmwwolONb$ zUYV#*%jD~d3l0S?JU%c5{AVw4hQPr1x-r$onsJiVCOOa(^vtAr1BVZSpKXUui%{aM zb=6r{I5I#XP~EKlPyXMFulE&l<3XduTjC|RDsKk-io&XE)!`Mo7Px$koGDM>a{isS zLjVM|9i*>%y*(XR9G8f?&{iI}vy1i2WDB#X`0hTrMo{$(+;hHbYC zXU{fW)BML5h8qGCJ4@~f^DNF79Cfboy^wOY;_*`Vl~^S(7z4+>@QVF?G7w+~4<1tF z<+qps@>IIX8C877UU3b_DrZ1CuQCtT)5*qo^?fcp6w0KSFoX>(#w+J;GlFX=z0;N~ zAwLfG#Im4zv$IV4BZ)tpzl^7{pj)?+3|(NuNYh@7=X(+=bgRw_?Fd#XsW+t=T;Jf~ zev#4*yAH4Xl@&ir;JWhA$d^DJRe=0hlRwy0;huAJ%2hd?tYqFs1EU5GdXopMr(3E3 zhRLmxB+fa&E40N#VWb{bs`-$wKQ20~c4mz*g4K(rTM#(VJ^O1FboVjpVZ{e8ik!nG<=e6lJ-XsiX3P*t*M9bIxR z79@hgG&Osqp)Iqhus8@bnCenCVX_=m{ZmOAOeUvcrU-{eYz`)FvC`0%!_7Imuc6j? zL0wY$SKmKsm z%Z!WFCdIv3kVYZyH12#sKL3wBEDWwlpZn$Zl((rY^@80|&*O}Ofv-syk^Y8Qq9@lk zA+MN4ZG%emOxZyF(+7d*tC}qR8eW&DhqkWVt%FjhtWVZc;)x5>f*1U#jOc|XfRoZP z=h8d;^+pvQ(kugff?MY+C&6!z>vIV05lM?c!^YLz6g)qy)O2jv>GJ^?z$tSh=3iPP{f1)y5oUF9ENB=knft~!f=?S#2HBJdX`D!MNVaMinEbV90DQdzZf zS52;|=j`@XRQ}k}5XichE%I1MmVQ>5yRs|xi$7CClF$VHHsQj0)O_REZf>@@bbDNK zv+~pZ3<@j=l;9>#x}uKVvyMH)QP|T~*yqk3zR@YJj}msq10IOKhb7!{|2jl-JYaRK z2Wv?W<*$Z#)`c~$XXz=u^HS)CXo2{u6SSv}X%NCT52-FA_4`JMjuix{6d4PuS*_xI zNBGww`tZUBwjTcR2(SO~i2v6jcH5|d8q3S4*>6-2Y(8+~p= zhkiua^|}c-&Gox(x9;`wJ{XO70u#xw_1Ks7PD6+vPy$?g20`4o95|JH<#6Z&4PN}Z zv@_qb+m^$Syn$5AJ|dYgCF@kvo`8de%b!+d9G%5JGMP*OPx*&B4!`1c`e`A+=l5xH zCfwKrzPp6`yL61_&c2xEi=)ITGXEVOPO=WkEZ^M? z6HTK~?&Q$v9TbsqGN}7#D9sSa0(X;kLc-TW)~9{^SUY~^LA2|$d;)5`-b_-cOj}Pa-@q0Nfu{dY5=rhPuzdm|eVc!}%omBA>?L`_vxo zg%4vsext_;jN6rYsNvX^edvz=a@$9FDPnmCf%>3E*%MwM3Y3n(acF_Lq>9uLk9d5% zC9572OXJ7EMRz3%6J&#u>&b(sB|?11zmuuOTRHyn{aLQ)ll?H5lakB)RKnj2rtxv7 zOa5fZf&R@Q6CUD$UkF+ylw;S(G+jVk1%xV*Tk^=2%`f1{vP+ejnKnw4)$^tBRZKzQ zBuZxv7UN~xhs&`m;8Ourm;w?x6il*Ze|U%fX7%Zf)3gsTD!ab{Y}-X+!(ZOb^?6TAJ#bhIs{StttXhCk3bO3UXQ)H&C|v*+3i)yd)e z)@Saepc&VGZE)b1+@3MqyM4}#=_!tz%bZls%<{QF&J50EXJ1(J6m$a9(m7cU)5&l*L=5oo|1k^uW$@; zK8)o$S5C_X<|-gUiQi+RWKo>YV;s5D!&j$FkZp@TE{XHa{WU}>f#+NmXQnt~fg$ZA zVL_mDF))WX4e6_RG0($Stc=>@HAV@zd`_G5X+^RJP+er_6SM<WWLVlb`>BKC$AP{WJ@Wp+Go zW9Q@GpjpE^jF3(L5m)bA4AJk$Qtg8cO-|sDcnf@u4>u_<5X2W5s~0XpVyxHE$0XeZ zuYQEl-z1L}>9;X^zBg&}j~70vMQm;!eG&Qgg-<18Ds`47p|eFSpEKP!_IJ~q5lK}Y zT2@DWZWrItvCd){!)lynF?9T!_s)h0a;iXU?w%kordF&@u^_%35;qse$O<_oF-=mm zGYt@1hZ&Q>0BBbgW*5*R?du;d{_TQ&^F4ccLk}%-$h$~%(l7BB=&$7G&))T=qGo@< z(2%k}6EalwEI2kWq#X;$RgEaEfLBj}M-0$8MHwzcs&^LWKxJV?-+TjYqBOTKCqUzG zlK1OKx96u!S~y$Q&66M~$X5drC{`?5Ab~5&I`e1;};i{$?v()hu7*6XBteKSl!>V%=n-YFpWicuCicv7*lvXHy{fp z|Cqbw0-7Fpjl)66`H(8Dg?(2jxf1;=FA0GgjkbgQ9A1iNue;Vv?$XjkhX@VhKQN7# z#j!K^92pVe;4|B5bAcs~u1v~a3d4aaElJa}a*(E3L63wY@Ck5e6I{Se$HBbn^s8n9 z4MQ8ntl~ZLb(_v*Jt~Ln6t=Ew0z1#O8j9-KalPTX&F4BFb3r@YXArM*`3Yyn)hmum z#qBI?MwWYW_FQ#PASd9%5v>2<)7q68K=NY|k!e1i0xmE9wAe_Ch!cM2PjMSwW*M(N- z0O{REpQl*H`4$m#pXq^U;6{a;cpM>dCN?ymEgseT=WIU7nekv;0kv5ml7Mjv) zR0W;TMPKOOnG;+Ndh|Q5;K_?kz{#ZwXxJ_DJ!pYt zEsN);W;R%cyNJvII}1zF0Wj9kC5yux?y3gc>uk3Ay$eJE#W8pCb=^{e^T*r=&yDlk zFU?sWeiX_RG&w7M(dABe*%WPoZpIUb7|0dq!K?WdWCC=X`{<+W-z?%t8X?)Xbp_!p zUK26ZB-;wFJ@>9HK-j#3@P^iMQ!~ksiRn56tC_S6w7MzevCBe2%JhOrZrndU>pwuO zF?g&?&YZyriMfu>O+WY7qbcCT<1~tNZXZrp@N7AZsKW{FxNG;j|NM3agylVRYb4?i zdTNqyrfC)1-{|4OHl@tiBK@)~HshR7p(JEq($SpY!bTeE0t(*ea$`S*Z|Lh!PUzT% zEGS2amjs)Yvvq-+-p_k@a5ft~Z0(qgP4c!+>93+kLU!4`6YXGqb82OQj9EO)w8wi=0aooEaFR6ABGla!?!BCgrpZlB8u% zQW=fu%t^C9Di&D7`3z!fl);P4Ts;14!E;4ccq55@g$$i*$ZEQpi&}GXO7g5m-E5EX z+Eff9OaE~8n<6k8_xyd|z#Y>fiAMPwcHN5Ij{G~VE)da2L9a%dPeIPq$!)EZ3D@op z+MGcrkC7+KlKIW>J37*P(lGQ+D0kx!cw!`Xa|>#VzZrj#Ed*NW$(2^7m+togmxP>* z(ZeFMJ|cU^#U=N$Ow;lVv*+B93fHcJc+7@Dl%J>bgfoSVpUXiO_m)lwVcmqk$+9`8 z#z=>o=YSQ6HHeMQ%c=%<+8PA5shI(hg4DQ`V#&hav4Z4H2?~tqJC|LAi)#dA!u+XxVyVca0@!f zpc4r0J~+W)a0u=U5-bp0g1ZwuST4y~-}j#L-dlf7?^U&Hm-OnX?)p8&M)@`k2`{pf z=XGmgrQBNbwHUWGJ!>jB?n_EaK1QP$)8=h^L@>2jBAp=dOP+{bPJP!AMvhh?-b6a* zgU8fbT`A3S;(94`?xKxwJ%U=s(f<8cX>vF?MDYd-H(6}#bL1~6s2ap+z}@0}H0=iJ zQlrM`$=i;l_CD0!{Y|U_=6RUTikX*)WvT#^d+QA@7nUlnvpH;%uo$+hdPD98&uHa^ zug=z*&KqF*tByQEej$avKMt1A-_Emw1fhe?-zow=z%$gW|Bv)#rHle5}yT7FnhwVZbwAw;dT&5&W(e&=B;lmZI1N$y9&O zQIba?nAkDfbSIG?>}562P938pwOCOE4?=LM3Dzcj+DL1liS zkdU;;GJ>#}T9$F!`5Asgu0=6PKfk~6Ly0b7YKDDMGTEcAHX=$cr?6fBct#u@N??I% zQ=3w}vYT%j6vf=(!P`w{l6Z_~VR?s7{Kyt+Ff`j=B!*Q0zEXM6Z}s;P)|f9c$gn|a zY+9+U9So_~ZwNm`F4Cthc6$B@Oe9%}Uu$#Ie0JSz!)j6+DJkfy>_9n9TECLa_{$U9 z(KG?{;Ye3YKmFQO%BD#6MasEU^3!n`ikMC+x6Qt{uwXw#DX`S zm1&x1nIXmaR|YnnKJ#p3$gdh8Ke=(py!QqpX-=mC08PmHqivVUHCdb_$3L0VcI0b> z@jtLszXVFZ#}}8NBg;y`M$1&?%unVR!P25?ljLp=+)mC7#R!IB4fW@ll--kkt~3yF zS&QHC1H(1e%n@JL@+&&qAskA5+&{QyP@3mAzim16rer~= zuEQu`Om0tz>{qa4@jcPD8Y?J1*Ep6%pid|40jym#m#1O6tz=iyDemdQ&>f_eb+AyF z#M=`XnQXKTWrZyr3DS;6HVk#b9b*qmdf=;`$-4N$dWF$&xJlwosP;zz)i z3&!E~{}^Yv`biJB!sifvhASFf)#ouUYsO0Ca{fG?)C#IyXFEQfhE7~n{GPj|iCGUf zTt+|LZ)4>~1Br)z1(Ruc*T>dC)9fTu2C ze~82MDk+W%zo|jU5$gWlK%`>f%Tt080~nJPa*?y)nWhRyb#00*gI;X*iTFO# zI$dww1aul3Wm}3baEojPDn{p(kD+C6kK+>U$Y4WZX;x2*8U0@U-O2LjQS=a68F2T5 zE4BKe-H&PxO&RSpv>eo~QYOP>JAMnb!uaHrbk#PSV%mT%k;V2+JqsqcOXV=OeWtf* z&v=GV#&ttR5ErV}g`;#p>S^uG54C$@`H@s%{KD+DsbD^&aYu{_4u9VAd+sB?*te_f z=KGRLagm>w+6^AQOOsMK2B|AH&Vm!HEXhCzfB*=cxi)$3$=o<;{k&pr`4dCq!i6Xm zXmZzossWj_kT0Q`sjHe5Lz;gAIiv53+1s383^?{z&tI0dUVn8Cw_Xhf)SE_(S+53( z*PDivk9E$3R@dIgFBCl3+g+Eu?+cc7Y~^TkZrZQz_pt6-=|lEzV86!zLBR{T);A?f zkJU#{=t5IR<8}A-$4{i0aWS4?)*PGb-OP@j0<<%UokOZ8pI6*2ZmW9O$ZlUwW(msD zv(>fp>qac?NJQeg3E|oI7JgSdm)tA{D+>0NFM1K6S0RjEaHvgyJHw@FVc#U_imgTU zxfY#KIcOL`>)U77y{WW`Zb$Y2(db6m6BO69W)vj%9-0;Jy74zIanzWajj&q;UTc~f ztT@>8*qO({E^gRk5h@szer|;u1&ux9cXSDqw7|Rf^Qo0302TW#s-&F&J$j;j;(*Ab zmsZ|JITd`Q`&_MSr9P@Vm}%Q1p5rShc%7uGDg>h(X24DM@wve%8-h{U`3rW^y4V}B#JOAW`Ubp!S&{2weel(jqN<*V0~Ze;Cisi*)8b_&R9}? zKx?-)+oz;!x>WA7M5MTvUClSpB&^Qi@!J5Pw%w^V6J{qg;U~$M_NGs@y@1QiZI@V=;GAD6wE?=|`Fr=+e+TVn^I%XS~~ zVXq9TpCQJIzlf@RHF#c%J7_`lt=Fw$OC3X{dz&xe#V*(qGbjxBF*9;^{WXZ^&V@?_ z=Ie@d(oOwSJu61_J)+1b;8`vo!79xA7UkQZb8R9VfhOIo+MC%)%8G*Z=H!7j&W!L8 zJAoWAo_Vnb5a&!mF0l(DVr@Fryu|Lhed{a3eK#Y?IrDI*p0~>}9E&lBwro`;gEgOW z`YSTVe3Dm;3`zQUOwF6;)Dc?~CF zZ+K_*(BwbzqGp88w;Z>+%1m2Vj~RvlR+EUEHU!!K*I`Ch4b9woj1q#i_B zZ{rN!n6DiA#S?LK0{n0*lPlQ@Y}n6c{~|E7f3`o_{KuEo0D2Sfh_xr#CG0Rybmb+^Pr9_gcap+Rq3kQD zkPSzr?RRIs?PwbytfPU|-hx}fTQsM@-Jd2P#HQZNTR6XPtlr&bjLz+e2b>cLdXc`T z)e!GylKV|^(r8~-z7vZ8@*b+|Bh&|K--`gF;5Z8&-(L*3G{9fD&&qSy(wY8IUl$Ne z3X0wAzGy#?9`H-&FfrRJzs2qx_-!)S^i%mEoEl~$bcfX`xp2$6z2WOOT>i__`pHWK z9@7;oteOvV&d|Qq495m|Lnq&lJ-_Kfy?dgP)=Tlon_e|6GD`Svf$#}IX4U*=jJIMX zNWUT2j`NXaqiY3W0Xug&bF9?qc>@C28Rmqi=QMB$mOOyKNu>#*8A~$rBL8Y=CUt~R~OsNE0*fvSlBGs{N|Cj z-WBw@)tx{nTrEWl)wyoWh@;(7)H3zxyVE=WY}cktx04`HhwmWfe9N5i=2Yu@UH^!T zniu5eVJ^*W8#PNMw2UJ(W9{ZQusYg%wcjdy%R#3c>%ML4fvod`Jc0he@$7NozEgSI_tq zRT``90Jj8>l`bvFIUP6#ra61F$}D);sPjzm+AwbjBldB4v{O8kUl5&Q@nsDY%3ug! zwQm{5cCGUlS#qpT6?t+x*wnku-gOElcKCVGk>=Z@^DRpLMXF`f3zI}}I6)Z1Ir!-W zOoK3uSe;hq?cq$19-n{IfDo^4O3?gj+1UqYDnJq!8X?N1b(#Pre4$m)ZweB8(wvl_r6O;jX{`$1-AYzDykv_b;+|J@g z?^??o1Dl}+pa9Pt^ggb3Ydqw5Jpgnz<0fK7dx(sjjO9>S-(XZxB7Z1GZ-!)@5$~U& zw5YjmjejO3Rq%I#xA_QTz_Ljs+0`^Pl6tJoL2{AaTSu*qXKD)^y?XUS&ZIqDW<#4B z^_}|bm7bYRe8vGVU&R=Ijp_i#*HHSdFb}Fa*wJlV}P>k8rBvy zvT}h4cQ&dm5=K6?9VVGHnk~Ne)CXt*s=>E-qzpwshHSa5NPlUf0O2P30AD8lRESZ- zs`%i9v6kY^c_bf8QJ5W(umt_2={}85tZtWbz+Ec5k!KZHi|C8ORo)CV-e88(pkQEv z!JbNb+C37AYEX@@5e6;7H~~*n0~fO%6D?K>t717g zPm&)CFP8hO+<$T2$6AcL45v;a_qfax6%e{ivmiY7iY^``+rG@V;Ot1QfSImm1+dI9 z>X4ayyNa1!_n()GQC_PzAi zhLx|5@Ir}aN_+X<4d{$G5K53pJGnuo^EQIoC0?4t|CGEknnr{2Uh}{ zF_(C-y8;{&D-oe=1KHTG!8cL0JOe7Y^}qJyCPoL*>pke;BESS)?Pg$uElhTDflb`$a7!7*o?ZSc2%9D_7vomMcj@fGW_HD|x7< zi=WhKyaZ9&R6sITy%)oX)llYJHKMb!;m~Sr)*!b{wHbma zEzztpp=L2W^K9a9M|<|1lF&88;V9iQa2}|MIP|7$y;(7)+uxo>q)KKzcbd>IvHmd( ziXf_Eb(_LS-$X3?I1M5$q*Hs1+!kSvJ*Jjq*O(y@HO+0%)5G>Tb_))KTUo@$x2Jt3 z@4TTHy`MmIxIn#3Dn1LmgX(BlQ(;p0~;2t!oB5?^@u2n zx(J$D;S`qfp!cKth(bqMGH;;=j_!$q&$g8?CYOvn7)0PKLncpZ8{Zs$UQlIijOb{( z39S35dWwHTcz&lMd*RK|M0sQVHh$c7NY!MHF}@73#Z`z3Mey5H3FRCo$YeYrzHG<) z{F=`xK|hyXbwx$44QE)`J42XMo!KI3AAYQGgV*#8kr(paEr_24SVK7oPU_fg%*~Jv zo_gi(y{}}{M25g26SGi#X7Mz*1K|?H60HscWBa@$qd|53dMCP-dV8y z*4t$SwlcW(yo_~4@C^KFsdnkK{ixcTQBAX>^2M62$TfDn?L!xI#TkPv=#(@%gX?=}$c8tReKM1-Qz6%BZr1Bs)fwJ}~A5i_MU>#VRE^3xG z4qckrZZ zX3Lbfl`45my0dE9l=<3r-jT6r8J5N<&Q4A12q-SA?v^9(ab8g_mo~bVwPxq23GNfI zTA6BKeHWc}@{tu*`n{2O?c1Q6uvo%5L!p)Gql8!bXkX)Fq+Ld@M-A34snJoOq$Min=|)|G*@}N zrv8O2YQHB9rUwo5{PU%!Z7LQ_H?7+?+R?MJ!r)Thdl1aJU440R2#soUvGXTjEoY0_ zto4@d!4z^ro^>8P)@r8@CA%xDloM$cfk!$=2c zjU{Y7YNkDMR~X4qXS1w3Oz6ywT0wy2ic^oF<4V<*fgY%Q+Ve1qhPlOo1{A9et-_Is z)uwe7`Z+9+iH71C1Zx`9$0v#Axa$OQfR06XOTg5R$<226C5%K++*wJzE{OJIWGYDi>Ql zT<4%H(hezFUuJc<$_9!WJ*Q48mye*8%g3E;*U!6{hT!r>{8oPePg{0#fF}zl-s4Y) zwe*1LC~Gq3{&miF#G8vVI4p|kGfEg1*bWrF9>(Jrybco*>V?Undy`GM=)vB?;_N}m z>lVZVgd*RhRQt{fV;4Y-p>g|Z&(halt{A!D>qKODw}qjq91mYY$8B#bLTz}2O4fnI zBGv0?#GR$rBL*&~*pmoVha(jMa%VWsFsGr`6bXM6wYVzR=S>z1UMQ=ee(t zpJ*t>9$%DKK&b_u$yUFj(1RQX$AcbhL|}HEf$n!iXfEeNdT1`!1LEleXQ=7E?EsT( zHVgZ0L#*SiGJ4m{nIPHj`c3)&&BkAOXmOS*fTLNJGFh+for3cKKR3969!_Z(*Am6W;13pN(13MFf;tEH)67 zmFD`;m9t7Cn(3_V%~NB=6DImTgworYt0>V}m^&$r;)GvY`66tv_*MeS-&nK=V>kw$ zHVc;{SXM(YULsrvAU)=&igBYUp*;`xp9oc$FXIDfrLTgCcf6v_nF(O zg+Y+|Ge=2$)Bse!(-CDfOK4K%>s9cUqzCc-oo0)kVd0F&dPLQ` zFI!0PB5kP_ro8nOBttL3OvcB}Dm6Oqt!8R@9iFN~OIPGIGTXnfuy^#k9?u$?LXMjZ zjfr}bjg#vi^T_m<=)1JElOl=@%RY|QEnl|@ca5u{F_&gceli@~=Z7PRT;$l_>XpG)?|*YMbf?wyMoSc?#ZykfUzU}UrA zV?^&V;A5ql;r5YIjBPOuuu+X`niKKSsJzz8KXu{fo`3a%**W~kEE6-tQEc7HXSvl0KcMh4 zYy6kGVk>B0-ITOvc}a)<@rMx+hp$I^W9A?YS{uj}aBcb|;R;!WqfD%PJ_-{!RQ;sEbv;MGhWKQe@QYwPGtrDKqU zj#kV#Y7Q5-2Y8GXGzj$)Xs;B;X_%Pi?$+@aU+W~$LQ`_II`rF|O6X+)eN|k7U;UC| zsZE%o{AHVJ-2&%iA*$*!=s%&5O_7Rsq{EIldCSv3Dht&fzxp)zVKlwZRvNf85?FS? zDCJhLA_dnS^{NQAO^{mF{e*`Z@$JYHm3N6+Xyy%{jD#BbIBx8fyY;2xK~2><^5pjW z^*7v{(#ReRTnlUEqbk&$brJ}g;XZtRjp}d6^miD)PBz2o`y7tvqB+`iK2YZ8|6^qlu#mnOTz9f%^d#h5v zc|zxDc&AiYghdSd_%G#@Qh%L$#`eU7q!xk0_ZzD^lJDU!NmM)WLWSN zuv8SA?-?nxGoSj#kFd-&O?T#j!n2{9q|4Bpu~V?+jUE4ax=};a_bBKSWM%)$Z+U%< z!T{7><3Zj)#su8mMCgunsFl7TVO*-WG&GbCI-`TNoXk+5lQF8RDK)jFPOt@)`M?OK zk!B_1UnE0|oBAH387yp(qTzI{rA+Uf#XS?c81db|*D{iTWQEB+3Ro;us**Z2q-;n3 zGE-B(=*Jfy)Vtp>xWq^@p4+KA|4jISrYXnEjEfFvl;Nq!()K_C325~jV`LJvm`bg9 z=-THKJTPt*KS{HU9+PCHfMkQ+PA3HHX|HQ4kP-Qjl{JU7nSNApx1ztiGMSLHqE$zi8-#KQ_Lf-95yr=CFCW$iB=d&27Oh)Zo%4EkFy z4}gj0$LTpnx$L%}>2@ZNKR^RR_pBJcy#=n!lTl7JEU1ZqvY`yMv!wgC7@!lZD=z>0 z(=+y{HOl&i63XstFC#ww^(7V0_t#S1@jO2hUnkG@Sx`^dZ&*=JIHX2@ZZ9@RkWnT} ziZwIXeXA0#I&L8|M*Wull_*CRiFe;7mtD?a#cLW7bf>IU*-Z_?!aj33el#o2K%A`) zqseFq$x$_8Igy%Hc=nb&#FiM}!0`?9EQfnr%OG&6tNR=CiH~1bI7Uxs#3R(RrX?~) z_l>Az6G(f0+_qN+#|bf<_GWQtv8&Uxy5n9L9&XU@*1kUsUfFTItg=MFYS>J=?TuK- zk62*9sn?{pF8NslGS}~yyy~k94Wq?T?C*>XyF)R0fmOY}e(8G1LI&fU1m8sKX!!A) zmT1k!nD@WbiKYHx8_owrw|Q-4QJ^%;QE|ZhCaL0^g|Y_r_hF$~&(ei-@2q8Un>mkx zxj1v!%Z%QBnTB~>R^IY{d@5(EhVeJeWpGXGq!6t{W+F+TjXUn{&d)_ll+)eslX=$4 z-XAb*GS6*~31Ph3oRjvx7GS$Ncl2G40aJRLQ9@}$@?#n=m<)7Zmlkal<`oUo&R!Fe(6Un6Ci(c_!zQA)shci`Hmrs@B zP-xOVC2Wi`%X9ZT&Nm;FugG-fH?N=!o{*mS5e5_8e2EKNA2F*V z!V(IKG?oTg%#P|zzI~_*OtVA&=H;W|#&xQfa;l&@Q}p4ez9P<7b6>NXwK2m5w?8+l zo)BP-DE3XA$80d2Yy7NhH)^MXu9NHJnxw3bsYslY&e+CC zI6fcvO0qTf+HfUOVfYa23-fzT7J?3r=zZRMOxo*+kni;#K=N@cd(dPh-1(bDuEKA# z=yMZ46Y})E46_dv@xHU1)8BgXVx&GJW@1aWe=r3g+_@a14j8^vb8jU;QfBVBv%%pW8jRtqBqjAY~i2(c(iVh(3ys7(uxxzir1qMnU(K*}Pv8 zu<|RdtfvWZHMFqkKR$DMCVDPR}fmOhe;`vYKFVblyxn|KFrTTd1PYy?5tZMITJb)?TM~FR09`M zRH+ju;l8MGhl#STQrN$7@gEfk`BTLgv6?2aC&L@If zZp>NJ@2A3t$3JU`C|=$3PY;c&WBi8S?!VwO40s{9-BcqRK+@<3csv(umI@%y9X?$r z{^f7P1QxUY{pKW|ZG-g}cIbB8*=Ii@iUiUAf^!>?%u|-qlhF1Y6V1;TG#o+qPZ)m` z8QI!`1*_sck!-xX4mHz`1u3gr(y{O`FNkOdI{KgFNJHvWO^|HIgS z{XaiRbl@elp?f6`Z) zr0+Du5L5{Oy2+oMKU0ttDxa|!7|-y;|GJxGdZq?@xVt+$shK%hePFftUK8fI8sT0B}4xs)UGD*&dn%!qjjK#Ai2IpT{;NXA|cX0sK z%RhnqfyzO0!~ys(Gx_1*B(2=sA)?P$f1C4fI28VW9J~^SoQnhg(Pcx3C7!$LBZNl+ zK>bhO8T~OdLcAmZyhCuOVRi-^1AbFV)h23)DcAr2#a5 zhw&|a zsd57j4uUKRp!nOlfA3w0s0;w_C3F)GPRq>$2ze9-5E=b(!dibz<^DWJW3=Glu>RA? uuV-*@I!+dnW=@`F!2kEW{n0z>OiBd@Cnom43wuMp%K)g5CPkiOgZn?tt@H%| delta 27576 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 Ro``{DAT35oENUl!{|73Ie`Wvx delta 24684 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 OQUMGPE8}n7Li=AS9+vX} diff --git a/classes/ssl/VncViewer.jar b/classes/ssl/VncViewer.jar index 5e71750c62f78264036cd1811827c6f50b9afeda..d71b9d897a0611aa0a8d34a4de995de3a76bf39e 100644 GIT binary patch delta 24451 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�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 JcZYaJ`#(9NM8^OC delta 24642 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

T<-hssy!N!XJdK>RVIwD`vv*LC_0` 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 +# Copyright (c) 2006-2009 by Karl J. Runge # +# ss_vncviewer is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or (at +# your option) any later version. +# +# ss_vncviewer is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with ss_vncviewer; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA +# or see . +# +# # You must have stunnel(8) installed on the system and in your PATH # (however, see the -ssh option below, in which case you will need ssh(1) # installed) Note: stunnel is usually installed in an "sbin" subdirectory. @@ -129,7 +145,7 @@ fi # # turn on verbose debugging output -if [ "X$SS_DEBUG" != "X" ]; then +if [ "X$SS_DEBUG" != "X" -a "X$SS_DEBUG" != "X0" ]; then set -xv fi @@ -141,6 +157,7 @@ if uname | grep Darwin >/dev/null; then fi # work out which stunnel to use (debian installs as stunnel4) +stunnel_set_here="" if [ "X$STUNNEL" = "X" ]; then check_stunnel=1 if [ "X$SSVNC_BASEDIRNAME" != "X" ]; then @@ -161,6 +178,7 @@ if [ "X$STUNNEL" = "X" ]; then STUNNEL=stunnel fi fi + stunnel_set_here=1 fi help() { @@ -217,10 +235,12 @@ if [ "X$1" = "X-viewerflavor" ]; then str=`$VNCVIEWERCMD -h 2>&1 | head -n 5` if echo "$str" | grep -i 'TightVNC.viewer' > /dev/null; then echo "tightvnc" - elif echo "$str" | grep -i 'RealVNC.Ltd' > /dev/null; then - echo "realvnc4" elif echo "$str" | grep -i 'VNC viewer version 3' > /dev/null; then echo "realvnc3" + elif echo "$str" | grep -i 'VNC viewer .*Edition 4' > /dev/null; then + echo "realvnc4" + elif echo "$str" | grep -i 'RealVNC.Ltd' > /dev/null; then + echo "realvnc4" else echo "unknown" fi @@ -287,6 +307,8 @@ do ;; "-ssvnc_encodings") shift; VNCVIEWER_ENCODINGS="$1"; export VNCVIEWER_ENCODINGS ;; + "-ssvnc_extra_opts") shift; VNCVIEWERCMD_EXTRA_OPTS="$1"; export VNCVIEWERCMD_EXTRA_OPTS + ;; "-rfbversion") shift; VNCVIEWER_RFBVERSION="$1"; export VNCVIEWER_RFBVERSION ;; "-nobell") VNCVIEWER_NOBELL=1; export VNCVIEWER_NOBELL @@ -438,7 +460,12 @@ if echo "$proxy" | egrep "vencrypt://" > /dev/null; then vtmp=`mytmp "$vtmp"` SSVNC_PREDIGESTED_HANDSHAKE="$vtmp" export SSVNC_PREDIGESTED_HANDSHAKE - #echo "SSVNC_PREDIGESTED_HANDSHAKE=$SSVNC_PREDIGESTED_HANDSHAKE" + if [ "X$SSVNC_USE_OURS" = "X" ]; then + NEED_VENCRYPT_VIEWER_BRIDGE=1 + fi +fi +if [ "X$SSVNC_USE_OURS" = "X" ]; then + VNCVIEWERCMD_EXTRA_OPTS="" fi @@ -654,6 +681,9 @@ final() { if [ "X$tail_pid" != "X" ]; then kill -TERM $tail_pid fi + if [ "X$tail_pid2" != "X" ]; then + kill -TERM $tail_pid2 + fi } if [ "X$reverse" = "X" ]; then @@ -687,6 +717,12 @@ if echo "$0" | grep vncip > /dev/null; then VNCVIEWERCMD="$VNCIPCMD" fi +if echo "$VNCVIEWERCMD" | egrep -i '^(xmessage|sleep )' > /dev/null; then + : +elif [ "X$VNCVIEWERCMD_EXTRA_OPTS" != "X" ]; then + VNCVIEWERCMD="$VNCVIEWERCMD $VNCVIEWERCMD_EXTRA_OPTS" +fi + # trick for the undocumented rsh://host:port method. rsh_setup() { if echo "$ssh_host" | grep '@' > /dev/null; then @@ -719,24 +755,56 @@ rsh_viewer() { fi } +check_perl() { + if type "$1" > /dev/null 2>&1; then + : + elif [ ! -x "$1" ]; then + echo "" + echo "*******************************************************" + echo "** Problem finding the Perl command '$1': **" + echo "" + type "perl" + echo "" + echo "** Perhaps you need to install the Perl package. **" + echo "*******************************************************" + echo "" + sleep 5 + fi +} + # this is the PPROXY tool. used only here for now... pcode() { tf=$1 PPROXY_PROXY=$proxy; export PPROXY_PROXY PPROXY_DEST="$host:$port"; export PPROXY_DEST + check_perl /usr/bin/perl + cod='#!/usr/bin/perl -# A hack to glue stunnel to a Web proxy or SOCKS for client connections. +# A hack to glue stunnel to a Web or SOCKS proxy, UltraVNC repeater for +# client connections. +# Also acts as a VeNCrypt bridge (by redirecting to stunnel.) use IO::Socket::INET; -if (exists $ENV{PPROXY_SLEEP}) { +if (exists $ENV{PPROXY_SLEEP} && $ENV{PPROXY_SLEEP} > 0) { print STDERR "PPROXY_PID: $$\n"; sleep $ENV{PPROXY_SLEEP}; } -foreach my $var (qw(PPROXY_PROXY PPROXY_SOCKS PPROXY_DEST PPROXY_LISTEN - PPROXY_REVERSE PPROXY_REPEATER PPROXY_REMOVE PPROXY_KILLPID PPROXY_SLEEP)) { +foreach my $var (qw( + PPROXY_DEST + PPROXY_KILLPID + PPROXY_LISTEN + PPROXY_PROXY + PPROXY_REMOVE + PPROXY_REPEATER + PPROXY_REVERSE + PPROXY_SLEEP + PPROXY_SOCKS + PPROXY_VENCRYPT + PPROXY_VENCRYPT_VIEWER_BRIDGE + )) { if (0 || $ENV{SS_DEBUG} || $ENV{SSVNC_VENCRYPT_DEBUG}) { print STDERR "$var: $ENV{$var}\n"; } @@ -779,14 +847,14 @@ sub gettime { return $t; } -sub append_handshake { - my $str = shift; - if ($handshake_file) { - if (open(HSF, ">>$handshake_file")) { - print HSF $str; - close HSF; - } - } +my $listen_handle = ""; +my $sock = ""; +my $parent = $$; + +if ($ENV{PPROXY_VENCRYPT_VIEWER_BRIDGE}) { + my ($from, $to) = split(/,/, $ENV{PPROXY_VENCRYPT_VIEWER_BRIDGE}); + do_vencrypt_viewer_bridge($from, $to); + exit 0; } my ($first, $second, $third) = split(/,/, $ENV{PPROXY_PROXY}, 3); @@ -807,7 +875,7 @@ if ($third ne "") { print STDERR "\n"; -print STDERR "PPROXY v0.2: a tool for Web proxies and SOCKS connections.\n"; +print STDERR "PPROXY v0.3: a tool for Web, SOCKS, and UltraVNC proxies and VeNCrypt bridging.\n"; print STDERR "proxy_host: $proxy_host\n"; print STDERR "proxy_port: $proxy_port\n"; print STDERR "proxy_connect: $connect\n"; @@ -822,7 +890,12 @@ if (1) { print STDERR "\n"; } -my $listen_handle = ""; +sub pdie { + my $msg = shift; + kill_proxy_pids(); + die "$msg"; +} + if ($ENV{PPROXY_REVERSE} ne "") { my ($rhost, $rport) = split(/:/, $ENV{PPROXY_REVERSE}); $rport = 5900 unless $rport; @@ -832,39 +905,57 @@ if ($ENV{PPROXY_REVERSE} ne "") { Proto => "tcp" ); if (! $listen_handle) { - die "pproxy: $! -- PPROXY_REVERSE\n"; + pdie "pproxy: $! -- PPROXY_REVERSE\n"; } print STDERR "PPROXY_REVERSE: connected to $rhost $rport\n"; } elsif ($ENV{PPROXY_LISTEN} ne "") { my $listen_sock = ""; - if ($ENV{PPROXY_LISTEN} =~ /^INADDR_ANY:(.*)/) { - my $p = $1; - $listen_sock = IO::Socket::INET->new( - Listen => 2, - LocalPort => $p, - Proto => "tcp" - ); - } else { - $listen_sock = IO::Socket::INET->new( - Listen => 2, - LocalAddr => "127.0.0.1", - LocalPort => $ENV{PPROXY_LISTEN}, - Proto => "tcp" - ); + my $maxtry = 12; + my $sleep = 5; + my $p2 = ""; + for (my $i=0; $i < $maxtry; $i++) { + if ($ENV{PPROXY_LISTEN} =~ /^INADDR_ANY:(.*)/) { + my $p = $1; + $p2 = "*:$p"; + $listen_sock = IO::Socket::INET->new( + Listen => 2, + LocalPort => $p, + Proto => "tcp" + ); + } else { + $p2 = "localhost:$ENV{PPROXY_LISTEN}"; + $listen_sock = IO::Socket::INET->new( + Listen => 2, + LocalAddr => "127.0.0.1", + LocalPort => $ENV{PPROXY_LISTEN}, + Proto => "tcp" + ); + } + if (! $listen_sock) { + if ($i < $maxtry - 1) { + warn "pproxy: $!\n"; + warn "Could not listen on port $p2, retrying in $sleep seconds... (Ctrl-C to quit)\n"; + sleep $sleep; + } + } else { + last; + } } if (! $listen_sock) { - die "pproxy: $! -- PPROXY_LISTEN\n"; + pdie "pproxy: $! -- PPROXY_LISTEN\n"; } + print STDERR "pproxy: listening on $p2\n"; my $ip; ($listen_handle, $ip) = $listen_sock->accept(); + my $err = $!; + close $listen_sock; if (! $listen_handle) { - die "pproxy: $!\n"; + pdie "pproxy: $err\n"; } - close $listen_sock; } -my $sock = IO::Socket::INET->new( +$sock = IO::Socket::INET->new( PeerAddr => $proxy_host, PeerPort => $proxy_port, Proto => "tcp" @@ -873,13 +964,13 @@ my $sock = IO::Socket::INET->new( if (! $sock) { my $err = $!; unlink($0) if $ENV{PPROXY_REMOVE}; - die "pproxy: $err\n"; + pdie "pproxy: $err\n"; } unlink($0) if $ENV{PPROXY_REMOVE}; if ($ENV{PPROXY_PROXY} =~ /^vencrypt:/ && $ENV{PPROXY_LISTEN} =~ /^INADDR_ANY:/) { - print STDERR "PPROXY: vencrypt+reverse: swapping listen socket with connect socket.\n"; + print STDERR "\nPPROXY: vencrypt+reverse: swapping listen socket with connect socket.\n"; my $tmp_swap = $sock; $sock = $listen_handle; $listen_handle = $tmp_swap; @@ -906,58 +997,123 @@ if ($second ne "") { connection($connect, 1); } -$parent = $$; -$child = fork; -if (! defined $child) { +sub kill_proxy_pids() { + if ($ENV{PPROXY_VENCRYPT_VIEWER_BRIDGE}) { + return; + } if ($ENV{PPROXY_KILLPID}) { foreach my $p (split(/,/, $ENV{PPROXY_KILLPID})) { if ($p =~ /^(\+|-)/) { $p = $parent + $p; } + print STDERR "kill TERM, $p (PPROXY_KILLPID)\n"; kill "TERM", $p; } } - exit 1; } -if ($child) { - print STDERR "pproxy parent\[$$] STDIN -> socket\n"; - if ($listen_handle) { - xfer($listen_handle, $sock); - } else { - xfer(STDIN, $sock); +sub xfer { + my($in, $out) = @_; + $RIN = $WIN = $EIN = ""; + $ROUT = ""; + vec($RIN, fileno($in), 1) = 1; + vec($WIN, fileno($in), 1) = 1; + $EIN = $RIN | $WIN; + + while (1) { + my $nf = 0; + while (! $nf) { + $nf = select($ROUT=$RIN, undef, undef, undef); + } + my $len = sysread($in, $buf, 8192); + if (! defined($len)) { + next if $! =~ /^Interrupted/; + print STDERR "pproxy[$$]: $!\n"; + last; + } elsif ($len == 0) { + print STDERR "pproxy[$$]: Input is EOF.\n"; + last; + } + my $offset = 0; + my $quit = 0; + while ($len) { + my $written = syswrite($out, $buf, $len, $offset); + if (! defined $written) { + print STDERR "pproxy[$$]: Output is EOF. $!\n"; + $quit = 1; + last; + } + $len -= $written; + $offset += $written; + } + last if $quit; } - select(undef, undef, undef, 0.25); - if (kill 0, $child) { - select(undef, undef, undef, 1.5); - print STDERR "pproxy\[$$]: kill TERM $child\n"; - kill "TERM", $child; + close($out); + close($in); + print STDERR "pproxy[$$]: finished xfer.\n"; +} + +sub handler { + print STDERR "pproxy[$$]: got SIGTERM.\n"; + close $listen_handle if $listen_handle; + close $sock if $sock; + exit; +} + +sub xfer_both { + $child = fork; + + if (! defined $child) { + kill_proxy_pids(); + exit 1; } -} else { - print STDERR "pproxy child \[$$] socket -> STDOUT\n"; - if ($listen_handle) { - xfer($sock, $listen_handle); + + $SIG{TERM} = "handler"; + + if ($child) { + if ($listen_handle) { + print STDERR "pproxy parent[$$] listen_handle -> socket\n"; + xfer($listen_handle, $sock); + } else { + print STDERR "pproxy parent[$$] STDIN -> socket\n"; + xfer(STDIN, $sock); + } + select(undef, undef, undef, 0.25); + if (kill 0, $child) { + select(undef, undef, undef, 0.9); + if (kill 0, $child) { + print STDERR "pproxy[$$]: kill TERM child $child\n"; + kill "TERM", $child; + } else { + print STDERR "pproxy[$$]: child $child gone.\n"; + } + } } else { - xfer($sock, STDOUT); - } - select(undef, undef, undef, 0.25); - if (kill 0, $parent) { - select(undef, undef, undef, 1.5); - print STDERR "pproxy\[$$]: kill TERM $parent\n"; - kill "TERM", $parent; - } -} -if ($ENV{PPROXY_KILLPID} ne "") { - if ($ENV{PPROXY_KILLPID}) { - foreach my $p (split(/,/, $ENV{PPROXY_KILLPID})) { - if ($p =~ /^(\+|-)/) { - $p = $parent + $p; + select(undef, undef, undef, 0.05); + if ($listen_handle) { + print STDERR "pproxy child [$$] socket -> listen_handle\n\n"; + xfer($sock, $listen_handle); + } else { + print STDERR "pproxy child [$$] socket -> STDOUT\n\n"; + xfer($sock, STDOUT); + } + select(undef, undef, undef, 0.25); + if (kill 0, $parent) { + select(undef, undef, undef, 0.8); + if (kill 0, $parent) { + print STDERR "pproxy[$$]: kill TERM parent $parent\n"; + kill "TERM", $parent; + } else { + print STDERR "pproxy[$$]: parent $parent gone.\n"; } - print STDERR "kill TERM, $p (PPROXY_KILLPID)\n"; - kill "TERM", $p; } } + + kill_proxy_pids(); } + +xfer_both(); + exit; sub url_parse { @@ -1186,13 +1342,14 @@ sub connection { sub vdie { append_handshake("done\n"); close $sock; + kill_proxy_pids(); exit(1); } sub anontls_handshake { my ($vmode, $db) = @_; - print STDERR "PPROXY: Doing ANONTLS Handshake\n"; + print STDERR "\nPPROXY: Doing ANONTLS Handshake\n"; my $psec = pack("C", $rfbSecTypeAnonTls); syswrite($sock, $psec, 1); @@ -1204,7 +1361,7 @@ sub vencrypt_handshake { my ($vmode, $db) = @_; - print STDERR "PPROXY: Doing VeNCrypt Handshake\n"; + print STDERR "\nPPROXY: Doing VeNCrypt Handshake\n"; my $psec = pack("C", $rfbSecTypeVencrypt); @@ -1397,44 +1554,407 @@ sub vencrypt_dialog { } } -sub xfer { - my($in, $out) = @_; - $RIN = $WIN = $EIN = ""; - $ROUT = ""; - vec($RIN, fileno($in), 1) = 1; - vec($WIN, fileno($in), 1) = 1; - $EIN = $RIN | $WIN; - - while (1) { - my $nf = 0; - while (! $nf) { - $nf = select($ROUT=$RIN, undef, undef, undef); +sub append_handshake { + my $str = shift; + if ($handshake_file) { + if (open(HSF, ">>$handshake_file")) { + print HSF $str; + close HSF; } - my $len = sysread($in, $buf, 8192); - if (! defined($len)) { - next if $! =~ /^Interrupted/; - print STDERR "pproxy\[$$]: $!\n"; - last; - } elsif ($len == 0) { - print STDERR "pproxy\[$$]: Input is EOF.\n"; + } +} + +sub do_vencrypt_viewer_bridge { + my ($listen, $connect) = @_; + print STDERR "\npproxy: starting vencrypt_viewer_bridge[$$]: $listen \-> $connect\n"; + my $db = 0; + my $backwards = 0; + if ($listen < 0) { + $backwards = 1; + $listen = -$listen; + } + if ($handshake_file eq "") { + die "pproxy: vencrypt_viewer_bridge[$$]: no SSVNC_PREDIGESTED_HANDSHAKE\n"; + } + my $listen_sock; + my $maxtry = 12; + my $sleep = 5; + for (my $i=0; $i < $maxtry; $i++) { + $listen_sock = IO::Socket::INET->new( + Listen => 2, + LocalAddr => "127.0.0.1", + LocalPort => $listen, + Proto => "tcp" + ); + if (! $listen_sock) { + if ($i < $maxtry - 1) { + warn "pproxy: vencrypt_viewer_bridge[$$]: $!\n"; + warn "Could not listen on port $listen, retrying in $sleep seconds... (Ctrl-C to quit)\n"; + sleep $sleep; + } + } else { last; } - my $offset = 0; - my $quit = 0; - while ($len) { - my $written = syswrite($out, $buf, $len, $offset); - if (! defined $written) { - print STDERR "pproxy\[$$]: Output is EOF. $!\n"; - $quit = 1; + } + if (! $listen_sock) { + die "pproxy: vencrypt_viewer_bridge[$$]: $!\n"; + } + print STDERR "pproxy: vencrypt_viewer_bridge[$$]: listening on port $listen\n\n"; + my ($viewer_sock, $ip) = $listen_sock->accept(); + my $err = $!; + close $listen_sock; + if (! $viewer_sock) { + die "pproxy: vencrypt_viewer_bridge[$$]: $err\n"; + } + print STDERR "vencrypt_viewer_bridge[$$]: viewer_sock $viewer_sock\n" if $db; + + print STDERR "pproxy: vencrypt_viewer_bridge[$$]: connecting to 127.0.0.1:$connect\n"; + my $server_sock = IO::Socket::INET->new( + PeerAddr => "127.0.0.1", + PeerPort => $connect, + Proto => "tcp" + ); + print STDERR "vencrypt_viewer_bridge[$$]: server_sock $server_sock\n" if $db; + if (! $server_sock) { + my $err = $!; + die "pproxy: vencrypt_viewer_bridge[$$]: $err\n"; + } + + if ($backwards) { + print STDERR "vencrypt_viewer_bridge[$$]: reversing roles of viewer and server.\n"; + my $t = $viewer_sock; + $viewer_sock = $server_sock; + $server_sock = $t; + } + + my %hs = (); + my $dt = 0.2; + my $slept = 0.0; + while ($slept < 20.0) { + select(undef, undef, undef, $dt); + $slept += $dt; + if (-f $handshake_file && open(HSF, "<$handshake_file")) { + my $done = 0; + %hs = (); + my $str = ""; + while () { + print STDERR "vencrypt_viewer_bridge[$$]: $_" if $ENV{VENCRYPT_VIEWER_BRIDGE_DEBUG}; + $str .= "vencrypt_viewer_bridge[$$]: $_"; + chomp; + if ($_ eq "done") { + $done = 1; + } else { + my ($k, $v) = split(/=/, $_, 2); + if ($k ne "" && $v ne "") { + $hs{$k} = $v; + } + } + } + close HSF; + if ($done) { + print STDERR "\n" . $str; last; } - $len -= $written; - $offset += $written; } - last if $quit; } - close($in); - close($out); + if (! exists $hs{server}) { + $hs{server} = "RFB 003.008"; + } + if (! exists $hs{sectype}) { + unlink($handshake_file); + die "pproxy: vencrypt_viewer_bridge[$$]: no sectype.\n"; + } + syswrite($viewer_sock, "$hs{server}\n", length($hs{server}) + 1); + my $viewer_rfb = ""; + for (my $i = 0; $i < 12; $i++) { + my $c; + sysread($viewer_sock, $c, 1); + $viewer_rfb .= $c; + print STDERR $c; + } + my $viewer_major = 3; + my $viewer_minor = 8; + if ($viewer_rfb =~ /RFB (\d+)\.(\d+)/) { + $viewer_major = $1; + $viewer_minor = $2; + } + my $u0 = pack("C", 0); + my $u1 = pack("C", 1); + my $u2 = pack("C", 2); + if ($hs{sectype} == $rfbSecTypeAnonTls) { + unlink($handshake_file); + print STDERR "\npproxy: vencrypt_viewer_bridge[$$]: rfbSecTypeAnonTls\n"; + if ($viewer_major > 3 || $viewer_minor >= 7) { + ; # setup ok, proceed to xfer. + } else { + print STDERR "pproxy: vencrypt_viewer_bridge[$$]: faking RFB version 3.3 to viewer.\n"; + my $n; + sysread($server_sock, $n, 1); + $n = unpack("C", $n); + if ($n == 0) { + die "pproxy: vencrypt_viewer_bridge[$$]: nsectypes == $n.\n"; + } + my %types; + for (my $i = 0; $i < $n; $i++) { + my $t; + sysread($server_sock, $t, 1); + $t = unpack("C", $t); + $types{$t} = 1; + } + my $use = 1; # None + if (exists $types{1}) { + $use = 1; # None + } elsif (exists $types{2}) { + $use = 2; # VncAuth + } else { + die "pproxy: vencrypt_viewer_bridge[$$]: no valid sectypes" . join(",", keys %types) . "\n"; + } + + # send 4 bytes sectype to viewer: + # (note this should be MSB, network byte order...) + my $up = pack("C", $use); + syswrite($viewer_sock, $u0, 1); + syswrite($viewer_sock, $u0, 1); + syswrite($viewer_sock, $u0, 1); + syswrite($viewer_sock, $up, 1); + # and tell server the one we selected: + syswrite($server_sock, $up, 1); + if ($use == 1) { + # even None has security result, so read it here and discard it. + my $sr = ""; + sysread($server_sock, $sr, 4); + } + } + } elsif ($hs{sectype} == $rfbSecTypeVencrypt) { + print STDERR "\npproxy: vencrypt_viewer_bridge[$$]: rfbSecTypeVencrypt\n"; + if (! exists $hs{subtype}) { + unlink($handshake_file); + die "pproxy: vencrypt_viewer_bridge[$$]: no subtype.\n"; + } + my $fake_type = "None"; + my $plain = 0; + my $sub_type = $hs{subtype}; + if ($sub_type == $rfbVencryptTlsNone) { + $fake_type = "None"; + } elsif ($sub_type == $rfbVencryptTlsVnc) { + $fake_type = "VncAuth"; + } elsif ($sub_type == $rfbVencryptTlsPlain) { + $fake_type = "None"; + $plain = 1; + } elsif ($sub_type == $rfbVencryptX509None) { + $fake_type = "None"; + } elsif ($sub_type == $rfbVencryptX509Vnc) { + $fake_type = "VncAuth"; + } elsif ($sub_type == $rfbVencryptX509Plain) { + $fake_type = "None"; + $plain = 1; + } + if ($plain) { + if (!open(W, ">$handshake_file")) { + unlink($handshake_file); + die "pproxy: vencrypt_viewer_bridge[$$]: $handshake_file $!\n"; + } + print W <<"END"; + + proc print_out {} { + global user pass env + + if [info exists env(SSVNC_UP_DEBUG)] { + toplevel .b + button .b.b -text "user=\$user pass=\$pass" -command {destroy .b} + pack .b.b + update + tkwait window .b + } + + if [info exists env(SSVNC_UP_FILE)] { + set fh "" + catch {set fh [open \$env(SSVNC_UP_FILE) w]} + if {\$fh != ""} { + puts \$fh user=\$user\\npass=\$pass + flush \$fh + close \$fh + return + } + } + puts stdout user=\$user\\npass=\$pass + flush stdout + } + + proc center_win {w} { + update + set W [winfo screenwidth \$w] + set W [expr \$W + 1] + wm geometry \$w +\$W+0 + update + set x [expr [winfo screenwidth \$w]/2 - [winfo width \$w]/2] + set y [expr [winfo screenheight \$w]/2 - [winfo height \$w]/2] + + wm geometry \$w +\$x+\$y + wm deiconify \$w + update + } + + wm withdraw . + + global env + set up {} + if [info exists env(SSVNC_UNIXPW)] { + set rm 0 + set up \$env(SSVNC_UNIXPW) + if [regexp {^rm:} \$up] { + set rm 1 + regsub {^rm:} \$up {} up + } + if [file exists \$up] { + set fh "" + set f \$up + catch {set fh [open \$up r]} + if {\$fh != ""} { + gets \$fh u + gets \$fh p + close \$fh + set up "\$u@\$p" + } + if {\$rm} { + catch {file delete \$f} + } + } + } elseif [info exists env(SSVNC_VENCRYPT_USERPASS)] { + set up \$env(SSVNC_VENCRYPT_USERPASS) + } + #puts stderr up=\$up + if {\$up != ""} { + if [regexp {@} \$up] { + global user pass + set user \$up + set pass \$up + regsub {@.*\$} \$user "" user + regsub {^[^@]*@} \$pass "" pass + print_out + exit + } + } + + wm title . {VeNCrypt Viewer Bridge User/Pass} + + set user {} + set pass {} + + label .l -text {SSVNC VeNCrypt Viewer Bridge} + + frame .f0 + frame .f0.fL + label .f0.fL.la -text {Username: } + label .f0.fL.lb -text {Password: } + + pack .f0.fL.la .f0.fL.lb -side top + + frame .f0.fR + entry .f0.fR.ea -width 24 -textvariable user + entry .f0.fR.eb -width 24 -textvariable pass -show * + + pack .f0.fR.ea .f0.fR.eb -side top -fill x + + pack .f0.fL -side left + pack .f0.fR -side right -expand 1 -fill x + + button .no -text Cancel -command {destroy .} + button .ok -text Done -command {print_out; destroy .} + + center_win . + pack .l .f0 .no .ok -side top -fill x + update + wm deiconify . + + bind .f0.fR.ea {focus .f0.fR.eb} + bind .f0.fR.eb {print_out; destroy .} + focus .f0.fR.ea + + wm resizable . 1 0 + wm minsize . [winfo reqwidth .] [winfo reqheight .] +END + close W; + + #system("cat $handshake_file"); + my $w = "wish"; + if ($ENV{WISH}) { + $w = $ENV{WISH}; + } + print STDERR "pproxy: vencrypt_viewer_bridge[$$]: prompt VencryptPlain user and passwd.\n"; + my $res = ""; + if (`uname` =~ /Darwin/) { + my $mtmp = `mktemp /tmp/hsup.XXXXXX`; + chomp $mtmp; + system("env SSVNC_UP_FILE=$mtmp $w $handshake_file"); + $res = `cat $mtmp`; + unlink $mtmp; + } else { + $res = `$w $handshake_file`; + } + my $user = ""; + my $pass = ""; + if ($res =~ /user=(\S*)/) { + $user = $1; + } + if ($res =~ /pass=(\S*)/) { + $pass = $1; + } + print STDERR "pproxy: vencrypt_viewer_bridge[$$]: sending VencryptPlain user and passwd.\n"; + my $ulen = pack("C", length($user)); + my $plen = pack("C", length($pass)); + # (note this should be MSB, network byte order...) + syswrite($server_sock, $u0, 1); + syswrite($server_sock, $u0, 1); + syswrite($server_sock, $u0, 1); + syswrite($server_sock, $ulen, 1); + syswrite($server_sock, $u0, 1); + syswrite($server_sock, $u0, 1); + syswrite($server_sock, $u0, 1); + syswrite($server_sock, $plen, 1); + syswrite($server_sock, $user, length($user)); + syswrite($server_sock, $pass, length($pass)); + } + unlink($handshake_file); + + my $ft = 0; + if ($fake_type eq "None") { + $ft = 1; + } elsif ($fake_type eq "VncAuth") { + $ft = 2; + } else { + die "pproxy: vencrypt_viewer_bridge[$$]: unknown fake type: $fake_type\n"; + } + my $fp = pack("C", $ft); + if ($viewer_major > 3 || $viewer_minor >= 7) { + syswrite($viewer_sock, $u1, 1); + syswrite($viewer_sock, $fp, 1); + my $cr; + sysread($viewer_sock, $cr, 1); + $cr = unpack("C", $cr); + if ($cr != $ft) { + die "pproxy: vencrypt_viewer_bridge[$$]: client selected wrong type: $cr / $ft\n"; + } + } else { + print STDERR "pproxy: vencrypt_viewer_bridge[$$]: faking RFB version 3.3 to viewer.\n"; + # send 4 bytes sect type to viewer: + # (note this should be MSB, network byte order...) + syswrite($viewer_sock, $u0, 1); + syswrite($viewer_sock, $u0, 1); + syswrite($viewer_sock, $u0, 1); + syswrite($viewer_sock, $fp, 1); + if ($ft == 1) { + # even None has security result, so read it here and discard it. + my $sr = ""; + sysread($server_sock, $sr, 4); + } + } + } + + $listen_handle = $viewer_sock; + $sock = $server_sock; + + xfer_both(); } ' # ' @@ -1520,11 +2040,33 @@ END } Kecho() { - if [ "X$USER" = "Xrunge" ]; then + NO_KECHO=1 + if [ "X$USER" = "Xrunge" -a "X$NO_KECHO" = "X" ]; then echo "dbg: $*" fi } +NHAFL_warning() { + echo "" + echo "** Warning: For the proxy: $proxy" + echo "** Warning: the ssh(1) option: $ssh_NHAFL" + echo "** Warning: will be used to avoid frequent 'ssh key has changed for localhost'" + echo "** Warning: dialogs and connection failures (for example, ssh will exit asking" + echo "** Warning: you to manually remove a key from ~/.ssh/known_hosts.)" + echo "** Warning: " + echo "** Warning: This decreases security: a Man-In-The-Middle attack is possible." + echo "** Warning: You can set the SSVNC_SSH_LOCALHOST_AUTH=1 env. var. to disable" + echo "** Warning: using the NoHostAuthenticationForLocalhost ssh option." + echo "** Warning: " + echo "** Warning: A better solution is to configure (in the SSVNC GUI) the setting:" + echo "** Warning: 'Options -> Advanced -> Private SSH KnownHosts file' (or set" + echo "** Warning: SSVNC_KNOWN_HOSTS_FILE directly) to a per-connection known hosts" + echo "** Warning: file. This yields a both secure and convenient solution." + echo "" +} + +# handle ssh case: +# if [ "X$use_ssh" = "X1" ]; then # # USING SSH @@ -1532,9 +2074,47 @@ if [ "X$use_ssh" = "X1" ]; then ssh_port="22" ssh_host="$host" vnc_host="$localhost" + ssh_UKHF="" + localhost_extra="" # let user override ssh via $SSH ssh=${SSH:-"ssh -x"} + sshword=`echo "$ssh" | awk '{print $1}'` + if [ "X$sshword" != "X" ]; then + if [ -x "$sshword" ]; then + : + elif type "$sshword" > /dev/null 2>&1; then + : + else + echo "" + echo "*********************************************************" + echo "** Problem finding the SSH command '$sshword': **" + echo "" + type "$sshword" + echo "" + echo "** Perhaps you need to install the SSH client package. **" + echo "*********************************************************" + echo "" + sleep 5 + fi + fi + + ssh_NHAFL="-o NoHostAuthenticationForLocalhost=yes" + if [ "X$SSVNC_SSH_LOCALHOST_AUTH" = "X1" ]; then + ssh_NHAFL="" + fi + if [ "X$SSVNC_KNOWN_HOSTS_FILE" != "X" ]; then + ssh_NHAFL="" + + ssh_UKHF="-o UserKnownHostsFile=$SSVNC_KNOWN_HOSTS_FILE" + ssh_args="$ssh_args $ssh_UKHF" + if [ ! -f "$SSVNC_KNOWN_HOSTS_FILE" ]; then + touch "$SSVNC_KNOWN_HOSTS_FILE" >/dev/null 2>&1 + fi + chmod 600 "$SSVNC_KNOWN_HOSTS_FILE" >/dev/null 2>&1 + fi + did_ssh_NHAFL="" + if [ "X$SSVNC_LIM_ACCEPT_PRELOAD" != "X" ]; then SSVNC_LIM_ACCEPT_PRELOAD="$SSVNC_BASEDIR/$SSVNC_UNAME/$SSVNC_LIM_ACCEPT_PRELOAD" fi @@ -1553,6 +2133,29 @@ if [ "X$use_ssh" = "X1" ]; then SSVNC_LIM_ACCEPT_PRELOAD="" fi + ssh_vencrypt_proxy="" + # We handle vencrypt for SSH+SSL mode. + if echo "$proxy" | grep 'vencrypt://' > /dev/null; then + proxynew="" + for part in `echo "$proxy" | tr ',' ' '` + do + if echo "$part" | egrep -i '^vencrypt://' > /dev/null; then + ssh_vencrypt_proxy=$part + else + if [ "X$proxynew" = "X" ]; then + proxynew="$part" + else + proxynew="$proxynew,$part" + fi + fi + done + proxy=$proxynew + fi + Kecho ssh_vencrypt_proxy=$ssh_vencrypt_proxy + + # note that user must supply http:// for web proxy in SSH and SSH+SSL. + # No xxxx:// implies ssh server+port. + # if echo "$proxy" | egrep '(http|https|socks|socks4|socks5)://' > /dev/null; then # Handle Web or SOCKS proxy(ies) for the initial connect. Kecho host=$host @@ -1638,11 +2241,16 @@ if [ "X$use_ssh" = "X1" ]; then port=$port_save host=$host_save - nd=`findfree 6700` + nd=`findfree 6600` PPROXY_LISTEN=$nd; export PPROXY_LISTEN $ptmp & - sleep 2 - ssh_args="$ssh_args -o NoHostAuthenticationForLocalhost=yes" + sleep 1 + if [ "X$ssh_NHAFL" != "X" -a "X$did_ssh_NHAFL" != "X1" ]; then + NHAFL_warning + ssh_args="$ssh_args $ssh_NHAFL" + did_ssh_NHAFL=1 + fi + sleep 1 if [ "X$sproxy1" = "X" ]; then u="" if echo "$host" | grep '@' > /dev/null; then @@ -1653,6 +2261,7 @@ if [ "X$use_ssh" = "X1" ]; then else proxy="${sproxy1_user}$localhost:$nd" fi + localhost_extra=".2" if [ "X$sproxy_rest" != "X" ]; then proxy="$proxy,$sproxy_rest" fi @@ -1684,12 +2293,21 @@ if [ "X$use_ssh" = "X1" ]; then ssh_port2="22" fi proxport=`findfree 3500` + if [ "X$ssh_NHAFL" != "X" -a "X$did_ssh_NHAFL" != "X1" ]; then + NHAFL_warning + did_ssh_NHAFL=1 + sleep 1 + fi echo echo "Running 1st ssh proxy:" - echo "$ssh -f -x $ssh_port1 $targ -e none -o NoHostAuthenticationForLocalhost=yes -L $proxport:$ssh_host2:$ssh_port2 $ssh_host1 \"sleep 30\"" + ukhf="" + if [ "X$ssh_UKHF" != "X" ]; then + ukhf="$ssh_UKHF$localhost_extra" + fi + echo "$ssh -f -x $ssh_port1 $targ -e none $ssh_NHAFL $ukhf -L $proxport:$ssh_host2:$ssh_port2 $ssh_host1 \"sleep 30\"" echo "" - $ssh -f -x $ssh_port1 $targ -e none -o NoHostAuthenticationForLocalhost=yes -L $proxport:$ssh_host2:$ssh_port2 $ssh_host1 "sleep 30" - ssh_args="$ssh_args -o NoHostAuthenticationForLocalhost=yes" + $ssh -f -x $ssh_port1 $targ -e none $ssh_NHAFL $ukhf -L $proxport:$ssh_host2:$ssh_port2 $ssh_host1 "sleep 30" + ssh_args="$ssh_args $ssh_NHAFL" sleep 1 stty sane proxy="${ssh_user2}$localhost:$proxport" @@ -1764,6 +2382,8 @@ if [ "X$use_ssh" = "X1" ]; then elif [ "X$getport" != "X" ]; then tport=/tmp/ss_vncviewer_tport${RANDOM}.$$ tport=`mytmp "$tport"` + tport2=/tmp/ss_vncviewer_tport2${RANDOM}.$$ + tport2=`mytmp "$tport2"` if [ "X$rsh" != "X1" ]; then if echo "$ssh_cmd" | grep "sudo " > /dev/null; then @@ -1777,10 +2397,12 @@ if [ "X$use_ssh" = "X1" ]; then fi echo "$ssh -x -f $ssh_port $targ $C $ssh_redir $ssh_args $ssh_host \"$info\"" echo "" - $ssh -x -f $ssh_port $targ $C $ssh_redir $ssh_args $ssh_host "$ssh_cmd" > $tport + $ssh -x -f $ssh_port $targ $C $ssh_redir $ssh_args $ssh_host "$ssh_cmd" > $tport 2> $tport2 if [ "X$teeport" = "X1" ]; then - tail -f $tport 1>&2 & + tail -f $tport 1>&2 & tail_pid=$! + tail -f $tport2 1>&2 & + tail_pid2=$! fi rc=$? else @@ -1809,11 +2431,11 @@ if [ "X$use_ssh" = "X1" ]; then while [ $i -lt $imax ]; do #echo $sleepit eval $sleepit - PORT=`grep "^PORT=" $tport | head -n 1 | sed -e 's/PORT=//' -e 's/\r//g'` + PORT=`grep "^PORT=" $tport | tr '\r' ' ' | head -n 1 | sed -e 's/PORT=//' -e 's/\r//g' -e 's/ *$//'` if echo "$PORT" | grep '^[0-9][0-9]*$' > /dev/null; then break fi - vnss=`sed -e 's/\r//g' $tport | egrep -i '^(New.* desktop is|A VNC server is already running).*:[0-9[0-9]*$' | head -n 1 | awk '{print $NF}'` + vnss=`sed -e 's/\r//g' $tport $tport2 | egrep -i '^(New.* desktop is|A VNC server is already running).*:[0-9[0-9]*$' | head -n 1 | awk '{print $NF}'` if [ "X$vnss" != "X" ]; then PORT=`echo "$vnss" | awk -F: '{print $2}'` if echo "$PORT" | grep '^[0-9][0-9]*$' > /dev/null; then @@ -1822,14 +2444,16 @@ if [ "X$use_ssh" = "X1" ]; then fi fi if echo "$PORT" | grep '^[0-9][0-9]*$' > /dev/null; then + vnss=`sed -e 's/\r//g' $tport | egrep -i '^(New.* desktop is|A VNC server is already running).*:[0-9[0-9]*$' | head -n 1` + echo "vncserver string: $vnss" 1>&2 break fi fi i=`expr $i + 1` done - echo "PORT=$PORT" 1>&2 - rm -f $tport + echo "found: PORT='$PORT'" 1>&2 + rm -f $tport $tport2 if [ "X$rsh" = "X1" ]; then rsh_viewer "$@" exit $? @@ -1955,6 +2579,33 @@ if [ "X$use_ssh" = "X1" ]; then else proxy="" fi + if [ "X$ssh_vencrypt_proxy" != "X" ]; then + ssh_vencrypt_proxy="vencrypt://$host:$port" + if [ "X$proxy" = "X" ]; then + proxy=$ssh_vencrypt_proxy + else + proxy="$proxy,$ssh_vencrypt_proxy" + fi + Kecho "proxy_now=$proxy" + unset PPROXY_LISTEN + fi + fi +fi + +if [ "X$stunnel_set_here" = "X1" -a "X$showcert" = "X" ]; then + if type $STUNNEL > /dev/null 2>&1; then + : + else + echo "" + echo "***************************************************************" + echo "** Problem finding the Stunnel command '$STUNNEL': **" + echo "" + type $STUNNEL + echo "" + echo "** Perhaps you need to install the stunnel/stunnel4 package. **" + echo "***************************************************************" + echo "" + sleep 5 fi fi @@ -1968,6 +2619,9 @@ if [ "X$verify" != "X" ]; then verify="$verify verify = 2" fi +if [ "X$SSVNC_STUNNEL_VERIFY3" != "X" ]; then + verify=`echo "$verify" | sed -e 's/verify = 2/verify = 3/'` +fi if [ "X$mycert" != "X" ]; then cert="cert = $mycert" fi @@ -1997,7 +2651,6 @@ if [ "X$proxy" != "X" ]; then PPROXY_LISTEN=$nd export PPROXY_LISTEN if [ "X$reverse" = "X" ]; then - #$ptmp 2>/dev/null & $ptmp & fi sleep 2 @@ -2016,6 +2669,8 @@ else connect="connect = $host:$port" fi +# handle showcert case: +# if [ "X$showcert" = "X1" ]; then if [ "X$proxy" != "X" ]; then PPROXY_LISTEN=$use @@ -2026,6 +2681,23 @@ if [ "X$showcert" = "X1" ]; then $ptmp 2>/dev/null & fi sleep 1 + more_sleep=1 + if uname | grep Linux > /dev/null; then + if netstat -ant | grep LISTEN | grep "127.0.0.1:$use" > /dev/null; then + more_sleep="" + fi + elif uname | grep SunOS > /dev/null; then + if netstat -an -f inet -P tcp | grep LISTEN | grep "127.0.0.1.$use" > /dev/null; then + more_sleep="" + fi + elif uname | egrep -i 'bsd|darwin' > /dev/null; then + if netstat -ant -f inet | grep LISTEN | grep "127.0.0.1.$use" > /dev/null; then + more_sleep="" + fi + fi + if [ "X$more_sleep" = "X1" ]; then + sleep 1 + fi host="$localhost" port="$use" fi @@ -2033,8 +2705,30 @@ if [ "X$showcert" = "X1" ]; then if [ "X$ciphers" != "X" ]; then cipher_args=`echo "$ciphers" | sed -e 's/ciphers=/-cipher /'` fi + if type openssl > /dev/null 2>&1; then + : + else + echo "" + echo "********************************************************" + echo "** Problem finding the OpenSSL command 'openssl': **" + echo "" + type openssl 2>&1 + echo "" + echo "** Perhaps you need to install the 'openssl' package. **" + echo "********************************************************" + echo "" + fi #echo "openssl s_client $cipher_args -connect $host:$port" if [ "X$reverse" = "X" ]; then + host $host >/dev/null 2>&1 + host $host >/dev/null 2>&1 + timeout=15 + if [ "X$SSVNC_FETCH_TIMEOUT" != "X" ]; then + timeout=$SSVNC_FETCH_TIMEOUT + fi + if type pkill >/dev/null 2>&1; then + (sleep $timeout; if kill -0 $$; then pkill -TERM -f "openssl.*s_client.*$host.*$port"; fi) >/dev/null 2>&1 & + fi openssl s_client $cipher_args -prexit -connect $host:$port 2>&1 < /dev/null rc=$? else @@ -2052,6 +2746,9 @@ if [ "X$showcert" = "X1" ]; then #echo "openssl s_server $cipher_args $cert_args -accept $port -verify 2 > $tmp_out 2> $tmp_err" 1>&2 + # assume we have perl: + check_perl perl + perl -e " \$p = open(O, \"|openssl s_server $cipher_args $cert_args -accept $port -verify 2 1>$tmp_out 2> $tmp_err\"); exit 1 unless \$p; @@ -2094,9 +2791,15 @@ if [ "X$showcert" = "X1" ]; then if [ "X$SSVNC_PREDIGESTED_HANDSHAKE" != "X" ]; then rm -f $SSVNC_PREDIGESTED_HANDSHAKE fi - exit $rc + if [ "X$SSVNC_SHOWCERT_EXIT_0" = "X1" ]; then + exit 0 + else + exit $rc + fi fi +# handle direct connect case: +# if [ "X$direct_connect" != "X" ]; then if [ "X$SSVNC_ULTRA_DSM" != "X" ]; then SSVNC_NO_ENC_WARN=1 @@ -2113,7 +2816,7 @@ if [ "X$direct_connect" != "X" ]; then : else echo "" - echo "** NOTE: THERE WILL BE NO SSL OR SSH ENCRYPTION **" + echo "** WARNING: THERE WILL BE NO SSL OR SSH ENCRYPTION **" echo "" fi fi @@ -2334,6 +3037,14 @@ echo "Using this stunnel configuration:" echo "" cat "$tmp_cfg" | uniq echo "" +if egrep -i '^[ ]*(CApath|CAfile) =' "$tmp_cfg" > /dev/null ; then + : +else + echo "** WARNING: THE STUNNEL CONFIG HAS NO SERVER CERTIFICATE SPECIFIED **" + echo "** WARNING: (the CApath or CAfile stunnel option) THE VNC SERVER WILL **" + echo "** WARNING: NOT BE AUTHENTICATED. A MAN-IN-THE-MIDDLE ATTACK IS POSSIBLE **" + echo "" +fi sleep 1 if [ "X$stunnel_exec" = "X" ]; then @@ -2376,8 +3087,16 @@ if [ "X$SSVNC_EXTRA_SLEEP" != "X" ]; then echo "sleep $SSVNC_EXTRA_SLEEP" sleep $SSVNC_EXTRA_SLEEP fi -echo "Running viewer:" + if [ "X$reverse" = "X" ]; then + if [ "X$NEED_VENCRYPT_VIEWER_BRIDGE" = "X1" -a "X$ptmp" != "X" ] ; then + port1=`expr 5900 + $N` # stunnel port + port2=`findfree 5970` # bridge port (viewer connects to it.) + N=`expr $port2 - 5900` + env PPROXY_REMOVE=0 PPROXY_SLEEP=0 PPROXY_VENCRYPT_VIEWER_BRIDGE="$port2,$port1" $ptmp & + sleep 1 + fi + echo "Running viewer:" vnc_hp=$localhost:$N if [ "X$stunnel_exec" != "X" ]; then vnc_hp="exec=$STUNNEL $tmp_cfg" @@ -2394,19 +3113,16 @@ if [ "X$reverse" = "X" ]; then fi fi else + echo "Running viewer:" echo "" echo "NOTE: Press Ctrl-C to terminate viewer LISTEN mode." echo "" + trap "final" 0 2 15 N2=$N - if [ "X$VNCVIEWER_IS_REALVNC4" = "X1" ]; then - N2=`echo "$N2" | sed -e 's/://g'` - if [ $N2 -le 200 ]; then - N2=`expr $N2 + 5500` - fi + N2_trim=`echo "$N2" | sed -e 's/://g'` + if [ $N2_trim -le 200 ]; then + N2_trim=`expr $N2_trim + 5500` fi - echo "$VNCVIEWERCMD" "$@" -listen $N2 - trap "final" 0 2 15 - echo "" if [ "X$proxy" != "X" ]; then if echo "$proxy" | grep -i '^vencrypt:' > /dev/null; then pstunnel=`echo "$proxy" | awk -F: '{print $2}'` @@ -2416,13 +3132,30 @@ else PPROXY_DEST="$localhost:$pstunnel"; export PPROXY_DEST STUNNEL_ONCE=1; export STUNNEL_ONCE STUNNEL_MAX_CLIENTS=1; export STUNNEL_MAX_CLIENTS + if [ "X$NEED_VENCRYPT_VIEWER_BRIDGE" = "X1" -a "X$ptmp" != "X" ] ; then + port1=`expr 5500 + $N2` + port2=`findfree 5580` + N2=`expr $port2 - 5500` + N2_trim=`echo "$N2" | sed -e 's/://g'` + if [ $N2_trim -le 200 ]; then + N2_trim=`expr $N2_trim + 5500` + fi + env PPROXY_REMOVE=0 PPROXY_SLEEP=0 PPROXY_VENCRYPT_VIEWER_BRIDGE="-$port1,$port2" $ptmp & + sleep 1 + fi else PPROXY_REVERSE="$localhost:$port"; export PPROXY_REVERSE PPROXY_SLEEP=1; export PPROXY_SLEEP; fi PPROXY_KILLPID=+1; export PPROXY_KILLPID; $ptmp & + # Important to have no extra pids generated between here and VNCVIEWERCMD + fi + if [ "X$VNCVIEWER_IS_REALVNC4" = "X1" ]; then + N2=$N2_trim fi + echo "$VNCVIEWERCMD" "$@" -listen $N2 + echo "" $VNCVIEWERCMD "$@" -listen $N2 fi diff --git a/classes/ssl/ultravnc-102-JavaViewer-ssl-etc.patch b/classes/ssl/ultravnc-102-JavaViewer-ssl-etc.patch index 0104708..6e61cf3 100644 --- a/classes/ssl/ultravnc-102-JavaViewer-ssl-etc.patch +++ b/classes/ssl/ultravnc-102-JavaViewer-ssl-etc.patch @@ -2644,8 +2644,8 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java // } diff -Naur JavaViewer.orig/SSLSocketToMe.java JavaViewer/SSLSocketToMe.java --- JavaViewer.orig/SSLSocketToMe.java 1969-12-31 19:00:00.000000000 -0500 -+++ JavaViewer/SSLSocketToMe.java 2009-06-19 10:23:50.000000000 -0400 -@@ -0,0 +1,1726 @@ ++++ JavaViewer/SSLSocketToMe.java 2009-08-13 09:16:42.000000000 -0400 +@@ -0,0 +1,1727 @@ +/* + * SSLSocketToMe.java: add SSL encryption to Java VNC Viewer. + * @@ -2654,7 +2654,8 @@ diff -Naur JavaViewer.orig/SSLSocketToMe.java JavaViewer/SSLSocketToMe.java + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; version 2 of the License. ++ * the Free Software Foundation; version 2 of the License, or ++ * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/x11vnc/ChangeLog b/x11vnc/ChangeLog index 428ce06..cb9e49a 100644 --- a/x11vnc/ChangeLog +++ b/x11vnc/ChangeLog @@ -1,12 +1,17 @@ +2009-12-04 Karl Runge + * classes/ssl: update binaries; new signing key; ss_vncviewer. + * x11vnc: add more wish possibilities for -gui. Declare crypt() + on all platforms (disable with -DDO_NOT_DECLARE_CRYPT.) + 2009-12-02 Karl Runge - * x11vnc: -appshare mode for sharing an application windows intead - of the entire desktop. map port + 5500 in reverse connect. - Add id_cmd remote control functions for id (and other) windows. - Allow zero port in SSL reverse connections. Adjust delays - between multiple reverse connections; X11VNC_REVERSE_SLEEP_MAX - env var. Add some missing mutex locks; add INPUT_LOCK and - threads_drop_input. More safety in -threads mode for new - framebuffer change. Fix some stderr leaking in -inetd mode. + * x11vnc: -appshare mode for sharing an application windows of the + entire desktop. map port + 5500 in reverse connect. Add id_cmd + remote control functions for id (and other) windows. Allow zero + port in SSL reverse connections. Adjust delays between multiple + reverse connections; X11VNC_REVERSE_SLEEP_MAX env var. Add some + missing mutex locks; add INPUT_LOCK and threads_drop_input. + More safety in -threads mode for new framebuffer change. Fix + some stderr leaking in -inetd mode. 2009-11-18 Karl Runge * x11vnc: use -timeout setting for reverse connections too. diff --git a/x11vnc/README b/x11vnc/README index 50ff446..b041f1a 100644 --- a/x11vnc/README +++ b/x11vnc/README @@ -2,7 +2,7 @@ Copyright (C) 2002-2009 Karl J. Runge All rights reserved. -x11vnc README file Date: Wed Dec 2 22:03:06 EST 2009 +x11vnc README file Date: Fri Dec 4 20:44:56 EST 2009 The following information is taken from these URLs: @@ -12894,7 +12894,7 @@ x11vnc: a VNC server for real X displays Here are all of x11vnc command line options: % x11vnc -opts (see below for -help long descriptions) -x11vnc: allow VNC connections to real X11 displays. 0.9.9 lastmod: 2009-12-02 +x11vnc: allow VNC connections to real X11 displays. 0.9.9 lastmod: 2009-12-04 x11vnc options: -display disp -auth file -N @@ -13021,7 +13021,7 @@ libvncserver-tight-extension options: % x11vnc -help -x11vnc: allow VNC connections to real X11 displays. 0.9.9 lastmod: 2009-12-02 +x11vnc: allow VNC connections to real X11 displays. 0.9.9 lastmod: 2009-12-04 (type "x11vnc -opts" to just list the options.) diff --git a/x11vnc/appshare.c b/x11vnc/appshare.c index 72c2bdd..81d9949 100644 --- a/x11vnc/appshare.c +++ b/x11vnc/appshare.c @@ -473,7 +473,7 @@ static void launch(Window win) { char *q = strstr(cmd, "-connect_or_exit"); if (q) q = strstr(q, "_or_exit"); if (q) { - int i; + unsigned int i; for (i=0; i < strlen("_or_exit"); i++) { *q = ' '; q++; @@ -907,7 +907,7 @@ static void recurse_search(int level, int level_max, Window top, Window app, int ok = XQueryTree(dpy, top, &r, &parent, &list, &nchild); if (ok) { int i; - for (i=0; i < nchild; i++) { + for (i=0; i < (int) nchild; i++) { w = list[i]; if (w == None || find_win(w) >= 0) { continue; @@ -919,7 +919,7 @@ static void recurse_search(int level, int level_max, Window top, Window app, int (*nw)++; } } - for (i=0; i < nchild; i++) { + for (i=0; i < (int) nchild; i++) { w = list[i]; if (w == None || ours(w)) { continue; diff --git a/x11vnc/gui.c b/x11vnc/gui.c index 3a05ac8..a7f2713 100644 --- a/x11vnc/gui.c +++ b/x11vnc/gui.c @@ -261,9 +261,11 @@ static void sigusr1 (int sig) { if (0) sig = 0; } +/* Most of the following mess is for wish on Solaris: */ + static char *extra_path = ":/usr/local/bin:/usr/bin/X11:/usr/sfw/bin" - ":/usr/X11R6/bin:/usr/openwin/bin:/usr/dt/bin"; -static char *wishes[] = {"wish8.4", "wish", "wish8.3", "wish8.5", "wish8.0", NULL}; + ":/usr/X11R6/bin:/usr/openwin/bin:/usr/dt/bin:/opt/sfw/bin"; +static char *wishes[] = {"wish8.4", "wish", "wish8.3", "wish8.5", "wish8.6", "wish8.7", "wishx", "wish8.0", NULL}; static void run_gui(char *gui_xdisplay, int connect_to_x11vnc, int start_x11vnc, int simple_gui, pid_t parent, char *gui_opts) { @@ -440,6 +442,15 @@ if (0) fprintf(stderr, "run_gui: %s -- %d %d\n", gui_xdisplay, connect_to_x11vnc if (!wish) { wish = strdup("wish"); } + if (getenv("WISH")) { + char *w = getenv("WISH"); + if (strcmp(w, "")) { + wish = strdup(w); + } + } + if (getenv("DEBUG_WISH")) { + fprintf(stderr, "wish: %s\n", wish); + } set_env("PATH", full_path); set_env("DISPLAY", gui_xdisplay); set_env("X11VNC_PROG", program_name); diff --git a/x11vnc/unixpw.c b/x11vnc/unixpw.c index 92eec53..7f8f940 100644 --- a/x11vnc/unixpw.c +++ b/x11vnc/unixpw.c @@ -37,7 +37,9 @@ so, delete this exception statement from your version. extern int grantpt(int); extern int unlockpt(int); extern char *ptsname(int); -/* XXX remove need for this */ +#endif + +#ifndef DO_NOT_DECLARE_CRYPT extern char *crypt(const char*, const char *); #endif @@ -800,7 +802,7 @@ int crypt_verify(char *user, char *pass) { fprintf(stderr, "user='%s' pass='%s' realpw='%s' cr='%s'\n", user, pass, realpw, cr ? cr : "(null)"); } - if (cr == NULL) { + if (cr == NULL || cr[0] == '\0') { return 0; } if (!strcmp(cr, realpw)) { diff --git a/x11vnc/x11vnc.1 b/x11vnc/x11vnc.1 index f6ef2c8..b51ce0c 100644 --- a/x11vnc/x11vnc.1 +++ b/x11vnc/x11vnc.1 @@ -2,7 +2,7 @@ .TH X11VNC "1" "December 2009" "x11vnc " "User Commands" .SH NAME x11vnc - allow VNC connections to real X11 displays - version: 0.9.9, lastmod: 2009-12-02 + version: 0.9.9, lastmod: 2009-12-04 .SH SYNOPSIS .B x11vnc [OPTION]... diff --git a/x11vnc/x11vnc_defs.c b/x11vnc/x11vnc_defs.c index 5cafc49..f5c35b4 100644 --- a/x11vnc/x11vnc_defs.c +++ b/x11vnc/x11vnc_defs.c @@ -47,7 +47,7 @@ int xtrap_base_event_type = 0; int xdamage_base_event_type = 0; /* date +'lastmod: %Y-%m-%d' */ -char lastmod[] = "0.9.9 lastmod: 2009-12-02"; +char lastmod[] = "0.9.9 lastmod: 2009-12-04"; /* X display info */