--- ./nx-X11/programs/Xserver/os/log.c.X.original 2015-02-13 14:03:44.788440645 +0100 +++ ./nx-X11/programs/Xserver/os/log.c 2015-02-13 14:03:44.788440645 +0100 @@ -78,6 +78,23 @@ /* $XFree86: xc/programs/Xserver/os/log.c,v 1.6 2003/11/07 13:45:27 tsi Exp $ */ +/**************************************************************************/ +/* */ +/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */ +/* */ +/* NX-X11, NX protocol compression and NX extensions to this software */ +/* are copyright of NoMachine. Redistribution and use of the present */ +/* software is allowed according to terms specified in the file LICENSE */ +/* which comes in the source distribution. */ +/* */ +/* Check http://www.nomachine.com/licensing.html for applicability. */ +/* */ +/* NX and NoMachine are trademarks of Medialogic S.p.A. */ +/* */ +/* All rights reserved. */ +/* */ +/**************************************************************************/ + #ifdef HAVE_DIX_CONFIG_H #include <dix-config.h> #endif @@ -98,9 +115,17 @@ #define getpid(x) _getpid(x) #endif +#ifdef NX_TRANS_SOCKET + +#include "NX.h" + +#endif #ifdef DDXOSVERRORF void (*OsVendorVErrorFProc)(const char *, va_list args) = NULL; +#ifdef NX_TRANS_EXIT +int OsVendorVErrorFFatal = 0; +#endif #endif static FILE *logFile = NULL; @@ -265,6 +290,32 @@ */ if (verb < 0 || logFileVerbosity >= verb || logVerbosity >= verb) { vsnprintf(tmpBuffer, sizeof(tmpBuffer), f, args); +#ifdef NX_TRANS_EXIT + /* + * Beautify the message. Make the + * first letter uppercase. + */ + + *tmpBuffer = toupper(*tmpBuffer); + + /* + * Remove the trailing newline. + */ + + if (strlen(tmpBuffer) > 0 && + *(tmpBuffer + strlen(tmpBuffer) - 1) == '\n') { + *(tmpBuffer + strlen(tmpBuffer) - 1) = '\0'; + } + + /* + * Remove the trailing full-stop. + */ + + if (strlen(tmpBuffer) > 0 && + *(tmpBuffer + strlen(tmpBuffer) - 1) == '.') { + *(tmpBuffer + strlen(tmpBuffer) - 1) = '\0'; + } +#endif /* #ifdef NX_TRANS_EXIT */ len = strlen(tmpBuffer); } if ((verb < 0 || logVerbosity >= verb) && len > 0) @@ -404,12 +455,22 @@ void AbortServer(void) { +#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST) + fprintf(stderr, "AbortServer: Going to abort the current server.\n"); +#endif OsCleanup(TRUE); AbortDDX(); fflush(stderr); if (CoreDump) abort(); +#ifdef NX_TRANS_EXIT +#ifdef NX_TRANS_TEST + fprintf(stderr, "AbortServer: Going to clean up NX resources and exit.\n"); +#endif + NXTransExit(1); +#else /* #ifdef NX_TRANS_EXIT */ exit (1); +#endif } #ifndef AUDIT_PREFIX @@ -533,6 +594,27 @@ va_list args; static Bool beenhere = FALSE; +#ifdef NX_TRANS_EXIT + if (beenhere) { + fprintf(stderr, "Error: Aborting session with fatal error function reentered.\n"); + } + else { + /* + * Tell to the log function that this + * is a fatal error. + */ + + OsVendorVErrorFFatal = 1; + + fprintf(stderr, "Error: Aborting session with '"); + + va_start(args, f); + VErrorF(f, args); + va_end(args); + + fprintf(stderr, "'.\n"); + } +#else /* #ifdef NX_TRANS_EXIT */ if (beenhere) ErrorF("\nFatalError re-entered, aborting\n"); else @@ -542,6 +624,7 @@ VErrorF(f, args); va_end(args); ErrorF("\n"); +#endif /* #ifdef NX_TRANS_EXIT */ #ifdef DDXOSFATALERROR if (!beenhere) OsVendorFatalError();