libice: Changes to 'upstream-unstable'
.gitignore | 74
INSTALL | 229 --
Makefile.am | 11
README | 4
configure.ac | 30
doc/.gitignore | 6
doc/ICElib.xml | 4588 +++++++++++++++++++++++++++++++++++++++++++++
doc/Makefile.am | 64
include/X11/ICE/ICE.h | 1
include/X11/ICE/ICEconn.h | 1
include/X11/ICE/ICElib.h | 2
include/X11/ICE/ICEmsg.h | 2
include/X11/ICE/ICEproto.h | 1
include/X11/ICE/ICEutil.h | 2
specs/.gitignore | 6
specs/Makefile.am | 64
specs/ice.xml | 2593 +++++++++++++++++++++++++
src/ICElibint.h | 2
src/Makefile.am | 7
src/accept.c | 1
src/authutil.c | 3
src/connect.c | 2
src/error.c | 3
src/getauth.c | 2
src/globals.h | 2
src/iceauth.c | 2
src/listen.c | 3
src/listenwk.c | 3
src/locking.c | 1
src/misc.c | 2
src/ping.c | 1
src/process.c | 2
src/protosetup.c | 2
src/register.c | 1
src/replywait.c | 1
src/setauth.c | 2
src/shutdown.c | 2
src/watch.c | 1
38 files changed, 7415 insertions(+), 308 deletions(-)
New commits:
commit 9856f5679b2b2d458cf830c1e8fdd206c724dfc5
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Oct 19 11:19:08 2010 -0400
libICE 1.0.7
Signed-off-by: Adam Jackson <ajax@redhat.com>
diff --git a/configure.ac b/configure.ac
index 7b5956e..172b885 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
AC_PREREQ([2.60])
AC_INIT([libICE],
- [1.0.6],
+ [1.0.7],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[libICE])
commit 59a8d5609398824c81b72deb82735a55332ca239
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Sun Oct 17 21:26:31 2010 -0700
Fix include ordering, so -I../include precedes $CPPFLAGS which could
cause us to include installed rather than packaged headers.
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
diff --git a/src/Makefile.am b/src/Makefile.am
index 621a82d..a5dd7d4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,7 +1,8 @@
lib_LTLIBRARIES=libICE.la
+AM_CPPFLAGS = -I${top_srcdir}/include
+
AM_CFLAGS = \
- -I${top_srcdir}/include \
$(ICE_CFLAGS) \
$(XTRANS_CFLAGS) \
$(CWARNFLAGS) \
commit 4a6f7a357222b2c1fa289d6e7b5fcc8c361e20e9
Author: Jesse Adkins <jesserayadkins@gmail.com>
Date: Tue Sep 28 13:30:01 2010 -0700
Purge cvs tags.
Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
diff --git a/include/X11/ICE/ICE.h b/include/X11/ICE/ICE.h
index e2924f1..7560647 100644
--- a/include/X11/ICE/ICE.h
+++ b/include/X11/ICE/ICE.h
@@ -1,4 +1,3 @@
-/* $Xorg: ICE.h,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
diff --git a/include/X11/ICE/ICEconn.h b/include/X11/ICE/ICEconn.h
index cdfacca..f169b6c 100644
--- a/include/X11/ICE/ICEconn.h
+++ b/include/X11/ICE/ICEconn.h
@@ -1,4 +1,3 @@
-/* $Xorg: ICEconn.h,v 1.5 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
diff --git a/include/X11/ICE/ICElib.h b/include/X11/ICE/ICElib.h
index 5950ecd..ba42119 100644
--- a/include/X11/ICE/ICElib.h
+++ b/include/X11/ICE/ICElib.h
@@ -1,4 +1,3 @@
-/* $Xorg: ICElib.h,v 1.5 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/ICElib.h,v 3.4 2001/12/14 19:53:35 dawes Exp $ */
#ifndef _ICELIB_H_
#define _ICELIB_H_
diff --git a/include/X11/ICE/ICEmsg.h b/include/X11/ICE/ICEmsg.h
index 3329ee9..6a60f1c 100644
--- a/include/X11/ICE/ICEmsg.h
+++ b/include/X11/ICE/ICEmsg.h
@@ -1,4 +1,3 @@
-/* $Xorg: ICEmsg.h,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/ICEmsg.h,v 1.4 2001/12/20 19:40:59 tsi Exp $ */
#ifndef _ICEMSG_H_
#define _ICEMSG_H_
diff --git a/include/X11/ICE/ICEproto.h b/include/X11/ICE/ICEproto.h
index 9ca7c44..1fcbe6b 100644
--- a/include/X11/ICE/ICEproto.h
+++ b/include/X11/ICE/ICEproto.h
@@ -1,4 +1,3 @@
-/* $Xorg: ICEproto.h,v 1.5 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
diff --git a/include/X11/ICE/ICEutil.h b/include/X11/ICE/ICEutil.h
index 8651d94..2852931 100644
--- a/include/X11/ICE/ICEutil.h
+++ b/include/X11/ICE/ICEutil.h
@@ -1,4 +1,3 @@
-/* $Xorg: ICEutil.h,v 1.5 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/ICEutil.h,v 1.4 2001/12/20 19:40:59 tsi Exp $ */
#ifndef _ICEUTIL_H_
#define _ICEUTIL_H_
diff --git a/src/ICElibint.h b/src/ICElibint.h
index 42983cc..3df59d6 100644
--- a/src/ICElibint.h
+++ b/src/ICElibint.h
@@ -1,4 +1,3 @@
-/* $Xorg: ICElibint.h,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/ICElibint.h,v 1.6 2001/12/14 19:53:35 dawes Exp $ */
#ifndef _ICELIBINT_H_
#define _ICELIBINT_H_
diff --git a/src/accept.c b/src/accept.c
index 150d8bd..6bc40ad 100644
--- a/src/accept.c
+++ b/src/accept.c
@@ -1,4 +1,3 @@
-/* $Xorg: accept.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
diff --git a/src/authutil.c b/src/authutil.c
index 2191f06..fd0a77d 100644
--- a/src/authutil.c
+++ b/src/authutil.c
@@ -1,5 +1,3 @@
-/* $Xorg: authutil.c,v 1.5 2001/02/09 02:03:26 xorgcvs Exp $ */
-/* $XdotOrg: xc/lib/ICE/authutil.c,v 1.3 2005/05/17 20:53:55 sandmann Exp $ */
/******************************************************************************
@@ -27,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: authutil.c,v 3.9 2002/05/31 18:45:41 dawes Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/src/connect.c b/src/connect.c
index f948a0a..2542a0c 100644
--- a/src/connect.c
+++ b/src/connect.c
@@ -1,4 +1,3 @@
-/* $Xorg: connect.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/connect.c,v 3.9 2001/12/14 19:53:35 dawes Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/src/error.c b/src/error.c
index 44b8853..5c9aa51 100644
--- a/src/error.c
+++ b/src/error.c
@@ -1,5 +1,3 @@
-/* $XdotOrg: $ */
-/* $Xorg: error.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -27,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/error.c,v 1.5 2001/10/28 03:32:28 tsi Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/src/getauth.c b/src/getauth.c
index 0e86044..aa5d72d 100644
--- a/src/getauth.c
+++ b/src/getauth.c
@@ -1,4 +1,3 @@
-/* $Xorg: getauth.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/getauth.c,v 1.2 2001/10/28 03:32:28 tsi Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/src/globals.h b/src/globals.h
index f3d0955..2102384 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1,4 +1,3 @@
-/* $Xorg: globals.h,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/globals.h,v 1.4 2001/12/14 19:53:35 dawes Exp $ */
#ifndef __UNIXOS2__
IceConn _IceConnectionObjs[256];
diff --git a/src/iceauth.c b/src/iceauth.c
index 40f1fff..7dc46da 100644
--- a/src/iceauth.c
+++ b/src/iceauth.c
@@ -1,4 +1,3 @@
-/* $Xorg: iceauth.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/iceauth.c,v 3.5 2001/12/14 19:53:36 dawes Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/src/listen.c b/src/listen.c
index be28aef..22602d4 100644
--- a/src/listen.c
+++ b/src/listen.c
@@ -1,4 +1,3 @@
-/* $Xorg: listen.c,v 1.5 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
diff --git a/src/listenwk.c b/src/listenwk.c
index f5061c4..7747af6 100644
--- a/src/listenwk.c
+++ b/src/listenwk.c
@@ -1,5 +1,3 @@
-/* $Xorg: listenwk.c,v 1.5 2001/02/09 02:03:26 xorgcvs Exp $ */
-
/*
Copyright 1996, 1998 The Open Group
@@ -25,7 +23,6 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
-/* $XFree86: xc/lib/ICE/listenwk.c,v 1.3 2001/01/17 19:41:29 dawes Exp $ */
/* Author: Ralph Mor, X Consortium */
diff --git a/src/locking.c b/src/locking.c
index e504e3f..79a0a74 100644
--- a/src/locking.c
+++ b/src/locking.c
@@ -1,4 +1,3 @@
-/* $Xorg: locking.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
diff --git a/src/misc.c b/src/misc.c
index ea8bbde..890da9a 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -1,4 +1,3 @@
-/* $Xorg: misc.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/misc.c,v 1.3 2001/01/17 19:41:29 dawes Exp $ */
#ifdef WIN32
#define _WILLWINSOCK_
diff --git a/src/ping.c b/src/ping.c
index 04fe735..93d82de 100644
--- a/src/ping.c
+++ b/src/ping.c
@@ -1,4 +1,3 @@
-/* $Xorg: ping.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
diff --git a/src/process.c b/src/process.c
index 7797641..583ea1d 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1,4 +1,3 @@
-/* $Xorg: process.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/process.c,v 3.9tsi Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/src/protosetup.c b/src/protosetup.c
index c6f19e1..2aab6d9 100644
--- a/src/protosetup.c
+++ b/src/protosetup.c
@@ -1,4 +1,3 @@
-/* $Xorg: protosetup.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/protosetup.c,v 1.2 2001/10/28 03:32:28 tsi Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/src/register.c b/src/register.c
index ac04df5..5b67bf2 100644
--- a/src/register.c
+++ b/src/register.c
@@ -1,4 +1,3 @@
-/* $Xorg: register.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
diff --git a/src/replywait.c b/src/replywait.c
index 4e9ee16..e29f019 100644
--- a/src/replywait.c
+++ b/src/replywait.c
@@ -1,4 +1,3 @@
-/* $Xorg: replywait.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
diff --git a/src/setauth.c b/src/setauth.c
index e20af09..d190de5 100644
--- a/src/setauth.c
+++ b/src/setauth.c
@@ -1,4 +1,3 @@
-/* $Xorg: setauth.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/setauth.c,v 1.4 2001/12/14 19:53:36 dawes Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/src/shutdown.c b/src/shutdown.c
index e928be2..da80e1f 100644
--- a/src/shutdown.c
+++ b/src/shutdown.c
@@ -1,4 +1,3 @@
-/* $Xorg: shutdown.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
@@ -26,7 +25,6 @@ in this Software without prior written authorization from The Open Group.
Author: Ralph Mor, X Consortium
******************************************************************************/
-/* $XFree86: xc/lib/ICE/shutdown.c,v 3.3 2001/08/01 00:44:37 tsi Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/src/watch.c b/src/watch.c
index 00897ee..b197a50 100644
--- a/src/watch.c
+++ b/src/watch.c
@@ -1,4 +1,3 @@
-/* $Xorg: watch.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */
/******************************************************************************
commit 5bb806a65bf23a507b135abe1e4a8b3cabc7b8aa
Author: Matt Dew <matt@osource.org>
Date: Wed Jun 30 16:52:22 2010 -0400
specs: convert ICE doc/specs from xorg-docs module to DocBook XML
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
diff --git a/Makefile.am b/Makefile.am
index c766add..c2110ec 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = src doc
+SUBDIRS = doc specs src
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = ice.pc
diff --git a/configure.ac b/configure.ac
index 1a53f2a..7b5956e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -13,11 +13,16 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
AM_CONFIG_HEADER([config.h])
-# Require xorg-macros: XORG_DEFAULT_OPTIONS
+# Require xorg-macros minimum of 1.10 for DocBook XML documentation
m4_ifndef([XORG_MACROS_VERSION],
- [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
-XORG_MACROS_VERSION(1.3)
+ [m4_fatal([must install xorg-macros 1.10 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.10)
XORG_DEFAULT_OPTIONS
+XORG_ENABLE_DOCS
+XORG_ENABLE_SPECS
+XORG_WITH_XMLTO(0.0.20)
+XORG_WITH_FOP
+XORG_CHECK_SGML_DOCTOOLS(1.5)
# Checks for programs.
AC_PROG_LIBTOOL
@@ -47,5 +52,6 @@ LINT_FLAGS="${LINT_FLAGS} ${ICE_CFLAGS} ${XTRANS_CFLAGS}"
AC_OUTPUT([Makefile
doc/Makefile
+ specs/Makefile
src/Makefile
ice.pc])
diff --git a/doc/.gitignore b/doc/.gitignore
new file mode 100644
index 0000000..12fe512
--- /dev/null
+++ b/doc/.gitignore
@@ -0,0 +1,6 @@
+# Add & Override for this directory and it's subdirectories
+*.html
+*.ps
+*.pdf
+*.txt
+*.css
diff --git a/doc/ICElib.ms b/doc/ICElib.ms
deleted file mode 100644
index 0c35d60..0000000
--- a/doc/ICElib.ms
+++ /dev/null
@@ -1,3400 +0,0 @@
-.\" $Xorg: ICElib.ms,v 1.3 2000/08/17 19:42:09 cpqbld Exp $
-.\" $XdotOrg: xc/doc/specs/ICE/ICElib.ms,v 1.2 2004/04/23 18:42:16 eich Exp $
-.\"
-.\" Use tbl, -ms, and macros.t
-.\"
-.\" macro: start marker
-.de sM
-.ne 4
-.sp 1
-\\h'-0.3i'\\L'-1v'\\v'3p'\\l'1v'\\v'1v-3p'
-.sp -1
-..
-.\" macro: end marker
-.de eM
-.sp -1
-\\h'-0.3i'\\L'-1v'\\v'1v+4p'\\l'1v'\\v'-4p'
-.sp 1
-..
-.EH ''''
-.OH ''''
-.EF ''''
-.OF ''''
-.ad b
-.sp 10
-.TL
-\s+2\fBInter-Client Exchange Library\fP\s-2
-.sp
-Version 1.0
-.sp
-X Consortium Standard
-.sp
-X Version 11, Release 6.8
-.AU
-Ralph Mor
-.AI
-X Consortium
-.LP
-.DS C
-Copyright \(co 1993, 1994, 1996 X Consortium
-.DE
-.LP
-.sp 5
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the ``Software''), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-.LP
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-.LP
-THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-.LP
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
-.sp 5
-X Window System is a trademark of The Open Group.
-.bp
-.EH '\fBInter-Client Exchange Library\fP''\fBX11, Release 6.8\fP'
-.OH '\fBInter-Client Exchange Library\fP''\fBX11, Release 6.8\fP'
-.bp 1
-.EF ''\- \\\\n(PN \-''
-.OF ''\- \\\\n(PN \-''
-.NH 1
-Overview of ICE
-.XS
-\*(SN Overview of ICE
-.XE
-.LP
-There are numerous possible inter-client protocols, with many similarities
-and common needs - authentication, version negotiation, byte
-order negotiation, and so on.
-The Inter-Client Exchange (ICE) protocol is intended to provide a framework
-for building such protocols, allowing them to make use of common negotiation
-mechanisms and to be multiplexed over a single transport connection.
-.NH 1
-The ICE Library - C Language Interface to ICE
-.XS
-\*(SN The ICE Library - C Language Interface to ICE
-.XE
-.LP
-A client that wishes to utilize ICE must first register the protocols it
-understands with the ICE library. Each protocol is dynamically assigned
-a major opcode ranging from 1-255 (two clients can use different
-major opcodes for the same protocol). The next step for the client is either
-to open a connection with another client or to wait for connections made
-by other clients. Authentication may be required. A client can both
-initiate connections with other clients and be
-waiting for clients to connect to itself (a nested session manager is an
-example). Once an ICE connection is established between the two clients, one
-of the clients needs to initiate a
-.PN ProtocolSetup
-in order to
-"activate" a given protocol. Once the other client accepts the
-.PN ProtocolSetup
-(once again, authentication may be required), the
-two clients are ready to start passing messages specific to that protocol to
-each other. Multiple protocols may be active on a single ICE connection.
-Clients are responsible for notifying the ICE library when a protocol is no
-longer active on an ICE connection, although ICE does not define how each
-subprotocol triggers a protocol shutdown.
-.LP
-The ICE library utilizes callbacks to process incoming messages. Using
-callbacks allows
-.PN ProtocolSetup
-messages and authentication to happen
-behind the scenes. An additional benefit is that messages never need
-to be buffered up by the library when the client blocks waiting for a
-particular message.
-.NH 1
-Intended Audience
-.XS
-\*(SN Intended Audience
-.XE
-.LP
-This document is intended primarily for implementors of protocol libraries
-layered on top of ICE. Typically, applications that wish to utilize ICE
-will make calls into individual protocol libraries rather than directly
-make calls into the ICE library. However, some applications will have to
-make some initial calls into the ICE library in order to accept ICE
-connections (for example, a session manager accepting connections from
-clients). But in general, protocol libraries should be designed to hide
-the inner details of ICE from applications.
-.NH 1
-Header Files and Library Name
-.XS
-\*(SN Header Files and Library Name
-.XE
-.LP
-The header file
-.Pn < X11/ICE/ICElib.h >
-defines all of the ICElib data structures and function prototypes.
-.PN ICElib.h
-includes the header file
-.Pn < X11/ICE/ICE.h >,
-which defines all of the ICElib constants.
-Protocol libraries that need to read and write messages should include
-the header file
-.Pn < X11/ICE/ICEmsg.h >.
-.LP
-Applications should link against ICElib using -lICE.
-.NH 1
-Note on Prefixes
-.XS
-\*(SN Note on Prefixes
-.XE
-.LP
-The following name prefixes are used in the library to distinguish between
-a client that initiates a
-.PN ProtocolSetup
-and a client that
-responds with a
-.PN ProtocolReply :
-.IP \(bu 5
-.PN IcePo
-\- Ice Protocol Originator
-.IP \(bu 5
-.PN IcePa
-\- Ice Protocol Acceptor
-.NH 1
-Protocol Registration
-.XS
-\*(SN Protocol Registration
-.XE
-.LP
-In order for two clients to exchange messages for a given protocol, each
-side must register the protocol with the ICE library. The purpose of
-registration is for each side to obtain a major opcode for the protocol
-and to provide callbacks for processing messages and handling authentication.
-There are two separate registration functions:
-.IP \(bu 5
-One to handle the side that does a
-.PN ProtocolSetup
-.IP \(bu 5
-One to handle the side that responds with a
-.PN ProtocolReply
-.LP
-It is recommended that protocol registration occur before the two clients
-establish an ICE connection. If protocol registration occurs after an
-ICE connection is created, there can be a brief interval of time in which
-a
-.PN ProtocolSetup
-is received, but the protocol is not registered.
-If it is not possible to register a protocol before the creation of an
-ICE connection, proper precautions should be taken to avoid the above race
-condition.
-.sp
-.LP
-The
-.PN IceRegisterForProtocolSetup
-function should be called for the client that initiates a
-.PN ProtocolSetup .
-.sM
-.FD 0
-int IceRegisterForProtocolSetup\^(\^\fIprotocol_name\fP, \fIvendor\fP\^, \
-\fIrelease\fP\^, \fIversion_count\fP\^, \fIversion_recs\fP\^,
-.br
- \fIauth_count\fP\^, \fIauth_names\fP\^, \fIauth_procs\fP\^, \
-\fIio_error_proc\fP\^)
-.br
- char *\fIprotocol_name\fP\^;
-.br
- char *\fIvendor\fP\^;
-.br
- char *\fIrelease\fP\^;
-.br
- int \fIversion_count\fP\^;
-.br
- IcePoVersionRec *\fIversion_recs\fP\^;
-.br
- int \fIauth_count\fP\^;
-.br
- char **\fIauth_names\fP\^;
-.br
- IcePoAuthProc *\fIauth_procs\fP\^;
-.br
- IceIOErrorProc \fIio_error_proc\fP\^;
-.FN
-.IP \fIprotocol_name\fP 1i
-A string specifying the name of the protocol to register.
-.IP \fIvendor\fP 1i
-A vendor string with semantics specified by the protocol.
-.IP \fIrelease\fP 1i
-A release string with semantics specified by the protocol.
-.IP \fIversion_count\fP 1i
-The number of different versions of the protocol supported.
-.IP \fIversion_recs\fP 1i
-List of versions and associated callbacks.
-.IP \fIauth_count\fP 1i
-The number of authentication methods supported.
-.IP \fIauth_names\fP 1i
-The list of authentication methods supported.
-.IP \fIauth_procs\fP 1i
-The list of authentication callbacks, one for each authentication method.
-.IP \fIio_error_proc\fP 1i
-IO error handler, or NULL.
-.LP
-.eM
-.PN IceRegisterForProtocolSetup
-returns the major opcode reserved or -1 if an error occurred. In order
-to actually activate the protocol, the
-.PN IceProtocolSetup
-function needs to be called with this major opcode. Once the protocol is
-activated, all messages for the protocol should be sent using this major
-opcode.
-.LP
-A protocol library may support multiple versions of the same protocol.
-The version_recs argument specifies a list of supported versions of the protocol,
-which are prioritized in decreasing order of preference.
-Each version record consists of a major and minor version of the protocol
-as well as a callback to be used for processing incoming messages.
-.LP
-.sM
-.Ds 0
-.TA .5i
-.ta .5i
-typedef struct {
- int major_version;
- int minor_version;
- IcePoProcessMsgProc process_msg_proc;
-} IcePoVersionRec;
-.De
-.LP
-.eM
-The
-.PN IcePoProcessMsgProc
-callback is responsible for processing the set of messages that can be
-received by the client that initiated the
-.PN ProtocolSetup .
-For further information,
-see section 6.1, ``Callbacks for Processing Messages.''
-.LP
-Authentication may be required before the protocol can become active.
-The protocol library must register the authentication methods that it
-supports with the ICE library.
-The auth_names and auth_procs arguments are a list of authentication names
-and callbacks that are prioritized in decreasing order of preference.
-For information on the
-.PN IcePoAuthProc
-callback, see section 6.2, ``Authentication Methods.''
-.LP
-The
-.PN IceIOErrorProc
-callback is invoked if the ICE connection unexpectedly breaks.
-You should pass NULL for io_error_proc if not interested in being notified.
-For further information,
-see section 13, ``Error Handling.''
-.sp
-.LP
-The
-.PN IceRegisterForProtocolReply
-function should be called for the client that responds to a
-.PN ProtocolSetup
-with a
-.PN ProtocolReply .
-.sM
-.FD 0
-int IceRegisterForProtocolReply\^(\^\fIprotocol_name\fP, \fIvendor\fP\^, \fIrelease\fP\^, \fIversion_count\fP\^, \fIversion_recs\fP\^,
-.br
- \fIauth_count\fP\^, \fIauth_names\fP\^, \fIauth_procs\fP\^, \fIhost_based_auth_proc\fP\^, \fIprotocol_setup_proc\fP\^,
-.br
- \fIprotocol_activate_proc\fP\^, \fIio_error_proc\fP\^)
-.br
- char *\fIprotocol_name\fP\^;
-.br
- char *\fIvendor\fP\^;
-.br
- char *\fIrelease\fP\^;
-.br
- int \fIversion_count\fP\^;
-.br
- IcePaVersionRec *\fIversion_recs\fP\^;
-.br
- int \fIauth_count\fP\^;
-.br
- char **\fIauth_names\fP\^;
-.br
- IcePaAuthProc *\fIauth_procs\fP\^;
-.br
- IceHostBasedAuthProc \fIhost_based_auth_proc\fP\^;
-.br
- IceProtocolSetupProc \fIprotocol_setup_proc\fP\^;
-.br
- IceProtocolActivateProc \fIprotocol_activate_proc\fP\^;
-.br
- IceIOErrorProc \fIio_error_proc\fP\^;
-.FN
-.IP \fIprotocol_name\fP 1i
-A string specifying the name of the protocol to register.
-.IP \fIvendor\fP 1i
-A vendor string with semantics specified by the protocol.
-.IP \fIrelease\fP 1i
-A release string with semantics specified by the protocol.
-.IP \fIversion_count\fP 1i
-The number of different versions of the protocol supported.
-.IP \fIversion_recs\fP 1i
-List of versions and associated callbacks.
-.IP \fIauth_count\fP 1i
-The number of authentication methods supported.
-.IP \fIauth_names\fP 1i
-The list of authentication methods supported.
-.IP \fIauth_procs\fP 1i
-The list of authentication callbacks, one for each authentication method.
-.IP \fIhost_based_auth_proc\fP 1i
-Host based authentication callback.
-.IP \fIprotocol_setup_proc\fP 1i
-A callback to be invoked when authentication has succeeded for a
-.PN ProtocolSetup
-but before the
-.PN ProtocolReply
-is sent.
-.IP \fIprotocol_activate_proc\fP 1i
-A callback to be invoked after the
-.PN ProtocolReply
-is sent.
-.IP \fIio_error_proc\fP 1i
-IO error handler, or NULL.
-.LP
-.eM
-.PN IceRegisterForProtocolReply
-returns the major opcode reserved or -1 if an error occurred. The major
-opcode should be used in all subsequent messages sent for this protocol.
-.LP
-A protocol library may support multiple versions of the same protocol.
-The version_recs argument specifies a list of supported versions of the protocol,
-which are prioritized in decreasing order of preference.
-Each version record consists of a major and minor version of the protocol
-as well as a callback to be used for processing incoming messages.
-.LP
-.sM
-.Ds 0
-.TA .5i
-.ta .5i
-typedef struct {
- int major_version;
- int minor_version;
- IcePaProcessMsgProc process_msg_proc;
-} IcePaVersionRec;
-.De
-.LP
-.eM
-The
-.PN IcePaProcessMsgProc
-callback is responsible for processing the set of messages that can be
-received by the client that accepted the
-.PN ProtocolSetup .
-For further information,
-see section 6.1, ``Callbacks for Processing Messages.''
-.LP
-Authentication may be required before the protocol can become active.
-The protocol library must register the authentication methods that it
-supports with the ICE library.
-The auth_names and auth_procs arguments are a list of authentication names
-and callbacks that are prioritized in decreasing order of preference.
-For information on the
-.PN IcePaAuthProc
-callback, see section 6.2, ``Authentication Methods.''
-.LP
-If authentication fails and the client attempting to initiate
-the
-.PN ProtocolSetup
-has not required authentication, the
-.PN IceHostBasedAuthProc
-callback is invoked with the host name of the originating client.
-If the callback returns
-.PN True ,
-the
-.PN ProtocolSetup
-will succeed, even though the original
-authentication failed.
-Note that authentication can effectively be disabled by registering an
-.PN IceHostBasedAuthProc ,
-which always returns
-.PN True .
-If no host based
-authentication is allowed, you should pass NULL for host_based_auth_proc.
-.LP
-.sM
-.FD 0
-typedef Bool (*IceHostBasedAuthProc) ();
-
-Bool HostBasedAuthProc\^(\^\fIhost_name\fP\^)
-.br
- char *\fIhost_name\fP\^;
-.FN
-.IP \fIhost_name\fP 1i
-The host name of the client that sent the
-.PN ProtocolSetup .
-.LP
-.eM
-The host_name argument is a string of the form \fIprotocol\fP\^/\^\fIhostname\fP,
-where \fIprotocol\fP\^ is one of {tcp, decnet, local}.
-.LP
-Because
-.PN ProtocolSetup
-messages and authentication happen behind the scenes
-via callbacks, the protocol library needs some way of being notified when the
-.PN ProtocolSetup
-has completed.
-This occurs in two phases.
-In the first phase, the
-.PN IceProtocolSetupProc
-callback is invoked after authentication has
-successfully completed but before the ICE library sends a
-.PN ProtocolReply .
-Any resources required for this protocol should be allocated at this time.
-If the
-.PN IceProtocolSetupProc
-returns a successful status, the ICE library will
-send the
-.PN ProtocolReply
-and then invoke the
-.PN IceProtocolActivateProc
-callback. Otherwise, an error will be sent to the
-other client in response to the
-.PN ProtocolSetup .
-.LP
-The
-.PN IceProtocolActivateProc
-is an optional callback and should be registered only if the protocol
-library intends to generate a message immediately following the
-.PN ProtocolReply .
-You should pass NULL for protocol_activate_proc if not interested
-in this callback.
Reply to: