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 - 1.38
+++ sesman/session.c 10 Mar 2010 10:22:05 -
@@ -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();