lbxproxy(1X)lbxproxy(1X)NAMElbxproxy - Low BandWidth X proxy
SYNOPSISlbxproxy [:<display_port>] [option]
OPTIONS
The lbxproxy program accepts the following options: Prints a brief help
message about the command line options. Specifies the address of the X
server supporting the LBX extension. If this option is not specified,
the display is obtained by the DISPLAY environment variable. If <dis‐
play_port> argument is specified, the proxy uses the given display port
when listening for connections. The display port is an offset from
port 6000, identical to the way in which regular X display connections
are specified. If no port is specified on the command line option, lbx‐
proxy defaults to port 63. If the port that the proxy tries to listen
on is in use, the proxy exits with an error message. A limited number
of pointer motion events are allowed to be in flight between the server
and the proxy at any given time. The maximum number of motion events
that can be in flight is set with this option; the default is 8. The
default behavior of lbxproxy is to continue running as usual when the
last client exits. The -terminate option causes lbxproxy to exit when
the last client exits. The -reset option causes lbxproxy to reset
itself when the last client exits. Resetting causes lbxproxy to clean
up it's state and reconnect to the server. The default behavior of
lbxproxy is to exit when its connection to the server is broken. The
-reconnect option causes lbxproxy to reset and attempt to reconnect to
the server. Causes all remaining arguments to be ignored. Disables
all LBX optimizations. Disables stream compression. Disables delta
request substitutions. Disables usage of tags. Disables reencoding of
graphics requests (not including image related requests). Disables
image compression. Disables squishing of X events. Disables short
circuiting InternAtom requests. Disables reading the atoms control
file. See the section on ATOM CONTROL for more details. Overrides the
default AtomControl file. See the section on ATOM CONTROL for more
details. Disables GetWindowAttributes/GetGeometry grouping into one
round trip. Disables colormap grabbing. Disables color name to RGB
resolution in proxy. Specifies an alternate RGB database for color
name to RGB resolution. Set the size of the proxy tag cache (in
bytes). Set the Zlib compression level (used for stream compression).
Default is 9; 1 = worst compression, fastest and 9 = best compression,
slowest. Report stream compression statistics every time the proxy
resets or receives a SIGHUP signal. Don't zero out unused pad bytes in
X requests, replies, and events. Allows cheating on X protocol for the
sake of improved performance. The X protocol guarantees that any
replies, events or errors generated by a previous request will be sent
before those of a later request. This puts substantial restrictions on
when lbxproxy can short circuit a request. The -cheaterrors option
allows lbxproxy to violate X protocol rules with respect to errors.
Use at your own risk. The -cheatevents option allows lbxproxy to vio‐
late X protocol rules with respect to events as well as errors. Use at
your own risk. The -pn option permits lbxproxy to continue running if
it fails to establish all of its well-known sockets but establishes at
least one.
DESCRIPTION
Applications that would like to take advantage of the Low Bandwidth
extension to X (LBX) must make their connections to an lbxproxy. These
applications need to know nothing about LBX, they simply connect to the
lbxproxy as if it were a regular server. The lbxproxy accepts client
connections, multiplexes them over a single connection to the X server,
and performs various optimizations on the X protocol to make it faster
over low bandwidth or high latency connections.
With regard to authentication and authorization, lbxproxy simply passes
along to the server the credentials presented by the client. Since X
clients connect to lbxproxy, it is important that the user's file con‐
tain entries with valid keys associated with the network ID of the
proxy. The lbxproxy does not get involved with how these entries are
added to the file. The user is responsible for setting it up.
ATOM CONTROL
At startup, lbxproxy “pre-interns” a configurable list of atoms. This
allows lbxproxy to intern a group of atoms in a single round trip and
immediately store the results in its cache.
While running, lbxproxy uses heuristics to decide when to delay sending
window property data to the server. The heuristics depend on the size
of the data, the name of the property, and whether a window manager is
running through the same lbxproxy.
Atom control is specified in the AtomControl file, set up during
installation of lbxproxy, with command line overrides.
The file is a simple text file. There are three forms of lines: com‐
ments, length control, and name control. Lines starting with a '!' are
treated as comments. A line of the form z length specifies the minimum
length in bytes before property data will be delayed. A line of the
form options atomname controls the given atom, where options is any
combination of the following characters: 'i' means the atom should be
pre-interned; 'n' means data for properties with this name should never
be delayed and 'w' means data for properties with this name should be
delayed only if a window manager is also running through the same lbx‐
proxy.
USING LBX
On systems without DECnet, you must start the lbxproxy utility with the
-pn option. The X server does not use node-based access control (xhost
+host_name) for LBX clients. XDM-AUTHORIZATION-1 authorization works
for LBX clients only if the client is running on the same system as the
lbxproxy that it is using and if the client specifies a network connec‐
tion to lbxproxy (-display host_name:1) instead of a local connection
(-display :1). You can use the following methods to authorize an LBX
client to display on an X server: Use MIT-MAGIC-COOKIE-1 authorization
by including the MIT-MAGIC-COOKIE-1 entries in the LBX client's XAU‐
THORITY file. Use XDM-AUTHORIZATION-1 authorization and run a separate
lbxproxy on each client system that is used by the clients on that sys‐
tem. Also, set the clients' display specifications to use a network
connection to lbxproxy process (host_name:1). Disable access control
in the X server by starting the X server with the -ac options or by
using the xhost + command. These methods are insecure and are not rec‐
ommended.
If you use the MIT-MAGIC-COOKIE-1 or XDM-AUTHORIZATION-1 authorization
methods with an LBX client, the client's XAUTHORITY file entries must
specify the display name for the lbxproxy utility and the authorization
key for the target X server.
EXAMPLES
The following are some examples of using LBX. In these examples, server
is the system running the X server, client1 is one system running LBX
clients, and client2 is a second system running LBX clients. If the
following command is executed on client1, the lbxproxy listens for con‐
nections on client1:1 and displays information on server:0. # lbxproxy-pn -display server:0 :1
LBX clients running on client1 that are not using XDM-AUTHORIZA‐
TION-1 authorization should set their display to :1. For exam‐
ple: # xterm -display :1
LBX clients running on client1 that are using XDM-AUTHORIZA‐
TION-1 authorization should set their display to client1:1. For
example: # xterm -display client1:1
All LBX clients on client2, regardless of whether they are using
XDM-AUTHORIZATION-1 authorization, should set their display to
client1:1. To use the MIT-MAGIC-COOKIE-1 or XDM-AUTHORIZATION-1
authorization mechanisms, set up your XAUTHORITY files as fol‐
lows: The X server's XAUTHORITY file:
server:0 MIT-MAGIC-COOKIE-1 0123456789abcdef0123456789abcdef
server/unix:0 MIT-MAGIC-COOKIE-1
0123456789abcdef0123456789abcdef The XAUTHORITY file for lbx‐
proxy:
server:0 MIT-MAGIC-COOKIE-1 0123456789abcdef0123456789abcdef
server/unix:0 MIT-MAGIC-COOKIE-1
0123456789abcdef0123456789abcde The LBX clients' XAUTHORITY
files (on both client1 and client2):
client1:1 MIT-MAGIC-COOKIE-1 0123456789abcdef0123456789abcdef
client1/unix:1 MIT-MAGIC-COOKIE-1
0123456789abcdef0123456789abcdef
SEE ALSOXdec(1)lbxproxy(1X)