[comp.windows.x] Can a KillClient be suppressed?

jik@ATHENA.MIT.EDU (Jonathan I. Kamens) (03/22/89)

I have written an xscreensaver program (the traditional
icon-with-the-time-bouncing-around-the-screen variety) based on the X
Toolkit and Athena Widget set under X11R3.

When the screen is locked, pushing a mouse button or pressing a key
causes the password prompt window to come up, and hitting return with
the wrong password (or with no password) will cause it to go away and
make the icon start bouncing again.

The problem is that it is possible to kill the screensaver by hitting
return and a mouse button as quickly as possible (one hand on the
return key, one hand on the mouse button, clicking away with both
hands) for about thirty seconds.

Apparently, the program is falling so far behind in its event handling
that the server is sending it a KillClient.  The error message I get
is:

XIO:  fatal IO error 32 (Broken pipe) on X server "unix:0.0"
      after 623 requests (382 known processed) with 1 events remaining.
      The connection was probably broken by a server shutdown or KillClient.

Now, I know that the program is still alive and running, and the
program knows that it's still alive and running, so how do I convince
the X server not to do a KillClient if I fall to farr behind?

This wouldn't be such a big problem if it weren't for the fact that a
screensaver that locks the screen is supposed to be _secure_.  If it
can be broken by anybody with fast hands, it isn't much good.

Please E-mail responses to me, and I'll post a follow-up to xpert if
the answer is sufficiently difficult that I don't feel like an idiot
for not having figured it out myself :-)

Thank you for any help you can provide.

Jonathan Kamens			              USnail:
MIT Project Athena				410 Memorial Drive, No. 223F
jik@Athena.MIT.EDU				Cambridge, MA 02139-4318
Office: 617-253-4261			      Home: 617-225-8218

bob@primerd.prime.com (03/25/89)

On a related note, I don't believe that an error message should be printed
at all when you invoke KillClient.  At least there should be a way to
suppress it.

When one of my customers wants to kill a window from his favorite
window manager, he doesn't want to see "XIO Fatal Error" in his console
window-- it is inappropriate.  It makes it appear as though there is some
sort of bug.  Is there a way around this?

Bob Pellegrino
Prime Computer, Inc.

bob@deep-thought.prime.com

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (03/27/89)

    When one of my customers wants to kill a window from his favorite
    window manager, he doesn't want to see "XIO Fatal Error" in his console
    window-- it is inappropriate.  It makes it appear as though there is some
    sort of bug.  Is there a way around this?

Yes, by having client install an error handler to detect this, and/or by
having the client and window manager use the WM_SAVE_YOURSELF protocol
described in the ICCCM.