New upstream version 3.5.99.27
This commit is contained in:
91
nxcomp/include/MD5.h
Normal file
91
nxcomp/include/MD5.h
Normal file
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved.
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
L. Peter Deutsch
|
||||
ghost@aladdin.com
|
||||
|
||||
*/
|
||||
/* $Id: md5.h,v 1.4 2002/04/13 19:20:28 lpd Exp $ */
|
||||
/*
|
||||
Independent implementation of MD5 (RFC 1321).
|
||||
|
||||
This code implements the MD5 Algorithm defined in RFC 1321, whose
|
||||
text is available at
|
||||
http://www.ietf.org/rfc/rfc1321.txt
|
||||
The code is derived from the text of the RFC, including the test suite
|
||||
(section A.5) but excluding the rest of Appendix A. It does not include
|
||||
any code or documentation that is identified in the RFC as being
|
||||
copyrighted.
|
||||
|
||||
The original and principal author of md5.h is L. Peter Deutsch
|
||||
<ghost@aladdin.com>. Other authors are noted in the change history
|
||||
that follows (in reverse chronological order):
|
||||
|
||||
2002-04-13 lpd Removed support for non-ANSI compilers; removed
|
||||
references to Ghostscript; clarified derivation from RFC 1321;
|
||||
now handles byte order either statically or dynamically.
|
||||
1999-11-04 lpd Edited comments slightly for automatic TOC extraction.
|
||||
1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5);
|
||||
added conditionalization for C++ compilation from Martin
|
||||
Purschke <purschke@bnl.gov>.
|
||||
1999-05-03 lpd Original version.
|
||||
*/
|
||||
|
||||
#ifndef md5_INCLUDED
|
||||
# define md5_INCLUDED
|
||||
|
||||
/*
|
||||
* This package supports both compile-time and run-time determination of CPU
|
||||
* byte order. If ARCH_IS_BIG_ENDIAN is defined as 0, the code will be
|
||||
* compiled to run only on little-endian CPUs; if ARCH_IS_BIG_ENDIAN is
|
||||
* defined as non-zero, the code will be compiled to run only on big-endian
|
||||
* CPUs; if ARCH_IS_BIG_ENDIAN is not defined, the code will be compiled to
|
||||
* run on either big- or little-endian CPUs, but will run slightly less
|
||||
* efficiently on either one than if ARCH_IS_BIG_ENDIAN is defined.
|
||||
*/
|
||||
|
||||
typedef unsigned char md5_byte_t; /* 8-bit byte */
|
||||
typedef unsigned int md5_word_t; /* 32-bit word */
|
||||
|
||||
/* Define the state of the MD5 Algorithm. */
|
||||
typedef struct md5_state_s {
|
||||
md5_word_t count[2]; /* message length in bits, lsw first */
|
||||
md5_word_t abcd[4]; /* digest buffer */
|
||||
md5_byte_t buf[64]; /* accumulate block */
|
||||
} md5_state_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/* Initialize the algorithm. */
|
||||
void md5_init(md5_state_t *pms);
|
||||
|
||||
/* Append a string to the message. */
|
||||
void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes);
|
||||
|
||||
/* Finish the message and return the digest. */
|
||||
void md5_finish(md5_state_t *pms, md5_byte_t digest[16]);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* end extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* md5_INCLUDED */
|
||||
474
nxcomp/include/NX.h
Normal file
474
nxcomp/include/NX.h
Normal file
@@ -0,0 +1,474 @@
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
|
||||
/* Copyright (c) 2008-2017 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
|
||||
/* Copyright (c) 2014-2022 Ulrich Sibiller <uli42@gmx.de> */
|
||||
/* Copyright (c) 2014-2019 Mihai Moldovan <ionic@ionic.de> */
|
||||
/* Copyright (c) 2011-2022 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
|
||||
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
|
||||
/* */
|
||||
/* NXCOMP, NX protocol compression and NX extensions to this software */
|
||||
/* are copyright of the aforementioned persons and companies. */
|
||||
/* */
|
||||
/* Redistribution and use of the present software is allowed according */
|
||||
/* to terms specified in the file LICENSE.nxcomp which comes in the */
|
||||
/* source distribution. */
|
||||
/* */
|
||||
/* All rights reserved. */
|
||||
/* */
|
||||
/* NOTE: This software has received contributions from various other */
|
||||
/* contributors, only the core maintainers and supporters are listed as */
|
||||
/* copyright holders. Please contact us, if you feel you should be listed */
|
||||
/* as copyright holder, as well. */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef NX_H
|
||||
#define NX_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/uio.h>
|
||||
|
||||
#define NX_FD_ANY -1
|
||||
|
||||
#define NX_MODE_ANY -1
|
||||
#define NX_MODE_CLIENT 1
|
||||
#define NX_MODE_SERVER 2
|
||||
|
||||
#define NX_DISPLAY_ANY NULL
|
||||
|
||||
#define NX_SIGNAL_ANY -1
|
||||
#define NX_SIGNAL_ENABLE 1
|
||||
#define NX_SIGNAL_DISABLE 2
|
||||
#define NX_SIGNAL_RAISE 3
|
||||
#define NX_SIGNAL_FORWARD 4
|
||||
|
||||
#define NX_POLICY_IMMEDIATE 1
|
||||
#define NX_POLICY_DEFERRED 2
|
||||
|
||||
#define NX_ALERT_REMOTE 0
|
||||
#define NX_ALERT_LOCAL 1
|
||||
|
||||
#define NX_HANDLER_FLUSH 0
|
||||
#define NX_HANDLER_STATISTICS 1
|
||||
|
||||
#define NX_STATISTICS_PARTIAL 0
|
||||
#define NX_STATISTICS_TOTAL 1
|
||||
|
||||
#define NX_CHANNEL_X11 0
|
||||
#define NX_CHANNEL_CUPS 1
|
||||
#define NX_CHANNEL_SMB 2
|
||||
#define NX_CHANNEL_MEDIA 3
|
||||
#define NX_CHANNEL_HTTP 4
|
||||
#define NX_CHANNEL_FONT 5
|
||||
#define NX_CHANNEL_SLAVE 6
|
||||
|
||||
#define NX_FILE_SESSION 0
|
||||
#define NX_FILE_ERRORS 1
|
||||
#define NX_FILE_OPTIONS 2
|
||||
#define NX_FILE_STATS 3
|
||||
|
||||
/*
|
||||
* The following are the new interfaces to the NX transport. The
|
||||
* NX proxy software is now intended to be run as a library of a
|
||||
* higher level communication manager (nxssh, nxhttp, nxrtp, etc,
|
||||
* not only nxproxy). This is a work-in-progress, so expect these
|
||||
* interfaces to change in future. At the present moment, as an
|
||||
* example, there is no provision for creating and managing mul-
|
||||
* tiple proxy connections.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Attach a NX transport to the provided descriptor. This should be
|
||||
* done after having created a pair of connected sockets.
|
||||
*/
|
||||
|
||||
extern int NXTransCreate(int fd, int mode, const char *options);
|
||||
|
||||
/*
|
||||
* Tell the proxy to use the second descriptor as its own end of
|
||||
* the internal connection to the NX agent. The NX agent will use
|
||||
* the first descriptor. Setting an agent connection will have the
|
||||
* effect of disabling further X client connections and, if it is
|
||||
* possible, will trigger the use of the memory-to-memory transport.
|
||||
*/
|
||||
|
||||
extern int NXTransAgent(int fd[2]);
|
||||
|
||||
/*
|
||||
* Prepare the file sets and the timeout for a later execution of
|
||||
* the select(). The masks and the timeout must persist across all
|
||||
* the calls, so if you don't need any of the values, it is requi-
|
||||
* red that you create empty masks and a default timeout. To save
|
||||
* a check at each run, all the functions below assume that valid
|
||||
* pointers are passed.
|
||||
*/
|
||||
|
||||
extern int NXTransPrepare(int *maxfds, fd_set *readfds,
|
||||
fd_set *writefds, struct timeval *timeout);
|
||||
|
||||
/*
|
||||
* Call select() to find out the descriptors in the sets having
|
||||
* pending data.
|
||||
*/
|
||||
|
||||
extern int NXTransSelect(int *result, int *error, int *maxfds, fd_set *readfds,
|
||||
fd_set *writefds, struct timeval *timeout);
|
||||
|
||||
/*
|
||||
* Perform the required I/O on all the NX descriptors having pen-
|
||||
* ding data. This can include reading and writing to the NX chan-
|
||||
* nels, encoding and decoding the proxy data or managing any of
|
||||
* the other NX resources.
|
||||
*/
|
||||
|
||||
extern int NXTransExecute(int *result, int *error, int *maxfds, fd_set *readfds,
|
||||
fd_set *writefds, struct timeval *timeout);
|
||||
|
||||
/*
|
||||
* Run an empty loop, giving to the NX transport a chance to check
|
||||
* its descriptors.
|
||||
*/
|
||||
|
||||
extern int NXTransContinue(struct timeval *timeout);
|
||||
|
||||
/*
|
||||
* Perform I/O on the given descriptors. If memory-to-memory trans-
|
||||
* port has been activated and the descriptor is recognized as a
|
||||
* valid agent connection, then the functions will read and write
|
||||
* the data directly to the proxy buffer, otherwise the correspond-
|
||||
* ing network operation will be performed.
|
||||
*/
|
||||
|
||||
extern int NXTransRead(int fd, char *data, int size);
|
||||
extern int NXTransWrite(int fd, char *data, int size);
|
||||
extern int NXTransReadable(int fd, int *readable);
|
||||
|
||||
extern int NXTransReadVector(int fd, struct iovec *iovdata, int iovsize);
|
||||
extern int NXTransWriteVector(int fd, struct iovec *iovdata, int iovsize);
|
||||
|
||||
extern int NXTransClose(int fd);
|
||||
|
||||
/*
|
||||
* Return true if the NX transport is running. The fd parameter can
|
||||
* be either the local descriptor attached to the NX transport or
|
||||
* NX_FD_ANY.
|
||||
*/
|
||||
|
||||
extern int NXTransRunning(int fd);
|
||||
|
||||
/*
|
||||
* Close down the NX transport and free all the allocated resources.
|
||||
* The fd parameter can be either the local descriptor or NX_FD_ANY.
|
||||
* This must be explicitly called by the agent before the proxy can
|
||||
* start the tear down procedure.
|
||||
*/
|
||||
|
||||
extern int NXTransDestroy(int fd);
|
||||
|
||||
/*
|
||||
* Tell to the proxy how to handle the standard POSIX signals. For
|
||||
* example, given the SIGINT signal, the caller can specify any of
|
||||
* the following actions:
|
||||
*
|
||||
* NX_SIGNAL_ENABLE: A signal handler will have to be installed by
|
||||
* the library, so that it can be intercepted by
|
||||
* the proxy.
|
||||
*
|
||||
* NX_SIGNAL_DISABLE: The signal will be handled by the caller and,
|
||||
* eventually, forwarded to the proxy by calling
|
||||
* NXTransSignal() explicitly.
|
||||
*
|
||||
* NX_SIGNAL_RAISE: The signal must be handled now, as if it had
|
||||
* been delivered by the operating system. This
|
||||
* function can be called by the agent with the
|
||||
* purpose of propagating a signal to the proxy.
|
||||
*
|
||||
* NX_SIGNAL_FORWARD: A signal handler will have to be installed by
|
||||
* the library but the library will have to call
|
||||
* the original signal handler when the signal
|
||||
* is received.
|
||||
*
|
||||
* As a rule of thumb, agents should let the proxy handle SIGUSR1
|
||||
* and SIGUSR2, used for producing the NX protocol statistics, and
|
||||
* SIGHUP, used for disconnecting the NX transport.
|
||||
*
|
||||
* The following signals are blocked by default upon creation of the
|
||||
* NX transport:
|
||||
*
|
||||
* SIGCHLD These signals should be always put under the control
|
||||
* SIGUSR1 of the proxy. If agents are intercepting them, agents
|
||||
* SIGUSR2 should later call NXTransSignal(..., NX_SIGNAL_RAISE)
|
||||
* SIGHUP to forward the signal to the proxy. As an alternative
|
||||
* they can specify a NX_SIGNAL_FORWARD action, so they,
|
||||
* in turn, can be notified about the signal. This can
|
||||
* be especially useful for SIGCHLD.
|
||||
*
|
||||
* SIGINT These signals should be intercepted by agents. Agents
|
||||
* SIGTERM should ensure that NXTransDestroy() is called before
|
||||
* exiting, to give the proxy a chance to shut down the
|
||||
* NX transport.
|
||||
*
|
||||
* SIGPIPE This signal is blocked by the proxy, but not used to
|
||||
* implement any functionality. It can be handled by the
|
||||
* NX agent without affecting the proxy.
|
||||
*
|
||||
* SIGALRM This is now used by the proxy and agents should not
|
||||
* redefine it. Agents can use the signal to implement
|
||||
* their own timers but should not interleave calls to
|
||||
* the NX transport and should restore the old handler
|
||||
* when the timeout is raised.
|
||||
*
|
||||
* SIGVTALRM These signals are not used but may be used in future
|
||||
* SIGWINCH versions of the library.
|
||||
* SIGIO
|
||||
* SIGTSTP
|
||||
* SIGTTIN
|
||||
* SIGTTOU
|
||||
*
|
||||
* By calling NXTransSignal(..., NX_SIGNAL_DISABLE) nxcomp will res-
|
||||
* tore the signal handler that was saved at the time the proxy hand-
|
||||
* ler was installed. This means that you should call the function
|
||||
* just after the XOpenDisplay() or any other function used to init-
|
||||
* ialize the NX transport.
|
||||
*/
|
||||
|
||||
extern int NXTransSignal(int signal, int action);
|
||||
|
||||
/*
|
||||
* Return a value between 0 and 9 indicating the congestion level
|
||||
* based on the tokens still available. A value of 9 means that
|
||||
* the link is congested and no further data can be sent.
|
||||
*/
|
||||
|
||||
extern int NXTransCongestion(int fd);
|
||||
|
||||
/*
|
||||
* Let the application to be notified by the proxy when an event oc-
|
||||
* curs. The parameter, as set at the time the handler is installed,
|
||||
* is passed each time to the callback function. The parameter is
|
||||
* presumably the display pointer, given that at the present moment
|
||||
* the NX transport doesn't have access to the display structure and
|
||||
* so wouldn't be able to determine the display to pass to the call-
|
||||
* back function.
|
||||
*
|
||||
* NX_HANDLER_FLUSH: The handler function is called when some
|
||||
* more data has been written to the proxy
|
||||
* link.
|
||||
*
|
||||
* The data is the number of bytes written.
|
||||
*
|
||||
* NX_HANDLER_STATISTICS: This handler is called to let the agent
|
||||
* include arbitrary data in the transport
|
||||
* statistics. The parameter, in this case,
|
||||
* is a pointer to a pointer to a null term-
|
||||
* inated string. The pointer is set at the
|
||||
* time the handler is registered. The point-
|
||||
* ed string will have to be filled by the
|
||||
* agent with its statistics data.
|
||||
*
|
||||
* The data can be NX_STATISTICS_PARTIAL or NX_STATISTICS_TOTAL. The
|
||||
* agent can refer to the value by using the NXStatisticsPartial and
|
||||
* NXStatisticsTotal constants defined in NXvars.h.
|
||||
*
|
||||
* Note that these interfaces are used by Xlib and nxcompext. Agents
|
||||
* should never call these interfaces directly, but use the nxcompext
|
||||
* wrapper.
|
||||
*/
|
||||
|
||||
extern int NXTransHandler(int fd, int type, void (*handler)(void *parameter,
|
||||
int reason), void *parameter);
|
||||
|
||||
/*
|
||||
* Set the policy to be used by the NX transport to write data to the
|
||||
* proxy link:
|
||||
*
|
||||
* NX_POLICY_IMMEDIATE: When set to immediate, the proxy will try to
|
||||
* write the data just after having encoded it.
|
||||
*
|
||||
* NX_POLICY_DEFERRED: When policy is set to deferred, data will be
|
||||
* accumulated in a buffer and written to the
|
||||
* remote proxy when NXTransFlush() is called by
|
||||
* the agent.
|
||||
*/
|
||||
|
||||
extern int NXTransPolicy(int fd, int type);
|
||||
|
||||
/*
|
||||
* Query the number of bytes that have been accumulated for a deferred
|
||||
* flush.
|
||||
*/
|
||||
|
||||
extern int NXTransFlushable(int fd);
|
||||
|
||||
/*
|
||||
* Tell to the NX transport to write all the accumulated data to the
|
||||
* remote proxy.
|
||||
*/
|
||||
|
||||
extern int NXTransFlush(int fd);
|
||||
|
||||
/*
|
||||
* Create a new channel of the given type. It returns 1 on success,
|
||||
* 0 if the NX transport is not running, or -1 in the case of error.
|
||||
* On success, the descriptor provided by the caller can be later
|
||||
* used for the subsequent I/O. The type parameter not only tells to
|
||||
* the proxy the remote port where the channel has to be connected,
|
||||
* but also gives a hint about the type of data that will be carried
|
||||
* by the channel, so that the proxy can try to optimize the traffic
|
||||
* on the proxy link.
|
||||
*
|
||||
* NX_CHANNEL_X: The channel will carry X traffic and it
|
||||
* will be connected to the remote X display.
|
||||
*
|
||||
* NX_CHANNEL_CUPS: The channel will carry CUPS/IPP protocol.
|
||||
*
|
||||
* NX_CHANNEL_SMB: The channel will carry SMB/CIFS protocol.
|
||||
*
|
||||
* NX_CHANNEL_MEDIA: The channel will transport audio or other
|
||||
* multimedia data.
|
||||
*
|
||||
* NX_CHANNEL_HTTP: The channel will carry HTTP protocol.
|
||||
*
|
||||
* NX_CHANNEL_FONT: The channel will forward a X font server
|
||||
* connection.
|
||||
*
|
||||
* NX_CHANNEL_SLAVE: The channel will forward data to a remote slave
|
||||
* command (see NX_SLAVE_CMD environment variable)
|
||||
*
|
||||
* Only a proxy running at the NX server/X client side will be able
|
||||
* to create a X, CUPS, SMB, MEDIA and HTTP channel. A proxy running
|
||||
* at the NX client/X server side can create font server connections.
|
||||
* The channel creation will also fail if the remote end has not been
|
||||
* set up to forward the connection.
|
||||
*
|
||||
* To create a new channel the agent will have to set up a socketpair
|
||||
* and pass to the proxy one of the socket descriptors.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* #include <sys/types.h>
|
||||
* #include <sys/socket.h>
|
||||
*
|
||||
* int fds[2];
|
||||
*
|
||||
* if (socketpair(PF_LOCAL, SOCK_STREAM, 0, fds) < 0)
|
||||
* {
|
||||
* ...
|
||||
* }
|
||||
* else
|
||||
* {
|
||||
* //
|
||||
* // Use fds[0] locally and let the
|
||||
* // proxy use fds[1].
|
||||
* //
|
||||
*
|
||||
* if (NXTransChannel(NX_FD_ANY, fds[1], NX_CHANNEL_X) <= 0)
|
||||
* {
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* //
|
||||
* // The agent can now use fds[0] in
|
||||
* // read(), write() and select()
|
||||
* // system calls.
|
||||
* //
|
||||
*
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* Note that all the I/O on the descriptor should be non-blocking, to
|
||||
* give a chance to the NX transport to run in the background and handle
|
||||
* the data that will be fed to the agent's side of the socketpair. This
|
||||
* will happen automatically, as long as the agent uses the XSelect()
|
||||
* version of the select() function (as it is normal whenever performing
|
||||
* Xlib I/O). In all the other cases, like presumably in the agent's main
|
||||
* loop, the agent will have to loop through NXTransPrepare(), NXTrans-
|
||||
* Select() and NXTransExecute() functions explicitly, adding to the sets
|
||||
* the descriptors that are awaited by the agent. Please check the imple-
|
||||
* mentation of _XSelect() in nx-X11/lib/X11/XlibInt.c for an example.
|
||||
*/
|
||||
|
||||
extern int NXTransChannel(int fd, int channelfd, int type);
|
||||
|
||||
/*
|
||||
* Return the name of the files used by the proxy for the current session.
|
||||
*
|
||||
* The type parameter can be:
|
||||
*
|
||||
* NX_FILE_SESSION: Usually the file 'session' in the user's session
|
||||
* directory.
|
||||
*
|
||||
* NX_FILE_ERRORS: The file used for the diagnostic output. Usually
|
||||
* the file 'errors' in the session directory.
|
||||
*
|
||||
* NX_FILE_OPTIONS: The file containing the NX options, if any.
|
||||
*
|
||||
* NX_FILE_STATS: The file used for the statistics output.
|
||||
*
|
||||
* The returned string is allocated in static memory. The caller should
|
||||
* copy the string upon returning from the function, without freeing the
|
||||
* pointer.
|
||||
*/
|
||||
|
||||
extern const char *NXTransFile(int type);
|
||||
|
||||
/*
|
||||
* Return the time in milliseconds elapsed since the last call to this
|
||||
* same function.
|
||||
*/
|
||||
|
||||
extern long NXTransTime(void);
|
||||
|
||||
/*
|
||||
* Other interfaces to the internal transport functions.
|
||||
*/
|
||||
|
||||
extern int NXTransProxy(int fd, int mode, const char *display);
|
||||
|
||||
extern int NXTransClient(const char *display);
|
||||
|
||||
extern int NXTransDialog(const char *caption, const char *message,
|
||||
const char *window, const char *type, int local,
|
||||
const char *display);
|
||||
|
||||
extern int NXTransAlert(int code, int local);
|
||||
|
||||
extern int NXTransWatchdog(int timeout);
|
||||
|
||||
extern int NXTransKeeper(int caches, int images, const char *root);
|
||||
|
||||
extern void NXTransExit(int code) __attribute__((noreturn));
|
||||
|
||||
extern int NXTransParseCommandLine(int argc, const char **argv);
|
||||
extern int NXTransParseEnvironment(const char *env, int force);
|
||||
|
||||
extern void NXTransCleanup(void) __attribute__((noreturn));
|
||||
|
||||
/*
|
||||
* Cleans up the global and local state
|
||||
* (the same way as NXTransCleanup does)
|
||||
* but does not exit the process
|
||||
* Needed for IOS platform
|
||||
*/
|
||||
extern void NXTransCleanupForReconnect(void);
|
||||
|
||||
extern const char* NXVersion(void);
|
||||
extern int NXMajorVersion(void);
|
||||
extern int NXMinorVersion(void);
|
||||
extern int NXPatchVersion(void);
|
||||
extern int NXMaintenancePatchVersion(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* NX_H */
|
||||
276
nxcomp/include/NXalert.h
Normal file
276
nxcomp/include/NXalert.h
Normal file
@@ -0,0 +1,276 @@
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
|
||||
/* Copyright (c) 2008-2017 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
|
||||
/* Copyright (c) 2014-2022 Ulrich Sibiller <uli42@gmx.de> */
|
||||
/* Copyright (c) 2014-2019 Mihai Moldovan <ionic@ionic.de> */
|
||||
/* Copyright (c) 2011-2022 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
|
||||
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
|
||||
/* */
|
||||
/* NXCOMP, NX protocol compression and NX extensions to this software */
|
||||
/* are copyright of the aforementioned persons and companies. */
|
||||
/* */
|
||||
/* Redistribution and use of the present software is allowed according */
|
||||
/* to terms specified in the file LICENSE.nxcomp which comes in the */
|
||||
/* source distribution. */
|
||||
/* */
|
||||
/* All rights reserved. */
|
||||
/* */
|
||||
/* NOTE: This software has received contributions from various other */
|
||||
/* contributors, only the core maintainers and supporters are listed as */
|
||||
/* copyright holders. Please contact us, if you feel you should be listed */
|
||||
/* as copyright holder, as well. */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef NXalert_H
|
||||
#define NXalert_H
|
||||
|
||||
#define ALERT_CAPTION_PREFIX "NX - "
|
||||
|
||||
#define INTERNAL_ERROR_ALERT 1
|
||||
#define INTERNAL_ERROR_ALERT_TYPE "error"
|
||||
#define INTERNAL_ERROR_ALERT_STRING \
|
||||
"\
|
||||
An unrecoverable internal error was detected.\n\
|
||||
Press OK to terminate the current session.\n\
|
||||
"
|
||||
|
||||
#define CLOSE_DEAD_X_CONNECTION_CLIENT_ALERT 2
|
||||
#define CLOSE_DEAD_X_CONNECTION_CLIENT_ALERT_TYPE "yesno"
|
||||
#define CLOSE_DEAD_X_CONNECTION_CLIENT_ALERT_STRING \
|
||||
"\
|
||||
One of the applications currently in use is not responding.\n\
|
||||
Do you want to terminate the current session?\n\
|
||||
"
|
||||
|
||||
#define CLOSE_DEAD_X_CONNECTION_SERVER_ALERT 3
|
||||
#define CLOSE_DEAD_X_CONNECTION_SERVER_ALERT_TYPE "yesno"
|
||||
#define CLOSE_DEAD_X_CONNECTION_SERVER_ALERT_STRING \
|
||||
"\
|
||||
One of the applications did not behave correctly and caused\n\
|
||||
the X server to stop responding in a timely fashion. Do you\n\
|
||||
want to terminate the current session?\n\
|
||||
"
|
||||
|
||||
#define CLOSE_DEAD_PROXY_CONNECTION_CLIENT_ALERT 4
|
||||
#define CLOSE_DEAD_PROXY_CONNECTION_CLIENT_ALERT_TYPE NULL
|
||||
#define CLOSE_DEAD_PROXY_CONNECTION_CLIENT_ALERT_STRING NULL
|
||||
|
||||
#define CLOSE_DEAD_PROXY_CONNECTION_SERVER_ALERT 5
|
||||
#define CLOSE_DEAD_PROXY_CONNECTION_SERVER_ALERT_TYPE "yesno"
|
||||
#define CLOSE_DEAD_PROXY_CONNECTION_SERVER_ALERT_STRING \
|
||||
"\
|
||||
No response received from the remote server.\n\
|
||||
Do you want to terminate the current session?\n\
|
||||
"
|
||||
|
||||
#define RESTART_DEAD_PROXY_CONNECTION_CLIENT_ALERT 6
|
||||
#define RESTART_DEAD_PROXY_CONNECTION_CLIENT_ALERT_TYPE NULL
|
||||
#define RESTART_DEAD_PROXY_CONNECTION_CLIENT_ALERT_STRING NULL
|
||||
|
||||
#define RESTART_DEAD_PROXY_CONNECTION_SERVER_ALERT 7
|
||||
#define RESTART_DEAD_PROXY_CONNECTION_SERVER_ALERT_TYPE "yesno"
|
||||
#define RESTART_DEAD_PROXY_CONNECTION_SERVER_ALERT_STRING \
|
||||
"\
|
||||
Connection with remote server was shut down. NX will try\n\
|
||||
to establish a new server connection. Session could have\n\
|
||||
been left in a unusable state. Do you want to terminate\n\
|
||||
the session?\n\
|
||||
"
|
||||
|
||||
#define CLOSE_UNRESPONSIVE_X_SERVER_ALERT 8
|
||||
#define CLOSE_UNRESPONSIVE_X_SERVER_ALERT_TYPE "panic"
|
||||
#define CLOSE_UNRESPONSIVE_X_SERVER_ALERT_STRING \
|
||||
"\
|
||||
You pressed the key sequence CTRL+ALT+SHIFT+ESC.\n\
|
||||
This is probably because your X server has become\n\
|
||||
unresponsive. Session will be terminated in 30\n\
|
||||
seconds unless you abort the procedure by pressing\n\
|
||||
the Cancel button.\n\
|
||||
"
|
||||
|
||||
#define WRONG_PROXY_VERSION_ALERT 9
|
||||
#define WRONG_PROXY_VERSION_ALERT_TYPE "ok"
|
||||
#define WRONG_PROXY_VERSION_ALERT_STRING \
|
||||
"\
|
||||
Local NX libraries version " VERSION " do not match the NX\n\
|
||||
version of the remote server. Please check the error\n\
|
||||
log on the server to find out which client version you\n\
|
||||
need to install to be able to access this server.\n\
|
||||
"
|
||||
|
||||
#define FAILED_PROXY_CONNECTION_CLIENT_ALERT 10
|
||||
#define FAILED_PROXY_CONNECTION_CLIENT_ALERT_TYPE NULL
|
||||
#define FAILED_PROXY_CONNECTION_CLIENT_ALERT_STRING NULL
|
||||
|
||||
#define FAILED_PROXY_CONNECTION_SERVER_ALERT 11
|
||||
#define FAILED_PROXY_CONNECTION_SERVER_ALERT_TYPE "yesno"
|
||||
#define FAILED_PROXY_CONNECTION_SERVER_ALERT_STRING \
|
||||
"\
|
||||
Could not yet establish the connection to the remote\n\
|
||||
proxy. Do you want to terminate the current session?\n\
|
||||
"
|
||||
|
||||
#define MISSING_PROXY_CACHE_ALERT 12
|
||||
#define MISSING_PROXY_CACHE_ALERT_TYPE "ok"
|
||||
#define MISSING_PROXY_CACHE_ALERT_STRING \
|
||||
"\
|
||||
NX was unable to negotiate a cache for this session.\n\
|
||||
This may happen if this is the first time you run a\n\
|
||||
session on this server or if cache was corrupted or\n\
|
||||
produced by an incompatible NX version.\n\
|
||||
"
|
||||
|
||||
#define ABORT_PROXY_CONNECTION_ALERT 13
|
||||
#define ABORT_PROXY_CONNECTION_ALERT_TYPE "ok"
|
||||
#define ABORT_PROXY_CONNECTION_ALERT_STRING \
|
||||
"\
|
||||
The connection with the remote server was shut down.\n\
|
||||
Please check the state of your network connection.\n\
|
||||
"
|
||||
|
||||
/*
|
||||
* The one below is a special alert, used to close
|
||||
* a previous alert that is running on the given
|
||||
* side. This can be used to get rid of a message
|
||||
* that has ceased to hold true.
|
||||
*/
|
||||
|
||||
#define DISPLACE_MESSAGE_ALERT 14
|
||||
#define DISPLACE_MESSAGE_ALERT_TYPE NULL
|
||||
#define DISPLACE_MESSAGE_ALERT_STRING NULL
|
||||
|
||||
/*
|
||||
* These are the other alert messages that were
|
||||
* added in the 1.5.0 release. The first is never
|
||||
* shown and is intended just for testing.
|
||||
*/
|
||||
|
||||
#define GREETING_MESSAGE_ALERT 15
|
||||
#define GREETING_MESSAGE_ALERT_TYPE "ok"
|
||||
#define GREETING_MESSAGE_ALERT_STRING \
|
||||
"\
|
||||
Welcome to NX from the NoMachine team. We really\n\
|
||||
hope you will enjoy this wonderful software as much\n\
|
||||
as we had fun making it ;-).\n\
|
||||
"
|
||||
|
||||
/*
|
||||
* These alerts are intended to notify the user
|
||||
* of the reason why the agent failed to resume
|
||||
* the session.
|
||||
*/
|
||||
|
||||
#define START_RESUME_SESSION_ALERT 16
|
||||
#define START_RESUME_SESSION_ALERT_TYPE "ok"
|
||||
#define START_RESUME_SESSION_ALERT_STRING \
|
||||
"\
|
||||
You appear to run your NX session across a slow network\n\
|
||||
connection. Resuming the session may require some time.\n\
|
||||
Please wait.\
|
||||
"
|
||||
|
||||
#define FAILED_RESUME_DISPLAY_ALERT 17
|
||||
#define FAILED_RESUME_DISPLAY_ALERT_TYPE "error"
|
||||
#define FAILED_RESUME_DISPLAY_ALERT_STRING \
|
||||
"\
|
||||
Failed to open the display. Can't resume the NX\n\
|
||||
session on this display.\n\
|
||||
"
|
||||
|
||||
#define FAILED_RESUME_DISPLAY_BROKEN_ALERT 18
|
||||
#define FAILED_RESUME_DISPLAY_BROKEN_TYPE "error"
|
||||
#define FAILED_RESUME_DISPLAY_BROKEN_STRING \
|
||||
"\
|
||||
The display connection was broken while trying to\n\
|
||||
resume the session. Please, check your network\n\
|
||||
connection and try again.\n\
|
||||
"
|
||||
|
||||
#define FAILED_RESUME_VISUALS_ALERT 19
|
||||
#define FAILED_RESUME_VISUALS_ALERT_TYPE "error"
|
||||
#define FAILED_RESUME_VISUALS_ALERT_STRING \
|
||||
"\
|
||||
Failed to restore all the required visuals.\n\
|
||||
Can't resume the NX session on this display.\n\
|
||||
"
|
||||
|
||||
#define FAILED_RESUME_COLORMAPS_ALERT 20
|
||||
#define FAILED_RESUME_COLORMAPS_ALERT_TYPE "error"
|
||||
#define FAILED_RESUME_COLORMAPS_ALERT_STRING \
|
||||
"\
|
||||
The number of available colormaps is different\n\
|
||||
on the new display. Can't resume the NX session\n\
|
||||
on this display.\n\
|
||||
"
|
||||
|
||||
#define FAILED_RESUME_PIXMAPS_ALERT 21
|
||||
#define FAILED_RESUME_PIXMAPS_ALERT_TYPE "error"
|
||||
#define FAILED_RESUME_PIXMAPS_ALERT_STRING \
|
||||
"\
|
||||
Failed to restore all the required pixmap formats.\n\
|
||||
Can't resume the NX session on this display.\n\
|
||||
"
|
||||
|
||||
#define FAILED_RESUME_DEPTHS_ALERT 22
|
||||
#define FAILED_RESUME_DEPTHS_ALERT_TYPE "error"
|
||||
#define FAILED_RESUME_DEPTHS_ALERT_STRING \
|
||||
"\
|
||||
Failed to restore all the required screen depths.\n\
|
||||
Can't resume the NX session on this display.\n\
|
||||
"
|
||||
|
||||
#define FAILED_RESUME_RENDER_ALERT 23
|
||||
#define FAILED_RESUME_RENDER_ALERT_TYPE "error"
|
||||
#define FAILED_RESUME_RENDER_ALERT_STRING \
|
||||
"\
|
||||
The render extension is missing or an incompatible\n\
|
||||
version was detected on your X server. Can't resume\n\
|
||||
the NX session on this display.\n\
|
||||
"
|
||||
|
||||
#define FAILED_RESUME_FONTS_ALERT 24
|
||||
#define FAILED_RESUME_FONTS_ALERT_TYPE "error"
|
||||
#define FAILED_RESUME_FONTS_ALERT_STRING \
|
||||
"\
|
||||
One or more of the fonts that are in use by the\n\
|
||||
session are missing. Can't resume the NX session\n\
|
||||
on this display.\n\
|
||||
"
|
||||
|
||||
#define ABORT_PROXY_NEGOTIATION_ALERT 62
|
||||
#define ABORT_PROXY_NEGOTIATION_ALERT_TYPE "ok"
|
||||
#define ABORT_PROXY_NEGOTIATION_ALERT_STRING \
|
||||
"\
|
||||
The remote proxy closed the connection while negotiating\n\
|
||||
the session. This may be due to the wrong authentication\n\
|
||||
credentials passed to the server.\n\
|
||||
"
|
||||
|
||||
#define ABORT_PROXY_SHUTDOWN_ALERT 64
|
||||
#define ABORT_PROXY_SHUTDOWN_ALERT_TYPE "ok"
|
||||
#define ABORT_PROXY_SHUTDOWN_ALERT_STRING \
|
||||
"\
|
||||
No response received from the remote proxy while\n\
|
||||
waiting for the session shutdown.\n\
|
||||
"
|
||||
|
||||
#define FAILED_XDMCP_CONNECTION_ALERT 65
|
||||
#define FAILED_XDMCP_CONNECTION_ALERT_TYPE "ok"
|
||||
#define FAILED_XDMCP_CONNECTION_ALERT_STRING \
|
||||
"\
|
||||
The XDM host that was contacted by the NX server doesn't\n\
|
||||
seem to be able to start the session. Please check your\n\
|
||||
server configuration.\n\
|
||||
"
|
||||
|
||||
/*
|
||||
* Used to handle the backward compatibility.
|
||||
* Update the numbers if you add a new alert.
|
||||
*/
|
||||
|
||||
#define LAST_PROTO_STEP_6_ALERT 63
|
||||
#define LAST_PROTO_STEP_7_ALERT 65
|
||||
|
||||
#endif /* NXalert_H */
|
||||
141
nxcomp/include/NXpack.h
Normal file
141
nxcomp/include/NXpack.h
Normal file
@@ -0,0 +1,141 @@
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
|
||||
/* Copyright (c) 2008-2017 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
|
||||
/* Copyright (c) 2014-2022 Ulrich Sibiller <uli42@gmx.de> */
|
||||
/* Copyright (c) 2014-2019 Mihai Moldovan <ionic@ionic.de> */
|
||||
/* Copyright (c) 2011-2022 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
|
||||
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
|
||||
/* */
|
||||
/* NXCOMP, NX protocol compression and NX extensions to this software */
|
||||
/* are copyright of the aforementioned persons and companies. */
|
||||
/* */
|
||||
/* Redistribution and use of the present software is allowed according */
|
||||
/* to terms specified in the file LICENSE.nxcomp which comes in the */
|
||||
/* source distribution. */
|
||||
/* */
|
||||
/* All rights reserved. */
|
||||
/* */
|
||||
/* NOTE: This software has received contributions from various other */
|
||||
/* contributors, only the core maintainers and supporters are listed as */
|
||||
/* copyright holders. Please contact us, if you feel you should be listed */
|
||||
/* as copyright holder, as well. */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef NXpack_H
|
||||
#define NXpack_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define MASK_METHOD_LIMIT 10
|
||||
|
||||
#define NO_MASK 0
|
||||
|
||||
#define MASK_8_COLORS 1
|
||||
#define MASK_64_COLORS 2
|
||||
#define MASK_256_COLORS 3
|
||||
#define MASK_512_COLORS 4
|
||||
#define MASK_4K_COLORS 5
|
||||
#define MASK_32K_COLORS 6
|
||||
#define MASK_64K_COLORS 7
|
||||
#define MASK_256K_COLORS 8
|
||||
#define MASK_2M_COLORS 9
|
||||
#define MASK_16M_COLORS 10
|
||||
|
||||
#define PACK_METHOD_LIMIT 128
|
||||
|
||||
#define NO_PACK 0
|
||||
|
||||
#define PACK_MASKED_8_COLORS 1
|
||||
#define PACK_MASKED_64_COLORS 2
|
||||
#define PACK_MASKED_256_COLORS 3
|
||||
#define PACK_MASKED_512_COLORS 4
|
||||
#define PACK_MASKED_4K_COLORS 5
|
||||
#define PACK_MASKED_32K_COLORS 6
|
||||
#define PACK_MASKED_64K_COLORS 7
|
||||
#define PACK_MASKED_256K_COLORS 8
|
||||
#define PACK_MASKED_2M_COLORS 9
|
||||
#define PACK_MASKED_16M_COLORS 10
|
||||
|
||||
#define PACK_RAW_8_BITS 3
|
||||
#define PACK_RAW_16_BITS 7
|
||||
#define PACK_RAW_24_BITS 10
|
||||
|
||||
#define PACK_COLORMAP_256_COLORS 11
|
||||
|
||||
#define PACK_JPEG_8_COLORS 26
|
||||
#define PACK_JPEG_64_COLORS 27
|
||||
#define PACK_JPEG_256_COLORS 28
|
||||
#define PACK_JPEG_512_COLORS 29
|
||||
#define PACK_JPEG_4K_COLORS 30
|
||||
#define PACK_JPEG_32K_COLORS 31
|
||||
#define PACK_JPEG_64K_COLORS 32
|
||||
#define PACK_JPEG_256K_COLORS 33
|
||||
#define PACK_JPEG_2M_COLORS 34
|
||||
#define PACK_JPEG_16M_COLORS 35
|
||||
|
||||
#define PACK_PNG_8_COLORS 37
|
||||
#define PACK_PNG_64_COLORS 38
|
||||
#define PACK_PNG_256_COLORS 39
|
||||
#define PACK_PNG_512_COLORS 40
|
||||
#define PACK_PNG_4K_COLORS 41
|
||||
#define PACK_PNG_32K_COLORS 42
|
||||
#define PACK_PNG_64K_COLORS 43
|
||||
#define PACK_PNG_256K_COLORS 44
|
||||
#define PACK_PNG_2M_COLORS 45
|
||||
#define PACK_PNG_16M_COLORS 46
|
||||
|
||||
#define PACK_RGB_16M_COLORS 63
|
||||
#define PACK_RLE_16M_COLORS 64
|
||||
|
||||
#define PACK_ALPHA 65
|
||||
#define PACK_COLORMAP 66
|
||||
|
||||
#define PACK_BITMAP_16M_COLORS 67
|
||||
|
||||
/*
|
||||
* Not really pack methods. These values
|
||||
* allow dynamic selection of the pack
|
||||
* method by the agent.
|
||||
*/
|
||||
|
||||
#define PACK_NONE 0
|
||||
#define PACK_LOSSY 253
|
||||
#define PACK_LOSSLESS 254
|
||||
#define PACK_ADAPTIVE 255
|
||||
|
||||
/*
|
||||
* Reduce the number of colors in the
|
||||
* image by applying a mask.
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned int color_mask;
|
||||
unsigned int correction_mask;
|
||||
unsigned int white_threshold;
|
||||
unsigned int black_threshold;
|
||||
|
||||
} ColorMask;
|
||||
|
||||
extern const ColorMask Mask8TrueColor;
|
||||
extern const ColorMask Mask64TrueColor;
|
||||
extern const ColorMask Mask512TrueColor;
|
||||
extern const ColorMask Mask4KTrueColor;
|
||||
extern const ColorMask Mask32KTrueColor;
|
||||
extern const ColorMask Mask256KTrueColor;
|
||||
extern const ColorMask Mask2MTrueColor;
|
||||
extern const ColorMask Mask16MTrueColor;
|
||||
|
||||
const ColorMask *MethodColorMask(unsigned int method);
|
||||
|
||||
int MethodBitsPerPixel(unsigned int method);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* NXpack_H */
|
||||
447
nxcomp/include/NXproto.h
Normal file
447
nxcomp/include/NXproto.h
Normal file
@@ -0,0 +1,447 @@
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
|
||||
/* Copyright (c) 2008-2017 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
|
||||
/* Copyright (c) 2014-2022 Ulrich Sibiller <uli42@gmx.de> */
|
||||
/* Copyright (c) 2014-2019 Mihai Moldovan <ionic@ionic.de> */
|
||||
/* Copyright (c) 2011-2022 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
|
||||
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
|
||||
/* */
|
||||
/* NXCOMP, NX protocol compression and NX extensions to this software */
|
||||
/* are copyright of the aforementioned persons and companies. */
|
||||
/* */
|
||||
/* Redistribution and use of the present software is allowed according */
|
||||
/* to terms specified in the file LICENSE.nxcomp which comes in the */
|
||||
/* source distribution. */
|
||||
/* */
|
||||
/* All rights reserved. */
|
||||
/* */
|
||||
/* NOTE: This software has received contributions from various other */
|
||||
/* contributors, only the core maintainers and supporters are listed as */
|
||||
/* copyright holders. Please contact us, if you feel you should be listed */
|
||||
/* as copyright holder, as well. */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef NXproto_H
|
||||
#define NXproto_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xmd.h>
|
||||
#include <X11/Xproto.h>
|
||||
|
||||
/*
|
||||
* Force the size to match the wire protocol.
|
||||
*/
|
||||
|
||||
#define Drawable CARD32
|
||||
#define GContext CARD32
|
||||
|
||||
#define sz_xNXGetControlParametersReq 4
|
||||
#define sz_xNXGetCleanupParametersReq 4
|
||||
#define sz_xNXGetImageParametersReq 4
|
||||
#define sz_xNXGetUnpackParametersReq 8
|
||||
#define sz_xNXGetShmemParametersReq 16
|
||||
#define sz_xNXGetFontParametersReq 4
|
||||
#define sz_xNXSetExposeParametersReq 8
|
||||
#define sz_xNXSetCacheParametersReq 8
|
||||
#define sz_xNXStartSplitReq 8
|
||||
#define sz_xNXEndSplitReq 4
|
||||
#define sz_xNXCommitSplitReq 12
|
||||
#define sz_xNXSetUnpackGeometryReq 24
|
||||
#define sz_xNXSetUnpackColormapReq 16
|
||||
#define sz_xNXSetUnpackAlphaReq 16
|
||||
#define sz_xNXPutPackedImageReq 40
|
||||
#define sz_xNXFreeUnpackReq 4
|
||||
#define sz_xNXFinishSplitReq 4
|
||||
#define sz_xNXAbortSplitReq 4
|
||||
#define sz_xNXFreeSplitReq 4
|
||||
|
||||
#define sz_xGetControlParametersReply 32
|
||||
#define sz_xGetCleanupParametersReply 32
|
||||
#define sz_xGetImageParametersReply 32
|
||||
#define sz_xGetUnpackParametersReply 32
|
||||
#define sz_xGetShmemParametersReply 32
|
||||
|
||||
#define LINK_TYPE_LIMIT 5
|
||||
|
||||
#define LINK_TYPE_NONE 0
|
||||
#define LINK_TYPE_MODEM 1
|
||||
#define LINK_TYPE_ISDN 2
|
||||
#define LINK_TYPE_ADSL 3
|
||||
#define LINK_TYPE_WAN 4
|
||||
#define LINK_TYPE_LAN 5
|
||||
|
||||
/*
|
||||
* NX Replies.
|
||||
*/
|
||||
|
||||
/*
|
||||
* The following reply has 4 new boolean
|
||||
* fields in the last protocol version.
|
||||
*/
|
||||
|
||||
typedef struct _NXGetControlParametersReply {
|
||||
BYTE type; /* Is X_Reply. */
|
||||
CARD8 linkType;
|
||||
CARD16 sequenceNumber B16;
|
||||
CARD32 length B32; /* Is 0. */
|
||||
CARD8 localMajor;
|
||||
CARD8 localMinor;
|
||||
CARD8 localPatch;
|
||||
CARD8 remoteMajor;
|
||||
CARD8 remoteMinor;
|
||||
CARD8 remotePatch;
|
||||
CARD16 splitTimeout B16;
|
||||
CARD16 motionTimeout B16;
|
||||
CARD8 splitMode;
|
||||
CARD8 pad1;
|
||||
CARD32 splitSize B32;
|
||||
CARD8 packMethod;
|
||||
CARD8 packQuality;
|
||||
CARD8 dataLevel;
|
||||
CARD8 streamLevel;
|
||||
CARD8 deltaLevel;
|
||||
CARD8 loadCache;
|
||||
CARD8 saveCache;
|
||||
CARD8 startupCache;
|
||||
} xNXGetControlParametersReply;
|
||||
|
||||
typedef struct _NXGetCleanupParametersReply {
|
||||
BYTE type; /* Is X_Reply. */
|
||||
BYTE pad;
|
||||
CARD16 sequenceNumber B16;
|
||||
CARD32 length B32; /* Is 0. */
|
||||
BOOL cleanGet;
|
||||
BOOL cleanAlloc;
|
||||
BOOL cleanFlush;
|
||||
BOOL cleanSend;
|
||||
BOOL cleanImages;
|
||||
BYTE pad1, pad2, pad3;
|
||||
CARD32 pad4 B32;
|
||||
CARD32 pad5 B32;
|
||||
CARD32 pad6 B32;
|
||||
CARD32 pad7 B32;
|
||||
} xNXGetCleanupParametersReply;
|
||||
|
||||
typedef struct _NXGetImageParametersReply {
|
||||
BYTE type; /* Is X_Reply. */
|
||||
BYTE pad;
|
||||
CARD16 sequenceNumber B16;
|
||||
CARD32 length B32; /* Is 0. */
|
||||
BOOL imageSplit;
|
||||
BOOL imageMask;
|
||||
BOOL imageFrame;
|
||||
CARD8 imageMaskMethod;
|
||||
CARD8 imageSplitMethod;
|
||||
BYTE pad1, pad2, pad3;
|
||||
CARD32 pad4 B32;
|
||||
CARD32 pad5 B32;
|
||||
CARD32 pad6 B32;
|
||||
CARD32 pad7 B32;
|
||||
} xNXGetImageParametersReply;
|
||||
|
||||
/*
|
||||
* Data is made of PACK_METHOD_LIMIT values of
|
||||
* type BOOL telling which unpack capabilities
|
||||
* are implemented in proxy.
|
||||
*/
|
||||
|
||||
typedef struct _NXGetUnpackParametersReply {
|
||||
BYTE type; /* Is X_Reply. */
|
||||
BYTE pad;
|
||||
CARD16 sequenceNumber B16;
|
||||
CARD32 length B32; /* Is PACK_METHOD_LIMIT / 4 from NXpack.h. */
|
||||
CARD8 entries; /* Is PACK_METHOD_LIMIT. */
|
||||
BYTE pad1, pad2, pad3;
|
||||
CARD32 pad4 B32;
|
||||
CARD32 pad5 B32;
|
||||
CARD32 pad6 B32;
|
||||
CARD32 pad7 B32;
|
||||
CARD32 pad8 B32;
|
||||
} xNXGetUnpackParametersReply;
|
||||
|
||||
typedef struct _NXGetShmemParametersReply {
|
||||
BYTE type; /* Is X_Reply. */
|
||||
CARD8 stage; /* As in the corresponding request. */
|
||||
CARD16 sequenceNumber B16;
|
||||
CARD32 length B32; /* Is 0. */
|
||||
BOOL clientEnabled; /* SHM on path agent to proxy. */
|
||||
BOOL serverEnabled; /* SHM on path proxy to X server. */
|
||||
BYTE pad1, pad2; /* Previous values can be checked */
|
||||
CARD32 clientSize B32; /* at end of stage 2. */
|
||||
CARD32 serverSize B32;
|
||||
CARD32 pad3 B32;
|
||||
CARD32 pad4 B32;
|
||||
CARD32 pad5 B32;
|
||||
} xNXGetShmemParametersReply;
|
||||
|
||||
typedef struct _NXGetFontParametersReply {
|
||||
BYTE type; /* Is X_Reply. */
|
||||
BYTE pad1;
|
||||
CARD16 sequenceNumber B16;
|
||||
CARD32 length B32; /* Is length of path string + 1 / 4. */
|
||||
CARD32 pad2 B32;
|
||||
CARD32 pad3 B32;
|
||||
CARD32 pad4 B32;
|
||||
CARD32 pad5 B32;
|
||||
CARD32 pad6 B32;
|
||||
CARD32 pad7 B32;
|
||||
} xNXGetFontParametersReply;
|
||||
|
||||
/*
|
||||
* NX Requests.
|
||||
*/
|
||||
|
||||
typedef struct _NXGetControlParametersReq {
|
||||
CARD8 reqType;
|
||||
BYTE pad;
|
||||
CARD16 length B16;
|
||||
} xNXGetControlParametersReq;
|
||||
|
||||
typedef struct _NXGetCleanupParametersReq {
|
||||
CARD8 reqType;
|
||||
BYTE pad;
|
||||
CARD16 length B16;
|
||||
} xNXGetCleanupParametersReq;
|
||||
|
||||
typedef struct _NXGetImageParametersReq {
|
||||
CARD8 reqType;
|
||||
BYTE pad;
|
||||
CARD16 length B16;
|
||||
} xNXGetImageParametersReq;
|
||||
|
||||
typedef struct _NXGetUnpackParametersReq {
|
||||
CARD8 reqType;
|
||||
BYTE pad;
|
||||
CARD16 length B16;
|
||||
CARD8 entries;
|
||||
BYTE pad1, pad2, pad3;
|
||||
} xNXGetUnpackParametersReq;
|
||||
|
||||
typedef struct _NXGetShmemParametersReq {
|
||||
CARD8 reqType;
|
||||
CARD8 stage; /* It is between 0 and 2. */
|
||||
CARD16 length B16;
|
||||
BOOL enableClient; /* X client side support is */
|
||||
BOOL enableServer; /* not implemented yet. */
|
||||
BYTE pad1, pad2;
|
||||
CARD32 clientSegment; /* XID identifying the shared */
|
||||
CARD32 serverSegment; /* memory segments. */
|
||||
} xNXGetShmemParametersReq;
|
||||
|
||||
typedef struct _NXGetFontParametersReq {
|
||||
CARD8 reqType;
|
||||
CARD8 pad;
|
||||
CARD16 length B16;
|
||||
} xNXGetFontParametersReq;
|
||||
|
||||
/*
|
||||
* The available split modes.
|
||||
*/
|
||||
|
||||
#define NXSplitModeDefault 0
|
||||
#define NXSplitModeAsync 1
|
||||
#define NXSplitModeSync 2
|
||||
|
||||
typedef struct _NXStartSplitReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
CARD8 mode;
|
||||
BYTE pad1, pad2, pad3;
|
||||
} xNXStartSplitReq;
|
||||
|
||||
typedef struct _NXEndSplitReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
} xNXEndSplitReq;
|
||||
|
||||
typedef struct _NXCommitSplitReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
CARD8 propagate;
|
||||
CARD8 request;
|
||||
BYTE pad1, pad2;
|
||||
CARD32 position B32;
|
||||
} xNXCommitSplitReq;
|
||||
|
||||
typedef struct _NXFinishSplitReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
} xNXFinishSplitReq;
|
||||
|
||||
typedef struct _NXAbortSplitReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
} xNXAbortSplitReq;
|
||||
|
||||
typedef struct _NXFreeSplitReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
} xNXFreeSplitReq;
|
||||
|
||||
typedef struct _NXSetExposeParametersReq {
|
||||
CARD8 reqType;
|
||||
BYTE pad;
|
||||
CARD16 length B16;
|
||||
BOOL expose;
|
||||
BOOL graphicsExpose;
|
||||
BOOL noExpose;
|
||||
BYTE pad1;
|
||||
} xNXSetExposeParametersReq;
|
||||
|
||||
typedef struct _NXSetCacheParametersReq {
|
||||
CARD8 reqType;
|
||||
BYTE pad;
|
||||
CARD16 length B16;
|
||||
BOOL enableCache;
|
||||
BOOL enableSplit;
|
||||
BOOL enableSave;
|
||||
BOOL enableLoad;
|
||||
} xNXSetCacheParametersReq;
|
||||
|
||||
typedef struct _NXSetUnpackGeometryReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
CARD8 depth1Bpp;
|
||||
CARD8 depth4Bpp;
|
||||
CARD8 depth8Bpp;
|
||||
CARD8 depth16Bpp;
|
||||
CARD8 depth24Bpp;
|
||||
CARD8 depth32Bpp;
|
||||
BYTE pad1, pad2;
|
||||
CARD32 redMask B32;
|
||||
CARD32 greenMask B32;
|
||||
CARD32 blueMask B32;
|
||||
} xNXSetUnpackGeometryReq;
|
||||
|
||||
typedef struct _NXSetUnpackColormapReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
CARD8 method;
|
||||
BYTE pad1, pad2, pad3;
|
||||
CARD32 srcLength B32;
|
||||
CARD32 dstLength B32;
|
||||
} xNXSetUnpackColormapReq;
|
||||
|
||||
typedef struct _NXSetUnpackAlphaReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
CARD8 method;
|
||||
BYTE pad1, pad2, pad3;
|
||||
CARD32 srcLength B32;
|
||||
CARD32 dstLength B32;
|
||||
} xNXSetUnpackAlphaReq;
|
||||
|
||||
typedef struct _NXPutPackedImageReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
Drawable drawable B32;
|
||||
GContext gc B32;
|
||||
CARD8 method;
|
||||
CARD8 format;
|
||||
CARD8 srcDepth;
|
||||
CARD8 dstDepth;
|
||||
CARD32 srcLength B32;
|
||||
CARD32 dstLength B32;
|
||||
INT16 srcX B16, srcY B16;
|
||||
CARD16 srcWidth B16, srcHeight B16;
|
||||
INT16 dstX B16, dstY B16;
|
||||
CARD16 dstWidth B16, dstHeight B16;
|
||||
} xNXPutPackedImageReq;
|
||||
|
||||
typedef struct _NXFreeUnpackReq {
|
||||
CARD8 reqType;
|
||||
CARD8 resource;
|
||||
CARD16 length B16;
|
||||
} xNXFreeUnpackReq;
|
||||
|
||||
/*
|
||||
* The X_NXSplitData and X_NXSplitEvent opcodes
|
||||
* are used internally and are ignored if coming
|
||||
* from the agent.
|
||||
*/
|
||||
|
||||
#define X_NXInternalGenericData 0
|
||||
#define X_NXInternalGenericReply 1
|
||||
#define X_NXInternalGenericRequest 255
|
||||
|
||||
#define X_NXInternalShapeExtension 128
|
||||
#define X_NXInternalRenderExtension 129
|
||||
|
||||
#define X_NXFirstOpcode 230
|
||||
#define X_NXLastOpcode 252
|
||||
|
||||
#define X_NXGetControlParameters 230
|
||||
#define X_NXGetCleanupParameters 231
|
||||
#define X_NXGetImageParameters 232
|
||||
#define X_NXGetUnpackParameters 233
|
||||
#define X_NXStartSplit 234
|
||||
#define X_NXEndSplit 235
|
||||
#define X_NXSplitData 236
|
||||
#define X_NXCommitSplit 237
|
||||
#define X_NXSetExposeParameters 240
|
||||
#define X_NXSetUnpackGeometry 241
|
||||
#define X_NXSetUnpackColormap 242
|
||||
#define X_NXPutPackedImage 243
|
||||
#define X_NXSplitEvent 244
|
||||
#define X_NXGetShmemParameters 245
|
||||
#define X_NXSetUnpackAlpha 246
|
||||
#define X_NXFreeUnpack 247
|
||||
#define X_NXFinishSplit 248
|
||||
#define X_NXAbortSplit 249
|
||||
#define X_NXFreeSplit 250
|
||||
#define X_NXGetFontParameters 251
|
||||
#define X_NXSetCacheParameters 252
|
||||
|
||||
/*
|
||||
* The following events are received by the agent
|
||||
* in the form of a ClientMessage with the value
|
||||
* 0 in fields atom and window. The format is
|
||||
* always 32. Event specific data starts at byte
|
||||
* offset 12.
|
||||
*
|
||||
* These events are sent by the NX transport to
|
||||
* notify the agent about the result of a split
|
||||
* operation.
|
||||
*/
|
||||
|
||||
#define NXNoSplitNotify 1
|
||||
#define NXStartSplitNotify 2
|
||||
#define NXCommitSplitNotify 3
|
||||
#define NXEndSplitNotify 4
|
||||
#define NXEmptySplitNotify 5
|
||||
|
||||
/*
|
||||
* Notifications of collect events. These events
|
||||
* don't come from the NX transport but are put
|
||||
* back in client's event queue by NXlib.
|
||||
*/
|
||||
|
||||
#define NXCollectImageNotify 8
|
||||
#define NXCollectPropertyNotify 9
|
||||
#define NXCollectGrabPointerNotify 10
|
||||
#define NXCollectInputFocusNotify 11
|
||||
|
||||
#undef Drawable
|
||||
#undef GContext
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* NXproto_H */
|
||||
201
nxcomp/include/NXvars.h
Normal file
201
nxcomp/include/NXvars.h
Normal file
@@ -0,0 +1,201 @@
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
|
||||
/* Copyright (c) 2008-2017 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
|
||||
/* Copyright (c) 2014-2022 Ulrich Sibiller <uli42@gmx.de> */
|
||||
/* Copyright (c) 2014-2019 Mihai Moldovan <ionic@ionic.de> */
|
||||
/* Copyright (c) 2011-2022 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
|
||||
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
|
||||
/* */
|
||||
/* NXCOMP, NX protocol compression and NX extensions to this software */
|
||||
/* are copyright of the aforementioned persons and companies. */
|
||||
/* */
|
||||
/* Redistribution and use of the present software is allowed according */
|
||||
/* to terms specified in the file LICENSE.nxcomp which comes in the */
|
||||
/* source distribution. */
|
||||
/* */
|
||||
/* All rights reserved. */
|
||||
/* */
|
||||
/* NOTE: This software has received contributions from various other */
|
||||
/* contributors, only the core maintainers and supporters are listed as */
|
||||
/* copyright holders. Please contact us, if you feel you should be listed */
|
||||
/* as copyright holder, as well. */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef NXvars_H
|
||||
#define NXvars_H
|
||||
|
||||
/*
|
||||
* This can be included by the proxy or another
|
||||
* layer that doesn't use Xlib.
|
||||
*/
|
||||
|
||||
#if !defined(_XLIB_H_) && !defined(_XKBSRV_H_)
|
||||
|
||||
#define NeedFunctionPrototypes 1
|
||||
|
||||
#define Display void
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Display flush policies.
|
||||
*/
|
||||
|
||||
#define NXPolicyImmediate 1
|
||||
#define NXPolicyDeferred 2
|
||||
|
||||
/*
|
||||
* Type of flush.
|
||||
*/
|
||||
|
||||
#define NXFlushBuffer 0
|
||||
#define NXFlushLink 1
|
||||
|
||||
/*
|
||||
* Type of statistics.
|
||||
*/
|
||||
|
||||
#define NXStatisticsPartial 0
|
||||
#define NXStatisticsTotal 1
|
||||
|
||||
/*
|
||||
* Reason why the display is blocking.
|
||||
*/
|
||||
|
||||
#define NXBlockRead 1
|
||||
#define NXBlockWrite 2
|
||||
|
||||
/*
|
||||
* Set if the client is interested in ignoring
|
||||
* the display error and continue with the exe-
|
||||
* cution of the program. By default the usual
|
||||
* Xlib behaviour is gotten, and the library
|
||||
* will call an exit().
|
||||
*/
|
||||
|
||||
extern int _NXHandleDisplayError;
|
||||
|
||||
/*
|
||||
* The function below is called whenever Xlib is
|
||||
* going to perform an I/O operation. The funct-
|
||||
* ion can be redefined to include additional
|
||||
* checks aimed at detecting if the display needs
|
||||
* to be closed, for example because of an event
|
||||
* or a signal mandating the end of the session.
|
||||
* In this way the client program can regain the
|
||||
* control before Xlib blocks waiting for input
|
||||
* from the network.
|
||||
*/
|
||||
|
||||
typedef int (*NXDisplayErrorPredicate)(
|
||||
#if NeedFunctionPrototypes
|
||||
Display* /* display */,
|
||||
int /* reason */
|
||||
#endif
|
||||
);
|
||||
|
||||
extern NXDisplayErrorPredicate _NXDisplayErrorFunction;
|
||||
|
||||
/*
|
||||
* This is called when Xlib is going to block
|
||||
* waiting for the display to become readable or
|
||||
* writable. The client can use the hook to run
|
||||
* any arbitrary operation that may require some
|
||||
* time to complete. The user should not try to
|
||||
* read or write to the display inside the call-
|
||||
* back routine.
|
||||
*/
|
||||
|
||||
typedef void (*NXDisplayBlockHandler)(
|
||||
#if NeedFunctionPrototypes
|
||||
Display* /* display */,
|
||||
int /* reason */
|
||||
#endif
|
||||
);
|
||||
|
||||
extern NXDisplayBlockHandler _NXDisplayBlockFunction;
|
||||
|
||||
/*
|
||||
* Used to notify the program when more data
|
||||
* is written to the socket.
|
||||
*/
|
||||
|
||||
typedef void (*NXDisplayWriteHandler)(
|
||||
#if NeedFunctionPrototypes
|
||||
Display* /* display */,
|
||||
int /* length */
|
||||
#endif
|
||||
);
|
||||
|
||||
extern NXDisplayWriteHandler _NXDisplayWriteFunction;
|
||||
|
||||
/*
|
||||
* This callback is used to notify the agent
|
||||
* that the proxy link has been flushed.
|
||||
*/
|
||||
|
||||
typedef void (*NXDisplayFlushHandler)(
|
||||
#if NeedFunctionPrototypes
|
||||
Display* /* display */,
|
||||
int /* length */
|
||||
#endif
|
||||
);
|
||||
|
||||
extern NXDisplayFlushHandler _NXDisplayFlushFunction;
|
||||
|
||||
/*
|
||||
* Used by the NX transport to get an arbitrary
|
||||
* string to add to its protocol statistics.
|
||||
*/
|
||||
|
||||
typedef void (*NXDisplayStatisticsHandler)(
|
||||
#if NeedFunctionPrototypes
|
||||
Display* /* display */,
|
||||
char* /* buffer */,
|
||||
int /* size */
|
||||
#endif
|
||||
);
|
||||
|
||||
extern NXDisplayStatisticsHandler _NXDisplayStatisticsFunction;
|
||||
|
||||
/*
|
||||
* Let users redefine the function printing an
|
||||
* error message in the case of a out-of-order
|
||||
* sequence number.
|
||||
*/
|
||||
|
||||
typedef void (*NXLostSequenceHandler)(
|
||||
#if NeedFunctionPrototypes
|
||||
Display* /* display */,
|
||||
unsigned long /* newseq */,
|
||||
unsigned long /* lastseq */,
|
||||
unsigned int /* type */
|
||||
#endif
|
||||
);
|
||||
|
||||
extern NXLostSequenceHandler _NXLostSequenceFunction;
|
||||
|
||||
/*
|
||||
* Let the X server run the children processes
|
||||
* (as for example the keyboard initialization
|
||||
* utilities) by using the native system libra-
|
||||
* ries, instead of the libraries shipped with
|
||||
* the NX environment. If set, the Popen() in
|
||||
* the X server will remove the LD_LIBRARY_PATH
|
||||
* setting from the environment before calling
|
||||
* the execl() function in the child process.
|
||||
*/
|
||||
|
||||
extern int _NXUnsetLibraryPath;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* NXvars_H */
|
||||
Reference in New Issue
Block a user