diff options
Diffstat (limited to 'nx-X11/programs/Xserver')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Display.c | 267 |
1 files changed, 113 insertions, 154 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c index 27e5aee79..50f85b257 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -212,20 +212,18 @@ int nxagentServerOrder(void) } /* - * FIXME: This error handler is not printing anything - * in the session log. This is OK once the session is - * started, because the error is handled by the other - * layers, but not before that point, as the agent - * would die without giving any feedback to the user - * (or, worse, to the NX server). We should check how - * many requests have been handled for this display - * and print a message if the display dies before the - * session is up and running. + * FIXME: This error handler is not printing anything in the session + * log. This is OK once the session is started, because the error is + * handled by the other layers, but not before that point, as the + * agent would die without giving any feedback to the user (or, worse, + * to the NX server). We should check how many requests have been + * handled for this display and print a message if the display dies + * before the session is up and running. */ /* - * FIXME: This should be moved to Error.c, The other - * handlers should be probably moved to Handlers.c. + * FIXME: This should be moved to Error.c, The other handlers should + * be probably moved to Handlers.c. */ int nxagentIOErrorHandler(Display *display) @@ -246,11 +244,9 @@ int nxagentIOErrorHandler(Display *display) } /* - * Force a shutdown of any connection attempt - * while connecting to the remote display. - * This is needed to avoid a hang up in case - * of loopback connections to our own listen- - * ing sockets. + * Force a shutdown of any connection attempt while connecting to the + * remote display. This is needed to avoid a hang up in case of + * loopback connections to our own listening sockets. */ static void nxagentRejectConnection(int signal) @@ -266,16 +262,15 @@ static void nxagentRejectConnection(int signal) #endif /* - * A further timeout is unlikely to happen - * in the case of loopback connections. + * A further timeout is unlikely to happen in the case of loopback + * connections. */ alarm(5); } /* - * Ignore the signal if the NX transport is - * not running. + * Ignore the signal if the NX transport is not running. */ static void nxagentSigusrHandler(int signal) @@ -379,8 +374,8 @@ static void nxagentSigchldHandler(int signal) int options = WNOHANG | WUNTRACED; /* - * Try with the pid of the dialog process. - * Leave the other children unaffected. + * Try with the pid of the dialog process. Leave the other children + * unaffected. */ if (nxagentRootlessDialogPid) @@ -574,22 +569,19 @@ Display *nxagentInternalOpenDisplay(char *display) int result; /* - * Stop the smart schedule timer since - * it uses SIGALRM as we do. + * Stop the smart schedule timer since it uses SIGALRM as we do. */ nxagentStopTimer(); /* - * Install the handler rejecting a possible - * loopback connection. + * Install the handler rejecting a possible loopback connection. */ /* -FIXME: Should print a warning if the user tries to let - the agent impersonate the same display as the - display where the agent is supposed to connect. - We actually handle this by means of RejectWell- - KnownSockets() but without giving a friendly +FIXME: Should print a warning if the user tries to let the agent + impersonate the same display as the display where the agent is + supposed to connect. We actually handle this by means of + RejectWellKnownSockets() but without giving a friendly explanation for the error to the user. */ @@ -645,9 +637,8 @@ static void nxagentDisplayBlockHandler(Display *display, int reason) if (nxagentDisplay != NULL) { /* - * Don't allow the smart schedule to - * interrupt the agent while waiting - * for the remote display. + * Don't allow the smart schedule to interrupt the agent while + * waiting for the remote display. */ #ifdef DEBUG @@ -674,8 +665,7 @@ static void nxagentDisplayBlockHandler(Display *display, int reason) { /* - * Let the dispatch attend the next - * client. + * Let the dispatch attend the next client. */ #ifdef DEBUG @@ -799,18 +789,17 @@ static int nxagentDisplayErrorPredicate(Display *display, int error) void nxagentInstallDisplayHandlers(void) { /* - * If the display was already opened, be sure - * all structures are freed. + * If the display was already opened, be sure all structures are + * freed. */ nxagentResetDisplayHandlers(); /* - * We want the Xlib I/O error handler to return, - * instead of quitting the application. Using - * setjmp()/longjmp() leaves the door open to - * unexpected bugs when dealing with interaction - * with the other X server layers. + * We want the Xlib I/O error handler to return, instead of quitting + * the application. Using setjmp()/longjmp() leaves the door open to + * unexpected bugs when dealing with interaction with the other X + * server layers. */ NXHandleDisplayError(1); @@ -828,14 +817,12 @@ void nxagentInstallDisplayHandlers(void) XSetIOErrorHandler(nxagentIOErrorHandler); /* - * Let Xlib become aware of our interrupts. In theory - * we don't need to have the error handler installed - * during the normal operations and could simply let - * the dispatcher handle the interrupts. In practice - * it's better to have Xlib invalidating the display - * as soon as possible rather than incurring in the - * risk of entering a loop that doesn't care checking - * the display errors explicitly. + * Let Xlib become aware of our interrupts. In theory we don't need + * to have the error handler installed during the normal operations + * and could simply let the dispatcher handle the interrupts. In + * practice it's better to have Xlib invalidating the display as + * soon as possible rather than incurring in the risk of entering a + * loop that doesn't care checking the display errors explicitly. */ #ifdef TEST @@ -848,8 +835,8 @@ void nxagentInstallDisplayHandlers(void) void nxagentPostInstallDisplayHandlers(void) { /* - * This is executed after having opened the - * display, once we know the display address. + * This is executed after having opened the display, once we know + * the display address. */ if (nxagentDisplay != NULL) @@ -881,15 +868,13 @@ void nxagentResetDisplayHandlers(void) if (nxagentDisplay != NULL) { /* - * Free the internal nxcompext - * structures. + * Free the internal nxcompext structures. */ NXResetDisplay(nxagentDisplay); /* - * Remove the display descriptor - * from the listened sockets. + * Remove the display descriptor from the listened sockets. */ nxagentRemoveXConnection(); @@ -912,8 +897,7 @@ void nxagentResetDisplayHandlers(void) nxagentCongestion = 0; /* - * Reset the counter of synchronization - * requests pending. + * Reset the counter of synchronization requests pending. */ nxagentTokens.soft = 0; @@ -937,9 +921,8 @@ void nxagentInstallSignalHandlers(void) #endif /* - * Keep the default X server's handlers for - * SIGINT and SIGTERM and restore the other - * signals of interest to our defaults. + * Keep the default X server's handlers for SIGINT and SIGTERM and + * restore the other signals of interest to our defaults. */ struct sigaction newAction; @@ -947,9 +930,9 @@ void nxagentInstallSignalHandlers(void) int result; /* - * By default nxcomp installs its signal handlers. - * We need to ensure that SIGUSR1 and SIGUSR2 are - * ignored if the NX transport is not running. + * By default nxcomp installs its signal handlers. We need to + * ensure that SIGUSR1 and SIGUSR2 are ignored if the NX transport + * is not running. */ newAction.sa_handler = nxagentSigusrHandler; @@ -993,8 +976,7 @@ void nxagentInstallSignalHandlers(void) } /* - * Let the smart schedule set the SIGALRM - * handler again. + * Let the smart schedule set the SIGALRM handler again. */ nxagentInitTimer(); @@ -1043,13 +1025,12 @@ void nxagentPostInstallSignalHandlers(void) #endif /* - * Reconfigure our signal handlers to work well - * with the NX transport. + * Reconfigure our signal handlers to work well with the NX + * transport. * - * Let our handlers manage the SIGINT and SIGTERM. - * The following calls will tell the NX transport - * to restore the old handlers (those originally - * installed by us or the X server). + * Let our handlers manage the SIGINT and SIGTERM. The following + * calls will tell the NX transport to restore the old handlers + * (those originally installed by us or the X server). */ NXTransSignal(SIGINT, NX_SIGNAL_DISABLE); @@ -1062,16 +1043,14 @@ void nxagentPostInstallSignalHandlers(void) NXTransSignal(SIGHUP, NX_SIGNAL_DISABLE); /* - * Both the proxy and the agent need to catch - * their children, so we'll have to send the - * signal to transport. + * Both the proxy and the agent need to catch their children, so + * we'll have to send the signal to transport. */ NXTransSignal(SIGCHLD, NX_SIGNAL_DISABLE); /* - * Let the NX transport take care of SIGUSR1 - * and SIGUSR2. + * Let the NX transport take care of SIGUSR1 and SIGUSR2. */ } @@ -1084,8 +1063,7 @@ void nxagentResetSignalHandlers(void) memset(&newAction, 0, sizeof(newAction)); /* - * Reset the signal handlers - * to a well known state. + * Reset the signal handlers to a well known state. */ #ifdef TEST @@ -1111,8 +1089,7 @@ void nxagentResetSignalHandlers(void) } /* - * Let the smart schedule set the SIGALRM - * handler again. + * Let the smart schedule set the SIGALRM handler again. */ nxagentInitTimer(); @@ -1134,8 +1111,8 @@ void nxagentOpenDisplay(int argc, char *argv[]) #endif /* - * Initialize the reconnector only in the case - * of persistent sessions. + * Initialize the reconnector only in the case of persistent + * sessions. */ if (nxagentOption(Persistent)) @@ -1163,8 +1140,8 @@ void nxagentOpenDisplay(int argc, char *argv[]) if (nxagentDisplay == NULL) { /* -FIXME: The agent should never exit the program with a FatalError() - but rather use a specific function that may eventually call +FIXME: The agent should never exit the program with a FatalError() but + rather use a specific function that may eventually call FatalError() on its turn. */ FatalError("Unable to open display '%s'.\n", nxagentDisplayName); @@ -1264,18 +1241,17 @@ N/A #endif /* - * Initialize the agent's event mask that will be requested - * for the root and all the top level windows. If the nested - * window is a child of an existing window, we will need to - * receive StructureNotify events. If we are going to manage - * the changes in root window's visibility we'll also need - * VisibilityChange events. + * Initialize the agent's event mask that will be requested for the + * root and all the top level windows. If the nested window is a + * child of an existing window, we will need to receive + * StructureNotify events. If we are going to manage the changes in + * root window's visibility we'll also need VisibilityChange events. */ /* -FIXME: Use of nxagentParentWindow is strongly deprecated. - We need also to clarify which events are selected - in the different operating modes. +FIXME: Use of nxagentParentWindow is strongly deprecated. We need + also to clarify which events are selected in the different + operating modes. */ nxagentInitDefaultEventMask(); @@ -1290,9 +1266,8 @@ FIXME: Use of nxagentParentWindow is strongly deprecated. (void) nxagentCheckForPixmapFormatsCompatibility(); /* - * Create a pixmap for each depth matching the - * local supported formats with format available - * on the remote display. + * Create a pixmap for each depth matching the local supported + * formats with format available on the remote display. */ nxagentSetDefaultDrawables(); @@ -1305,16 +1280,15 @@ FIXME: Use of nxagentParentWindow is strongly deprecated. #endif /* - * This GC is referenced in Cursor.c. It can be - * probably removed. + * This GC is referenced in Cursor.c. It can be probably removed. */ nxagentBitmapGC = XCreateGC(nxagentDisplay, nxagentDefaultDrawables[1], 0L, NULL); /* - * Note that this "confine window" is useless at the - * moment as we reimplement nxagentConstrainCursor() - * to skip the "constrain" stuff. + * Note that this "confine windoqw" is useless at the moment as we + * reimplement nxagentConstrainCursor() to skip the "constrain" + * stuff. */ #ifdef TEST @@ -1568,10 +1542,10 @@ void nxagentInitDepths(void) void nxagentInitPixmapFormats(void) { /* - * Formats are created with no care of which are supported - * on the real display. Creating only formats supported - * by the remote end makes troublesome handling migration - * of session from a display to another. + * Formats are created with no care of which are supported on the + * real display. Creating only formats supported by the remote end + * makes troublesome handling migration of session from a display to + * another. */ nxagentNumPixmapFormats = 0; @@ -1732,11 +1706,9 @@ void nxagentCloseDisplay(void) } /* - * If nxagentDoFullGeneration is true, all - * the X resources will be destroyed upon - * closing the display connection, so there - * is no real need to generate additional - * traffic + * If nxagentDoFullGeneration is true, all the X resources will be + * destroyed upon closing the display connection, so there is no + * real need to generate additional traffic */ SAFE_free(nxagentDefaultColormaps); @@ -1753,8 +1725,7 @@ FIXME: Is this needed? */ /* - * Free the image cache. This is useful - * for detecting memory leaks. + * Free the image cache. This is useful for detecting memory leaks. */ if (nxagentDisplay != NULL) @@ -1836,14 +1807,11 @@ void nxagentBackupDisplayInfo(void) } /* - * Since we need the display structure - * in order to behave correctly when no X - * connection is available, we must always - * have a good display record. - * It can be discarded only when a new X - * connection is available, so we store it - * in order to destroy whenever the recon- - * nection succed. + * Since we need the display structure in order to behave correctly + * when no X connection is available, we must always have a good + * display record. It can be discarded only when a new X connection + * is available, so we store it in order to destroy whenever the + * reconnection succeeds. */ nxagentDisplayBackup = nxagentDisplay; @@ -1925,9 +1893,8 @@ void nxagentDisconnectDisplay(void) case GOT_VISUAL_INFO: case OPENED: /* - * Actually we need the nxagentDisplay - * structure in order to let the agent - * go when no X connection is available. + * Actually we need the nxagentDisplay structure in order to let + * the agent go when no X connection is available. */ if (nxagentDisplay && @@ -2328,10 +2295,9 @@ static int nxagentInitAndCheckVisuals(int flexibility) if (nxagentCompareVisuals(nxagentVisuals[i], viList[n]) == 1) { /* -FIXME: Should the visual be ignored in this case? - We can flag the visuals with inverted masks, - and use this information to switch the masks - when contacting the remote X server. +FIXME: Should the visual be ignored in this case? We can flag the + visuals with inverted masks, and use this information to switch + the masks when contacting the remote X server. */ if (nxagentVisuals[i].red_mask == viList[n].blue_mask && nxagentVisuals[i].blue_mask == viList[n].red_mask) @@ -2502,9 +2468,8 @@ Bool nxagentReconnectDisplay(void *p0) DefaultScreenOfDisplay(nxagentDisplay)); /* - * After processing the arguments all the - * timeout values have been set. Now we - * have to change the screen-saver timeout. + * After processing the arguments all the timeout values have been + * set. Now we have to change the screen-saver timeout. */ nxagentSetScreenSaverTime(); @@ -2585,8 +2550,7 @@ Bool nxagentReconnectDisplay(void *p0) SAFE_XFree(nxagentRemotePixmapFormats); /* - * Check if all the required pixmap - * formats are supported. + * Check if all the required pixmap formats are supported. */ nxagentInitPixmapFormats(); @@ -2602,9 +2566,8 @@ Bool nxagentReconnectDisplay(void *p0) reconnectDisplayState = GOT_PIXMAP_FORMAT_LIST; /* - * Create a pixmap for each depth matching the - * local supported formats with format available - * on the remote display. + * Create a pixmap for each depth matching the local supported + * formats with format available on the remote display. */ nxagentSetDefaultDrawables(); @@ -2632,12 +2595,11 @@ Bool nxagentReconnectDisplay(void *p0) nxagentWhitePixel = WhitePixel(nxagentDisplay, DefaultScreen(nxagentDisplay)); /* - * Initialize the agent's event mask that will be requested - * for the root or all the top level windows. If the nested - * window is a child of an existing window we will need to - * receive StructureNotify events. If we are going to manage - * the changes in root window's visibility we'll also need - * VisibilityChange events. + * Initialize the agent's event mask that will be requested for the + * root or all the top level windows. If the nested window is a + * child of an existing window we will need to receive + * StructureNotify events. If we are going to manage the changes in + * root window's visibility we'll also need VisibilityChange events. */ nxagentInitDefaultEventMask(); @@ -2667,8 +2629,7 @@ Bool nxagentReconnectDisplay(void *p0) useXpmIcon = nxagentMakeIcon(nxagentDisplay, &nxagentIconPixmap, &nxagentIconShape); /* - * All went fine. We can continue - * handling our clients. + * All went fine. We can continue handling our clients. */ reconnectDisplayState = EVERYTHING_DONE; @@ -2701,10 +2662,9 @@ void nxagentRemoveXConnection(void) } /* - * Force an I/O error and wait until the NX trans- - * port is gone. It must be called before suspend- - * ing or terminating a session to ensure that the - * NX transport is terminated first. + * Force an I/O error and wait until the NX transport is gone. It must + * be called before suspending or terminating a session to ensure that + * the NX transport is terminated first. */ void nxagentWaitDisplay(void) @@ -2742,8 +2702,7 @@ void nxagentWaitDisplay(void) #endif /* - * Be sure the signal handlers are - * in a known state. + * Be sure the signal handlers are in a known state. */ nxagentResetSignalHandlers(); @@ -2760,9 +2719,9 @@ void nxagentWaitDisplay(void) void nxagentAbortDisplay(void) { /* - * Be sure the X server socket in .X11-unix is - * deleted otherwise other users may to become - * unable to run a session on the same display. + * Be sure the X server socket in .X11-unix is deleted otherwise + * other users may to become unable to run a session on the same + * display. */ #ifdef TEST |