Let X server to keep track of client PIDs and process names. Also make
the client tracking interface available for external modules. Linking
order of Xnest libraries needs to be fixed, because libmain depends on
libdix and not vice versa.

Signed-off-by: Rami Ylimäki <[email protected]>
---
 configure.ac                 |    2 +-
 dix/main.c                   |    3 +++
 hw/xfree86/loader/sdksyms.sh |    1 +
 include/Makefile.am          |    1 +
 4 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/configure.ac b/configure.ac
index 1a1f2d3..bd7a6cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1527,7 +1527,7 @@ if test "x$XNEST" = xyes; then
        if test "x$have_xnest" = xno; then
                AC_MSG_ERROR([Xnest build explicitly requested, but required 
modules not found.])
        fi
-       XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB 
$GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB 
$MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DIX_LIB 
$MAIN_LIB $OS_LIB"
+       XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB 
$GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB 
$MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB 
$DIX_LIB $OS_LIB"
        XNEST_SYS_LIBS="$XNESTMODULES_LIBS $GLX_SYS_LIBS"
        AC_SUBST([XNEST_LIBS])
        AC_SUBST([XNEST_SYS_LIBS])
diff --git a/dix/main.c b/dix/main.c
index 5c46dc1..b46433b 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -104,6 +104,7 @@ Equipment Corporation.
 #include "extnsionst.h"
 #include "privates.h"
 #include "registry.h"
+#include "client.h"
 #ifdef PANORAMIX
 #include "panoramiXsrv.h"
 #else
@@ -260,6 +261,7 @@ int main(int argc, char *argv[], char *envp[])
         InitCoreDevices();
        InitInput(argc, argv);
        InitAndStartDevices();
+       InitClientIds(serverClient);
 
        dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset);
 
@@ -325,6 +327,7 @@ int main(int argc, char *argv[], char *envp[])
            screenInfo.numScreens = i;
        }
 
+       CloseClientIds(serverClient);
        dixFreePrivates(serverClient->devPrivates, PRIVATE_CLIENT);
        serverClient->devPrivates = NULL;
 
diff --git a/hw/xfree86/loader/sdksyms.sh b/hw/xfree86/loader/sdksyms.sh
index 13c5ae5..6463182 100755
--- a/hw/xfree86/loader/sdksyms.sh
+++ b/hw/xfree86/loader/sdksyms.sh
@@ -264,6 +264,7 @@ cat > sdksyms.c << EOF
 #include "colormap.h"
 #include "colormapst.h"
 #include "hotplug.h"
+#include "client.h"
 #include "cursor.h"
 #include "cursorstr.h"
 #include "dix.h"
diff --git a/include/Makefile.am b/include/Makefile.am
index e76de05..06cf46f 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -4,6 +4,7 @@ sdk_HEADERS =           \
        bstore.h        \
        bstorestr.h     \
        callback.h      \
+       client.h        \
        closestr.h      \
        closure.h       \
        colormap.h      \
-- 
1.6.3.3

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to