xace: drop map-window checking hook, add new hooks for controlling the

delivery of events to windows and clients.

This is tentative.  It's likely that an additional last-resort hook will
be necessary for code that calls TryClientEvents or WriteEventsToClient
directly.  It's also possible that new xace machinery will be necessary
to classify events and pull useful resource ID's out of them.

The failure case also needs some thinking through.  Should event delivery
"succeed" or should it report undeliverable?

Finally, XKB appears to call WriteToClient to pass events.  Sigh.
This commit is contained in:
Eamon Walsh
2007-08-29 14:16:46 -04:00
committed by Eamon Walsh
parent 41355a53c2
commit e39694789e
5 changed files with 75 additions and 25 deletions

View File

@@ -113,10 +113,25 @@ int XaceHook(int hook, ...)
prv = &rec.status;
break;
}
case XACE_MAP_ACCESS: {
XaceMapAccessRec rec = {
case XACE_SEND_ACCESS: {
XaceSendAccessRec rec = {
va_arg(ap, ClientPtr),
va_arg(ap, DeviceIntPtr),
va_arg(ap, WindowPtr),
va_arg(ap, xEventPtr),
va_arg(ap, int),
Success /* default allow */
};
calldata = &rec;
prv = &rec.status;
break;
}
case XACE_RECEIVE_ACCESS: {
XaceReceiveAccessRec rec = {
va_arg(ap, ClientPtr),
va_arg(ap, WindowPtr),
va_arg(ap, xEventPtr),
va_arg(ap, int),
Success /* default allow */
};
calldata = &rec;