mirror of
https://gitlab.freedesktop.org/xorg/proto/xorgproto.git
synced 2025-12-20 00:00:11 +01:00
Move documentation from xorg-docs module
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
This commit is contained in:
parent
0ce100547b
commit
b9346af189
3 changed files with 181 additions and 0 deletions
|
|
@ -6,6 +6,8 @@ xproxymng_HEADERS = \
|
|||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = xproxymngproto.pc
|
||||
|
||||
dist_doc_DATA = PM_spec
|
||||
|
||||
EXTRA_DIST = xproxymngproto.pc.in
|
||||
|
||||
EXTRA_DIST += ChangeLog
|
||||
|
|
|
|||
153
PM_spec
Normal file
153
PM_spec
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
Proxy Management Protocol
|
||||
Draft Version 1.0
|
||||
Ralph Mor, X Consortium
|
||||
|
||||
|
||||
The Proxy Management Protocol is an ICE based protocol that provides a way
|
||||
for application servers to easily locate proxy services available to them.
|
||||
|
||||
Typically, a service called a "proxy manager" is responsible for resolving
|
||||
requests for proxy services, starting new proxies when appropriate, and
|
||||
keeping track of all of the available proxy services. The proxy manager
|
||||
strives to reuse existing proxies whenever possible.
|
||||
|
||||
In order to request a proxy service, the GET_PROXY_ADDR message is sent to
|
||||
the proxy manager. The proxy manager will in turn forward this message to
|
||||
a proxy that it thinks can satisfy the request.
|
||||
|
||||
GET_PROXY_ADDR
|
||||
proxy-service : STRING
|
||||
server-address : STRING
|
||||
host-address : STRING
|
||||
options : STRING
|
||||
auth-data-len : CARD16
|
||||
auth-name : STRING or None
|
||||
auth-data : LISTofCARD8 or None
|
||||
|
||||
-->
|
||||
|
||||
status : CARD8
|
||||
proxy-address : STRING
|
||||
failure-reason : STRING
|
||||
|
||||
|
||||
proxy-service is the name of the proxy service to be requested, for example
|
||||
"LBX". proxy-service is a case insensitive string.
|
||||
|
||||
server-address is the network address of the target server. The format of
|
||||
the address is specific to proxy-service. For example, for a proxy service
|
||||
of "LBX", the address would be an X display address (e.g, "wkstn.x.org:0").
|
||||
|
||||
host-address is the network address of the host on which the proxied
|
||||
application will run. This information might be used by the proxy to
|
||||
restrict access to a specific host.
|
||||
|
||||
options are proxy specific options that will be passed to the proxy. The
|
||||
details of these options are not specified here. Their syntax and
|
||||
semantics are defined by each proxy service.
|
||||
|
||||
If auth-data-len is nonzero, then auth-name and auth-data contain
|
||||
authentication or authorization information that should be passed to
|
||||
the proxy. The proxy will typically use this to authenticate and
|
||||
authorize itself to the target server. The details of how the
|
||||
auth fields are used are specific to each proxy service.
|
||||
|
||||
|
||||
After sending GET_PROXY_ADDR the proxy manager expects a reply from
|
||||
the proxy. The status field of the reply indicates if the request can
|
||||
be satisfied.
|
||||
|
||||
If status is Success, proxy-address will contain the network address of the
|
||||
proxy willing to handle this request. The format of the proxy address is
|
||||
specific to the proxy service being used. For example, for a proxy service
|
||||
of "LBX", the proxy address would be the X display address of the proxy
|
||||
(e.g, "gateway.x.org:63"). The proxy manager will forward the successful
|
||||
GET_PROXY_ADDR reply to whomever requested the proxy service.
|
||||
|
||||
If status is Unable, the proxy is not able to satisfy the request but
|
||||
it believes some other proxy might be able to do so. Proxy-address is
|
||||
the empty string and failure-reason indicates the reason for failure.
|
||||
The proxy manager may choose to forward the original GET_PROXY_ADDR to
|
||||
another already running proxy, or it may choose to start up a new
|
||||
proxy. In the event that the proxy manager can not find or start a
|
||||
proxy, it will send a GET_PROXY_ADDR reply (with status Failure and an
|
||||
appropriate failure-reason) to whomever requested the proxy service.
|
||||
|
||||
If status is Failure, the proxy is not able to satisfy the request and
|
||||
in addition is informing the requester that the request is invalid in
|
||||
some way and should not be retried.
|
||||
|
||||
|
||||
If the proxy manager starts up a new proxy, the proxy manager will
|
||||
need an indication from the proxy that it is ready to accept
|
||||
requests. The proxy is required to send a START_PROXY message to the
|
||||
proxy manager to identify itself and signal its readiness to receive
|
||||
requests.
|
||||
|
||||
START_PROXY
|
||||
proxy-service : STRING (name of proxy service, e.g. "LBX")
|
||||
|
||||
|
||||
When the proxy manager receives the START_PROXY message from the
|
||||
proxy it checks that the proxy-service is the one that it's expecting.
|
||||
If the proxy-service is incorrect, an IceBadValue error will be sent
|
||||
to the proxy. Otherwise, the proxy manager will forward the original
|
||||
GET_PROXY_ADDR request to the proxy and the proxy will respond to the
|
||||
GET_PROXY_ADDR request in the same way as discussed above.
|
||||
|
||||
|
||||
Protocol
|
||||
--------
|
||||
|
||||
ICE protocol name is "PROXY_MANAGEMENT".
|
||||
The major opcode is assigned at run-time by ICE.
|
||||
|
||||
|
||||
Types
|
||||
-----
|
||||
|
||||
STRING
|
||||
2 CARD16 length
|
||||
n LISTofCARD8 the string
|
||||
p p = pad(2+n,8)
|
||||
|
||||
|
||||
|
||||
Encoding
|
||||
--------
|
||||
|
||||
GET_PROXY_ADDR
|
||||
|
||||
1 ? PROXY_MANAGEMENT
|
||||
1 1 opcode
|
||||
2 n auth-data-len (in bytes)
|
||||
4 (a+b+c+d+e+n+p)/8 length of remaining data in 8-byte units
|
||||
a STRING proxy-service
|
||||
b STRING server-address
|
||||
c STRING host-address
|
||||
d STRING options
|
||||
e STRING auth-name (if auth-data-len > 0)
|
||||
n LISTofCARD8 auth-data (if auth-data-len > 0)
|
||||
p unused, p=pad(n,8)
|
||||
|
||||
GET_PROXY_ADDR_REPLY
|
||||
|
||||
1 ? PROXY_MANAGEMENT
|
||||
1 2 opcode
|
||||
1 CARD8 status
|
||||
0 Unable
|
||||
1 Success
|
||||
2 Failure
|
||||
1 unused
|
||||
4 (a+b)/8 length of remaining data in 8-byte units
|
||||
a STRING proxy-address
|
||||
b STRING failure-reason
|
||||
|
||||
|
||||
START_PROXY
|
||||
|
||||
1 ? PROXY_MANAGEMENT
|
||||
1 3 opcode
|
||||
2 unused
|
||||
4 a/8 length of remaining data in 8-byte units
|
||||
a STRING proxy-service
|
||||
26
README
Normal file
26
README
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
The Proxy Management Protocol is an ICE based protocol that provides a way
|
||||
for application servers to easily locate proxy services available to them.
|
||||
|
||||
All questions regarding this software should be directed at the
|
||||
Xorg mailing list:
|
||||
|
||||
http://lists.freedesktop.org/mailman/listinfo/xorg
|
||||
|
||||
Please submit bug reports to the Xorg bugzilla:
|
||||
|
||||
https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
|
||||
|
||||
The master development code repository can be found at:
|
||||
|
||||
git://anongit.freedesktop.org/git/xorg/proto/pmproto
|
||||
|
||||
http://cgit.freedesktop.org/xorg/proto/pmproto
|
||||
|
||||
For patch submission instructions, see:
|
||||
|
||||
http://www.x.org/wiki/Development/Documentation/SubmittingPatches
|
||||
|
||||
For more information on the git code manager, see:
|
||||
|
||||
http://wiki.x.org/wiki/GitPage
|
||||
|
||||
Loading…
Add table
Reference in a new issue