Hi,

I think I found the bug. When comparing the type of the new session to
previous ones, different enum namespaces are used:

- The type parameter of session_get_bydata is a SCP_SESSION_TYPE enum
value
- The type item of a single session list item is a SESMAN_SESSION_TYPE
enum value (filled via calls to session_start)

Attached is a patch for that bug which solves the problem for me. Might
also be worth sending upstream, but the upstream bug tracker seems
abandoned.

Regards,

Danny
Index: sesman/session.c
===================================================================
RCS file: /cvsroot/xrdp/xrdp/sesman/session.c,v
retrieving revision 1.38
diff -u -r1.38 session.c
--- sesman/session.c	26 Dec 2009 23:02:56 -0000	1.38
+++ sesman/session.c	10 Mar 2010 10:22:05 -0000
@@ -55,6 +55,19 @@
 {
   struct session_chain* tmp;
 
+  /* convert from SCP_SESSION_TYPE namespace to SESMAN_SESSION_TYPE namespace */
+  switch (type)
+  {
+    case SCP_SESSION_TYPE_XVNC:
+      type = SESMAN_SESSION_TYPE_XVNC;
+      break;
+    case SCP_SESSION_TYPE_XRDP:
+      type = SESMAN_SESSION_TYPE_XRDP;
+      break;
+    default:
+      return 0;
+  }
+
   /*THREAD-FIX require chain lock */
   lock_chain_acquire();
 

Reply via email to