Simplify our Remote Desktop session detection.
authorgerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 16 Dec 2010 19:52:59 +0000 (19:52 +0000)
committergerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 16 Dec 2010 19:52:59 +0000 (19:52 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@35206 f5534014-38df-0310-8fa8-9805f1628bb7

util.c

diff --git a/util.c b/util.c
index 500330a8fc04e3f2c2909b830a1dcbd81ea6b41e..444cf96141c0cd39e2ffff5bec24c7c7efafde43 100644 (file)
--- a/util.c
+++ b/util.c
 #include <unistd.h>
 #endif
 
+#ifdef HAVE_WINDOWS_H
+#include <windows.h>
+#endif
+
 #include <epan/address.h>
 #include <epan/addr_resolv.h>
 #include <epan/strutil.h>
@@ -326,21 +330,10 @@ const gchar *get_conn_cfilter(void) {
                        host_ip_af(phostname), phostname);
                g_free(phostname);
                return filter_str->str;
-       } else if ((env = getenv("SESSIONNAME")) != NULL) {
-               /* Apparently the KB article at
-                * http://technet2.microsoft.com/WindowsServer/en/library/6caf87bf-3d70-4801-9485-87e9ec3df0171033.mspx?mfr=true
-                * is incorrect.  There are _plenty_ of cases where CLIENTNAME
-                * and SESSIONNAME are set outside of a Terminal Terver session.
-                * It looks like Terminal Server sets SESSIONNAME to RDP-TCP#<number>
-                * for "real" sessions.
-                *
-                * XXX - There's a better way to do this described at
-                * http://www.microsoft.com/technet/archive/termsrv/maintain/featusability/tsrvapi.mspx?mfr=true
-                */
-               if (g_ascii_strncasecmp(env, "rdp", 3) == 0) {
-                       g_string_printf(filter_str, "not tcp port 3389");
-                       return filter_str->str;
-               }
+       } else if (GetSystemMetrics(SM_REMOTESESSION)) {
+               /* We have a remote session: http://msdn.microsoft.com/en-us/library/aa380798%28VS.85%29.aspx */
+               g_string_printf(filter_str, "not tcp port 3389");
+               return filter_str->str;
        }
        return "";
 }