Hello community,

here is the log from the commit of package rdesktop for openSUSE:Factory 
checked in at 2013-11-29 16:25:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rdesktop (Old)
 and      /work/SRC/openSUSE:Factory/.rdesktop.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rdesktop"

Changes:
--------
--- /work/SRC/openSUSE:Factory/rdesktop/rdesktop.changes        2013-08-23 
11:05:05.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rdesktop.new/rdesktop.changes   2013-11-29 
16:25:43.000000000 +0100
@@ -1,0 +2,16 @@
+Wed Nov 27 12:02:29 UTC 2013 - [email protected]
+
+- update to 1.8.1
+  * Fix a typo in configure.ac
+  * Fix a bug which made rdesktop steal CPU cycles.
+  * Fix issue with reconnect, make use of deactivate variable
+  * Added 4 new disconnect reasons with exit codes
+  * Fix issues of window handling in SeamlessRDP parts of rdesktop
+  * Fix a backward compability with OpenSSL < 0.9.9
+  * Fix a bug when code needs a x window available but there are none.
+  * Fix a sigsegv zeroing memory
+  * Fix a 64bit portability issue
+- remove obsolete patches
+  * tcp_return, 64bit_portability_issue
+
+-------------------------------------------------------------------

Old:
----
  rdesktop-1.8.0.tar.gz
  rdesktop-64bit_portability_issue.patch
  rdesktop-tcp_return.patch

New:
----
  rdesktop-1.8.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rdesktop.spec ++++++
--- /var/tmp/diff_new_pack.AVwUeM/_old  2013-11-29 16:25:44.000000000 +0100
+++ /var/tmp/diff_new_pack.AVwUeM/_new  2013-11-29 16:25:44.000000000 +0100
@@ -21,16 +21,12 @@
 License:        GPL-3.0+
 Group:          Productivity/Networking/Other
 #Group:          Productivity/Networking/Remote Desktop
-Version:        1.8.0
+Version:        1.8.1
 Release:        0
 Url:            http://www.rdesktop.org/
 Source:         %{name}-%{version}.tar.gz
 ## FIX-openSUSE: remove "Don't depend on pkg-config"
 Patch0:         rdesktop-fix_pkgconfig_check.patch
-### FIX UPSTREAM: http://sourceforge.net/p/rdesktop/code/1728/
-Patch1:         rdesktop-tcp_return.patch
-### FIX UPSTREAM: http://sourceforge.net/p/rdesktop/code/1729/
-Patch2:         rdesktop-64bit_portability_issue.patch 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  alsa-devel
 BuildRequires:  automake
@@ -50,8 +46,6 @@
 %prep
 %setup
 %patch0
-%patch1
-%patch2
 ## rpmlint
 # incorrect-fsf-address /usr/share/rdesktop/keymaps/convert-map
 perl -p -i -e 's|^# Foundation.*|# Foundation, 51 Franklin Street, Suite 500, 
Boston, MA 02110-1335, USA|' keymaps/convert-map

++++++ rdesktop-1.8.0.tar.gz -> rdesktop-1.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/configure new/rdesktop-1.8.1/configure
--- old/rdesktop-1.8.0/configure        2013-08-09 08:12:26.000000000 +0200
+++ new/rdesktop-1.8.1/configure        2013-11-18 09:10:00.000000000 +0100
@@ -1,11 +1,9 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for rdesktop 1.8.0.
+# Generated by GNU Autoconf 2.69 for rdesktop 1.8.1.
 #
 #
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -134,6 +132,31 @@
 # CDPATH.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) 
>/dev/null 2>&1; then :
   emulate sh
@@ -167,7 +190,8 @@
 else
   exitcode=1; echo positional parameters were not saved.
 fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
   as_suggested="  
as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" 
as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" 
as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -212,21 +236,25 @@
 
 
       if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-       # neutralization value for shells without unset; and this also
-       # works around shells that cannot unset nonexistent variables.
-       # Preserve -v and -x to the replacement shell.
-       BASH_ENV=/dev/null
-       ENV=/dev/null
-       (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-       export CONFIG_SHELL
-       case $- in # ((((
-         *v*x* | *x*v* ) as_opts=-vx ;;
-         *v* ) as_opts=-v ;;
-         *x* ) as_opts=-x ;;
-         * ) as_opts= ;;
-       esac
-       exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
 fi
 
     if test x$as_have_required = xno; then :
@@ -328,6 +356,14 @@
 
 
 } # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -449,6 +485,10 @@
   chmod +x "$as_me.lineno" ||
     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX 
shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
   # original and so on.  Autoconf is especially sensitive to this).
@@ -483,16 +523,16 @@
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -504,28 +544,8 @@
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in #(
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 
'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -557,8 +577,8 @@
 # Identity of this package.
 PACKAGE_NAME='rdesktop'
 PACKAGE_TARNAME='rdesktop'
-PACKAGE_VERSION='1.8.0'
-PACKAGE_STRING='rdesktop 1.8.0'
+PACKAGE_VERSION='1.8.1'
+PACKAGE_STRING='rdesktop 1.8.1'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1197,8 +1217,6 @@
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't 
use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1284,7 +1302,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures rdesktop 1.8.0 to adapt to many kinds of systems.
+\`configure' configures rdesktop 1.8.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1353,7 +1371,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of rdesktop 1.8.0:";;
+     short | recursive ) echo "Configuration of rdesktop 1.8.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1491,10 +1509,10 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-rdesktop configure 1.8.0
-generated by GNU Autoconf 2.68
+rdesktop configure 1.8.1
+generated by GNU Autoconf 2.69
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1680,7 +1698,7 @@
         test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
         test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
+        test -x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -2013,8 +2031,8 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by rdesktop $as_me 1.8.0, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+It was created by rdesktop $as_me 1.8.1, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
 
@@ -2487,7 +2505,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -2527,7 +2545,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -2580,7 +2598,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -2621,7 +2639,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -2679,7 +2697,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -2723,7 +2741,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -3169,8 +3187,7 @@
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3296,7 +3313,7 @@
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-       if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_prog$ac_exec_ext"; }; then
+       if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
          if test $ac_prog = install &&
            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
@@ -3513,7 +3530,7 @@
     for ac_prog in grep ggrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+      as_fn_executable_p "$ac_path_GREP" || continue
 # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
 case `"$ac_path_GREP" --version 2>&1` in
@@ -3579,7 +3596,7 @@
     for ac_prog in egrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+      as_fn_executable_p "$ac_path_EGREP" || continue
 # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
 case `"$ac_path_EGREP" --version 2>&1` in
@@ -4696,7 +4713,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -4739,7 +4756,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -4956,7 +4973,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -4996,7 +5013,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_STRIP="strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -5186,6 +5203,7 @@
 
 
 
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
        if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a 
program name with args.
@@ -5206,7 +5224,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -5249,7 +5267,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x 
"$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
     break 2
@@ -5317,6 +5335,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GSSGLUE_CFLAGS=`$PKG_CONFIG --cflags "libgssglue" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5333,6 +5352,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GSSGLUE_LIBS=`$PKG_CONFIG --libs "libgssglue" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5352,9 +5372,9 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
"libgssglue" 2>&1`
+               GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
--cflags --libs "libgssglue" 2>&1`
         else
-               GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libgssglue" 
2>&1`
+               GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs 
"libgssglue" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$GSSGLUE_PKG_ERRORS" >&5
@@ -5391,7 +5411,7 @@
 
          else
                echo
-               echo "CredSPP support requires libggsglue, install the 
dependency"
+               echo "CredSPP support requires libgssglue, install the 
dependency"
                echo "or disable the feature using --disable-credssp."
                echo
                exit 1
@@ -5417,6 +5437,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_XRANDR_CFLAGS=`$PKG_CONFIG --cflags "xrandr" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5433,6 +5454,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_XRANDR_LIBS=`$PKG_CONFIG --libs "xrandr" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5452,9 +5474,9 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               XRANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
"xrandr" 2>&1`
+               XRANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
--cflags --libs "xrandr" 2>&1`
         else
-               XRANDR_PKG_ERRORS=`$PKG_CONFIG --print-errors "xrandr" 2>&1`
+               XRANDR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs 
"xrandr" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$XRANDR_PKG_ERRORS" >&5
@@ -5516,6 +5538,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_PCSCLITE_CFLAGS=`$PKG_CONFIG --cflags "libpcsclite" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5532,6 +5555,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_PCSCLITE_LIBS=`$PKG_CONFIG --libs "libpcsclite" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5551,9 +5575,9 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
"libpcsclite" 2>&1`
+               PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
--cflags --libs "libpcsclite" 2>&1`
         else
-               PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpcsclite" 
2>&1`
+               PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs 
"libpcsclite" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$PCSCLITE_PKG_ERRORS" >&5
@@ -5776,6 +5800,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_LIBAO_CFLAGS=`$PKG_CONFIG --cflags "ao" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5792,6 +5817,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_LIBAO_LIBS=`$PKG_CONFIG --libs "ao" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5811,9 +5837,9 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               LIBAO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
"ao" 2>&1`
+               LIBAO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
--cflags --libs "ao" 2>&1`
         else
-               LIBAO_PKG_ERRORS=`$PKG_CONFIG --print-errors "ao" 2>&1`
+               LIBAO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs 
"ao" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$LIBAO_PKG_ERRORS" >&5
@@ -5845,6 +5871,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_ALSA_CFLAGS=`$PKG_CONFIG --cflags "alsa" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5861,6 +5888,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_ALSA_LIBS=`$PKG_CONFIG --libs "alsa" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5880,9 +5908,9 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               ALSA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
"alsa" 2>&1`
+               ALSA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
--cflags --libs "alsa" 2>&1`
         else
-               ALSA_PKG_ERRORS=`$PKG_CONFIG --print-errors "alsa" 2>&1`
+               ALSA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs 
"alsa" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$ALSA_PKG_ERRORS" >&5
@@ -5914,6 +5942,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_LIBSAMPLERATE_CFLAGS=`$PKG_CONFIG --cflags "samplerate" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5930,6 +5959,7 @@
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_LIBSAMPLERATE_LIBS=`$PKG_CONFIG --libs "samplerate" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5949,9 +5979,9 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors 
--print-errors "samplerate" 2>&1`
+               LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors 
--print-errors --cflags --libs "samplerate" 2>&1`
         else
-               LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --print-errors 
"samplerate" 2>&1`
+               LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags 
--libs "samplerate" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$LIBSAMPLERATE_PKG_ERRORS" >&5
@@ -7274,6 +7304,8 @@
 esac
 rm -rf conftest*
   fi
+
+
 fi
 
 
@@ -7899,16 +7931,16 @@
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -7968,28 +8000,16 @@
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in #(
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 
'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -8010,8 +8030,8 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by rdesktop $as_me 1.8.0, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+This file was extended by rdesktop $as_me 1.8.1, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -8063,11 +8083,11 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-rdesktop config.status 1.8.0
-configured by $0, generated by GNU Autoconf 2.68,
+rdesktop config.status 1.8.1
+configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -8145,7 +8165,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create 
--no-recursion
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create 
--no-recursion
   shift
   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/configure.ac 
new/rdesktop-1.8.1/configure.ac
--- old/rdesktop-1.8.0/configure.ac     2013-08-09 08:11:22.000000000 +0200
+++ new/rdesktop-1.8.1/configure.ac     2013-11-18 09:08:49.000000000 +0100
@@ -1,4 +1,4 @@
-AC_INIT(rdesktop, 1.8.0)
+AC_INIT(rdesktop, 1.8.1)
 
 AC_CONFIG_SRCDIR([rdesktop.c])
 
@@ -142,7 +142,7 @@
              AC_DEFINE(WITH_CREDSSP)
          else
                echo
-               echo "CredSPP support requires libggsglue, install the 
dependency"
+               echo "CredSPP support requires libgssglue, install the 
dependency"
                echo "or disable the feature using --disable-credssp."
                echo
                exit 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/constants.h 
new/rdesktop-1.8.1/constants.h
--- old/rdesktop-1.8.0/constants.h      2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/constants.h      2013-11-18 08:00:35.000000000 +0100
@@ -454,7 +454,10 @@
 #define exDiscReasonOutOfMemory                                0x0006
 #define exDiscReasonServerDeniedConnection             0x0007
 #define exDiscReasonServerDeniedConnectionFips         0x0008
-#define exDiscReasonWindows7Disconnect                  0x000b /* unofficial */
+#define exDiscReasonServerInsufficientPrivileges        0x0009
+#define exDiscReasonServerFreshCredentialsRequired      0x000a
+#define exDiscReasonRPCInitiatedDisconnectByUser        0x000b
+#define exDiscReasonByUser                              0x000c
 #define exDiscReasonLicenseInternal                    0x0100
 #define exDiscReasonLicenseNoLicenseServer             0x0101
 #define exDiscReasonLicenseNoLicense                   0x0102
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/ctrl.c new/rdesktop-1.8.1/ctrl.c
--- old/rdesktop-1.8.0/ctrl.c   2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/ctrl.c   2013-11-18 08:00:35.000000000 +0100
@@ -406,7 +406,7 @@
                                break;
                        }
 
-                       if (res >= 0)
+                       if (res > 0)
                        {
                                /* Check if we got full command line */
                                char *p;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/doc/ChangeLog 
new/rdesktop-1.8.1/doc/ChangeLog
--- old/rdesktop-1.8.0/doc/ChangeLog    2013-08-09 10:11:13.000000000 +0200
+++ new/rdesktop-1.8.1/doc/ChangeLog    2013-11-18 09:08:24.000000000 +0100
@@ -1,3 +1,16 @@
+rdesktop (1.8.1)
+  * Fix a typo in configure.ac
+  * Fix a bug which made rdesktop steal CPU cycles.
+  * Fix issue with reconnect, make use of deactivate variable
+  * Added 4 new disconnect reasons with exit codes
+  * Fix issues of window handling in SeamlessRDP parts of rdesktop
+  * Fix a backward compability with OpenSSL < 0.9.9
+  * Fix a bug when code needs a x window available but there are none.
+  * Fix a sigsegv zeroing memory
+  * Fix a 64bit portability issue
+
+  -- Henrik Andersson <[email protected]> 2013-11-18
+
 rdesktop (1.8.0)
   * Support for protocol negotiation eg. SSL/TLSv1 and CredSSP
   * Support for CredSSP + Kerberos authentication (NLA)
@@ -13,6 +26,8 @@
   * Fix crash and memory leak in local drive redirection
   * Fixes issues with license files loading/saving
 
+  -- Henrik Andersson <[email protected]> 2013-08-09
+
 rdesktop (1.7.1)
   * Fix clipboard issue when not building with unicode support
   * Fix compilation against newer PCSC lite versions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/doc/rdesktop.1 
new/rdesktop-1.8.1/doc/rdesktop.1
--- old/rdesktop-1.8.0/doc/rdesktop.1   2013-03-26 10:28:00.000000000 +0100
+++ new/rdesktop-1.8.1/doc/rdesktop.1   2013-11-18 08:00:34.000000000 +0100
@@ -282,6 +282,16 @@
 The server denied the connection
 .IP "\fB8\fP"
 The server denied the connection for security reason
+.IP "\fB9\fP"
+The user cannot connect to the server due to insufficient access
+privileges
+.IP "\fB10\fP"
+The server does not accept saved user credentials and requires that
+the user enter their credentials for each connection
+.IP "\fB11\fP"
+Disconnect initiated by administration tool
+.IP "\fB12\fP"
+Disconnect initiated by user
 .IP "\fB16\fP"
 Internal licensing error
 .IP "\fB17\fP"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/ewmhints.c 
new/rdesktop-1.8.1/ewmhints.c
--- old/rdesktop-1.8.0/ewmhints.c       2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/ewmhints.c       2013-11-18 08:00:35.000000000 +0100
@@ -203,7 +203,7 @@
 {
        unsigned long nitems_return;
        unsigned char *prop_return;
-       uint32 *return_words;
+       unsigned long *return_words;
        unsigned long item;
        RD_BOOL maximized_vert, maximized_horz, hidden;
 
@@ -212,7 +212,7 @@
        if (get_property_value(w, "_NET_WM_STATE", 64, &nitems_return, 
&prop_return, 0) < 0)
                return SEAMLESSRDP_NORMAL;
 
-       return_words = (uint32 *) prop_return;
+       return_words = (unsigned long *) prop_return;
 
        for (item = 0; item < nitems_return; item++)
        {
@@ -226,10 +226,11 @@
 
        XFree(prop_return);
 
-       if (maximized_vert && maximized_horz)
-               return SEAMLESSRDP_MAXIMIZED;
-       else if (hidden)
+       /* In EWMH, HIDDEN overrides MAXIMIZED_VERT/MAXIMIZED_HORZ */
+       if (hidden)
                return SEAMLESSRDP_MINIMIZED;
+       else if (maximized_vert && maximized_horz)
+               return SEAMLESSRDP_MAXIMIZED;
        else
                return SEAMLESSRDP_NORMAL;
 }
@@ -542,6 +543,33 @@
        return 0;
 }
 
+RD_BOOL
+ewmh_is_window_above(Window w)
+{
+       unsigned long nitems_return;
+       unsigned char *prop_return;
+       unsigned long *return_words;
+       unsigned long item;
+       RD_BOOL above;
+
+       above = False;
+
+       if (get_property_value(w, "_NET_WM_STATE", 64, &nitems_return, 
&prop_return, 0) < 0)
+               return False;
+
+       return_words = (unsigned long *) prop_return;
+
+       for (item = 0; item < nitems_return; item++)
+       {
+               if (return_words[item] == g_net_wm_state_above_atom)
+                       above = True;
+       }
+
+       XFree(prop_return);
+
+       return above;
+}
+
 #endif /* MAKE_PROTO */
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/proto.h new/rdesktop-1.8.1/proto.h
--- old/rdesktop-1.8.0/proto.h  2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/proto.h  2013-11-18 08:00:34.000000000 +0100
@@ -144,6 +144,7 @@
 char *l_to_a(long N, int base);
 int load_licence(unsigned char **data);
 void save_licence(unsigned char *data, int length);
+void rd_create_ui(void);
 RD_BOOL rd_pstcache_mkdir(void);
 int rd_open_file(char *filename);
 void rd_close_file(int fd);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/rdesktop.c 
new/rdesktop-1.8.1/rdesktop.c
--- old/rdesktop-1.8.0/rdesktop.c       2013-06-27 12:37:42.000000000 +0200
+++ new/rdesktop-1.8.1/rdesktop.c       2013-11-18 08:00:35.000000000 +0100
@@ -281,7 +281,6 @@
                        break;
 
                case exDiscReasonAPIInitiatedDisconnect:
-               case exDiscReasonWindows7Disconnect:
                        text = "Server initiated disconnect";
                        retval = EXRD_API_DISCONNECT;
                        break;
@@ -321,6 +320,26 @@
                        retval = EXRD_DENIED_FIPS;
                        break;
 
+               case exDiscReasonServerInsufficientPrivileges:
+                       text = "The user cannot connect to the server due to 
insufficient access privileges.";
+                       retval = EXRD_INSUFFICIENT_PRIVILEGES;
+                       break;
+
+               case exDiscReasonServerFreshCredentialsRequired:
+                       text = "The server does not accept saved user 
credentials and requires that the user enter their credentials for each 
connection.";
+                       retval = EXRD_FRESH_CREDENTIALS_REQUIRED;
+                       break;
+
+               case exDiscReasonRPCInitiatedDisconnectByUser:
+                       text = "Disconnect initiated by administration tool";
+                       retval = EXRD_RPC_DISCONNECT_BY_USER;
+                       break;
+
+               case exDiscReasonByUser:
+                       text = "Disconnect initiated by user";
+                       retval = EXRD_DISCONNECT_BY_USER;
+                       break;
+
                case exDiscReasonLicenseInternal:
                        text = "Internal licensing error";
                        retval = EXRD_LIC_INTERNAL;
@@ -510,7 +529,6 @@
 #ifdef WITH_RDPSND
        char *rdpsnd_optarg = NULL;
 #endif
-       int longidx;
 
 #ifdef HAVE_LOCALE_H
        /* Set locale according to environment */
@@ -1132,15 +1150,10 @@
                DEBUG(("Connection successful.\n"));
                memset(password, 0, sizeof(password));
 
-               /* only create a window if we dont have one intialized */
-               if (!ui_have_window())
-               {
-                       if (!ui_create_window())
-                               return EX_OSERR;
-               }
-
+               rd_create_ui();
                tcp_run_ui(True);
 
+               deactivated = False;
                g_redirect = False;
                g_reconnect_loop = False;
                rdp_main_loop(&deactivated, &ext_disc_reason);
@@ -1154,7 +1167,7 @@
                        continue;
 
                /* handle network error and start autoreconnect */
-               if (g_network_error)
+               if (g_network_error && !deactivated)
                {
                        fprintf(stderr,
                                "Disconnected due to network error, retrying to 
reconnect for %d minutes.\n",
@@ -1732,6 +1745,18 @@
        close(fd);
 }
 
+/* create rdesktop ui */
+void
+rd_create_ui()
+{
+       /* only create a window if we dont have one intialized */
+       if (!ui_have_window())
+       {
+               if (!ui_create_window())
+                       exit(EX_OSERR);
+       }
+}
+
 /* Create the bitmap cache directory */
 RD_BOOL
 rd_pstcache_mkdir(void)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/rdesktop.h 
new/rdesktop-1.8.1/rdesktop.h
--- old/rdesktop-1.8.0/rdesktop.h       2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/rdesktop.h       2013-11-18 08:00:35.000000000 +0100
@@ -100,6 +100,10 @@
 #define EXRD_OUT_OF_MEM 6
 #define EXRD_DENIED 7
 #define EXRD_DENIED_FIPS 8
+#define EXRD_INSUFFICIENT_PRIVILEGES 9
+#define EXRD_FRESH_CREDENTIALS_REQUIRED 10
+#define EXRD_RPC_DISCONNECT_BY_USER 11
+#define EXRD_DISCONNECT_BY_USER 12
 #define EXRD_LIC_INTERNAL 16
 #define EXRD_LIC_NOSERVER 17
 #define EXRD_LIC_NOLICENSE 18
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/rdesktop.spec 
new/rdesktop-1.8.1/rdesktop.spec
--- old/rdesktop-1.8.0/rdesktop.spec    2013-08-09 08:12:07.000000000 +0200
+++ new/rdesktop-1.8.1/rdesktop.spec    2013-11-18 09:09:45.000000000 +0100
@@ -1,6 +1,6 @@
 Summary: Remote Desktop Protocol client
 Name: rdesktop
-Version: 1.8.0
+Version: 1.8.1
 Release: 1
 License: GPL; see COPYING
 Group: Applications/Communications
@@ -11,7 +11,7 @@
 %description
 rdesktop is a client for Remote Desktop Protocol (RDP), used in a number of
 Microsoft products including Windows NT Terminal Server, Windows 2000 Server,
-Windows XP and Windows 2003 Server.
+Windows XP, Windows 2003 Server and Windows 2008r2.
 
 %prep
 rm -rf $RPM_BUILD_ROOT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/rdp.c new/rdesktop-1.8.1/rdp.c
--- old/rdesktop-1.8.0/rdp.c    2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/rdp.c    2013-11-18 08:00:35.000000000 +0100
@@ -1044,6 +1044,9 @@
        uint8 type;
        uint16 len_src_descriptor, len_combined_caps;
 
+       /* at this point we need to ensure that we have ui created */
+       rd_create_ui();
+
        in_uint32_le(s, g_rdp_shareid);
        in_uint16_le(s, len_src_descriptor);
        in_uint16_le(s, len_combined_caps);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/rdpsnd_dsp.c 
new/rdesktop-1.8.1/rdpsnd_dsp.c
--- old/rdesktop-1.8.0/rdpsnd_dsp.c     2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/rdpsnd_dsp.c     2013-11-18 08:00:34.000000000 +0100
@@ -255,7 +255,7 @@
 #ifdef HAVE_LIBSAMPLERATE
        if (src_converter == NULL)
        {
-               warning("no samplerate converter available!!\n");
+               warning("no samplerate converter available!\n");
                return 0;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/rdpsnd_libao.c 
new/rdesktop-1.8.1/rdpsnd_libao.c
--- old/rdesktop-1.8.0/rdpsnd_libao.c   2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/rdpsnd_libao.c   2013-11-18 08:00:35.000000000 +0100
@@ -111,6 +111,7 @@
 {
        ao_sample_format format;
 
+       memset(&format, 0, sizeof(format));
        format.bits = pwfx->wBitsPerSample;
        format.channels = pwfx->nChannels;
        format.rate = 44100;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/sc.c new/rdesktop-1.8.1/sc.c
--- old/rdesktop-1.8.0/sc.c     2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/sc.c     1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-#include <cardmon.h>
-
-int
-main(int argc, char **argv)
-{
-       CARD_DATA cd;
-       PCARD_DATA pcd;
-
-       memset(pcd, 0, sizeof(cd));
-
-       return 0;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/scard.c new/rdesktop-1.8.1/scard.c
--- old/rdesktop-1.8.0/scard.c  2013-08-09 07:32:55.000000000 +0200
+++ new/rdesktop-1.8.1/scard.c  2013-11-18 08:00:35.000000000 +0100
@@ -2,8 +2,8 @@
    rdesktop: A Remote Desktop Protocol client.
    Smart Card support
    Copyright (C) Alexi Volkov <[email protected]> 2006
-   Copyright 2010 Pierre Ossman <[email protected]> for Cendio AB
-   Copyright 2011 Henrik Andersson <[email protected]> for Cendio AB
+   Copyright 2010-2013 Pierre Ossman <[email protected]> for Cendio AB
+   Copyright 2011-2013 Henrik Andersson <[email protected]> for Cendio AB
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -1109,6 +1109,7 @@
        MYPCSC_SCARDCONTEXT myHContext;
        SERVER_DWORD dwTimeout;
        SERVER_DWORD dwCount;
+       SERVER_DWORD dwPointerId;
        SERVER_LPSCARD_READERSTATE_A rsArray, cur;
        MYPCSC_LPSCARD_READERSTATE_A myRsArray;
        long i;
@@ -1133,7 +1134,8 @@
                memset(rsArray, 0, dwCount * 
sizeof(SERVER_SCARD_READERSTATE_A));
                for (i = 0, cur = rsArray; i < dwCount; i++, cur++)
                {
-                       in_uint32_le(in, cur->szReader);
+                       in_uint32_le(in, dwPointerId);
+                       cur->szReader = (char *) (intptr_t) dwPointerId;
                        in_uint32_le(in, cur->dwCurrentState);
                        in_uint32_le(in, cur->dwEventState);
                        in_uint32_le(in, cur->cbAtr);
@@ -1989,26 +1991,6 @@
        rv = SCardGetAttrib(myHCard, (MYPCSC_DWORD) dwAttrId, pbAttr, &attrLen);
        dwAttrLen = attrLen;
 
-       if (dwAttrId == SCARD_ATTR_VENDOR_NAME && rv != SCARD_S_SUCCESS)
-       {
-               DEBUG_SCARD(("SCARD:    Faking attribute ATTR_VENDOR_NAME\n"));
-               pthread_mutex_lock(&hcardAccess);
-               PSCHCardRec hcard = hcardFirst;
-               while (hcard)
-               {
-                       if (hcard->hCard == hCard)
-                       {
-                               dwAttrLen = strlen(hcard->vendor);
-                               memcpy(pbAttr, hcard->vendor, dwAttrLen);
-                               rv = SCARD_S_SUCCESS;
-                               break;
-                       }
-                       hcard = hcard->next;
-               }
-               pthread_mutex_unlock(&hcardAccess);
-               DEBUG_SCARD(("[0x%.8x]\n", (unsigned int) rv));
-       }
-
        if (rv != SCARD_S_SUCCESS)
        {
                DEBUG_SCARD(("SCARD: -> Failure: %s (0x%08x)\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/seamless.c 
new/rdesktop-1.8.1/seamless.c
--- old/rdesktop-1.8.0/seamless.c       2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/seamless.c       2013-11-18 08:00:34.000000000 +0100
@@ -437,7 +437,7 @@
        s = channel_init(seamless_channel, len);
        out_uint8p(s, buf, len) s_mark_end(s);
 
-       DEBUG_SEAMLESS(("SeamlessRDP sending:%s", buf));
+       DEBUG_SEAMLESS(("seamlessrdp sending:%s", buf));
 
 #if 0
        printf("seamless send:\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/tcp.c new/rdesktop-1.8.1/tcp.c
--- old/rdesktop-1.8.0/tcp.c    2013-06-28 13:20:08.000000000 +0200
+++ new/rdesktop-1.8.1/tcp.c    2013-11-18 08:00:35.000000000 +0100
@@ -193,7 +193,7 @@
        int rcvd = 0, ssl_err;
 
        if (g_network_error == True)
-               return;
+               return NULL;
 
        if (s == NULL)
        {
@@ -318,7 +318,9 @@
                }
 
                options = 0;
+#ifdef SSL_OP_NO_COMPRESSION
                options |= SSL_OP_NO_COMPRESSION;
+#endif // __SSL_OP_NO_COMPRESSION
                options |= SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
                SSL_CTX_set_options(g_ssl_ctx, options);
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/xproto.h new/rdesktop-1.8.1/xproto.h
--- old/rdesktop-1.8.0/xproto.h 2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/xproto.h 2013-11-18 08:00:34.000000000 +0100
@@ -12,5 +12,6 @@
 void ewmh_set_icon(Window wnd, int width, int height, const char *rgba_data);
 void ewmh_del_icon(Window wnd, int width, int height);
 int ewmh_set_window_above(Window wnd);
+RD_BOOL ewmh_is_window_above(Window w);
 void set_keypress_keysym(unsigned int keycode, KeySym keysym);
 KeySym reset_keypress_keysym(unsigned int keycode, KeySym keysym);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rdesktop-1.8.0/xwin.c new/rdesktop-1.8.1/xwin.c
--- old/rdesktop-1.8.0/xwin.c   2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/xwin.c   2013-11-18 08:00:35.000000000 +0100
@@ -574,14 +574,14 @@
        XEvent xevent;
        sw_configurenotify_context context;
        struct timeval now;
-       struct timeval nextsecond;
+       struct timeval future;
        RD_BOOL got = False;
 
        context.window = wnd;
        context.serial = serial;
 
-       gettimeofday(&nextsecond, NULL);
-       nextsecond.tv_sec += 1;
+       gettimeofday(&future, NULL);
+       future.tv_usec += 500000;
 
        do
        {
@@ -593,7 +593,7 @@
                usleep(100000);
                gettimeofday(&now, NULL);
        }
-       while (timercmp(&now, &nextsecond, <));
+       while (timercmp(&now, &future, <));
 
        if (!got)
        {
@@ -4181,20 +4181,21 @@
                /* X11 windows must be at least 1x1 */
                return;
 
-       sw->xoffset = x;
-       sw->yoffset = y;
-       sw->width = width;
-       sw->height = height;
-
        /* If we move the window in a maximized state, then KDE won't
           accept restoration */
        switch (sw->state)
        {
                case SEAMLESSRDP_MINIMIZED:
                case SEAMLESSRDP_MAXIMIZED:
+                       sw_update_position(sw);
                        return;
        }
 
+       sw->xoffset = x;
+       sw->yoffset = y;
+       sw->width = width;
+       sw->height = height;
+
        /* FIXME: Perhaps use ewmh_net_moveresize_window instead */
        XMoveResizeWindow(g_display, sw->wnd, sw->xoffset, sw->yoffset, 
sw->width, sw->height);
 }
@@ -4206,6 +4207,7 @@
        seamless_window *sw;
        XWindowChanges values;
        unsigned long restack_serial;
+       unsigned int value_mask;
 
        if (!g_seamless_active)
                return;
@@ -4228,25 +4230,43 @@
                        return;
                }
 
-               if (!g_seamless_broken_restack)
+               values.stack_mode = Below;
+               value_mask = CWStackMode | CWSibling;
+               values.sibling = sw_behind->wnd;
+
+               /* Avoid that topmost windows references non-topmost
+                  windows, and vice versa. */
+               if (ewmh_is_window_above(sw->wnd))
+               {
+                       if (!ewmh_is_window_above(sw_behind->wnd))
+                       {
+                               /* Disallow, move to bottom of the
+                                  topmost stack. */
+                               values.stack_mode = Below;
+                               value_mask = CWStackMode;       /* Not sibling 
*/
+                       }
+               }
+               else
                {
-                       values.stack_mode = Below;
-                       values.sibling = sw_behind->wnd;
-                       restack_serial = XNextRequest(g_display);
-                       XReconfigureWMWindow(g_display, sw->wnd, 
DefaultScreen(g_display),
-                                            CWStackMode | CWSibling, &values);
-                       sw_wait_configurenotify(sw->wnd, restack_serial);
+                       if (ewmh_is_window_above(sw_behind->wnd))
+                       {
+                               /* Move to top of non-topmost
+                                  stack. */
+                               values.stack_mode = Above;
+                               value_mask = CWStackMode;       /* Not sibling 
*/
+                       }
                }
        }
        else
        {
                values.stack_mode = Above;
-               restack_serial = XNextRequest(g_display);
-               XReconfigureWMWindow(g_display, sw->wnd, 
DefaultScreen(g_display), CWStackMode,
-                                    &values);
-               sw_wait_configurenotify(sw->wnd, restack_serial);
+               value_mask = CWStackMode;
        }
 
+       restack_serial = XNextRequest(g_display);
+       XReconfigureWMWindow(g_display, sw->wnd, DefaultScreen(g_display), 
value_mask, &values);
+       sw_wait_configurenotify(sw->wnd, restack_serial);
+
        sw_restack_window(sw, behind);
 
        if (flags & SEAMLESSRDP_CREATE_TOPMOST)

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to