xtrans: Changes to 'debian-unstable'
ChangeLog | 102 +
INSTALL | 237 --
Makefile.am | 4
Makefile.in | 567 ------
README | 50
Xtrans.c | 132 -
Xtrans.h | 12
Xtransdnet.c | 664 -------
Xtransint.h | 75
Xtranslcl.c | 418 ----
Xtransos2.c | 887 ---------
Xtranssock.c | 139 -
Xtransutil.c | 65
aclocal.m4 | 959 ----------
configure | 4654 --------------------------------------------------
configure.ac | 7
debian/changelog | 25
debian/control | 2
debian/rules | 22
debian/xsfbs/xsfbs.mk | 29
install-sh | 519 -----
missing | 367 ---
mkinstalldirs | 161 -
transport.c | 9
xtrans.m4 | 3
25 files changed, 250 insertions(+), 9859 deletions(-)
New commits:
commit 66ca21d45e7784ed477deb178bcac65def323ea0
Author: Julien Cristau <jcristau@debian.org>
Date: Mon Feb 16 01:34:33 2009 +0100
Prepare changelog for upload
diff --git a/debian/changelog b/debian/changelog
index cbf0441..2f6c4d8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xtrans (1.2.3-2) experimental; urgency=low
+
+ * Upload to unstable.
+
+ -- Julien Cristau <jcristau@debian.org> Mon, 16 Feb 2009 01:34:31 +0100
+
xtrans (1.2.3-1) experimental; urgency=low
* New upstream release.
commit 8af51825be5fd4a1045e95b5251d4d2e4055106f
Author: Julien Cristau <jcristau@debian.org>
Date: Fri Jan 16 04:53:20 2009 +0100
Prepare changelog for upload
diff --git a/debian/changelog b/debian/changelog
index 5d88619..cbf0441 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xtrans (1.2.3-1) UNRELEASED; urgency=low
+xtrans (1.2.3-1) experimental; urgency=low
* New upstream release.
* Bump xutils-dev build-dep to >= 1:7.4+4 for util-macros 1.2.
- -- Julien Cristau <jcristau@debian.org> Fri, 16 Jan 2009 04:50:22 +0100
+ -- Julien Cristau <jcristau@debian.org> Fri, 16 Jan 2009 04:53:05 +0100
xtrans (1.2.2-1) experimental; urgency=low
commit f679ff2480df4183a6986d61331e481365eef4c3
Author: Julien Cristau <jcristau@debian.org>
Date: Fri Jan 16 04:52:34 2009 +0100
update changelogs and build-deps for new upstream
* New upstream release.
* Bump xutils-dev build-dep to >= 1:7.4+4 for util-macros 1.2.
diff --git a/ChangeLog b/ChangeLog
index 7552df2..9f97eb7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,35 @@
+commit 1cf4a1a6716f2c0adf5ee4d0a194a1013be53105
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Sun Jan 11 10:54:52 2009 -0800
+
+ Version 1.2.3
+
+commit d0c5592142369afa93dcd58ca6f390dbd127a28a
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Sun Jan 11 10:51:49 2009 -0800
+
+ Add bugzilla, mailing list & git repo pointers to README
+
+commit 9f12a154437554938a4fa18b7d3948c7dff8d631
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Dec 1 13:58:31 2008 -0800
+
+ Switch ChangeLog generation to use XORG_CHANGELOG from xorg-macros 1.2
+
+commit 8c313881a0c586179c09922a7e00a1f8d669a68a
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Dec 1 08:37:42 2008 -0800
+
+ 18748: xtrans.m4 causes configure --help to list --enable-ipv6 in wrong case.
+
+ X.Org Bug #18748 <http://bugs.freedesktop.org/show_bug.cgi?id=18748>
+
+commit c626a4298e98f4988701dd587bc8355c62542ec4
+Author: Alan Hourihane <alanh@tungstengraphics.com>
+Date: Wed Oct 15 11:19:41 2008 +0100
+
+ add winsock check for windows builds
+
commit 005bd80a9eab736aea737869b8a1079c565e1cd6
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Oct 7 09:56:49 2008 -0400
diff --git a/debian/changelog b/debian/changelog
index 5ee4bd3..5d88619 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xtrans (1.2.3-1) UNRELEASED; urgency=low
+
+ * New upstream release.
+ * Bump xutils-dev build-dep to >= 1:7.4+4 for util-macros 1.2.
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 16 Jan 2009 04:50:22 +0100
+
xtrans (1.2.2-1) experimental; urgency=low
[ Brice Goglin ]
diff --git a/debian/control b/debian/control
index cb0a81f..5024fc1 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,7 @@ Section: x11
Priority: optional
Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Uploaders: David Nusinow <dnusinow@debian.org>, Brice Goglin <bgoglin@debian.org>, Julien Cristau <jcristau@debian.org>
-Build-Depends: debhelper (>= 5.0.0), quilt, automake, xutils-dev
+Build-Depends: debhelper (>= 5.0.0), quilt, automake, xutils-dev (>= 1:7.4+4)
Standards-Version: 3.7.3
Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/xtrans
Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/xtrans.git
commit 1cf4a1a6716f2c0adf5ee4d0a194a1013be53105
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date: Sun Jan 11 10:54:52 2009 -0800
Version 1.2.3
diff --git a/configure.ac b/configure.ac
index dff9d46..cf5ec71 100644
--- a/configure.ac
+++ b/configure.ac
@@ -21,7 +21,7 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
-AC_INIT(xtrans, 1.2.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xtrans)
+AC_INIT(xtrans, 1.2.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xtrans)
AM_INIT_AUTOMAKE([dist-bzip2])
AM_MAINTAINER_MODE
commit d0c5592142369afa93dcd58ca6f390dbd127a28a
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date: Sun Jan 11 10:51:49 2009 -0800
Add bugzilla, mailing list & git repo pointers to README
diff --git a/README b/README
index 551f129..8560b5d 100644
--- a/README
+++ b/README
@@ -1,14 +1,36 @@
-xtrans is a library of code that is shared among various X packages to handle
-network protocol transport in a modular fashion, allowing a single place to
-add new transport types. It is used by the X server, libX11, libICE, the
-X font server, and related components.
-
-It is however, *NOT* a shared library, but code which each consumer includes and
-builds it's own copy of with various #ifdef flags to make each copy slightly
-different. To support this in the modular build system, this package simply
-installs the C source files into $(prefix)/include/X11/Xtrans and installs a
-pkg-config file and an autoconf m4 macro file with the flags needed to use it.
-
-Documentation of the xtrans API can be found in the xorg-docs package, in
-PostScript format in xorg-docs/hardcopy/xtrans/Xtrans.PS.gz and in the original
-troff format in xorg-docs/specs/xtrans/Xtrans.mm .
\ No newline at end of file
+xtrans is a library of code that is shared among various X packages to
+handle network protocol transport in a modular fashion, allowing a
+single place to add new transport types. It is used by the X server,
+libX11, libICE, the X font server, and related components.
+
+It is however, *NOT* a shared library, but code which each consumer
+includes and builds it's own copy of with various #ifdef flags to make
+each copy slightly different. To support this in the modular build
+system, this package simply installs the C source files into
+$(prefix)/include/X11/Xtrans and installs a pkg-config file and an
+autoconf m4 macro file with the flags needed to use it.
+
+Documentation of the xtrans API can be found in the xorg-docs package,
+in PostScript format in xorg-docs/hardcopy/xtrans/Xtrans.PS.gz and in
+the original troff format in xorg-docs/specs/xtrans/Xtrans.mm .
+
+Please submit bugs & patches to the Xorg bugzilla:
+
+ https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+
+under the component "Lib/xtrans".
+
+All questions regarding this software should be directed at the
+Xorg mailing list:
+
+ http://lists.freedesktop.org/mailman/listinfo/xorg
+
+The master development code repository can be found at:
+
+ git://anongit.freedesktop.org/git/xorg/lib/libxtrans
+
+ http://cgit.freedesktop.org/xorg/lib/libxtrans
+
+For more information on the git code manager, see:
+
+ http://wiki.x.org/wiki/GitPage
commit 7f20307fd88fcfa6ac2f8ece83be0130f39bc147
Author: Julien Cristau <jcristau@debian.org>
Date: Tue Dec 23 16:42:06 2008 +0100
Prepare changelog for upload
diff --git a/debian/changelog b/debian/changelog
index 609e15b..5ee4bd3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xtrans (1.2.2-1) UNRELEASED; urgency=low
+xtrans (1.2.2-1) experimental; urgency=low
[ Brice Goglin ]
* Add a link to www.X.org and a reference to the upstream module
@@ -11,7 +11,7 @@ xtrans (1.2.2-1) UNRELEASED; urgency=low
* Stop looking for nostrip (we don't build anything anyway); allow parallel
builds using sample code from policy.
- -- Brice Goglin <bgoglin@debian.org> Fri, 13 Jun 2008 11:40:09 +0200
+ -- Julien Cristau <jcristau@debian.org> Tue, 23 Dec 2008 16:39:04 +0100
xtrans (1.2-2) unstable; urgency=low
commit d77dd001008aa6a5f6f77a9c605bb3b19f4e6e84
Author: Julien Cristau <jcristau@debian.org>
Date: Tue Dec 23 16:34:20 2008 +0100
update changelogs
diff --git a/ChangeLog b/ChangeLog
index 9d0f66c..7552df2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,49 @@
+commit 005bd80a9eab736aea737869b8a1079c565e1cd6
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Oct 7 09:56:49 2008 -0400
+
+ xtrans 1.2.2
+
+commit 1185dd2966521e1a19474dfd4206306cb383fc89
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Oct 7 09:55:22 2008 -0400
+
+ Finish removing OS/2 support
+
+commit 51b2e85aeb172f4a058d8ceceec91021ffd0b2a5
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Oct 7 09:51:27 2008 -0400
+
+ Remove DECNET support.
+
+ This hasn't been consumed in the server or libs since 7.0.
+
+commit 892ec928da3a0653ae54c321e4c3b1aa06c4e678
+Author: Adam Jackson <ajax@redhat.com>
+Date: Thu Aug 7 10:32:11 2008 -0400
+
+ Drastically simplify TRANS_OPEN_MAX.
+
+ If your OS doesn't have sysconf(3), then life is already hard for you.
+
+commit 339ddc413559d4cb117a72f87b2a70dae6911c32
+Author: Adam Jackson <ajax@redhat.com>
+Date: Thu Aug 7 10:23:19 2008 -0400
+
+ Massive ifdef cleanup, dropping a ton of unsupported platform code.
+
+commit a78b9819cbbbddccb4a6bf364b88ec4f27d25c1f
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Tue Aug 5 17:46:37 2008 -0700
+
+ Added a flag to enable "The OS already took care of securing this, please skip checking xauth" for use with Apple launchd sockets.
+
+commit 3db805979b476d233baa881e83950ef1d2731841
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Tue Jul 15 16:56:12 2008 -0700
+
+ Apple: Allow Xquartz to provide an additional fd to xtrans since the dynamic addition code in the server isn't bulletproof yet.
+
commit 81d8bdced6b45ab2ab3d3a0bc164ddbf1659fea1
Author: Adam Jackson <ajax@redhat.com>
Date: Wed Jul 2 15:24:20 2008 -0400
diff --git a/debian/changelog b/debian/changelog
index 3417162..609e15b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xtrans (1.2.1-1) UNRELEASED; urgency=low
+xtrans (1.2.2-1) UNRELEASED; urgency=low
[ Brice Goglin ]
* Add a link to www.X.org and a reference to the upstream module
commit 9f12a154437554938a4fa18b7d3948c7dff8d631
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date: Mon Dec 1 13:58:31 2008 -0800
Switch ChangeLog generation to use XORG_CHANGELOG from xorg-macros 1.2
diff --git a/Makefile.am b/Makefile.am
index 39b67d3..07e0153 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,6 +22,6 @@ CLEANFILES = ChangeLog
.PHONY: ChangeLog
ChangeLog:
- (GIT_DIR=$(top_srcdir)/.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2)
+ $(CHANGELOG_CMD)
dist-hook: ChangeLog
diff --git a/configure.ac b/configure.ac
index 19b736f..dff9d46 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,6 +25,10 @@ AC_INIT(xtrans, 1.2.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]
AM_INIT_AUTOMAKE([dist-bzip2])
AM_MAINTAINER_MODE
+# Require xorg-macros version 1.2.0 or newer for XORG_CHANGELOG macro
+m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.2)
+
# Because xtrans is included into other modules rather than being linked
# with, these defines have to be added to the cflags line
@@ -44,6 +48,7 @@ sticky_bit_define="-DHAS_STICKY_DIR_BIT"
AC_SUBST(sticky_bit_define)
XORG_RELEASE_VERSION
+XORG_CHANGELOG
AC_OUTPUT([Makefile
xtrans.pc])
commit 8c313881a0c586179c09922a7e00a1f8d669a68a
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date: Mon Dec 1 08:37:42 2008 -0800
18748: xtrans.m4 causes configure --help to list --enable-ipv6 in wrong case.
X.Org Bug #18748 <http://bugs.freedesktop.org/show_bug.cgi?id=18748>
diff --git a/xtrans.m4 b/xtrans.m4
index c4701d4..f6bc2ea 100644
--- a/xtrans.m4
+++ b/xtrans.m4
@@ -36,7 +36,7 @@ AC_DEFUN([XTRANS_TCP_FLAGS],[
# Needs to come after above checks for libsocket & libnsl for SVR4 systems
AC_ARG_ENABLE(ipv6,
- AC_HELP_STRING([--enable-IPv6],[Enable IPv6 support]),
+ AC_HELP_STRING([--enable-ipv6],[Enable IPv6 support]),
[IPV6CONN=$enableval],
[AC_CHECK_FUNC(getaddrinfo,[IPV6CONN=yes],[IPV6CONN=no])])
AC_MSG_CHECKING([if IPv6 support should be built])
commit c626a4298e98f4988701dd587bc8355c62542ec4
Author: Alan Hourihane <alanh@tungstengraphics.com>
Date: Wed Oct 15 11:19:41 2008 +0100
add winsock check for windows builds
diff --git a/xtrans.m4 b/xtrans.m4
index 31d456b..c4701d4 100644
--- a/xtrans.m4
+++ b/xtrans.m4
@@ -32,6 +32,7 @@ AC_DEFUN([XTRANS_TCP_FLAGS],[
# SVR4 hides these in libraries other than libc
AC_SEARCH_LIBS(socket, [socket])
AC_SEARCH_LIBS(gethostbyname, [nsl])
+ AC_HAVE_LIBRARY([ws2_32])
# Needs to come after above checks for libsocket & libnsl for SVR4 systems
AC_ARG_ENABLE(ipv6,
commit 005bd80a9eab736aea737869b8a1079c565e1cd6
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Oct 7 09:56:49 2008 -0400
xtrans 1.2.2
diff --git a/configure.ac b/configure.ac
index 803dc23..19b736f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -21,7 +21,7 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
-AC_INIT(xtrans, 1.2.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xtrans)
+AC_INIT(xtrans, 1.2.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xtrans)
AM_INIT_AUTOMAKE([dist-bzip2])
AM_MAINTAINER_MODE
commit 1185dd2966521e1a19474dfd4206306cb383fc89
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Oct 7 09:55:22 2008 -0400
Finish removing OS/2 support
diff --git a/Makefile.am b/Makefile.am
index 9e2291d..39b67d3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,7 +4,6 @@ Xtransinclude_HEADERS = \
Xtrans.c \
Xtransint.h \
Xtranslcl.c \
- Xtransos2.c \
Xtranssock.c \
Xtranstli.c \
Xtransutil.c \
diff --git a/Xtransos2.c b/Xtransos2.c
deleted file mode 100644
index f4a6b03..0000000
--- a/Xtransos2.c
+++ /dev/null
@@ -1,887 +0,0 @@
-/* $XFree86: xc/lib/xtrans/Xtransos2.c,v 3.9tsi Exp $ */
-
-/*
- * (c) Copyright 1996 by Sebastien Marineau and Holger Veit
- * <marineau@genie.uottawa.ca>
- * <Holger.Veit@gmd.de>
- *
- * 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:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * 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
- * HOLGER VEIT 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.
- *
- * Except as contained in this notice, the name of Sebastien Marineau or Holger Veit shall not be
- * used in advertising or otherwise to promote the sale, use or other dealings
- * in this Software without prior written authorization from Holger Veit or Sebastien Marineau.
- *
- */
-
-/* Implementation of the OS/2 local pipe transport layer */
-
-#define INCL_DOSNMPIPES
-#define INCL_DOSPROCESS
-#define INCL_DOSERRORS
-#define INCL_DOSFILEMGR
-#undef BYTE
-#undef BOOL
-#include <os2.h>
-
-#ifdef XSERV_t
-extern HEV hPipeSem;
-BOOL init_server_pipes();
-#endif
-
-/*************************************************************************
- * Independent Layer
- *************************************************************************/
-#ifdef TRANS_CLIENT
-
-static XtransConnInfo
-TRANS(Os2OpenClient)(Xtransport *thistrans, char *protocol,
- char *host, char *port)
-{
- APIRET rc;
- HFILE hfd,hServer;
- ULONG action,byteWritten,State;
- char pipename[256],clientname[256];
- char server_string[256];
- struct sockaddr *addr_name;
- unsigned char pipe_len;
- XtransConnInfo ciptr;
- static int unique_id=0;
- int i,namelen,try;
-
- PRMSG(2,"Os2OpenClient(%s,%s,%s)\n",protocol,host,port);
-
- /* test, whether the host is really local, i.e. either
- * "os2" or "local"
- */
- if (strcmp(protocol,"os2") && strcmp(protocol,"local")) {
- PRMSG (1,
- "Os2OpenClient: Cannot connect to non-local host %s\n",
- host, 0, 0);
- return NULL;
- }
-
- /* make the pipename */
-
- if (port && *port ) {
- if( *port == '/' ) { /* A full pathname */
- (void) sprintf(pipename, "\\PIPE\\X\\%s,", port);
- } else {
- (void) sprintf(pipename, "%s%s", "\\PIPE\\X\\xf86.", port);
- }
- } else {
- (void) sprintf(pipename, "\\PIPE\\X\\xfree86"); }
-
- PRMSG(5, "Os2OpenClient: Creating pipe %s\n",pipename, 0,0 );
-
- /* make a connection entry */
- if( (ciptr=(XtransConnInfo)xcalloc(1,sizeof(struct _XtransConnInfo))) == NULL ) {
- PRMSG(1,"Os2OpenClient: calloc(1,%d) failed\n",
- sizeof(struct _XtransConnInfo),0,0 );
- return NULL;
- }
-
- /* open the pipe. Try ten times before giving up at 500ms intervals*/
- try = 0;
- do {
- rc = DosOpen(pipename,&hServer, &action, 0,
- FILE_NORMAL, FILE_OPEN,
- OPEN_ACCESS_WRITEONLY | OPEN_SHARE_DENYWRITE,
- (PEAOP2)NULL);
- if(rc == 0) break;
- if (try >=10) {
- PRMSG(1,"Os2OpenClient: Open server pipe %s failed, rc=%d\n",
- pipename,rc,0 );
- PRMSG(1,"\tProbable causes: either the XServer is not running, or has not started properly,\n",
- 0,0,0 );
- PRMSG(1,"\tor the DISPLAY variable is set incorrectly.\n",
- 0,0,0 );
- xfree(ciptr);
- return NULL;
- }
- try ++;
- DosSleep(500);
- } while (rc != 0);
-
-/* OK, now we are talking to the server. Generate a unique pipe name and pass it to
- * the server. Make the pipe and wait for server to connect */
-
- sprintf(clientname,"\\PIPE\\X\\%d.%d",getpid(),unique_id++);
-
- rc = DosCreateNPipe (clientname, &hfd,
- NP_NOINHERIT | NP_ACCESS_DUPLEX,
- 1 | NP_NOWAIT | NP_TYPE_BYTE | NP_READMODE_BYTE,
- 16384, 16384, 0);
- if (rc != 0){
- PRMSG(1, "Os2OpenClient: Unable to create pipe %s\n", pipename,0,0 );
- DosClose(hfd);
- pipe_len=0;
- DosWrite(hServer,&pipe_len,1,&byteWritten);
- DosClose(hServer);
- xfree(ciptr);
- return(NULL);
- }
-
- /* Connect to the pipe. */
-
- rc = DosConnectNPipe (hfd);
- if (rc != 0 && rc != ERROR_PIPE_NOT_CONNECTED)
- {
- PRMSG(1, "Os2OpenClient: Unable to connect to pipe %s\n", pipename,0,0 );
- DosClose (hfd);
- DosClose(hServer);
- xfree(ciptr);
- return (NULL);
- }
-
-/* Now write name to server on hServer */
- server_string[0]=(char) strlen(clientname)+1;
- strcpy(&server_string[1],clientname);
- rc = DosWrite(hServer,server_string,(ULONG)server_string[0]+1,&byteWritten);
- if(rc != 0){ /* Could not write to server pipe? */
- PRMSG(1, "Os2OpenClient: Error writing to server pipe, handle=%d, rc=%d, w=%d\n",
- hServer,rc,byteWritten );
- DosClose(hServer);
- DosClose(hfd);
- xfree(ciptr);
- return(NULL);
- }
-
- PRMSG (5, "Os2OpenCLient: Wrote pipename %s to server; len %d written %d \n",
- &server_string[1],server_string[0]+1,byteWritten);
-
-
-/* The server will respond by opening the pipe. Wait for that for 30 secs */
-
- i=0;
- DosSleep(50); /* Give it time to catch up but minimize race condition*/
- rc = DosConnectNPipe(hfd);
- while((rc == ERROR_PIPE_NOT_CONNECTED)&&(i++<60)) {
- DosSleep(500);
- rc = DosConnectNPipe(hfd);
- }
-
- if(rc != 0){ /* Server has not responded! */
- PRMSG(1, "Os2OpenClient: Timeout on wait for server response, handle=%d, rc=%d\n",hServer,rc,0 );
- PRMSG(1, "\tProbable cause: the XServer has exited or crashed while the connection was being established\n",0,0,0 );
- PRMSG(1, "\tor the XServer is too busy to respond.\n",0,0,0 );
- DosClose(hServer);
- DosClose(hfd);
- xfree(ciptr);
- return(NULL);
- }
-
-/* OK, the server has connected! Fill-in the info and return */
-
- DosClose(hServer);
-
-/* Last check: make sure client is connected! */
-
- rc = DosQueryNPHState(hfd,&State);
- if(rc != 0){ /* Client is not connected! */
- PRMSG(1, "Os2OpenClient: Client pipe does not appear connected. rc=%d, h=%d\n",rc,hfd,0 );
- PRMSG(1, "\tProbable cause: the XServer has just exited.\n",0,0,0 );
- DosClose(hfd);
- xfree(ciptr);
- return(NULL);
- }
-
- namelen=sizeof(struct sockaddr);
- if ((ciptr->addr = (char *) xalloc (namelen)) == NULL)
- {
- PRMSG (1, "Os2OpenClient: Can't allocate space for the addr\n",
- 0, 0, 0);
- DosClose(hfd);
- xfree(ciptr);
- return(NULL);
- }
- ciptr->addrlen = namelen;
- ((struct sockaddr *)ciptr->addr)->sa_family = AF_UNIX;
- strcpy(((struct sockaddr *)ciptr->addr)->sa_data, "local");
-
- if ((ciptr->peeraddr = (char *) xalloc (namelen)) == NULL)
- {
- PRMSG (1, "Os2OpenCLient: Can't allocate space for the addr\n",
- 0, 0, 0);
- DosClose(hfd);
- xfree(ciptr->addr);
- xfree(ciptr);
- return(NULL);
- }
- ciptr->peeraddrlen = namelen;
- ((struct sockaddr *)ciptr->peeraddr)->sa_family = AF_UNIX;
- strcpy (((struct sockaddr *)ciptr->peeraddr)->sa_data,"local");
-
- PRMSG (5, "Os2OpenCLient: Filled in struct: len %d %d name %s\n",
- ciptr->addrlen,ciptr->peeraddrlen,((struct sockaddr *)ciptr->peeraddr)->sa_data);
-
-
- ciptr->index=hfd;
- ciptr->family=AF_UNIX;
- if((ciptr->fd=_imphandle(hfd))<0){
- PRMSG(1, "Os2OpenClient: Could not import the pipe handle into EMX\n",0,0,0 );
- PRMSG(1, "\tProbable cause: EMX has run out of free file handles.\n",0,0,0 );
- DosClose(hfd);
- xfree(ciptr->addr);
- xfree(ciptr->peeraddr);
- xfree(ciptr);
- return(NULL);
- }
- PRMSG(5, "Os2OpenClient: pipe handle %d EMX handle %d\n",ciptr->index,ciptr->fd,0 );
- fcntl(ciptr->fd,F_SETFL,O_NDELAY);
- fcntl(ciptr->fd,F_SETFD,FD_CLOEXEC);
- return ciptr;
-}
-#endif /* TRANS_CLIENT */
-
-#ifdef TRANS_SERVER
-static XtransConnInfo
-TRANS(Os2OpenServer)(Xtransport *thistrans, char *protocol,
- char *host, char *port)
-{
- APIRET rc;
- HFILE hfd;
- ULONG action;
- char pipename[256];
- struct sockaddr *addr_name;
- XtransConnInfo ciptr;
- int namelen;
-
-#ifdef XSERV_t
- if (! init_server_pipes()) return(NULL);
-#endif
-
- PRMSG(2,"Os2OpenServer(%s,%s,%s)\n",protocol,host,port);
-
- if( (ciptr=(XtransConnInfo)xcalloc(1,sizeof(struct _XtransConnInfo))) == NULL )
- {
- PRMSG(1,"Os2OpenServer: xcalloc(1,%d) failed\n",
- sizeof(struct _XtransConnInfo),0,0 );
- return NULL;
- }
-
-
- if (port && *port ) {
- if( *port == '/' ) { /* A full pathname */
- (void) sprintf(pipename, "\\PIPE\\X\\%s", port);
- } else {
- (void) sprintf(pipename, "%s%s", "\\PIPE\\X\\xf86.", port);
- }
- } else {
- (void) sprintf(pipename, "\\PIPE\\X\\xfree86");
- }
-
- PRMSG(5, "Os2OpenServer: Creating pipe %s\n",pipename, 0,0 );
-
- rc = DosCreateNPipe (pipename, &hfd,
- NP_NOINHERIT | NP_ACCESS_INBOUND,
- 1 | NP_NOWAIT | NP_TYPE_BYTE | NP_READMODE_BYTE,
- 0, 8192, 0);
- if (rc != 0){
- PRMSG(1, "Os2OpenServer: Unable to create pipe %s, rc=%d\n", pipename,rc,0 );
- PRMSG(1, "\tProbable cause: there is already another XServer running on display :%s\n",port,0,0 );
- DosClose(hfd);
- xfree(ciptr);
- return(NULL);
- }
-
- /* Connect to the pipe. */
-
- rc = DosConnectNPipe (hfd);
- if (rc != 0 && rc != ERROR_PIPE_NOT_CONNECTED)
- {
- PRMSG(1, "Os2OpenServer: Unable to connect to pipe %s\n", pipename,0,0 );
- DosClose (hfd);
- xfree(ciptr);
- return (NULL);
- }
-
-/* Pipe is now connected and waiting for client connect */
-
-/*** Put in info ***/
-
- namelen=sizeof(struct sockaddr);
- if ((ciptr->addr = (char *) xalloc (namelen)) == NULL)
- {
- PRMSG (1, "Os2OpenServer: Can't allocate space for the addr\n",
- 0, 0, 0);
- DosClose(hfd);
- xfree(ciptr);
- return(NULL);
- }
- ciptr->addrlen = namelen;
- ((struct sockaddr *)ciptr->addr)->sa_family = AF_UNIX;
- strcpy (((struct sockaddr *)ciptr->addr)->sa_data, "local");
-
- if ((ciptr->peeraddr = (char *) xalloc (namelen)) == NULL)
- {
- PRMSG (1, "Os2OpenServer: Can't allocate space for the addr\n",
- 0, 0, 0);
- DosClose(hfd);
- xfree(ciptr->addr);
- xfree(ciptr);
- return(NULL);
- }
-
- ciptr->peeraddrlen = namelen;
- ((struct sockaddr *)ciptr->peeraddr)->sa_family = AF_UNIX;
- strcpy(((struct sockaddr *)ciptr->peeraddr)->sa_data,"local");
-
- PRMSG (5, "Os2OpenServer: Filled in struct: len %d %d name %s\n",
- ciptr->addrlen,ciptr->peeraddrlen,((struct sockaddr *)ciptr->peeraddr)->sa_data);
-
- ciptr->index=hfd; /* Save this for later use in this unused member of struct */
- ciptr->flags=1; /* Listener */
- ciptr->family=AF_UNIX;
-
- if((ciptr->fd=_imphandle(hfd))<0){
- DosClose(hfd);
- xfree(ciptr->addr);
- xfree(ciptr->peeraddr);
- xfree(ciptr);
- return(NULL);
- }
- PRMSG(5, "Os2OpenServer: Pipe handle %d EMX handle %d",ciptr->index,ciptr->fd,0 );
-
-#ifdef XSERV_t
-/* Attach the pipe sem to the pipe. Use handle index as key */
- rc = DosSetNPipeSem(ciptr->fd, (HSEM)hPipeSem, ciptr->fd);
- if (rc){
- PRMSG(1, "Os2OpenCOTSServer: Could not attach sem %d to pipe %d, rc=%d\n",
- hPipeSem,ciptr->fd,rc);
- DosClose(ciptr->fd);
- xfree(ciptr->addr);
- xfree(ciptr->peeraddr);
- xfree(ciptr);
- return(NULL);
- }
-#endif
-
- fcntl(ciptr->fd,F_SETFL,O_NDELAY);
- fcntl(ciptr->fd,F_SETFD,FD_CLOEXEC);
- return(ciptr);
-}
-#endif /* TRANS_SERVER */
-
-#ifdef TRANS_CLIENT
-static XtransConnInfo
-TRANS(Os2OpenCLTSClient)(Xtransport *thistrans, char *protocol,
- char *host, char *port)
-{
- PRMSG(2,"Os2OpenCLTSClient(%s,%s,%s)\n",protocol,host,port);
- return TRANS(Os2OpenClient)(thistrans, protocol, host, port);
-}
-#endif /* TRANS_CLIENT */
-
-#ifdef TRANS_CLIENT
-static XtransConnInfo
-TRANS(Os2OpenCOTSClient)(Xtransport *thistrans, char *protocol,
- char *host, char *port)
-{
- PRMSG(2,"Os2OpenCOTSClient(%s,%s,%s)\n",protocol,host,port);
- return TRANS(Os2OpenClient)(thistrans, protocol, host, port);
-}
-#endif /* TRANS_CLIENT */
-
-
-#ifdef TRANS_SERVER
-static XtransConnInfo
-TRANS(Os2OpenCLTSServer)(Xtransport *thistrans, char *protocol,
- char *host, char *port)
-{
- PRMSG(2,"Os2OpenCLTSServer(%s,%s,%s)\n",protocol,host,port);
- return TRANS(Os2OpenServer)(thistrans, protocol, host, port);
-}
-#endif /* TRANS_SERVER */
-
-
-#ifdef TRANS_SERVER
-static XtransConnInfo
-TRANS(Os2OpenCOTSServer)(Xtransport *thistrans, char *protocol,
- char *host, char *port)
-{
- PRMSG(2,"Os2OpenCOTSServer(%s,%s,%s)\n",protocol,host,port);
- return TRANS(Os2OpenServer)(thistrans, protocol, host, port);
-}
-#endif /* TRANS_SERVER */
-
-
-#ifdef TRANS_REOPEN
-static XtransConnInfo
-TRANS(Os2ReopenCOTSServer)(Xtransport *thistrans, int fd, char *port)
-{
-
- XtransConnInfo ciptr;
- char addr_name[256];
- int namelen;
-
- PRMSG(2,"Os2ReopenCOTSServer(%d,%s)\n", fd, port, 0);
-
- if( (ciptr=(XtransConnInfo)xcalloc(1,sizeof(struct _XtransConnInfo))) == NULL )
- {
- PRMSG(1,"Os2ReopenCOTSServer: xcalloc(1,%d) failed\n",
- sizeof(struct _XtransConnInfo),0,0 );
- return NULL;
- }
-
- strcpy(addr_name,"local");
- namelen=sizeof(addr_name);
- if ((ciptr->addr = (char *) xalloc (namelen)) == NULL)
- {
- PRMSG (1, "Os2ReopenCOTSServer: Can't allocate space for the addr\n",
- 0, 0, 0);
- xfree(ciptr);
- return(NULL);
- }
-
- ciptr->addrlen = namelen;
- memcpy (ciptr->addr, addr_name, ciptr->addrlen);
- if ((ciptr->peeraddr = (char *) xalloc (namelen)) == NULL)
- {
- PRMSG (1, "Os2ReopenCOTSServer: Can't allocate space for the addr\n",
- 0, 0, 0);
- xfree(ciptr);
- return(NULL);
- }
-
- ciptr->peeraddrlen = namelen;
- memcpy (ciptr->peeraddr,addr_name, ciptr->addrlen);
-
- ciptr->fd = fd;
- ciptr->family=AF_UNIX;
- ciptr->flags=1;
- PRMSG(1,"Os2ReopenCOTSServer: Filled-in info for handle %d on port %s.\n", fd, port, 0);
-
- return(ciptr);
-}
-
-static XtransConnInfo
-TRANS(Os2ReopenCLTSServer)(Xtransport *thistrans, int fd, char *port)
-{
- PRMSG(2,"Os2ReopenCLTSServer(%d,%s)\n", fd, port, 0);
- return TRANS(Os2ReopenCOTSServer)(thistrans, fd, port);
-}
-#endif
-
-static
-TRANS(Os2SetOption)(XtransConnInfo ciptr, int option, int arg)
-{
- PRMSG(2,"Os2SetOption(%d,%d,%d)\n",ciptr->fd,option,arg);
- return -1;
-}
-
-#ifdef TRANS_SERVER
-
-static
-TRANS(Os2CreateListener)(XtransConnInfo ciptr, char *port, unsigned int flags)
-{
- PRMSG(2,"Os2CreateListener(%x->%d,%s)\n",ciptr,ciptr->fd,port);
- return 0;
-}
-
-static XtransConnInfo
-TRANS(Os2Accept)(XtransConnInfo ciptr, int *status)
-{
- XtransConnInfo newciptr;
- HFILE hClient;
- unsigned char length;
- ULONG action;
- char clientname[256];
- struct sockaddr *addr_name;
- int in,namelen;
- APIRET rc;
-
-
- PRMSG(2,"Os2Accept(%x->%d)\n", ciptr, ciptr->fd,0);
- if( (newciptr=(XtransConnInfo)xcalloc(1,sizeof(struct _XtransConnInfo)))==NULL )
- {
- PRMSG(1,"Os2Accept: xcalloc(1,%d) failed\n",
- sizeof(struct _XtransConnInfo),0,0 );
- *status = TRANS_ACCEPT_BAD_MALLOC;
- return NULL;
- }
-
-/* Read in length of client pipe name. If fails, then reset server pipe */
- if((in=read(ciptr->fd,&length,1))<=0){
- PRMSG(2,"Os2Accept: Error reading incoming connection, in=%d, error=%d\n",
- in,errno,0 );
- *status = TRANS_ACCEPT_MISC_ERROR;
- xfree(newciptr);
- rc = DosDisConnectNPipe(ciptr->fd);
- rc = DosConnectNPipe (ciptr->fd);
- if (rc != 0 && rc != ERROR_PIPE_NOT_CONNECTED)
- {
- PRMSG(1, "Os2Accept: Unable to reconnect server pipe %d\n", ciptr->fd,0,0 );
- }
- return NULL;
- }
- PRMSG(5, "Os2Accept: Bytes to read for name: %d\n",length,0,0 );
-
-
-/* Check length for valid length ?? */
-
-/* Now read in length bytes from pipe for client pipe name */
- if((in=read(ciptr->fd,clientname,length))<=0){
- PRMSG(2,"Os2Accept: Error reading incoming connection, in=%d, error=%d\n",
- in,errno,0 );
- *status = TRANS_ACCEPT_MISC_ERROR;
- xfree(newciptr);
Reply to: