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 <jcris...@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 <jcris...@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 <jcris...@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 <jcris...@debian.org> Fri, 16 Jan 2009 04:50:22 +0100 + -- Julien Cristau <jcris...@debian.org> Fri, 16 Jan 2009 04:53:05 +0100 xtrans (1.2.2-1) experimental; urgency=low commit f679ff2480df4183a6986d61331e481365eef4c3 Author: Julien Cristau <jcris...@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.coopersm...@sun.com> +Date: Sun Jan 11 10:54:52 2009 -0800 + + Version 1.2.3 + +commit d0c5592142369afa93dcd58ca6f390dbd127a28a +Author: Alan Coopersmith <alan.coopersm...@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.coopersm...@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.coopersm...@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 <al...@tungstengraphics.com> +Date: Wed Oct 15 11:19:41 2008 +0100 + + add winsock check for windows builds + commit 005bd80a9eab736aea737869b8a1079c565e1cd6 Author: Adam Jackson <a...@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 <jcris...@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 <dnusi...@debian.org>, Brice Goglin <bgog...@debian.org>, Julien Cristau <jcris...@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.coopersm...@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.coopersm...@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 <jcris...@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 <bgog...@debian.org> Fri, 13 Jun 2008 11:40:09 +0200 + -- Julien Cristau <jcris...@debian.org> Tue, 23 Dec 2008 16:39:04 +0100 xtrans (1.2-2) unstable; urgency=low commit d77dd001008aa6a5f6f77a9c605bb3b19f4e6e84 Author: Julien Cristau <jcris...@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 <a...@redhat.com> +Date: Tue Oct 7 09:56:49 2008 -0400 + + xtrans 1.2.2 + +commit 1185dd2966521e1a19474dfd4206306cb383fc89 +Author: Adam Jackson <a...@redhat.com> +Date: Tue Oct 7 09:55:22 2008 -0400 + + Finish removing OS/2 support + +commit 51b2e85aeb172f4a058d8ceceec91021ffd0b2a5 +Author: Adam Jackson <a...@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 <a...@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 <a...@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 <jerem...@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 <jerem...@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 <a...@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.coopersm...@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.coopersm...@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 <al...@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 <a...@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 <a...@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 - * <marin...@genie.uottawa.ca> - * <holger.v...@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); -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org