cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncCopyright 1996, 1998 The Open Group
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncthe above copyright notice appear in all copies and that both that
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccopyright notice and this permission notice appear in supporting
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncdocumentation.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncThe above copyright notice and this permission notice shall be included
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncin all copies or substantial portions of the Software.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncIN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncOTHER DEALINGS IN THE SOFTWARE.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncExcept as contained in this notice, the name of The Open Group shall
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncnot be used in advertising or otherwise to promote the sale, use or
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncother dealings in this Software without prior written authorization
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncfrom The Open Group.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync*/
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* Xserver internals for Security extension - moved here from
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync _SECURITY_SERVER section of <X11/extensions/security.h> */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef _SECURITY_SRV_H
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define _SECURITY_SRV_H
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* Allow client side portions of <X11/extensions/security.h> to compile */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef Status
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# define Status int
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# define NEED_UNDEF_Status
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef Display
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# define Display void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# define NEED_UNDEF_Display
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include <X11/extensions/secur.h>
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifdef NEED_UNDEF_Status
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# undef Status
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# undef NEED_UNDEF_Status
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifdef NEED_UNDEF_Display
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# undef Display
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync# undef NEED_UNDEF_Display
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "input.h" /* for DeviceIntPtr */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "property.h" /* for PropertyPtr */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "pixmap.h" /* for DrawablePtr */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "resource.h" /* for RESTYPE */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* resource type to pass in LookupIDByType for authorizations */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern RESTYPE SecurityAuthorizationResType;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* this is what we store for an authorization */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id; /* resource ID */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD32 timeout; /* how long to live in seconds after refcnt == 0 */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned int trustLevel; /* trusted/untrusted */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID group; /* see embedding extension */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned int refcnt; /* how many clients connected with this auth */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned int secondsRemaining; /* overflow time amount for >49 days */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync OsTimerPtr timer; /* timer for this auth */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync struct _OtherClients *eventClients; /* clients wanting events */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} SecurityAuthorizationRec, *SecurityAuthorizationPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID group; /* the group that was sent in GenerateAuthorization */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool valid; /* did anyone recognize it? if so, set to TRUE */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} SecurityValidateGroupInfoRec;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* Give this value or higher to the -audit option to get security messages */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define SECURITY_AUDIT_LEVEL 4
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* _SECURITY_SRV_H */