lbxproxy - Low BandWidth X proxy
lbxproxy [:<display_port>] [option]
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 <display_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, lbxproxy
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 violate 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.
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 contain
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.
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: comments, 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 lbxproxy.
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 connection 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 XAUTHORITY file. Use XDM-AUTHORIZATION-1
authorization and run a separate lbxproxy on each
client system that is used by the clients on that system.
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 recommended.
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.
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
connections 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-AUTHORIZATION-1 authorization should set their
display to :1. For example: # xterm -display :1
LBX clients running on client1 that are using XDMAUTHORIZATION-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 follows: 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 lbxproxy:
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
Xdec(1)
lbxproxy(1X)
[ Back ] |