481N/A# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
481N/A# Use subject to license terms.
481N/A# Permission is hereby granted, free of charge, to any person obtaining a
481N/A# copy of this software and associated documentation files (the
481N/A# "Software"), to deal in the Software without restriction, including
481N/A# without limitation the rights to use, copy, modify, merge, publish,
481N/A# distribute,
and/or sell copies of the Software, and to permit persons
481N/A# to whom the Software is furnished to do so, provided that the above
481N/A# copyright notice(s) and this permission notice appear in all copies of
481N/A# the Software and that both the above copyright notice(s) and this
481N/A# permission notice appear in supporting documentation.
481N/A# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
481N/A# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
481N/A# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
481N/A# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
481N/A# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
481N/A# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
481N/A# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
1267N/A# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
481N/A# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
481N/A# Except as contained in this notice, the name of a copyright holder
928N/A# shall not be used in advertising or otherwise to promote the sale, use
931N/A# or other dealings in this Software without prior written authorization
931N/A# of the copyright holder.
481N/A@@ -215,6 +215,14 @@ dnl Find the math libary
481N/A AC_CHECK_LIB(m, cbrt, AC_DEFINE(HAVE_CBRT, 1, [Have the 'cbrt' function]))
481N/A+dnl Check for libtsol for Solaris Trusted Extensions module
481N/A+AC_CHECK_LIB(tsol, bsllow, [BUILD_TSOL_MODULE=yes], [BUILD_TSOL_MODULE=no])
481N/A+AM_CONDITIONAL(BUILD_TSOL_MODULE, [test x$BUILD_TSOL_MODULE = xyes])
481N/A+if test "x$BUILD_TSOL_MODULE" = xyes; then
481N/A+ TSOL_SYS_LIBS='-ltsol -ltsnet -lsecdb -lbsm'
481N/A@@ -1227,8 +1235,8 @@ AC_MSG_RESULT([$XVFB])
481N/A AM_CONDITIONAL(XVFB, [test "x$XVFB" = xyes])
481N/A if test "x$XVFB" = xyes; then
481N/A- XVFB_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $IA_LIB"
481N/A- XVFB_SYS_LIBS="$XVFBMODULES_LIBS"
481N/A+ XVFB_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $IA_LIB $TSOL_LIB"
481N/A+ XVFB_SYS_LIBS="$XVFBMODULES_LIBS $TSOL_SYS_LIBS"
481N/A AC_SUBST([XVFB_SYS_LIBS])
481N/A@@ -1245,8 +1253,8 @@ AC_MSG_RESULT([$XNEST])
481N/A AM_CONDITIONAL(XNEST, [test "x$XNEST" = xyes])
931N/A if test "x$XNEST" = xyes; then
931N/A- XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $DIX_LIB $OS_LIB $CONFIG_LIB $IA_LIB"
931N/A- XNEST_SYS_LIBS="$XNESTMODULES_LIBS"
481N/A+ XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $DIX_LIB $OS_LIB $CONFIG_LIB $IA_LIB $TSOL_LIB"
928N/A+ XNEST_SYS_LIBS="$XNESTMODULES_LIBS $TSOL_SYS_LIBS"
931N/A AC_SUBST([XNEST_SYS_LIBS])
928N/A@@ -1609,8 +1617,8 @@ AC_MSG_RESULT([$XPRINT])
481N/A if test "x$XPRINT" = xyes; then
481N/A PKG_CHECK_MODULES([XPRINTMODULES], [printproto x11 xfont $XDMCP_MODULES xau])
931N/A XPRINT_CFLAGS="$XPRINTMODULES_CFLAGS -DXPRINT"
931N/A- XPRINT_LIBS="$XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $RENDER_LIB $COMPOSITE_LIB $RANDR_LIB $XI_LIB $FIXES_LIB $DAMAGE_LIB $XI_LIB $GLX_LIBS $MIEXT_DAMAGE_LIB $XKB_LIB $XKB_STUB_LIB"
931N/A- XPRINT_SYS_LIBS="$XPRINTMODULES_LIBS"
931N/A+ XPRINT_LIBS="$XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $RENDER_LIB $COMPOSITE_LIB $RANDR_LIB $XI_LIB $FIXES_LIB $DAMAGE_LIB $XI_LIB $GLX_LIBS $MIEXT_DAMAGE_LIB $XKB_LIB $XKB_STUB_LIB $TSOL_LIB"
931N/A+ XPRINT_SYS_LIBS="$XPRINTMODULES_LIBS $TSOL_SYS_LIBS"
931N/A AC_SUBST([xpconfigdir])
931N/A@@ -1965,7 +1973,7 @@ if test "$KDRIVE" = yes; then
1267N/A KDRIVE_CFLAGS="$XSERVER_CFLAGS -DHAVE_KDRIVE_CONFIG_H $TSLIB_CFLAGS"
931N/A- KDRIVE_PURE_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $IA_LIB $OS_LIB"
931N/A+ KDRIVE_PURE_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $IA_LIB $TSOL_LIB $OS_LIB"
+# Add Sun Trusted Extensions extension
@@ -74,8 +74,8 @@ Equipment Corporation.
******************************************************************/
-/* XSERVER_DTRACE additions:
- * Copyright 2005-2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
@@ -177,6 +177,10 @@ extern int connBlockScreenStart;
static void KillAllClients(void);
+SecurityHookPtr pSecHook = NULL;
static int nextFreeClientID; /* always MIN free client ID */
static int nClients; /* number of authorized clients */
@@ -789,7 +793,12 @@ ProcCirculateWindow(ClientPtr client)
return(client->noClientException);
GetGeometry(ClientPtr client, xGetGeometryReply *rep)
@@ -1927,7 +1936,12 @@ ProcPutImage(ClientPtr client)
return (client->noClientException);
DoGetImage(ClientPtr client, int format, Drawable drawable,
int x, int y, int width, int height,
Mask planemask, xGetImageReply **im_return)
@@ -3400,6 +3414,11 @@ CloseDownClient(ClientPtr client)
BITCLEAR(grabWaiters, client->index);
+ (*pSecHook->DeleteClientFromAnySelections)(client);
DeleteClientFromAnySelections(client);
ReleaseActiveGrabs(client);
DeleteClientFontStuff(client);
@@ -76,7 +76,7 @@ Equipment Corporation.
/*****************************************************************
-Copyright 2003-2005 Sun Microsystems, Inc.
+Copyright 2007 Sun Microsystems, Inc.
@@ -299,7 +299,12 @@ static void DoEnterLeaveEvents(
-static WindowPtr XYToWindow(
@@ -2142,7 +2147,12 @@ PointInBorderSize(WindowPtr pWin, int x,
* @returns the window at the given coordinates.
@@ -45,6 +45,34 @@ SOFTWARE.
******************************************************************/
+/* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute,
and/or sell copies of the Software, and to permit persons
+ * to whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+ * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
@@ -60,6 +88,11 @@ SOFTWARE.
+extern SecurityHookPtr pSecHook;
/*****************************************************************
@@ -239,6 +272,12 @@ ProcChangeProperty(ClientPtr client)
+ err = (*pSecHook->ChangeWindowProperty)(client, pWin, stuff->property,
+ stuff->type, (int)format, (int)mode, len, (pointer)&stuff[1], TRUE);
err = dixChangeWindowProperty(client, pWin, stuff->property, stuff->type,
(int)format, (int)mode, len, &stuff[1],
@@ -629,6 +668,11 @@ ProcDeleteProperty(ClientPtr client)
+ result = (*pSecHook->DeleteProperty)(client, pWin, stuff->property);
result = DeleteProperty(client, pWin, stuff->property);
if (client->noClientException != Success)
return(client->noClientException);
@@ -98,6 +98,33 @@ Equipment Corporation.
******************************************************************/
+/* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute,
and/or sell copies of the Software, and to permit persons
+ * to whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+ * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
@@ -172,6 +199,11 @@ static Bool TileScreenSaver(int i, int k
_X_EXPORT int numSaveUndersViewable = 0;
_X_EXPORT int deltaSaveUndersViewable = 0;
+extern SecurityHookPtr pSecHook;
@@ -820,6 +852,11 @@ FreeWindowResources(WindowPtr pWin)
DeleteWindowFromAnySaveSet(pWin);
+ (*pSecHook->DeleteWindowFromAnySelections)(pWin);
DeleteWindowFromAnySelections(pWin);
DeleteWindowFromAnyEvents(pWin, TRUE);
REGION_UNINIT(pScreen, &pWin->clipList);
@@ -1915,7 +1952,12 @@ IsSiblingAboveMe(
@@ -1952,7 +1994,12 @@ MakeBoundingRegion (
@@ -2161,7 +2208,12 @@ WhereDoIGoInTheStack(
@@ -87,6 +87,7 @@ XDMX_LIBS = \
Xdmx_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
@@ -127,6 +127,7 @@ static ModuleDefault ModuleDefaults[] =
{.name = "dri2", .toLoad = TRUE, .load_opt=NULL},
{.name = "ia", .toLoad = TRUE, .load_opt=NULL},
+ {.name = "xtsol", .toLoad = TRUE, .load_opt=NULL},
{.name = NULL, .toLoad = FALSE, .load_opt=NULL}
@@ -119,3 +119,11 @@ extsmodule_LTLIBRARIES +=
libia.la libia_la_LDFLAGS = -avoid-version
+# Sun Trusted Extensions extension module additions
+libxtsol_la_LDFLAGS = -avoid-version
@@ -45,6 +45,34 @@ SOFTWARE.
******************************************************************/
+/* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute,
and/or sell copies of the Software, and to permit persons
+ * to whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+ * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
#ifndef EXTENSIONSTRUCT_H
#define EXTENSIONSTRUCT_H
@@ -55,6 +83,10 @@ SOFTWARE.
typedef struct _ExtensionEntry {
void (* CloseDown)( /* called at server shutdown */
@@ -108,5 +140,21 @@ extern Bool AddExtensionAlias(
extern ExtensionEntry *CheckExtension(const char *extname);
extern ExtensionEntry *GetExtensionEntry(int major);
+ XID (*CheckAuthorization)(unsigned int, char *, unsigned int,
+ char *, ClientPtr , char **);
+ int (*ChangeWindowProperty)(ClientPtr, WindowPtr, Atom, Atom, int, int,
+ unsigned long, pointer, Bool);
+ int (*DeleteProperty)(ClientPtr, WindowPtr, Atom);
+ void (*DeleteClientFromAnySelections)(ClientPtr);
+ void (*DeleteWindowFromAnySelections)(WindowPtr);
+} SecurityHook, *SecurityHookPtr;
+extern SecurityHookPtr pSecHook;
#endif /* EXTENSIONSTRUCT_H */
@@ -34,6 +34,10 @@ if RECORD
@@ -59,6 +63,7 @@ SUBDIRS = \
@@ -86,6 +86,10 @@ SOFTWARE.
#define SolarisIAExtension
+#ifdef TSOL /* Maintaining binary compatibility with Xtsol module */
#if defined(QNX4) /* sleaze for Watcom on QNX4 ... */
@@ -227,6 +231,9 @@ extern Bool noXvExtension;
#ifdef SolarisIAExtension
@@ -272,6 +279,10 @@ typedef void (*InitExtension)(INITARGS);
#ifdef SolarisIAExtension
/* FIXME: this whole block of externs should be from the appropriate headers */
@@ -398,6 +409,9 @@ extern void CompositeExtensionInit(INITA
#ifdef SolarisIAExtension
extern void IAExtensionInit(void);
+extern void TsolExtensionInit(void);
/* The following is only a small first step towards run-time
* configurable extensions.
@@ -458,6 +472,9 @@ static ExtensionToggle ExtensionToggleLi
{ "SECURITY", &noSecurityExtension },
+ { TSOLNAME /* "SUN_TSOL" */, &noXTSolExtension },
{ "SYNC", &noSyncExtension },
@@ -682,6 +699,11 @@ InitExtensions(argc, argv)
#ifdef SolarisIAExtension
if (!noIAExtension) IAExtensionInit();
+ if (!noXTSolExtension) {
@@ -44,6 +44,33 @@ ARISING OUT OF OR IN CONNECTION WITH THE
******************************************************************/
+/* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute,
and/or sell copies of the Software, and to permit persons
+ * to whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+ * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
/*****************************************************************
* Stuff to create connections --- OS dependent
@@ -298,6 +325,11 @@ static int ListenTransCount;
static void ErrorConnMax(XtransConnInfo /* trans_conn */);
+extern SecurityHookPtr pSecHook;
lookup_trans_conn (int fd)
@@ -721,6 +753,12 @@ ClientAuthorized(ClientPtr client,
!strncmp(saddr->sa_data, "
/tmp/launch", 11)) goto done;
+ auth_id = (*pSecHook->CheckAuthorization) (proto_n, auth_proto,
+ string_n, auth_string, client, &reason);
auth_id = CheckAuthorization (proto_n, auth_proto,
string_n, auth_string, client, &reason);
@@ -1148,3 +1148,27 @@ SecurityExtensionInit(INITARGS)
/* Label objects that were created before we could register ourself */
+/* API needed for Xtsol module to
get/set client trustLevel */
+getClientTrustLevel(ClientPtr client)
+ SecurityStateRec *state;
+ state = dixLookupPrivate(&client->devPrivates, stateKey);
+ return state->trustLevel;
+setClientTrustLevel(ClientPtr client, unsigned int newLevel)
+ SecurityStateRec *state;
+ state = dixLookupPrivate(&client->devPrivates, stateKey);
+ oldLevel = state->trustLevel;
+ state->trustLevel = newLevel;
@@ -80,4 +80,8 @@ typedef struct {
/* Give this value or higher to the -audit option to get security messages */
#define SECURITY_AUDIT_LEVEL 4
+/* API needed for Xtsol module to
get/set client trustLevel */
+extern unsigned int getClientTrustLevel(ClientPtr client);
+extern unsigned int setClientTrustLevel(ClientPtr client, unsigned int newLevel);
#endif /* _SECURITY_SRV_H */