mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-22 20:35:43 +00:00
Xi: Add access control request handling.
dix: New file access.c to handle all access control for devices.
This commit is contained in:
parent
cd0af7a785
commit
4b8b0e377a
15 changed files with 921 additions and 20 deletions
|
|
@ -445,6 +445,37 @@ extern void SwitchCorePointer(DeviceIntPtr pDev);
|
|||
extern DeviceIntPtr LookupDeviceIntRec(
|
||||
CARD8 deviceid);
|
||||
|
||||
/* Pairing input devices */
|
||||
extern int PairDevices(ClientPtr client,
|
||||
DeviceIntPtr pointer,
|
||||
DeviceIntPtr keyboard);
|
||||
|
||||
extern Bool RegisterPairingClient(ClientPtr client);
|
||||
extern Bool UnregisterPairingClient(ClientPtr client);
|
||||
|
||||
/* Window/device based access control */
|
||||
extern Bool ACRegisterClient(ClientPtr client);
|
||||
extern Bool ACUnregisterClient(ClientPtr client);
|
||||
extern int ACClearWindowAccess(ClientPtr client,
|
||||
WindowPtr win,
|
||||
int what);
|
||||
extern int ACChangeWindowAccess(ClientPtr client,
|
||||
WindowPtr win,
|
||||
int defaultRule,
|
||||
DeviceIntPtr* perm_devices,
|
||||
int npermit,
|
||||
DeviceIntPtr* deny_devices,
|
||||
int ndeny);
|
||||
extern void ACQueryWindowAccess(WindowPtr win,
|
||||
int* defaultRule,
|
||||
DeviceIntPtr** perm,
|
||||
int* nperm,
|
||||
DeviceIntPtr** deny,
|
||||
int* ndeny);
|
||||
|
||||
extern Bool ACDeviceAllowed(WindowPtr win,
|
||||
DeviceIntPtr dev);
|
||||
|
||||
/* Implemented by the DDX. */
|
||||
extern int NewInputDeviceRequest(
|
||||
InputOption *options);
|
||||
|
|
@ -454,11 +485,4 @@ extern void DDXRingBell(
|
|||
int pitch,
|
||||
int duration);
|
||||
|
||||
extern int PairDevices(ClientPtr client,
|
||||
DeviceIntPtr pointer,
|
||||
DeviceIntPtr keyboard);
|
||||
|
||||
extern Bool RegisterPairingClient(ClientPtr client);
|
||||
extern Bool UnregisterPairingClient(ClientPtr client);
|
||||
|
||||
#endif /* INPUT_H */
|
||||
|
|
|
|||
|
|
@ -77,6 +77,14 @@ typedef struct _DevCursorNode {
|
|||
struct _DevCursorNode* next;
|
||||
} DevCursNodeRec, *DevCursNodePtr, *DevCursorList;
|
||||
|
||||
typedef struct _WindowAccessRec {
|
||||
int defaultRule; /* WindowAccessDenyAll */
|
||||
DeviceIntPtr* perm;
|
||||
int nperm;
|
||||
DeviceIntPtr* deny;
|
||||
int ndeny;
|
||||
} WindowAccessRec, *WindowAccessPtr;
|
||||
|
||||
typedef struct _WindowOpt {
|
||||
VisualID visual; /* default: same as parent */
|
||||
CursorPtr cursor; /* default: window.cursorNone */
|
||||
|
|
@ -97,6 +105,7 @@ typedef struct _WindowOpt {
|
|||
struct _OtherInputMasks *inputMasks; /* default: NULL */
|
||||
#endif
|
||||
DevCursorList deviceCursors; /* default: NULL */
|
||||
WindowAccessRec access;
|
||||
} WindowOptRec, *WindowOptPtr;
|
||||
|
||||
#define BackgroundPixel 2L
|
||||
|
|
|
|||
Loading…
Reference in a new issue