Sync ssvncviewer changes.

pull/1/head
runge 14 years ago
parent b74c8f4241
commit 6de3f0bed7

@ -6,6 +6,10 @@
warning about missing Xvfb, Xdummy, or Xvnc in -create. warning about missing Xvfb, Xdummy, or Xvnc in -create.
Fix __LINUX_VIDEODEV2_H / HAVE_V4L2. Always print out info Fix __LINUX_VIDEODEV2_H / HAVE_V4L2. Always print out info
about Xinerama screens. about Xinerama screens.
* x11vnc/misc/enhanced_tightvnc_viewer: check for host cmd.
fix stunnel mode w/o proxy. Update to stunnel 4.33, Fix
build.unix with new stunnel on Solaris. ipv6 support for
unix ssvncviewer
2010-04-09 Karl Runge <runge@karlrunge.com> 2010-04-09 Karl Runge <runge@karlrunge.com>
* classes/ssl: debugging and workarounds for java viewer * classes/ssl: debugging and workarounds for java viewer

@ -586,9 +586,12 @@ elif echo "$host" | grep '^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$'
: :
else else
# regular hostname, can't be sure... # regular hostname, can't be sure...
host "$host" >/dev/null 2>&1 hout=""
host "$host" >/dev/null 2>&1 if type host > /dev/null 2>/dev/null; then
hout=`host "$host" 2>/dev/null` host "$host" >/dev/null 2>&1
host "$host" >/dev/null 2>&1
hout=`host "$host" 2>/dev/null`
fi
if echo "$hout" | grep -i 'has ipv6 address' > /dev/null; then if echo "$hout" | grep -i 'has ipv6 address' > /dev/null; then
if echo "$hout" | grep -i 'has address' > /dev/null; then if echo "$hout" | grep -i 'has address' > /dev/null; then
: :
@ -598,7 +601,10 @@ else
fi fi
fi fi
if [ "X$ipv6" = "X0" ]; then if [ "X$ipv6" = "X0" ]; then
dout=""
if type dig > /dev/null 2>/dev/null; then
dout=`dig -t any "$host" 2>/dev/null` dout=`dig -t any "$host" 2>/dev/null`
fi
if echo "$dout" | grep -i "^$host" | grep '[ ]AAAA[ ]' > /dev/null; then if echo "$dout" | grep -i "^$host" | grep '[ ]AAAA[ ]' > /dev/null; then
if echo "$dout" | grep -i "^$host" | grep '[ ]A[ ]' > /dev/null; then if echo "$dout" | grep -i "^$host" | grep '[ ]A[ ]' > /dev/null; then
: :
@ -3024,8 +3030,10 @@ if [ "X$showcert" = "X1" ]; then
fi fi
#echo "openssl s_client $cipher_args -connect $host:$port" #echo "openssl s_client $cipher_args -connect $host:$port"
if [ "X$reverse" = "X" ]; then if [ "X$reverse" = "X" ]; then
host $host >/dev/null 2>&1 if type host > /dev/null 2>/dev/null; then
host $host >/dev/null 2>&1 host $host >/dev/null 2>&1
host $host >/dev/null 2>&1
fi
timeout=15 timeout=15
if [ "X$SSVNC_FETCH_TIMEOUT" != "X" ]; then if [ "X$SSVNC_FETCH_TIMEOUT" != "X" ]; then
timeout=$SSVNC_FETCH_TIMEOUT timeout=$SSVNC_FETCH_TIMEOUT

@ -439,8 +439,9 @@ proc help {} {
Options -> Help), the port mapping is similar, except "listening Options -> Help), the port mapping is similar, except "listening
display :0" corresponds to port 5500, :1 to 5501, etc. display :0" corresponds to port 5500, :1 to 5501, etc.
Specify a specific interface, e.g. 192.168.1.1:0 to have stunnel Specify a specific interface, e.g. 192.168.1.1:0 to have stunnel
only listen on that interface. IPv6 also works, e.g. :::0 or ::1:0 listen on that interface only. Listening on IPv6 can also be done, use
This also works for UN-encrypted reverse connections as well ('None'). e.g. :::0 or ::1:0 This listening on IPv6 (:::0) works for UN-encrypted
reverse connections as well (mode 'None').
Zeroconf/Bonjour: Zeroconf/Bonjour:
@ -3455,6 +3456,9 @@ proc do_viewer_windows {n} {
set nn [expr "$nn + 5500"] set nn [expr "$nn + 5500"]
} }
global direct_connect_reverse_host_orig is_win9x global direct_connect_reverse_host_orig is_win9x
if {![info exists direct_connect_reverse_host_orig]} {
set direct_connect_reverse_host_orig ""
}
if {$direct_connect_reverse_host_orig != "" && !$is_win9x} { if {$direct_connect_reverse_host_orig != "" && !$is_win9x} {
set nn2 [expr $nn + 15] set nn2 [expr $nn + 15]
set h0 $direct_connect_reverse_host_orig set h0 $direct_connect_reverse_host_orig
@ -8627,11 +8631,15 @@ proc launch {{hp ""}} {
set ipv6_pid "" set ipv6_pid ""
global have_ipv6 global have_ipv6
if {$have_ipv6} { if {$have_ipv6} {
set res [ipv6_proxy $proxy $host $port] if {$proxy == "" && $use_ssl} {
set proxy [lindex $res 0] # stunnel can handle ipv6
set host [lindex $res 1] } else {
set port [lindex $res 2] set res [ipv6_proxy $proxy $host $port]
set ipv6_pid [lindex $res 3] set proxy [lindex $res 0]
set host [lindex $res 1]
set port [lindex $res 2]
set ipv6_pid [lindex $res 3]
}
} }
if {$proxy != ""} { if {$proxy != ""} {

@ -387,7 +387,7 @@ if [ "X$SSVNC_BUILD_SKIP_STUNNEL" = "X" ]; then
cd $tmp/stunnel cd $tmp/stunnel
if [ `uname` = "SunOS" ]; then if [ `uname` = "SunOS" ]; then
cp configure configure.orig cp configure configure.orig
sed -e "s,/var/ssl,/var/ssl /usr/sfw," configure.orig > configure sed -e "s,maindir in,maindir in /usr/sfw," configure.orig > configure
fi fi
env LDFLAGS="-L$start/$libs $LDFLAGS_OS" CPPFLAGS="$CPPFLAGS_OS" ./configure --disable-libwrap --enable-ipv6 env LDFLAGS="-L$start/$libs $LDFLAGS_OS" CPPFLAGS="$CPPFLAGS_OS" ./configure --disable-libwrap --enable-ipv6
make make

@ -5,13 +5,13 @@
.\" Copyright (C) 1998 Marcus.Brinkmann@ruhr-uni-bochum.de .\" Copyright (C) 1998 Marcus.Brinkmann@ruhr-uni-bochum.de
.\" Copyright (C) 2000,2001 Red Hat, Inc. .\" Copyright (C) 2000,2001 Red Hat, Inc.
.\" Copyright (C) 2001-2003 Constantin Kaplinsky <const@ce.cctpu.edu.ru> .\" Copyright (C) 2001-2003 Constantin Kaplinsky <const@ce.cctpu.edu.ru>
.\" Copyright (C) 2006-2009 Karl J. Runge <runge@karlrunge.com> .\" Copyright (C) 2006-2010 Karl J. Runge <runge@karlrunge.com>
.\" .\"
.\" You may distribute under the terms of the GNU General Public .\" You may distribute under the terms of the GNU General Public
.\" License as specified in the file LICENCE.TXT that comes with the .\" License as specified in the file LICENCE.TXT that comes with the
.\" TightVNC distribution. .\" TightVNC distribution.
.\" .\"
.TH ssvncviewer 1 "September 2009" "" "SSVNC" .TH ssvncviewer 1 "April 2010" "" "SSVNC"
.SH NAME .SH NAME
ssvncviewer \- an X viewer client for VNC ssvncviewer \- an X viewer client for VNC
.SH SYNOPSIS .SH SYNOPSIS
@ -453,6 +453,12 @@ To save writing a shell script to set environment
variables, specify as many as you need on the command line. For example, variables, specify as many as you need on the command line. For example,
-env SSVNC_MULTIPLE_LISTEN=MAX:5 -env EDITOR=vi -env SSVNC_MULTIPLE_LISTEN=MAX:5 -env EDITOR=vi
.TP .TP
\fB\-noipv6\fR
Disable all IPv6 sockets. Same as VNCVIEWER_NO_IPV6=1.
.TP
\fB\-noipv4\fR
Disable all IPv4 sockets. Same as VNCVIEWER_NO_IPV4=1.
.TP
\fB\-printres\fR \fB\-printres\fR
Print out the Ssvnc X resources (appdefaults) and Print out the Ssvnc X resources (appdefaults) and
then exit. You can save them to a file and customize them (e.g. the then exit. You can save them to a file and customize them (e.g. the

@ -1,56 +1,44 @@
diff -Naur stunnel.orig/src/client.c stunnel/src/client.c diff -Naur stunnel.orig/src/client.c stunnel/src/client.c
--- stunnel.orig/src/client.c 2008-03-27 04:35:27.000000000 -0400 --- stunnel.orig/src/client.c 2010-04-04 17:00:29.000000000 -0400
+++ stunnel/src/client.c 2008-11-19 21:40:00.000000000 -0500 +++ stunnel/src/client.c 2010-04-12 17:12:47.000000000 -0400
@@ -191,6 +191,7 @@ @@ -187,6 +187,7 @@
enter_critical_section(CRIT_CLIENTS); /* for multi-cpu machines */ enter_critical_section(CRIT_CLIENTS); /* for multi-cpu machines */
s_log(LOG_DEBUG, "%s finished (%d left)", c->opt->servname, s_log(LOG_DEBUG, "Service %s finished (%d left)", c->opt->servname,
--num_clients); --num_clients);
+ if (getenv("STUNNEL_ONCE")) {fprintf(stderr, "stunnel: exiting.\n"); exit(0);} + if (getenv("STUNNEL_ONCE")) {fprintf(stderr, "stunnel: exiting.\n"); exit(0);}
leave_critical_section(CRIT_CLIENTS); leave_critical_section(CRIT_CLIENTS);
#endif #endif
} }
diff -Naur stunnel.orig/src/network.c stunnel/src/network.c diff -Naur stunnel.orig/src/network.c stunnel/src/network.c
--- stunnel.orig/src/network.c 2008-03-27 05:28:16.000000000 -0400 --- stunnel.orig/src/network.c 2010-02-04 05:31:45.000000000 -0500
+++ stunnel/src/network.c 2008-11-19 21:39:41.000000000 -0500 +++ stunnel/src/network.c 2010-04-12 17:13:53.000000000 -0400
@@ -346,6 +346,7 @@ @@ -437,6 +437,7 @@
/* no logging is possible in a signal handler */
#ifdef USE_FORK
--num_clients; /* one client less */
+ if (getenv("STUNNEL_ONCE")) exit(0);
#endif /* USE_FORK */
}
#else /* __sgi */
@@ -432,9 +433,11 @@
#ifdef HAVE_WAIT_FOR_PID
while((pid=wait_for_pid(-1, &status, WNOHANG))>0) {
--num_clients; /* one client less */
+ if (getenv("STUNNEL_ONCE")) exit(0);
#else
if((pid=wait(&status))>0) { if((pid=wait(&status))>0) {
--num_clients; /* one client less */ --num_clients; /* one client less */
+ if (getenv("STUNNEL_ONCE")) exit(0);
#endif #endif
+ if (getenv("STUNNEL_ONCE")) exit(0);
#ifdef WIFSIGNALED #ifdef WIFSIGNALED
if(WIFSIGNALED(status)) { if(WIFSIGNALED(status)) {
s_log(LOG_DEBUG, "Process %d terminated on signal %d (%d left)",
diff -Naur stunnel.orig/src/options.c stunnel/src/options.c diff -Naur stunnel.orig/src/options.c stunnel/src/options.c
--- stunnel.orig/src/options.c 2008-06-21 17:18:23.000000000 -0400 --- stunnel.orig/src/options.c 2010-04-05 14:44:43.000000000 -0400
+++ stunnel/src/options.c 2008-11-19 21:15:01.000000000 -0500 +++ stunnel/src/options.c 2010-04-12 17:19:18.000000000 -0400
@@ -465,6 +465,7 @@ @@ -470,6 +470,7 @@
switch(cmd) { switch(cmd) {
case CMD_INIT: case CMD_INIT:
options.option.syslog=1; new_global_options.option.syslog=1;
+ if (getenv("STUNNEL_NO_SYSLOG")) options.option.syslog=0; + if (getenv("STUNNEL_NO_SYSLOG")) new_global_options.option.syslog=0;
break; break;
case CMD_EXEC: case CMD_EXEC:
if(strcasecmp(opt, "syslog")) if(strcasecmp(opt, "syslog"))
diff -Naur stunnel.orig/src/stunnel.c stunnel/src/stunnel.c diff -Naur stunnel.orig/src/stunnel.c stunnel/src/stunnel.c
--- stunnel.orig/src/stunnel.c 2008-06-21 17:32:45.000000000 -0400 --- stunnel.orig/src/stunnel.c 2010-02-25 04:57:11.000000000 -0500
+++ stunnel/src/stunnel.c 2008-11-19 21:14:28.000000000 -0500 +++ stunnel/src/stunnel.c 2010-04-12 17:16:33.000000000 -0400
@@ -301,6 +301,7 @@ @@ -306,6 +306,7 @@
max_clients=0;
s_log(LOG_NOTICE, "No limit detected for the number of clients");
} }
#endif + if (getenv("STUNNEL_MAX_CLIENTS")) max_clients = atoi(getenv("STUNNEL_MAX_CLIENTS"));
#endif
+ if (getenv("STUNNEL_MAX_CLIENTS")) max_clients = atoi(getenv("STUNNEL_MAX_CLIENTS"));
} }
#if !defined (USE_WIN32) && !defined (__vms) && !defined(USE_OS2) #ifdef HAVE_CHROOT

Loading…
Cancel
Save