summaryrefslogtreecommitdiff
path: root/lib/libxtrans
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libxtrans')
-rw-r--r--lib/libxtrans/ChangeLog124
-rw-r--r--lib/libxtrans/Makefile.am4
-rw-r--r--lib/libxtrans/Makefile.in7
-rw-r--r--lib/libxtrans/README50
-rw-r--r--lib/libxtrans/Xtrans.c132
-rw-r--r--lib/libxtrans/Xtrans.h12
-rw-r--r--lib/libxtrans/Xtransdnet.c664
-rw-r--r--lib/libxtrans/Xtransint.h75
-rw-r--r--lib/libxtrans/Xtranslcl.c418
-rw-r--r--lib/libxtrans/Xtransos2.c887
-rw-r--r--lib/libxtrans/Xtranssock.c143
-rw-r--r--lib/libxtrans/Xtransutil.c67
-rw-r--r--lib/libxtrans/aclocal.m4477
-rw-r--r--lib/libxtrans/configure57
-rw-r--r--lib/libxtrans/configure.ac7
-rw-r--r--lib/libxtrans/transport.c9
-rw-r--r--lib/libxtrans/xtrans.m43
17 files changed, 750 insertions, 2386 deletions
diff --git a/lib/libxtrans/ChangeLog b/lib/libxtrans/ChangeLog
index 85d971de8..9f97eb7e4 100644
--- a/lib/libxtrans/ChangeLog
+++ b/lib/libxtrans/ChangeLog
@@ -1,3 +1,127 @@
+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
+
+ 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
+
+ xtrans 1.2.1
+
+commit 302af17c4d5f0293a9af4d6c1097ab57a57d3f0f
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Tue Jun 24 15:45:38 2008 -0700
+
+ Clear some pointer type mismatch warnings
+
+commit 4d184e41d30a8fe27380e04beb24f775d4a40782
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Tue Jun 24 15:45:18 2008 -0700
+
+ LocalClose() takes a ConnInfoPtr, not an fd
+
+commit 177c2fd41727bd0110b493933dcbdbf21878fe09
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Fri May 23 09:48:59 2008 -0700
+
+ Launchd: This functionality has been moved into xorg-server
+
+commit 02fcb08803dca5bb2df4f8be490a845659bd7ed3
+Author: Adam Jackson <ajax@redhat.com>
+Date: Mon May 12 17:49:41 2008 -0400
+
+ Connection failure for abstract socket is ECONNREFUSED, not ENOENT.
+
+ Apropos of bug #15884.
+
+commit 906294025573d07c739894fa3b2eedc82813a379
+Author: Bill Nottingham <notting@redhat.com>
+Date: Mon May 12 17:43:36 2008 -0400
+
+ Ignore mkdir() errors when creating the abstract socket.
+
+ Red Hat bug #445303.
+
+commit 08134c2ce72bc43c172b6ae134d8a94a40b45c9b
+Author: James Cloos <cloos@jhcloos.com>
+Date: Sat May 10 07:02:09 2008 -0400
+
+ Remove extraneous execute bit from .c file
+
commit e75b9dad0ae4bc0869af81652d8259675a3c5cac
Author: Julien Cristau <jcristau@debian.org>
Date: Thu May 8 16:27:29 2008 +0200
diff --git a/lib/libxtrans/Makefile.am b/lib/libxtrans/Makefile.am
index b2a9f52d7..07e01538b 100644
--- a/lib/libxtrans/Makefile.am
+++ b/lib/libxtrans/Makefile.am
@@ -2,10 +2,8 @@ Xtransincludedir = $(includedir)/X11/Xtrans
Xtransinclude_HEADERS = \
Xtrans.h \
Xtrans.c \
- Xtransdnet.c \
Xtransint.h \
Xtranslcl.c \
- Xtransos2.c \
Xtranssock.c \
Xtranstli.c \
Xtransutil.c \
@@ -24,6 +22,6 @@ CLEANFILES = ChangeLog
.PHONY: ChangeLog
ChangeLog:
- git-log > ChangeLog
+ $(CHANGELOG_CMD)
dist-hook: ChangeLog
diff --git a/lib/libxtrans/Makefile.in b/lib/libxtrans/Makefile.in
index 459cbe37a..fea85fd89 100644
--- a/lib/libxtrans/Makefile.in
+++ b/lib/libxtrans/Makefile.in
@@ -75,7 +75,6 @@ am__remove_distdir = \
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
@@ -87,6 +86,7 @@ AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
+CHANGELOG_CMD = @CHANGELOG_CMD@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
@@ -131,6 +131,7 @@ am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
datadir = @datadir@
+distcleancheck_listfiles = @distcleancheck_listfiles@
exec_prefix = @exec_prefix@
fchown_define = @fchown_define@
host_alias = @host_alias@
@@ -154,10 +155,8 @@ Xtransincludedir = $(includedir)/X11/Xtrans
Xtransinclude_HEADERS = \
Xtrans.h \
Xtrans.c \
- Xtransdnet.c \
Xtransint.h \
Xtranslcl.c \
- Xtransos2.c \
Xtranssock.c \
Xtranstli.c \
Xtransutil.c \
@@ -540,7 +539,7 @@ uninstall-am: uninstall-XtransincludeHEADERS uninstall-aclocalDATA \
.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
# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/lib/libxtrans/README b/lib/libxtrans/README
index 551f12954..8560b5dfa 100644
--- a/lib/libxtrans/README
+++ b/lib/libxtrans/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
diff --git a/lib/libxtrans/Xtrans.c b/lib/libxtrans/Xtrans.c
index fde3cb073..942318429 100644
--- a/lib/libxtrans/Xtrans.c
+++ b/lib/libxtrans/Xtrans.c
@@ -48,9 +48,6 @@ from The Open Group.
*/
#include <ctype.h>
-#ifdef HAVE_LAUNCHD
-#include <launch.h>
-#endif
/*
* The transport table contains a definition for every transport (protocol)
@@ -95,18 +92,12 @@ Xtransport_table Xtransports[] = {
#endif /* IPv6 */
{ &TRANS(SocketINETFuncs), TRANS_SOCKET_INET_INDEX },
#endif /* TCPCONN */
-#if defined(DNETCONN)
- { &TRANS(DNETFuncs), TRANS_DNET_INDEX },
-#endif /* DNETCONN */
#if defined(UNIXCONN)
#if !defined(LOCALCONN)
{ &TRANS(SocketLocalFuncs), TRANS_SOCKET_LOCAL_INDEX },
#endif /* !LOCALCONN */
{ &TRANS(SocketUNIXFuncs), TRANS_SOCKET_UNIX_INDEX },
#endif /* UNIXCONN */
-#if defined(OS2PIPECONN)
- { &TRANS(OS2LocalFuncs), TRANS_LOCAL_LOCAL_INDEX },
-#endif /* OS2PIPECONN */
#if defined(LOCALCONN)
{ &TRANS(LocalFuncs), TRANS_LOCAL_LOCAL_INDEX },
#ifndef sun
@@ -437,7 +428,7 @@ TRANS(Open) (int type, char *address)
PRMSG (2,"Open(%d,%s)\n", type, address, 0);
-#if defined(WIN32) && (defined(TCPCONN) || defined(DNETCONN))
+#if defined(WIN32) && defined(TCPCONN)
if (TRANS(WSAStartup)())
{
PRMSG (1,"Open: WSAStartup failed\n", 0, 0, 0);
@@ -730,7 +721,7 @@ TRANS(SetOption) (XtransConnInfo ciptr, int option, int arg)
break;
case 1: /* Set to non-blocking mode */
-#if defined(O_NONBLOCK) && (!defined(ultrix) && !defined(hpux) && !defined(AIXV3) && !defined(uniosu) && !defined(__UNIXOS2__) && !defined(SCO325)) && !defined(__QNX__)
+#if defined(O_NONBLOCK) && !defined(SCO325)
ret = fcntl (fd, F_GETFL, 0);
if (ret != -1)
ret = fcntl (fd, F_SETFL, ret | O_NONBLOCK);
@@ -742,7 +733,7 @@ TRANS(SetOption) (XtransConnInfo ciptr, int option, int arg)
ret = ioctl (fd, FIOSNBIO, &arg);
}
#else
-#if (defined(AIXV3) || defined(uniosu) || defined(WIN32) || defined(__UNIXOS2__) || defined(__QNX__)) && defined(FIONBIO)
+#if defined(WIN32)
{
#ifdef WIN32
u_long arg;
@@ -752,11 +743,7 @@ TRANS(SetOption) (XtransConnInfo ciptr, int option, int arg)
arg = 1;
/* IBM TCP/IP understands this option too well: it causes TRANS(Read) to fail
* eventually with EWOULDBLOCK */
-#ifndef __UNIXOS2__
ret = ioctl (fd, FIONBIO, &arg);
-#else
-/* ret = ioctl(fd, FIONBIO, &arg, sizeof(int));*/
-#endif
}
#else
ret = fcntl (fd, F_GETFL, 0);
@@ -874,7 +861,7 @@ TRANS(Connect) (XtransConnInfo ciptr, char *address)
}
#ifdef HAVE_LAUNCHD
- if (!host || !*host) host=strdup("");
+ if (!host) host=strdup("");
#endif
if (!port || !*port)
@@ -1063,6 +1050,9 @@ complete_network_count (void)
}
+#ifdef XQUARTZ_EXPORTS_LAUNCHD_FD
+extern int xquartz_launchd_fd;
+#endif
int
TRANS(MakeAllCOTSServerListeners) (char *port, int *partial, int *count_ret,
@@ -1072,11 +1062,6 @@ TRANS(MakeAllCOTSServerListeners) (char *port, int *partial, int *count_ret,
char buffer[256]; /* ??? What size ?? */
XtransConnInfo ciptr, temp_ciptrs[NUMTRANS];
int status, i, j;
-#ifdef HAVE_LAUNCHD
- int launchd_fd;
- launch_data_t sockets_dict, checkin_request, checkin_response;
- launch_data_t listening_fd_array, listening_fd;
-#endif
#if defined(IPv6) && defined(AF_INET6)
int ipv6_succ = 0;
@@ -1086,57 +1071,15 @@ TRANS(MakeAllCOTSServerListeners) (char *port, int *partial, int *count_ret,
*count_ret = 0;
-#ifdef HAVE_LAUNCHD
- /* Get launchd fd */
- if ((checkin_request = launch_data_new_string(LAUNCH_KEY_CHECKIN)) == NULL) {
- fprintf(stderr,"launch_data_new_string(\"" LAUNCH_KEY_CHECKIN "\") Unable to create string.\n");
- goto not_launchd;
- }
-
- if ((checkin_response = launch_msg(checkin_request)) == NULL) {
- fprintf(stderr,"launch_msg(\"" LAUNCH_KEY_CHECKIN "\") IPC failure: %s\n",strerror(errno));
- goto not_launchd;
- }
-
- if (LAUNCH_DATA_ERRNO == launch_data_get_type(checkin_response)) {
- // ignore EACCES, which is common if we weren't started by launchd
- if (launch_data_get_errno(checkin_response) != EACCES)
- fprintf(stderr,"launchd check-in failed: %s\n",strerror(launch_data_get_errno(checkin_response)));
- goto not_launchd;
- }
-
- sockets_dict = launch_data_dict_lookup(checkin_response, LAUNCH_JOBKEY_SOCKETS);
- if (NULL == sockets_dict) {
- fprintf(stderr,"launchd check-in: no sockets found to answer requests on!\n");
- goto not_launchd;
- }
-
- if (launch_data_dict_get_count(sockets_dict) > 1) {
- fprintf(stderr,"launchd check-in: some sockets will be ignored!\n");
- goto not_launchd;
- }
-
- listening_fd_array = launch_data_dict_lookup(sockets_dict, ":0");
- if (NULL == listening_fd_array) {
- fprintf(stderr,"launchd check-in: No known sockets found to answer requests on!\n");
- goto not_launchd;
- }
-
- if (launch_data_array_get_count(listening_fd_array)!=1) {
- fprintf(stderr,"launchd check-in: Expected 1 socket from launchd, got %d)\n",
- launch_data_array_get_count(listening_fd_array));
- goto not_launchd;
- }
-
- listening_fd=launch_data_array_get_index(listening_fd_array, 0);
- launchd_fd=launch_data_get_fd(listening_fd);
- fprintf(stderr,"Xquartz: run by launchd for fd %d\n",launchd_fd);
- if((ciptr = TRANS(ReopenCOTSServer(TRANS_SOCKET_LOCAL_INDEX,
- launchd_fd, getenv("DISPLAY"))))==NULL)
- fprintf(stderr,"Got NULL while trying to Reopen launchd port\n");
- else temp_ciptrs[(*count_ret)++] = ciptr;
-
-not_launchd:
+#ifdef XQUARTZ_EXPORTS_LAUNCHD_FD
+ fprintf(stderr, "Launchd socket fd: %d\n", xquartz_launchd_fd);
+ if(xquartz_launchd_fd != -1) {
+ if((ciptr = TRANS(ReopenCOTSServer(TRANS_SOCKET_LOCAL_INDEX,
+ xquartz_launchd_fd, getenv("DISPLAY"))))==NULL)
+ fprintf(stderr,"Got NULL while trying to Reopen launchd port\n");
+ else
+ temp_ciptrs[(*count_ret)++] = ciptr;
+ }
#endif
for (i = 0; i < NUMTRANS; i++)
@@ -1347,45 +1290,8 @@ TRANS(MakeAllCLTSServerListeners) (char *port, int *partial, int *count_ret,
* may be used by it.
*/
-#ifdef CRAY
-
-/*
- * Cray UniCOS does not have readv and writev so we emulate
- */
-
-static int TRANS(ReadV) (XtransConnInfo ciptr, struct iovec *iov, int iovcnt)
-
-{
- struct msghdr hdr;
-
- hdr.msg_iov = iov;
- hdr.msg_iovlen = iovcnt;
- hdr.msg_accrights = 0;
- hdr.msg_accrightslen = 0;
- hdr.msg_name = 0;
- hdr.msg_namelen = 0;
-
- return (recvmsg (ciptr->fd, &hdr, 0));
-}
-
-static int TRANS(WriteV) (XtransConnInfo ciptr, struct iovec *iov, int iovcnt)
-
-{
- struct msghdr hdr;
-
- hdr.msg_iov = iov;
- hdr.msg_iovlen = iovcnt;
- hdr.msg_accrights = 0;
- hdr.msg_accrightslen = 0;
- hdr.msg_name = 0;
- hdr.msg_namelen = 0;
-
- return (sendmsg (ciptr->fd, &hdr, 0));
-}
-
-#endif /* CRAY */
-#if (defined(SYSV) && defined(__i386__) && !defined(__SCO__) && !defined(sun)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
+#if defined(SYSV) && defined(__i386__) && !defined(__SCO__) && !defined(sun) || defined(WIN32)
/*
* emulate readv
@@ -1417,7 +1323,7 @@ static int TRANS(ReadV) (XtransConnInfo ciptr, struct iovec *iov, int iovcnt)
#endif /* SYSV && __i386__ || WIN32 || __sxg__ */
-#if (defined(SYSV) && defined(__i386__) && !defined(__SCO__) && !defined(sun)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
+#if defined(SYSV) && defined(__i386__) && !defined(__SCO__) && !defined(sun) || defined(WIN32)
/*
* emulate writev
@@ -1450,7 +1356,7 @@ static int TRANS(WriteV) (XtransConnInfo ciptr, struct iovec *iov, int iovcnt)
#endif /* SYSV && __i386__ || WIN32 || __sxg__ */
-#if (defined(_POSIX_SOURCE) && !defined(AIXV3) && !defined(__QNX__)) || defined(hpux) || defined(USG) || defined(SVR4) || defined(__SCO__)
+#if defined(_POSIX_SOURCE) || defined(USG) || defined(SVR4) || defined(__SCO__)
#ifndef NEED_UTSNAME
#define NEED_UTSNAME
#endif
diff --git a/lib/libxtrans/Xtrans.h b/lib/libxtrans/Xtrans.h
index 42def323b..cb83196f1 100644
--- a/lib/libxtrans/Xtrans.h
+++ b/lib/libxtrans/Xtrans.h
@@ -54,11 +54,7 @@ from The Open Group.
#include <X11/Xos.h>
#ifndef WIN32
-#ifndef Lynx
#include <sys/socket.h>
-#else
-#include <socket.h>
-#endif
#endif
@@ -194,7 +190,7 @@ typedef long BytesReadable_t;
#endif
-#if defined(WIN32) || (defined(USG) && !defined(CRAY) && !defined(umips) && !defined(MOTOROLA) && !defined(uniosu) && !defined(__sxg__))
+#if defined(WIN32) || defined(USG)
/*
* TRANS(Readv) and TRANS(Writev) use struct iovec, normally found
@@ -208,11 +204,7 @@ struct iovec {
};
#else
-#ifndef Lynx
#include <sys/uio.h>
-#else
-#include <uio.h>
-#endif
#endif
typedef struct _XtransConnInfo *XtransConnInfo;
@@ -479,7 +471,7 @@ TRANS(GetHostname) (
int /* maxlen */
);
-#if defined(WIN32) && (defined(TCPCONN) || defined(DNETCONN))
+#if defined(WIN32) && defined(TCPCONN)
int TRANS(WSAStartup)();
#endif
diff --git a/lib/libxtrans/Xtransdnet.c b/lib/libxtrans/Xtransdnet.c
deleted file mode 100644
index 5e8d0088b..000000000
--- a/lib/libxtrans/Xtransdnet.c
+++ /dev/null
@@ -1,664 +0,0 @@
-/*
-
-Copyright 1993, 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-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 THE OPEN GROUP 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 The Open Group 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 Open Group.
-
- * Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA
- *
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name NCR not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. NCR and makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * NCR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
- * NO EVENT SHALL NCR BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
- * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef WIN32
-#include <netdnet/dn.h>
-#include <netdnet/dnetdb.h>
-#include <sys/ioctl.h>
-#endif /* !WIN32 */
-
-#include <stdio.h>
-
-#ifdef WIN32
-#define _WILLWINSOCK_
-#define BOOL wBOOL
-#undef Status
-#define Status wStatus
-#include <prgpre.h> /* PATHWORKS header normally in %MSTOOLS%\h\pathwork */
-#undef Status
-#define Status int
-#undef BOOL
-#include <X11/Xw32defs.h>
-#undef close
-#define close closesocket
-#endif /* WIN32 */
-
-
-#if defined(X11_t)
-#define DNETOBJ "X$X"
-#endif
-#if defined(XIM_t)
-#define DNETOBJ "IMSERVER$"
-#endif
-#if defined(FS_t) || defined(FONT_t)
-#define DNETOBJ "X$FONT"
-#endif
-#if defined(ICE_t)
-#define DNETOBJ ""
-#endif
-#if defined(TEST_t)
-#define DNETOBJ "X$TEST"
-#endif
-
-
-/*
- * This is the DNET implementation of the X Transport service layer
- */
-
-/*
- * This function gets the local address of the socket and stores it in the
- * XtransConnInfo structure for the connection.
- */
-
-static int
-TRANS(DNETGetAddr) (XtransConnInfo ciptr)
-
-{
- struct sockaddr_dn sockname;
- int namelen = sizeof(sockname);
-
- PRMSG (3,"DNETGetAddr(%x)\n", ciptr, 0, 0);
-
- if (getsockname (ciptr->fd, (struct sockaddr *) &sockname, &namelen) < 0)
- {
- PRMSG (1,"DNETGetAddr: getsockname() failed: %d\n",
- EGET(), 0, 0);
- return -1;
- }
-
-
- /*
- * Everything looks good: fill in the XtransConnInfo structure.
- */
-
- if ((ciptr->addr = (char *) xalloc (namelen)) == NULL)
- {
- PRMSG (1, "DNETGetAddr: Can't allocate space for the addr\n",
- 0, 0, 0);
- return -1;
- }
-
- ciptr->family = sockname.sdn_family;
- ciptr->addrlen = namelen;
- memcpy (ciptr->addr, &sockname, ciptr->addrlen);
-
- return 0;
-}
-
-
-/*
- * This function gets the remote address of the socket and stores it in the
- * XtransConnInfo structure for the connection.
- */
-
-static int
-TRANS(DNETGetPeerAddr) (XtransConnInfo ciptr)
-
-{
- struct sockaddr_dn sockname;
- int namelen = sizeof(sockname);
-
- PRMSG (3,"DNETGetPeerAddr(%x)\n", ciptr, 0, 0);
-
- if (getpeername (ciptr->fd, (struct sockaddr *) &sockname, &namelen) < 0)
- {
- PRMSG (1,"DNETGetPeerAddr: getpeername() failed: %d\n",
- EGET(), 0, 0);
- return -1;
- }
-
- /*
- * Everything looks good: fill in the XtransConnInfo structure.
- */
-
- if ((ciptr->peeraddr = (char *) xalloc (namelen)) == NULL)
- {
- PRMSG (1,
- "DNETGetPeerAddr: Can't allocate space for the addr\n",
- 0, 0, 0);
- return -1;
- }
-
- ciptr->peeraddrlen = namelen;
- memcpy (ciptr->peeraddr, &sockname, ciptr->peeraddrlen);
-
- return 0;
-}
-
-
-#ifdef TRANS_CLIENT
-
-static XtransConnInfo
-TRANS(DNETOpenCOTSClient) (Xtransport *thistrans, char *protocol,
- char *host, char *port)
-
-{
- XtransConnInfo ciptr;
-
- PRMSG (2,"DNETOpenCOTSClient(%s,%s,%s)\n", protocol, host, port);
-
- if ((ciptr = (XtransConnInfo) xcalloc (
- 1, sizeof(struct _XtransConnInfo))) == NULL)
- {
- PRMSG (1, "DNETOpenCOTSClient: malloc failed\n", 0, 0, 0);
- return NULL;
- }
-
- ciptr->index = 0; /* only one form of DECnet */
-
- /* nothing else to do here */
-
- return ciptr;
-}
-
-#endif /* TRANS_CLIENT */
-
-
-#ifdef TRANS_SERVER
-
-static XtransConnInfo
-TRANS(DNETOpenCOTSServer) (Xtransport *thistrans, char *protocol,
- char *host, char *port)
-
-{
- XtransConnInfo ciptr;
-
- PRMSG (2,"DNETOpenCOTSServer(%s,%s,%s)\n", protocol, host, port);
-
- if ((ciptr = (XtransConnInfo) xcalloc (
- 1, sizeof(struct _XtransConnInfo))) == NULL)
- {
- PRMSG (1, "DNETOpenCOTSServer: malloc failed\n", 0, 0, 0);
- return NULL;
- }
-
- if ((ciptr->fd = socket (AF_DECnet, SOCK_STREAM, 0)) < 0)
- {
- xfree ((char *) ciptr);
- return NULL;
- }
-
- ciptr->index = 0; /* only one form of DECnet */
-
- return (ciptr);
-}
-
-#endif /* TRANS_SERVER */
-
-
-#ifdef TRANS_CLIENT
-
-static XtransConnInfo
-TRANS(DNETOpenCLTSClient) (Xtransport *thistrans, char *protocol,
- char *host, char *port)
-
-{
- XtransConnInfo ciptr;
-
- PRMSG (2,"DNETOpenCLTSClient(%s,%s,%s)\n", protocol, host, port);
-
- if ((ciptr = (XtransConnInfo) xcalloc (
- 1, sizeof (struct _XtransConnInfo))) == NULL)
- {
- PRMSG (1, "DNETOpenCLTSClient: malloc failed\n", 0, 0, 0);
- return NULL;
- }
-
- ciptr->index = 0; /* only one form of DECnet */
-
- /* nothing else to do here */
-
- return ciptr;
-}
-
-#endif /* TRANS_CLIENT */
-
-
-#ifdef TRANS_SERVER
-
-static XtransConnInfo
-TRANS(DNETOpenCLTSServer) (Xtransport *thistrans, char *protocol,
- char *host, char *port)
-
-{
- /* NEED TO IMPLEMENT */
-
- PRMSG (2,"DNETOpenCLTSServer(%s,%s,%s)\n", protocol, host, port);
- return NULL;
-}
-
-#endif /* TRANS_SERVER */
-
-
-#ifdef TRANS_REOPEN
-
-static XtransConnInfo
-TRANS(DNETReopenCOTSServer) (Xtransport *thistrans, int fd, char *port)
-
-{
- XtransConnInfo ciptr;
-
- PRMSG (2,"DNETReopenCOTSServer(%d,%s)\n", fd, port, 0);
-
- if ((ciptr = (XtransConnInfo) xcalloc (
- 1, sizeof(struct _XtransConnInfo))) == NULL)
- {
- PRMSG (1, "DNETReopenCOTSServer: malloc failed\n", 0, 0, 0);
- return NULL;
- }
-
- ciptr->fd = fd;
- ciptr->index = 0; /* only one form of DECnet */
-
- return (ciptr);
-}
-
-static XtransConnInfo
-TRANS(DNETReopenCLTSServer) (Xtransport *thistrans, int fd, char *port)
-
-{
- XtransConnInfo ciptr;
-
- PRMSG (2,"DNETReopenCLTSServer(%d,%s)\n", fd, port, 0);
-
- if ((ciptr = (XtransConnInfo) xcalloc (
- 1, sizeof(struct _XtransConnInfo))) == NULL)
- {
- PRMSG (1, "DNETReopenCLTSServer: malloc failed\n", 0, 0, 0);
- return NULL;
- }
-
- ciptr->fd = fd;
- ciptr->index = 0; /* only one form of DECnet */
-
- return (ciptr);
-}
-
-#endif /* TRANS_REOPEN */
-
-
-static int
-TRANS(DNETSetOption) (XtransConnInfo ciptr, int option, int arg)
-
-{
- PRMSG (2,"DNETSetOption(%d,%d,%d)\n", ciptr->fd, option, arg);
-
- return -1;
-}
-
-
-#ifdef TRANS_SERVER
-
-static int
-TRANS(DNETCreateListener) (XtransConnInfo ciptr, char *port, unsigned int flags)
-
-{
- struct sockaddr_dn dnsock;
- int fd = ciptr->fd;
-
- PRMSG (3, "DNETCreateListener(%x,%d)\n", ciptr, fd, 0);
-
- bzero ((char *) &dnsock, sizeof (dnsock));
- dnsock.sdn_family = AF_DECnet;
-
- if (port && *port )
- sprintf (dnsock.sdn_objname, "%s%s", DNETOBJ, port);
- else
-#ifdef X11_t
- return -1;
-#else
- sprintf (dnsock.sdn_objname, "%s%d", DNETOBJ, getpid ());
-#endif
-
- dnsock.sdn_objnamel = strlen (dnsock.sdn_objname);
-
- if (bind (fd, (struct sockaddr *) &dnsock, sizeof (dnsock)))
- {
- close (fd);
- return -1;
- }
-
- if (listen (fd, 5))
- {
- close (fd);
- return (-1);
- }
-
-
- /* Set a flag to indicate that this connection is a listener */
-
- ciptr->flags = 1 | (ciptr->flags & TRANS_KEEPFLAGS);
-
- return 0;
-}
-
-
-static XtransConnInfo
-TRANS(DNETAccept) (XtransConnInfo ciptr, int *status)
-
-{
- XtransConnInfo newciptr;
- struct sockaddr_dn sockname;
- int namelen = sizeof(sockname);
-
- PRMSG (2, "DNETAccept(%x,%d)\n", ciptr, ciptr->fd, 0);
-
- if ((newciptr = (XtransConnInfo) xcalloc(
- 1, sizeof (struct _XtransConnInfo))) == NULL)
- {
- PRMSG (1, "DNETAccept: malloc failed\n", 0, 0, 0);
- *status = TRANS_ACCEPT_BAD_MALLOC;
- return NULL;
- }
-
- if((newciptr->fd = accept (ciptr->fd,
- (struct sockaddr *) &sockname, &namelen)) < 0)
- {
- PRMSG (1, "DNETAccept: accept() failed\n", 0, 0, 0);
-
- xfree (newciptr);
- *status = TRANS_ACCEPT_FAILED;
- return NULL;
- }
-
- /*
- * Get this address again because the transport may give a more
- * specific address now that a connection is established.
- */
-
- if (TRANS(DNETGetAddr) (newciptr) < 0)
- {
- PRMSG(1,
- "DNETAccept: ...DNETGetAddr() failed:\n", 0, 0, 0);
- close (newciptr->fd);
- xfree (newciptr);
- *status = TRANS_ACCEPT_MISC_ERROR;
- return NULL;
- }
-
- if (TRANS(DNETGetPeerAddr) (newciptr) < 0)
- {
- PRMSG(1,
- "DNETAccept: ...DNETGetPeerAddr() failed:\n", 0, 0, 0);
-
- close (newciptr->fd);
- if (newciptr->addr) xfree (newciptr->addr);
- xfree (newciptr);
- *status = TRANS_ACCEPT_MISC_ERROR;
- return NULL;
- }
-
- *status = 0;
-
- return newciptr;
-}
-
-#endif /* TRANS_SERVER */
-
-
-#ifdef TRANS_CLIENT
-
-#define OBJBUFSIZE 64
-
-static int
-TRANS(DNETConnect) (XtransConnInfo ciptr, char *host, char *port)
-
-{
- char objname[OBJBUFSIZE];
-
- extern int dnet_conn();
-
- PRMSG (2,"DNETConnect(%d,%s,%s)\n", ciptr->fd, host, port);
-
-#ifdef X11_t
- /*
- * X has a well known port, that is transport dependent. It is easier
- * to handle it here, than try and come up with a transport independent
- * representation that can be passed in and resolved the usual way.
- *
- * The port that is passed here is really a string containing the idisplay
- * from ConnectDisplay().
- */
-
- if (is_numeric (port))
- {
- short tmpport = (short) atoi (port);
-
- sprintf (objname, "X$X%d", tmpport);
- }
- else
-#endif
- strncpy(objname, port, OBJBUFSIZE);
-
-
- /*
- * Do the connect
- */
-
- if (!host) host = "0";
-
- if ((ciptr->fd = dnet_conn (host, objname, SOCK_STREAM, 0, 0, 0, 0)) < 0)
- {
- return TRANS_CONNECT_FAILED;
- }
-
-
- /*
- * Sync up the address fields of ciptr.
- */
-
- if (TRANS(DNETGetAddr) (ciptr) < 0)
- {
- PRMSG (1,
- "DNETConnect: ...DNETGetAddr() failed:\n", 0, 0, 0);
- return TRANS_CONNECT_FAILED;
- }
-
- if (TRANS(DNETGetPeerAddr) (ciptr) < 0)
- {
- PRMSG (1,
- "DNETConnect: ...DNETGetPeerAddr() failed:\n",
- 0, 0, 0);
- return TRANS_CONNECT_FAILED;
- }
-
- return 0;
-}
-
-#endif /* TRANS_CLIENT */
-
-
-static int
-TRANS(DNETBytesReadable) (XtransConnInfo ciptr, BytesReadable_t *pend)
-
-{
- PRMSG (2,"DNETBytesReadable(%x,%d,%x)\n", ciptr, ciptr->fd, pend);
-
-#ifdef WIN32
- {
- int ret = ioctlsocket ((SOCKET) ciptr->fd, FIONREAD, (u_long *) pend);
- errno = WSAGetLastError();
- return ret;
- }
-#else
- return ioctl(ciptr->fd, FIONREAD, (char *)pend);
-#endif /* WIN32 */
-}
-
-
-static int
-TRANS(DNETRead) (XtransConnInfo ciptr, char *buf, int size)
-
-{
- PRMSG (2,"DNETRead(%d,%x,%d)\n", ciptr->fd, buf, size);
-
-#ifdef WIN32
- {
- int ret = recv ((SOCKET)ciptr->fd, buf, size, 0);
- errno = WSAGetLastError();
- return ret;
- }
-#else
- return read (ciptr->fd, buf, size);
-#endif /* WIN32 */
-}
-
-
-static int
-TRANS(DNETWrite) (XtransConnInfo ciptr, char *buf, int size)
-
-{
- PRMSG (2,"DNETWrite(%d,%x,%d)\n", ciptr->fd, buf, size);
-
-#ifdef WIN32
- {
- int ret = send ((SOCKET)ciptr->fd, buf, size, 0);
- errno = WSAGetLastError();
- return ret;
- }
-#else
- return write (ciptr->fd, buf, size);
-#endif /* WIN32 */
-}
-
-
-static int
-TRANS(DNETReadv) (XtransConnInfo ciptr, struct iovec *buf, int size)
-
-{
- PRMSG (2,"DNETReadv(%d,%x,%d)\n", ciptr->fd, buf, size);
-
- return READV (ciptr, buf, size);
-}
-
-
-static int
-TRANS(DNETWritev) (XtransConnInfo ciptr, struct iovec *buf, int size)
-
-{
- PRMSG (2,"DNETWritev(%d,%x,%d)\n", ciptr->fd, buf, size);
-
- return WRITEV (ciptr, buf, size);
-}
-
-
-static int
-TRANS(DNETDisconnect) (XtransConnInfo ciptr)
-
-{
- PRMSG (2,"DNETDisconnect(%x,%d)\n", ciptr, ciptr->fd, 0);
-
-#ifdef WIN32
- {
- int ret = shutdown (ciptr->fd, 2);
- errno = WSAGetLastError();
- return ret;
- }
-#else
- return shutdown (ciptr->fd, 2); /* disallow further sends and receives */
-#endif
-}
-
-
-static int
-TRANS(DNETClose) (XtransConnInfo ciptr)
-
-{
- PRMSG (2,"DNETClose(%x,%d)\n", ciptr, ciptr->fd, 0);
-
-#ifdef WIN32
- {
- int ret = close (ciptr->fd);
- errno = WSAGetLastError();
- return ret;
- }
-#else
- return close (ciptr->fd);
-#endif
-}
-
-
-Xtransport TRANS(DNETFuncs) = {
- /* DNET Interface */
- "dnet",
- 0,
-#ifdef TRANS_CLIENT
- TRANS(DNETOpenCOTSClient),
-#endif /* TRANS_CLIENT */
-#ifdef TRANS_SERVER
- TRANS(DNETOpenCOTSServer),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_CLIENT
- TRANS(DNETOpenCLTSClient),
-#endif /* TRANS_CLIENT */
-#ifdef TRANS_SERVER
- TRANS(DNETOpenCLTSServer),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_REOPEN
- TRANS(DNETReopenCOTSServer),
- TRANS(DNETReopenCLTSServer),
-#endif /* TRANS_REOPEN */
- TRANS(DNETSetOption),
-#ifdef TRANS_SERVER
- TRANS(DNETCreateListener),
- NULL, /* ResetListener */
- TRANS(DNETAccept),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_CLIENT
- TRANS(DNETConnect),
-#endif /* TRANS_CLIENT */
- TRANS(DNETBytesReadable),
- TRANS(DNETRead),
- TRANS(DNETWrite),
- TRANS(DNETReadv),
- TRANS(DNETWritev),
- TRANS(DNETDisconnect),
- TRANS(DNETClose),
- TRANS(DNETClose),
-};
diff --git a/lib/libxtrans/Xtransint.h b/lib/libxtrans/Xtransint.h
index 317dbf8cc..523751ed9 100644
--- a/lib/libxtrans/Xtransint.h
+++ b/lib/libxtrans/Xtransint.h
@@ -69,11 +69,7 @@ from The Open Group.
*/
#ifndef XTRANSDEBUG
-# ifndef __UNIXOS2__
# define XTRANSDEBUG 1
-# else
-# define XTRANSDEBUG 1
-# endif
#endif
#ifdef WIN32
@@ -89,87 +85,23 @@ from The Open Group.
#include <errno.h>
#ifndef WIN32
-# ifndef Lynx
# include <sys/socket.h>
-# else
-# include <socket.h>
-# endif
# include <netinet/in.h>
# include <arpa/inet.h>
-# ifdef __UNIXOS2__
-# include <sys/ioctl.h>
-# endif
/*
* Moved the setting of NEED_UTSNAME to this header file from Xtrans.c,
* to avoid a race condition. JKJ (6/5/97)
*/
-# if (defined(_POSIX_SOURCE) && !defined(AIXV3) && !defined(__QNX__)) || defined(hpux) || defined(USG) || defined(SVR4) || defined(__SCO__)
+# if defined(_POSIX_SOURCE) || defined(USG) || defined(SVR4) || defined(__SCO__)
# ifndef NEED_UTSNAME
# define NEED_UTSNAME
# endif
# include <sys/utsname.h>
# endif
-/*
- * makedepend screws up on #undef OPEN_MAX, so we define a new symbol
- */
-
-# ifndef TRANS_OPEN_MAX
-
-# ifndef X_NOT_POSIX
-# ifdef _POSIX_SOURCE
-# include <limits.h>
-# else
-# define _POSIX_SOURCE
-# include <limits.h>
-# undef _POSIX_SOURCE
-# endif
-# endif
-# ifndef OPEN_MAX
-# if defined(_SC_OPEN_MAX) && !defined(__UNIXOS2__)
-# define OPEN_MAX (sysconf(_SC_OPEN_MAX))
-# else
-# ifdef SVR4
-# define OPEN_MAX 256
-# else
-# include <sys/param.h>
-# ifndef OPEN_MAX
-# ifdef __OSF1__
-# define OPEN_MAX 256
-# else
-# ifdef NOFILE
-# define OPEN_MAX NOFILE
-# else
-# if !defined(__UNIXOS2__) && !defined(__QNX__)
-# define OPEN_MAX NOFILES_MAX
-# else
-# define OPEN_MAX 256
-# endif
-# endif
-# endif
-# endif
-# endif
-# endif
-# endif
-# if defined(_SC_OPEN_MAX)
-# define TRANS_OPEN_MAX OPEN_MAX
-# else /* !__GNU__ */
-# if OPEN_MAX > 256
-# define TRANS_OPEN_MAX 256
-# else
-# define TRANS_OPEN_MAX OPEN_MAX
-# endif
-# endif /*__GNU__*/
-
-# endif /* TRANS_OPEN_MAX */
-
-# ifdef __UNIXOS2__
-# define ESET(val)
-# else
# define ESET(val) errno = val
-# endif
# define EGET() errno
#else /* WIN32 */
@@ -370,6 +302,7 @@ typedef struct _Xtransport_table {
#define TRANS_NOLISTEN (1<<3) /* Don't listen on this one */
#define TRANS_NOUNLINK (1<<4) /* Dont unlink transport endpoints */
#define TRANS_ABSTRACT (1<<5) /* Use abstract sockets if available */
+#define TRANS_NOXAUTH (1<<6) /* Don't verify authentication (because it's secure some other way at the OS layer) */
/* Flags to preserve when setting others */
#define TRANS_KEEPFLAGS (TRANS_NOUNLINK|TRANS_ABSTRACT)
@@ -379,7 +312,7 @@ typedef struct _Xtransport_table {
* systems, so they may be emulated.
*/
-#if defined(CRAY) || (defined(SYSV) && defined(__i386__) && !defined(__SCO__) && !defined(sun)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
+#if defined(SYSV) && defined(__i386__) && !defined(__SCO__) && !defined(sun) || defined(WIN32)
#define READV(ciptr, iov, iovcnt) TRANS(ReadV)(ciptr, iov, iovcnt)
@@ -396,7 +329,7 @@ static int TRANS(ReadV)(
#endif /* CRAY || (SYSV && __i386__) || WIN32 || __sxg__ || */
-#if defined(CRAY) || (defined(SYSV) && defined(__i386__) && !defined(__SCO__) && !defined(sun)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
+#if defined(SYSV) && defined(__i386__) && !defined(__SCO__) && !defined(sun) || defined(WIN32)
#define WRITEV(ciptr, iov, iovcnt) TRANS(WriteV)(ciptr, iov, iovcnt)
diff --git a/lib/libxtrans/Xtranslcl.c b/lib/libxtrans/Xtranslcl.c
index 0127d6771..f6a2468ec 100644
--- a/lib/libxtrans/Xtranslcl.c
+++ b/lib/libxtrans/Xtranslcl.c
@@ -76,12 +76,7 @@ from The Open Group.
#include <sys/ioctl.h>
#include <sys/stat.h>
#if defined(SVR4)
-#if !defined(DGUX)
#include <sys/filio.h>
-#else /* DGUX */
-#include <sys/stream.h>
-#include <sys/ptms.h>
-#endif
#endif
#ifdef sun
# include <stropts.h>
@@ -103,10 +98,6 @@ from The Open Group.
#include <sys/un.h>
#endif
-#if defined(ISC) && !defined(_POSIX_SOURCE)
-typedef unsigned short mode_t;
-/* POSIX needed for mode_t define in sys/types.h */
-#endif
/* Types of local connections supported:
* - PTS
@@ -120,10 +111,6 @@ typedef unsigned short mode_t;
#if defined(SVR4) || defined(__SVR4)
# define LOCAL_TRANS_NAMED
#endif
-#if !defined(sun) && !defined(__SCO__) && !defined(__UNIXWARE__)
-/* SCO doesnt use the ISC transport type - it causes problems */
-# define LOCAL_TRANS_ISC
-#endif
#if defined(__SCO__) || defined(__UNIXWARE__)
# define LOCAL_TRANS_SCO
#endif
@@ -179,7 +166,7 @@ TRANS(FillAddrInfo)(XtransConnInfo ciptr, char *sun_path, char *peer_sun_path)
return 0;
}
strcpy (sunaddr->sun_path, sun_path);
-#if defined(BSD44SOCKETS) && !defined(Lynx)
+#if defined(BSD44SOCKETS)
sunaddr->sun_len = strlen (sunaddr->sun_path);
#endif
@@ -206,7 +193,7 @@ TRANS(FillAddrInfo)(XtransConnInfo ciptr, char *sun_path, char *peer_sun_path)
return 0;
}
strcpy (p_sunaddr->sun_path, peer_sun_path);
-#if defined(BSD44SOCKETS) && !defined(Lynx)
+#if defined(BSD44SOCKETS)
p_sunaddr->sun_len = strlen (p_sunaddr->sun_path);
#endif
@@ -220,7 +207,7 @@ TRANS(FillAddrInfo)(XtransConnInfo ciptr, char *sun_path, char *peer_sun_path)
#ifdef LOCAL_TRANS_PTS
/* PTS */
-#if defined(SYSV) && !defined(__SCO__) && !defined(ISC)
+#if defined(SYSV) && !defined(__SCO__)
#define SIGNAL_T int
#else
#define SIGNAL_T void
@@ -251,11 +238,7 @@ static void _dummy(int sig)
#endif
#endif
-#ifdef _AIX
-#define DEV_PTMX "/dev/ptc"
-#else
#define DEV_PTMX "/dev/ptmx"
-#endif
#if defined(X11_t)
@@ -270,9 +253,6 @@ static void _dummy(int sig)
* backwards binary compatability only.
*/
-#define X_ISC_DIR "/dev/X/ISCCONN"
-#define ISCDEVNODENAME "/dev/X/ISCCONN/X%s"
-#define ISCTMPNODENAME "/tmp/.X11-unix/X%s"
#define SCORNODENAME "/dev/X%1sR"
#define SCOSNODENAME "/dev/X%1sS"
#endif /* !sun */
@@ -657,7 +637,7 @@ TRANS(PTSAccept)(XtransConnInfo ciptr, XtransConnInfo newciptr, int *status)
sunaddr->sun_family=AF_UNIX;
strcpy(sunaddr->sun_path,buf);
-#if defined(BSD44SOCKETS) && !defined(Lynx)
+#if defined(BSD44SOCKETS)
sunaddr->sun_len=strlen(sunaddr->sun_path);
#endif
@@ -858,7 +838,7 @@ TRANS(NAMEDOpenServer)(XtransConnInfo ciptr, char *port)
if (TRANS(FillAddrInfo) (ciptr, server_path, server_path) == 0)
{
PRMSG(1,"NAMEDOpenServer: failed to fill in addr info\n", 0,0,0);
- TRANS(LocalClose)(fd);
+ TRANS(LocalClose)(ciptr);
return -1;
}
@@ -950,7 +930,7 @@ TRANS(NAMEDAccept)(XtransConnInfo ciptr, XtransConnInfo newciptr, int *status)
-#if defined(LOCAL_TRANS_ISC) || defined(LOCAL_TRANS_SCO)
+#if defined(LOCAL_TRANS_SCO)
/*
* connect_spipe is used by the SCO and ISC connection types.
@@ -1004,294 +984,9 @@ named_spipe(int fd, char *path)
return(ret);
}
-#endif /* defined(LOCAL_TRANS_ISC) || defined(LOCAL_TRANS_SCO) */
+#endif /* defined(LOCAL_TRANS_SCO) */
-#if defined(LOCAL_TRANS_ISC)
-
-
-/* ISC */
-
-#ifdef TRANS_CLIENT
-
-static int
-TRANS(ISCOpenClient)(XtransConnInfo ciptr, char *port)
-
-{
-#ifdef ISCDEVNODENAME
- int fd,fds,server;
- char server_path[64];
- char server_dev_path[64];
- struct strfdinsert buf;
- long temp;
- mode_t spmode;
- struct stat filestat;
-#endif
-
- PRMSG(2,"ISCOpenClient(%s)\n", port, 0,0 );
-
-#if !defined(ISCDEVNODENAME)
- PRMSG(1,"ISCOpenClient: Protocol is not supported by a ISC connection\n", 0,0,0);
- return -1;
-#else
- (void) sprintf(server_path, ISCTMPNODENAME, port);
- (void) sprintf(server_dev_path, ISCDEVNODENAME, port);
-
- fd = fds = server = -1;
-
- if (stat(DEV_SPX, &filestat) == -1) {
- PRMSG(1, "ISCOpenClient: stat(%s) failed, errno=%d\n", DEV_SPX, errno, 0 );
- return(-1);
- }
-
- spmode = (filestat.st_mode & S_IFMT);
-
- if (stat(server_path, &filestat) != -1) {
- if ((filestat.st_mode & S_IFMT) == spmode) {
- if ((server = open(server_path, O_RDWR)) < 0) {
- PRMSG(1,"ISCOpenClient: failed to open %s\n",
- server_path, 0,0 );
- }
- }
- }
-
- if (server < 0) {
- /* try the alternate path */
- if (stat(server_dev_path, &filestat) != -1) {
- if ((filestat.st_mode & S_IFMT) == spmode) {
- if ((server = open(server_dev_path, O_RDWR)) < 0) {
- PRMSG(1,"ISCOpenClient: failed to open %s\n",
- server_dev_path, 0,0 );
- }
- }
- }
- }
-
- if (server < 0) {
- PRMSG(1,"ISCOpenClient: can't open either device %s or %s\n",
- server_path, server_dev_path, 0 );
- return -1;
- }
-
- if ((fds = open(DEV_SPX, O_RDWR)) < 0 ||
- (fd = open(DEV_SPX, O_RDWR)) < 0) {
- /* Failed to open all of the devices */
- PRMSG(1,"ISCOpenClient: can't open %s\n", DEV_SPX, 0,0 );
- (void) close(server);
- if (fds != -1)
- (void) close(fds);
- if (fd != -1)
- (void) close(fd);
- return -1;
- }
-
- /* make a STREAMS-pipe */
-
- buf.databuf.maxlen = -1;
- buf.databuf.len = -1;
- buf.databuf.buf = NULL;
- buf.ctlbuf.maxlen = sizeof(long);
- buf.ctlbuf.len = sizeof(long);
- buf.ctlbuf.buf = (caddr_t)&temp;
- buf.offset = 0;
- buf.fildes = fd;
- buf.flags = 0;
-
- if (ioctl(fds, I_FDINSERT, &buf) < 0 ||
- ioctl(server, I_SENDFD, fds) < 0) {
- PRMSG(1,"ISCOpenClient: ioctl(I_FDINSERT or I_SENDFD) failed\n",
- 0,0,0 );
- (void) close(server);
- (void) close(fds);
- (void) close(fd);
- return -1;
- }
-
- /*
- * Everything looks good: fill in the XtransConnInfo structure.
- */
-
- if (TRANS(FillAddrInfo) (ciptr, server_path, server_path) == 0)
- {
- PRMSG(1,"ISCOpenClient: failed to fill in addr info\n", 0, 0, 0);
- close(fd);
- return -1;
- }
-
- return (fd);
-
-#endif /* !ISCDEVNODENAME */
-}
-
-#endif /* TRANS_CLIENT */
-
-
-#ifdef TRANS_SERVER
-
-static int
-TRANS(ISCOpenServer)(XtransConnInfo ciptr, char *port)
-
-{
-#ifdef ISCDEVNODENAME
- int fd = -1,fds = -1;
- char server_path[64],server_unix_path[64];
- unsigned int mode = 0;
-#endif
-
- PRMSG(2,"ISCOpenServer(%s)\n", port, 0,0 );
-
-#if !defined(ISCDEVNODENAME)
- PRMSG(1,"ISCOpenServer: Protocol is not supported by a ISC connection\n", 0,0,0);
- return -1;
-#else
- (void) sprintf(server_path, ISCDEVNODENAME, port);
- (void) sprintf(server_unix_path, ISCTMPNODENAME, port);
-
-#ifdef HAS_STICKY_DIR_BIT
- mode = 01777;
-#else
- mode = 0777;
-#endif
-
- /* "/dev/X" */
- if (trans_mkdir(X_STREAMS_DIR, mode) == -1) {
- PRMSG (1, "ISCOpenServer: mkdir(%s) failed, errno = %d\n",
- X_STREAMS_DIR, errno, 0);
- return(-1);
- }
- /* "/dev/X/ISCCONN" */
- if (trans_mkdir(X_ISC_DIR, mode) == -1) {
- PRMSG (1, "ISCOpenServer: mkdir(%s) failed, errno = %d\n",
- X_ISC_DIR, errno, 0);
- return(-1);
- }
-
- unlink(server_path);
-
- if( ((fds=open(DEV_SPX, O_RDWR)) < 0) ||
- ((fd =open(DEV_SPX, O_RDWR)) < 0)) {
- PRMSG(1,"ISCOpenServer: failed to open %s\n", DEV_SPX, 0,0 );
- return -1;
- }
-
- if( (connect_spipe(fds, fd) < 0) ||
- (named_spipe(fds, server_path) < 0)) {
- PRMSG(1,"ISCOpenServer: failed connect pipes\n", 0,0,0 );
- close(fd);
- close(fds);
- return -1;
- }
-
-#if !defined(UNIXCONN)
- /*
- * If the UNIX Domain socket transport is not being used, then link this
- * device to the path /tmp/.X11-unix/X path.
- */
-#define X_UNIX_DIR "/tmp/.X11-unix"
-
- if (trans_mkdir(X_UNIX_DIR, mode) == -1) {
- PRMSG (1, "ISCOpenServer: mkdir(%s) failed, errno = %d\n",
- X_UNIX_DIR, errno, 0);
- return(-1);
- }
-
- unlink(server_unix_path);
-
-#ifdef SVR4
- /* we prefer symbolic links because hard links can't cross file systems */
- if( symlink(server_path, server_unix_path) < 0 )
- PRMSG(1,"ISCOpenServer: failed to link %s to %s\n",
- server_path, server_unix_path, 0 );
- /*
- * Don't make this failure fatal since the listener
- * is already established, and this just for compatability
- */
-#else
-#ifdef ISC40
- /* catch SIGSYS on symlink for ISC40 compiled binaries running on ISC30 */
- signal(SIGSYS,_dummy);
-#endif
- if( link(server_path, server_unix_path) < 0 )
-#ifdef ISC40
- if( symlink(server_path, server_unix_path) < 0 )
-#endif
- PRMSG(1,"ISCOpenServer: failed to link %s to %s\n",
- server_path, server_unix_path, 0 );
- /*
- * Don't make this failure fatal since the listener
- * is already established, and this just for compatability
- */
-#endif /* SVR4 */
-#endif /* !UNIXCONN */
-
- /*
- * Everything looks good: fill in the XtransConnInfo structure.
- */
-
- if (TRANS(FillAddrInfo) (ciptr, server_path, server_path) == 0)
- {
- PRMSG(1,"ISCOpenServer: failed to fill in addr info\n", 0, 0, 0);
- close(fd);
- return -1;
- }
-
- return fd;
-
-#endif /* !ISCDEVNODENAME */
-}
-
-static int
-TRANS(ISCAccept)(XtransConnInfo ciptr, XtransConnInfo newciptr, int *status)
-
-{
- struct strrecvfd str;
-
- PRMSG(2,"ISCAccept(%d)\n", ciptr->fd, 0,0 );
-
- while (ioctl(ciptr->fd, I_RECVFD, &str) < 0) {
- if (errno != EAGAIN) {
- PRMSG(1,"ISCAccept: Can't read fildes", 0,0,0 );
- *status = TRANS_ACCEPT_MISC_ERROR;
- return(-1);
- }
- }
-
- /*
- * Everything looks good: fill in the XtransConnInfo structure.
- */
-
- newciptr->addrlen=ciptr->addrlen;
- if( (newciptr->addr=(char *)xalloc(newciptr->addrlen)) == NULL ) {
- PRMSG(1,
- "ISCAccept: failed to allocate memory for peer addr\n",
- 0,0,0);
- close(str.fd);
- *status = TRANS_ACCEPT_BAD_MALLOC;
- return -1;
- }
-
- memcpy(newciptr->addr,ciptr->addr,newciptr->addrlen);
-
- newciptr->peeraddrlen=newciptr->addrlen;
- if( (newciptr->peeraddr=(char *)xalloc(newciptr->peeraddrlen)) == NULL ) {
- PRMSG(1,
- "ISCAccept: failed to allocate memory for peer addr\n",
- 0,0,0);
- xfree(newciptr->addr);
- close(str.fd);
- *status = TRANS_ACCEPT_BAD_MALLOC;
- return -1;
- }
-
- memcpy(newciptr->peeraddr,newciptr->addr,newciptr->peeraddrlen);
-
- *status = 0;
-
- return(str.fd);
-}
-
-#endif /* TRANS_SERVER */
-#endif /* LOCAL_TRANS_ISC */
#ifdef LOCAL_TRANS_SCO
@@ -1654,35 +1349,6 @@ TRANS(NAMEDReopenServer)(XtransConnInfo ciptr, int fd, char *port)
#endif /* LOCAL_TRANS_NAMED */
-#ifdef LOCAL_TRANS_ISC
-static int
-TRANS(ISCReopenServer)(XtransConnInfo ciptr, int fd, char *port)
-
-{
-#ifdef ISCDEVNODENAME
- char server_path[64], server_unix_path[64];
-#endif
-
- PRMSG(2,"ISCReopenServer(%s)\n", port, 0,0 );
-
-#if !defined(ISCDEVNODENAME)
- PRMSG(1,"ISCReopenServer: Protocol is not supported by a ISC connection\n", 0,0,0);
- return 0;
-#else
- (void) sprintf(server_path, ISCDEVNODENAME, port);
- (void) sprintf(server_unix_path, ISCTMPNODENAME, port);
-
- if (TRANS(FillAddrInfo) (ciptr, server_path, server_path) == 0)
- {
- PRMSG(1, "ISCReopenServer: failed to fill in addr info\n", 0,0,0);
- return 0;
- }
-
- return 1;
-
-#endif /* !ISCDEVNODENAME */
-}
-#endif /* LOCAL_TRANS_ISC */
#ifdef LOCAL_TRANS_SCO
static int
@@ -1962,30 +1628,6 @@ static LOCALtrans2dev LOCALtrans2devtab[] = {
#endif /* sun */
#endif /* LOCAL_TRANS_NAMED */
-#ifdef LOCAL_TRANS_ISC
-{"isc",
-#ifdef TRANS_CLIENT
- TRANS(ISCOpenClient),
-#endif /* TRANS_CLIENT */
-#ifdef TRANS_SERVER
- TRANS(ISCOpenServer),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_CLIENT
- TRANS(OpenFail),
-#endif /* TRANS_CLIENT */
-#ifdef TRANS_SERVER
- TRANS(OpenFail),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_REOPEN
- TRANS(ISCReopenServer),
- TRANS(ReopenFail),
-#endif
-#ifdef TRANS_SERVER
- NULL, /* ResetListener */
- TRANS(ISCAccept)
-#endif /* TRANS_SERVER */
-},
-#endif /* LOCAL_TRANS_ISC */
#ifdef LOCAL_TRANS_SCO
{"sco",
@@ -2590,7 +2232,7 @@ TRANS(LocalBytesReadable)(XtransConnInfo ciptr, BytesReadable_t *pend )
{
PRMSG(2,"LocalBytesReadable(%x->%d,%x)\n", ciptr, ciptr->fd, pend);
-#if defined(ISC) || defined(SCO325)
+#if defined(SCO325)
return ioctl(ciptr->fd, I_NREAD, (char *)pend);
#else
return ioctl(ciptr->fd, FIONREAD, (char *)pend);
@@ -2700,9 +2342,6 @@ static char * local_aliases[] = {
# ifdef sun
"pipe", /* compatibility with Solaris Xlib */
# endif
-# ifdef LOCAL_TRANS_ISC
- "isc",
-# endif
# ifdef LOCAL_TRANS_SCO
"sco",
# endif
@@ -2878,47 +2517,6 @@ Xtransport TRANS(PIPEFuncs) = {
#endif /* sun */
#endif /* LOCAL_TRANS_NAMED */
-#ifdef LOCAL_TRANS_ISC
-Xtransport TRANS(ISCFuncs) = {
- /* Local Interface */
- "isc",
- TRANS_LOCAL,
-#ifdef TRANS_CLIENT
- TRANS(LocalOpenCOTSClient),
-#endif /* TRANS_CLIENT */
-#ifdef TRANS_SERVER
- NULL,
- TRANS(LocalOpenCOTSServer),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_CLIENT
- TRANS(LocalOpenCLTSClient),
-#endif /* TRANS_CLIENT */
-#ifdef TRANS_SERVER
- TRANS(LocalOpenCLTSServer),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_REOPEN
- TRANS(LocalReopenCOTSServer),
- TRANS(LocalReopenCLTSServer),
-#endif
- TRANS(LocalSetOption),
-#ifdef TRANS_SERVER
- TRANS(LocalCreateListener),
- TRANS(LocalResetListener),
- TRANS(LocalAccept),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_CLIENT
- TRANS(LocalConnect),
-#endif /* TRANS_CLIENT */
- TRANS(LocalBytesReadable),
- TRANS(LocalRead),
- TRANS(LocalWrite),
- TRANS(LocalReadv),
- TRANS(LocalWritev),
- TRANS(LocalDisconnect),
- TRANS(LocalClose),
- TRANS(LocalCloseForCloning),
-};
-#endif /* LOCAL_TRANS_ISC */
#ifdef LOCAL_TRANS_SCO
Xtransport TRANS(SCOFuncs) = {
diff --git a/lib/libxtrans/Xtransos2.c b/lib/libxtrans/Xtransos2.c
deleted file mode 100644
index f4a6b036b..000000000
--- a/lib/libxtrans/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);
- 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;
- }
- clientname[length]='\0';
- PRMSG(5, "Os2Accept: Server name %s length %d\n",clientname,length,0 );
-
-
-/* Now we have the client pipe name. Open it with DosOpen */
-
- rc = DosOpen(clientname,&hClient, &action, 0,
- FILE_NORMAL, FILE_OPEN,
- OPEN_FLAGS_NOINHERIT | OPEN_ACCESS_READWRITE | OPEN_SHARE_DENYREADWRITE,
- (PEAOP2)NULL);
-
- PRMSG(5, "Os2Accept: Open pipe %s, handle = %d, rc=%d\n",clientname,hClient,rc );
-
- if (rc) {
- PRMSG(1,"Os2Accept: Open pipe %s to client failed, rc=%d\n",
- clientname,rc,0 );
- PRMSG(1, "\tProbable cause: the client has exited or timed-out.\n",0,0,0 );
- 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;
- }
-
- rc = DosSetNPHState (hClient, NP_NOWAIT | NP_READMODE_BYTE);
- if (rc != 0)
- {
- PRMSG(1,"Os2Accept: Could not set pipe %s to non-blocking mode, rc=%d\n",
- hClient,rc,0 );
- 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;
- }
-
-/* OK, we seem to be well connected to client. Now disconnect server pipe and put again in listen */
-
- rc = DosDisConnectNPipe(ciptr->fd);
- rc = DosConnectNPipe (ciptr->fd);
- PRMSG(5, "Os2Accept: Reconnecting server pipe %d, rc = %d\n",ciptr->fd,rc,0 );
-
- if (rc != 0 && rc != ERROR_PIPE_NOT_CONNECTED)
- {
- PRMSG(1, "Os2Accept: Unable to reconnect server pipe %d\n", ciptr->fd,0,0 );
- } /* Consider this non-fatal for present connection */
-
-/* And finally fill-in info in newciptr */
-
- namelen=sizeof(struct sockaddr);
- if ((newciptr->addr = (char *) xalloc (namelen)) == NULL)
- {
- PRMSG (1, "Os2Accept: Can't allocate space for the addr\n",
- 0, 0, 0);
- DosClose(hClient);
- xfree(newciptr);
- return(NULL);
- }
-
- newciptr->addrlen = namelen;
- ((struct sockaddr *)newciptr->addr)->sa_family = AF_UNIX;
- strcpy (((struct sockaddr *)newciptr->addr)->sa_data, "local");
-
- if ((newciptr->peeraddr = (char *) xalloc (namelen)) == NULL)
- {
- PRMSG (1, "Os2Accept: Can't allocate space for the addr\n",
- 0, 0, 0);
- DosClose(hClient);
- xfree(ciptr->addr);
- xfree(newciptr);
- return(NULL);
- }
-
- newciptr->peeraddrlen = namelen;
- ((struct sockaddr *)newciptr->peeraddr)->sa_family = AF_UNIX;
- strcpy (((struct sockaddr *)newciptr->peeraddr)->sa_data, "local");
-
- PRMSG (5, "Os2Accept: Filled in struct: len %d %d name %s\n",
- newciptr->addrlen,newciptr->peeraddrlen,newciptr->peeraddr);
-
-
- newciptr->index=hClient;
- newciptr->family=AF_UNIX;
- if((newciptr->fd=_imphandle(hClient))<0){
- PRMSG(1,"Os2Accept: Could not import pipe %d into EMX, errno=%d\n",
- hClient,errno,0 );
- PRMSG(1, "\tProbable cause: EMX has run out of file handles.\n",0,0,0 );
- DosClose(hClient);
- xfree(newciptr->addr);
- xfree(newciptr->peeraddr);
- xfree(newciptr);
- return(NULL);
- }
- PRMSG(5, "Os2Accept: Pipe handle %d EMX handle %d",newciptr->index,newciptr->fd,0 );
-
-#ifdef XSERV_t
-/* Attach the pipe sem to the pipe. Use handle index as key */
- rc = DosSetNPipeSem(newciptr->fd, (HSEM)hPipeSem, newciptr->fd);
- if (rc){
- PRMSG(1, "Os2OpenCOTSServer: Could not attach sem %d to pipe %d, rc=%d\n",
- hPipeSem,newciptr->fd,rc);
- DosClose(newciptr->fd);
- xfree(newciptr->addr);
- xfree(newciptr->peeraddr);
- xfree(newciptr);
- return(NULL);
- }
-#endif
-
- fcntl(ciptr->fd,F_SETFL,O_NDELAY);
- fcntl(ciptr->fd,F_SETFD,FD_CLOEXEC);
- *status=0;
- return newciptr;
-}
-
-#endif /* TRANS_SERVER */
-
-#ifdef TRANS_CLIENT
-
-static
-TRANS(Os2Connect)(XtransConnInfo ciptr, char *host, char *port)
-{
- PRMSG(2,"Os2Connect(%x->%d,%s)\n", ciptr, ciptr->fd, port);
- return 0;
-}
-
-#endif /* TRANS_CLIENT */
-
-static int
-TRANS(Os2BytesReadable)(XtransConnInfo ciptr, BytesReadable_t *pend )
-{
- ULONG rc, state, nread;
- AVAILDATA avail;
- char buffer;
-
- PRMSG(2,"Os2BytesReadable(%x->%d,%x)\n", ciptr, ciptr->fd, pend);
-
- rc = DosPeekNPipe (ciptr->fd, &buffer, 0, &nread, &avail, &state);
- if (rc != 0)
- {
- errno = EPIPE;
- *pend = 0;
- return -1;
- }
- if (state == NP_STATE_CLOSING)
- {
- errno = EPIPE;
- *pend = 0;
- return -1;
- }
- errno = 0;
- *pend = avail.cbpipe;
- return 0;
-}
-
-static int
-TRANS(Os2Read)(XtransConnInfo ciptr, char *buf, int size)
-{
- int ret;
- APIRET rc;
- ULONG ulRead;
- PRMSG(2,"Os2Read(%d,%x,%d)\n", ciptr->fd, buf, size );
- errno = 0;
- rc = DosRead(ciptr->fd, buf, size, &ulRead);
- if (rc == 0){
- ret = ulRead;
- }
- else if ((rc == 232) || (rc == 231)){
- errno = EAGAIN;
- ret = -1;
- }
- else if (rc == 6){
- errno = EBADF;
- ret = -1;
- }
- else if ((rc == 109) || (rc == 230) || (rc == 233)){
- errno = EPIPE;
- ret = -1;
- }
- else {
- PRMSG(2,"Os2Read: Unknown return code from DosRead, fd %d rc=%d\n", ciptr->fd,rc,0 );
- errno = EINVAL;
- ret = -1;
- }
- return (ret);
-}
-
-static int
-TRANS(Os2Write)(XtransConnInfo ciptr, char *buf, int size)
-{
- int ret;
- APIRET rc;
- ULONG nWritten;
- PRMSG(2,"Os2Write(%d,%x,%d)\n", ciptr->fd, buf, size );
- rc = DosWrite(ciptr->fd, buf, size, &nWritten);
- if (rc == 0){
- ret = nWritten;
- if(nWritten == 0) {
- errno=EAGAIN;
- ret = -1;
- }
- }
- else if ((rc == 39) || (rc == 112)){
- errno = EAGAIN;
- ret = -1;
- }
- else if ((rc == 109) || (rc == 230) || (rc == 233)){
- errno = EPIPE;
- ret = -1;
- }
- else if (rc == 6){
- errno=EBADF;
- ret = -1;
- }
- else {
- PRMSG(2,"(Os2Write)Unknown return code from DosWrite, fd %d rc=%d\n", ciptr->fd,rc,0 );
- errno = EINVAL;
- ret = -1;
- }
- return (ret);
-}
-
-static int
-TRANS(Os2Readv)(XtransConnInfo ciptr, struct iovec *buf, int size)
-{
- int ret;
- PRMSG(2,"Os2Readv(%d,%x,%d)\n", ciptr->fd, buf, size );
- ret = READV(ciptr,buf,size);
- if ((ret <0) && (errno == EINVAL)) errno = EPIPE;
- return (ret);
-}
-
-static int
-TRANS(Os2Writev)(XtransConnInfo ciptr, struct iovec *buf, int size)
-{
- int ret;
- PRMSG(2,"Os2Writev(%d,%x,%d)\n", ciptr->fd, buf, size );
- ret = WRITEV(ciptr,buf,size);
- if ((ret <0) && (errno == EINVAL)) errno = EPIPE;
- if ((ret <0) && (errno == ENOSPC)) errno = EAGAIN;
- return (ret);
-}
-
-static int
-TRANS(Os2Disconnect)(XtransConnInfo ciptr)
-{
- PRMSG(2,"Os2Disconnect(%x->%d)\n", ciptr, ciptr->fd, 0);
- return 0;
-}
-
-static int
-TRANS(Os2Close)(XtransConnInfo ciptr)
-{
- int ret;
- PRMSG(2,"Os2Close(%x->%d)\n", ciptr, ciptr->fd ,0);
- ret=close(ciptr->fd);
- return ret;
-}
-
-static int
-TRANS(Os2CloseForCloning)(XtransConnInfo ciptr)
-{
- int ret;
-
- PRMSG(2,"Os2CloseForCloning(%x->%d)\n", ciptr, ciptr->fd ,0);
- ret=close(ciptr->fd);
- return ret;
-}
-
-
-Xtransport TRANS(OS2LocalFuncs) = {
- /* Local Interface */
- "local",
- TRANS_LOCAL,
-#ifdef TRANS_CLIENT
- TRANS(Os2OpenCOTSClient),
-#endif /* TRANS_CLIENT */
-#ifdef TRANS_SERVER
- NULL,
- TRANS(Os2OpenCOTSServer),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_CLIENT
- TRANS(Os2OpenCLTSClient),
-#endif /* TRANS_CLIENT */
-#ifdef TRANS_SERVER
- TRANS(Os2OpenCLTSServer),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_REOPEN
- TRANS(Os2ReopenCOTSServer),
- TRANS(Os2ReopenCLTSServer),
-#endif
- TRANS(Os2SetOption),
-#ifdef TRANS_SERVER
- TRANS(Os2CreateListener),
- NULL, /* ResetListener */
- TRANS(Os2Accept),
-#endif /* TRANS_SERVER */
-#ifdef TRANS_CLIENT
- TRANS(Os2Connect),
-#endif /* TRANS_CLIENT */
- TRANS(Os2BytesReadable),
- TRANS(Os2Read),
- TRANS(Os2Write),
- TRANS(Os2Readv),
- TRANS(Os2Writev),
- TRANS(Os2Disconnect),
- TRANS(Os2Close),
- TRANS(Os2CloseForCloning),
-};
-
-#ifdef XSERV_t
-/* This function is used in the server to initialize the semaphore used with pipes */
-
-BOOL init_server_pipes()
-{
- static BOOL first_time=TRUE;
- ULONG rc;
-
- if(first_time){
- rc = DosCreateEventSem(NULL, &hPipeSem,DC_SEM_SHARED,FALSE);
- if (rc){
- PRMSG(1,"Os2OpenListener (init_server_pipes): Could not create pipe semaphore, rc=%d\n",
- rc,0,0);
- return(FALSE);
- }
- first_time=FALSE;
- }
-return(TRUE);
-}
-#endif /* XSERV_t */
diff --git a/lib/libxtrans/Xtranssock.c b/lib/libxtrans/Xtranssock.c
index 84c68b1e9..0e333da21 100644
--- a/lib/libxtrans/Xtranssock.c
+++ b/lib/libxtrans/Xtranssock.c
@@ -69,21 +69,14 @@ from the copyright holders.
#ifdef UNIXCONN
#ifndef X_NO_SYS_UN
-#ifndef Lynx
#include <sys/un.h>
-#else
-#include <un.h>
-#endif
#endif
#include <sys/stat.h>
#endif
-#if defined(hpux) || (defined(MOTOROLA) && defined(SYSV))
-#define NO_TCP_H
-#endif
#ifndef NO_TCP_H
-#if defined(__osf__) || defined(linux) || defined(__GLIBC__) || defined(AIXV5)
+#if defined(linux) || defined(__GLIBC__)
#include <sys/param.h>
#endif /* osf */
#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
@@ -94,7 +87,7 @@ from the copyright holders.
#endif /* !NO_TCP_H */
#include <sys/ioctl.h>
-#if defined(SVR4) && !defined(DGUX) && !defined(_SEQUENT_)
+#if defined(SVR4)
#include <sys/filio.h>
#endif
@@ -102,10 +95,12 @@ from the copyright holders.
#include <net/errno.h>
#endif
-#if (defined(__i386__) && defined(SYSV)) && (!defined(ISC) || !defined(I_NREAD) || defined(SCO325)) || defined(_SEQUENT_)
+#if defined(__i386__) && defined(SYSV)
#include <sys/stropts.h>
#endif
+#include <unistd.h>
+
#else /* !WIN32 */
#include <X11/Xwinsock.h>
@@ -130,33 +125,8 @@ from the copyright holders.
#undef SO_DONTLINGER
#endif
-#if defined(__UNIXOS2__)
-#if defined(NOT_EMX09A)
-static int IBMsockInit = 0;
-#define SocketInitOnce()\
- if (!IBMsockInit) {\
- sock_init();\
- IBMsockInit = 1;\
- }
-#undef EINTR
-#define EINTR SOCEINTR
-#undef EINVAL
-#define EINVAL SOCEINVAL
-#undef errno
-#define errno sock_errno()
-#undef close
-#define close soclose
-#undef ioctl
-#define ioctl sockioctl
-#else
-#define SocketInitOnce() /**/
-#endif
-/* this is still not there */
-#define SOCKET int
-#else
/* others don't need this */
#define SocketInitOnce() /**/
-#endif
#ifdef linux
#define HAVE_ABSTRACT_SOCKETS
@@ -215,36 +185,6 @@ static int TRANS(SocketINETClose) (XtransConnInfo ciptr);
#ifdef UNIXCONN
-#ifdef hpux
-
-#if defined(X11_t)
-#define UNIX_PATH "/usr/spool/sockets/X11/"
-#define UNIX_DIR "/usr/spool/sockets/X11"
-#define OLD_UNIX_PATH "/tmp/.X11-unix/X"
-#endif /* X11_t */
-#if defined(XIM_t)
-#define UNIX_PATH "/usr/spool/sockets/XIM/"
-#define UNIX_DIR "/usr/spool/sockets/XIM"
-#define OLD_UNIX_PATH "/tmp/.XIM-unix/XIM"
-#endif /* XIM_t */
-#if defined(FS_t) || defined(FONT_t)
-#define UNIX_PATH "/usr/spool/sockets/fontserv/"
-#define UNIX_DIR "/usr/spool/sockets/fontserv"
-#endif /* FS_t || FONT_t */
-#if defined(ICE_t)
-#define UNIX_PATH "/usr/spool/sockets/ICE/"
-#define UNIX_DIR "/usr/spool/sockets/ICE"
-#endif /* ICE_t */
-#if defined(TEST_t)
-#define UNIX_PATH "/usr/spool/sockets/xtrans_test/"
-#define UNIX_DIR "/usr/spool/sockets/xtrans_test"
-#endif
-#if defined(LBXPROXY_t)
-#define UNIX_PATH "/usr/spool/sockets/X11/"
-#define UNIX_DIR "/usr/spool/sockets/X11"
-#endif
-
-#else /* !hpux */
#if defined(X11_t)
#define UNIX_PATH "/tmp/.X11-unix/X"
@@ -271,7 +211,6 @@ static int TRANS(SocketINETClose) (XtransConnInfo ciptr);
#define UNIX_DIR "/tmp/.X11-unix"
#endif
-#endif /* hpux */
#endif /* UNIXCONN */
@@ -481,7 +420,7 @@ TRANS(SocketOpen) (int i, int type)
Sockettrans2devtab[i].protocol)) < 0
#ifndef WIN32
#if (defined(X11_t) && !defined(USE_POLL)) || defined(FS_t) || defined(FONT_t)
- || ciptr->fd >= TRANS_OPEN_MAX
+ || ciptr->fd >= sysconf(_SC_OPEN_MAX)
#endif
#endif
) {
@@ -560,10 +499,10 @@ TRANS(SocketReopen) (int i, int type, int fd, char *port)
PRMSG (1, "SocketReopen: malloc(addr) failed\n", 0, 0, 0);
return NULL;
}
- ciptr->addr = addr;
+ ciptr->addr = (char *) addr;
ciptr->addrlen = portlen + 2;
- if ((ciptr->peeraddr = (struct sockaddr *) xcalloc (1, portlen + 2)) == NULL) {
+ if ((ciptr->peeraddr = (char *) xcalloc (1, portlen + 2)) == NULL) {
PRMSG (1, "SocketReopen: malloc(portaddr) failed\n", 0, 0, 0);
return NULL;
}
@@ -1142,7 +1081,7 @@ TRANS(SocketUNIXCreateListener) (XtransConnInfo ciptr, char *port,
#else
mode = 0777;
#endif
- if (trans_mkdir(UNIX_DIR, mode) == -1) {
+ if (!abstract && trans_mkdir(UNIX_DIR, mode) == -1) {
PRMSG (1, "SocketUNIXCreateListener: mkdir(%s) failed, errno = %d\n",
UNIX_DIR, errno, 0);
(void) umask (oldUmask);
@@ -1162,7 +1101,7 @@ TRANS(SocketUNIXCreateListener) (XtransConnInfo ciptr, char *port,
return TRANS_CREATE_LISTENER_FAILED;
}
-#if (defined(BSD44SOCKETS) || defined(__UNIXWARE__)) && !defined(Lynx)
+#if (defined(BSD44SOCKETS) || defined(__UNIXWARE__))
sockname.sun_len = strlen(sockname.sun_path);
#endif
@@ -1716,25 +1655,11 @@ TRANS(SocketINETConnect) (XtransConnInfo ciptr, char *host, char *port)
return TRANS_CONNECT_FAILED;
}
-#if defined(CRAY) && defined(OLDTCP)
- /* Only Cray UNICOS3 and UNICOS4 will define this */
- {
- long t;
- memcpy ((char *)&t, (char *) hostp->h_addr, sizeof (t));
- sockname.sin_addr = t;
- }
-#else
memcpy ((char *) &sockname.sin_addr, (char *) hostp->h_addr,
sizeof (sockname.sin_addr));
-#endif /* CRAY and OLDTCP */
} else {
-#if defined(CRAY) && defined(OLDTCP)
- /* Only Cray UNICOS3 and UNICOS4 will define this */
- sockname.sin_addr = tmpaddr;
-#else
sockname.sin_addr.s_addr = tmpaddr;
-#endif /* CRAY and OLDTCP */
}
/*
@@ -2018,10 +1943,6 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
struct sockaddr_un sockname;
SOCKLEN_T namelen;
-#if defined(hpux) && defined(X11_t)
- struct sockaddr_un old_sockname;
- SOCKLEN_T old_namelen;
-#endif
int abstract = 0;
#ifdef HAVE_ABSTRACT_SOCKETS
@@ -2069,7 +1990,7 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
return TRANS_CONNECT_FAILED;
}
-#if (defined(BSD44SOCKETS) || defined(__UNIXWARE__)) && !defined(Lynx)
+#if (defined(BSD44SOCKETS) || defined(__UNIXWARE__))
sockname.sun_len = strlen (sockname.sun_path);
#endif
@@ -2080,18 +2001,6 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
#endif
-#if defined(hpux) && defined(X11_t)
- /*
- * This is gross, but it was in Xlib
- */
- old_sockname.sun_family = AF_UNIX;
- if (set_sun_path(port, OLD_UNIX_PATH, old_sockname.sun_path, abstract) != 0) {
- PRMSG (1, "SocketUNIXConnect: path too long\n", 0, 0, 0);
- return TRANS_CONNECT_FAILED;
- }
- old_namelen = strlen (old_sockname.sun_path) +
- offsetof(struct sockaddr_un, sun_path);
-#endif
/*
* Adjust the socket path if using abstract sockets.
@@ -2100,9 +2009,6 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
if (abstract) {
sockname.sun_path[0] = '\0';
-#if defined(hpux) && defined(X11_t)
- old_sockname.sun_path[0] = '\0';
-#endif
}
/*
@@ -2114,18 +2020,6 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
int olderrno = errno;
int connected = 0;
-#if defined(hpux) && defined(X11_t)
- if (olderrno == ENOENT)
- {
- if (connect (ciptr->fd,
- (struct sockaddr *) &old_sockname, old_namelen) >= 0)
- {
- connected = 1;
- }
- else
- olderrno = errno;
- }
-#endif
if (!connected)
{
errno = olderrno;
@@ -2150,7 +2044,7 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
return TRANS_IN_PROGRESS;
else if (olderrno == EINTR)
return TRANS_TRY_CONNECT_AGAIN;
- else if (olderrno == ENOENT) {
+ else if (olderrno == ENOENT || olderrno == ECONNREFUSED) {
/* If opening as abstract socket failed, try again normally */
if (abstract) {
ciptr->transptr->flags &= ~(TRANS_ABSTRACT);
@@ -2204,9 +2098,6 @@ TRANS(SocketBytesReadable) (XtransConnInfo ciptr, BytesReadable_t *pend)
{
PRMSG (2,"SocketBytesReadable(%p,%d,%p)\n",
ciptr, ciptr->fd, pend);
-#if defined(QNX4)
- *pend = 0L; /* FIONREAD only returns a short. Zero out upper bits */
-#endif
#ifdef WIN32
{
int ret = ioctlsocket ((SOCKET) ciptr->fd, FIONREAD, (u_long *) pend);
@@ -2214,14 +2105,10 @@ TRANS(SocketBytesReadable) (XtransConnInfo ciptr, BytesReadable_t *pend)
return ret;
}
#else
-#if (defined(__i386__) && defined(SYSV) && !defined(SCO325)) || (defined(_SEQUENT_) && _SOCKET_VERSION == 1)
+#if defined(__i386__) && defined(SYSV) && !defined(SCO325)
return ioctl (ciptr->fd, I_NREAD, (char *) pend);
#else
-#if defined(__UNIXOS2__)
- return ioctl (ciptr->fd, FIONREAD, (char*) pend, sizeof(int));
-#else
return ioctl (ciptr->fd, FIONREAD, (char *) pend);
-#endif /* __UNIXOS2__ */
#endif /* __i386__ && SYSV || _SEQUENT_ && _SOCKET_VERSION == 1 */
#endif /* WIN32 */
}
@@ -2233,7 +2120,7 @@ TRANS(SocketRead) (XtransConnInfo ciptr, char *buf, int size)
{
PRMSG (2,"SocketRead(%d,%p,%d)\n", ciptr->fd, buf, size);
-#if defined(WIN32) || defined(__UNIXOS2__)
+#if defined(WIN32)
{
int ret = recv ((SOCKET)ciptr->fd, buf, size, 0);
#ifdef WIN32
@@ -2253,7 +2140,7 @@ TRANS(SocketWrite) (XtransConnInfo ciptr, char *buf, int size)
{
PRMSG (2,"SocketWrite(%d,%p,%d)\n", ciptr->fd, buf, size);
-#if defined(WIN32) || defined(__UNIXOS2__)
+#if defined(WIN32)
{
int ret = send ((SOCKET)ciptr->fd, buf, size, 0);
#ifdef WIN32
diff --git a/lib/libxtrans/Xtransutil.c b/lib/libxtrans/Xtransutil.c
index 287c3f244..ff687636e 100644
--- a/lib/libxtrans/Xtransutil.c
+++ b/lib/libxtrans/Xtransutil.c
@@ -104,17 +104,8 @@ TRANS(ConvertAddress)(int *familyp, int *addrlenp, Xtransaddr **addrp)
*/
struct sockaddr_in saddr;
-#ifdef CRAY
-#ifdef OLDTCP
- int len = sizeof(saddr.sin_addr);
-#else
- int len = SIZEOF_in_addr;
-#endif /* OLDTCP */
- char *cp = (char *) &saddr.sin_addr;
-#else /* else not CRAY */
int len = sizeof(saddr.sin_addr.s_addr);
char *cp = (char *) &saddr.sin_addr.s_addr;
-#endif /* CRAY */
memcpy (&saddr, *addrp, sizeof (struct sockaddr_in));
@@ -169,28 +160,14 @@ TRANS(ConvertAddress)(int *familyp, int *addrlenp, Xtransaddr **addrp)
#endif /* IPv6 */
#endif /* defined(TCPCONN) || defined(STREAMSCONN) */
-#if defined(DNETCONN)
- case AF_DECnet:
- {
- struct sockaddr_dn saddr;
-
- memcpy (&saddr, *addrp, sizeof (struct sockaddr_dn));
-
- *familyp=FamilyDECnet;
- *addrlenp=sizeof(struct dn_naddr);
- memcpy(*addrp,&saddr.sdn_add,*addrlenp);
-
- break;
- }
-#endif /* defined(DNETCONN) */
-#if defined(UNIXCONN) || defined(LOCALCONN) || defined(OS2PIPECONN)
+#if defined(UNIXCONN) || defined(LOCALCONN)
case AF_UNIX:
{
*familyp=FamilyLocal;
break;
}
-#endif /* defined(UNIXCONN) || defined(LOCALCONN) || defined(OS2PIPECONN)*/
+#endif /* defined(UNIXCONN) || defined(LOCALCONN) */
#if (defined(__SCO__) || defined(__UNIXWARE__)) && defined(LOCALCONN)
case 0:
@@ -268,7 +245,7 @@ TRANS(GetMyNetworkId) (XtransConnInfo ciptr)
switch (family)
{
-#if defined(UNIXCONN) || defined(STREAMSCONN) || defined(LOCALCONN) || defined(OS2PIPECONN)
+#if defined(UNIXCONN) || defined(STREAMSCONN) || defined(LOCALCONN)
case AF_UNIX:
{
struct sockaddr_un *saddr = (struct sockaddr_un *) addr;
@@ -279,7 +256,7 @@ TRANS(GetMyNetworkId) (XtransConnInfo ciptr)
hostnamebuf, saddr->sun_path);
break;
}
-#endif /* defined(UNIXCONN) || defined(STREAMSCONN) || defined(LOCALCONN) || defined(OS2PIPECONN) */
+#endif /* defined(UNIXCONN) || defined(STREAMSCONN) || defined(LOCALCONN) */
#if defined(TCPCONN) || defined(STREAMSCONN)
case AF_INET:
@@ -312,18 +289,6 @@ TRANS(GetMyNetworkId) (XtransConnInfo ciptr)
}
#endif /* defined(TCPCONN) || defined(STREAMSCONN) */
-#if defined(DNETCONN)
- case AF_DECnet:
- {
- struct sockaddr_dn *saddr = (struct sockaddr_dn *) addr;
- len = 13 + strlen (hostnamebuf) + saddr->sdn_objnamel;
- networkId = (char *) xalloc (len);
- snprintf (networkId, len, "dnet/%s::%s",
- hostnamebuf, saddr->sdn_objname);
- break;
- }
-#endif /* defined(DNETCONN) */
-
default:
break;
}
@@ -373,14 +338,14 @@ TRANS(GetPeerNetworkId) (XtransConnInfo ciptr)
switch (family)
{
case AF_UNSPEC:
-#if defined(UNIXCONN) || defined(STREAMSCONN) || defined(LOCALCONN) || defined(OS2PIPECONN)
+#if defined(UNIXCONN) || defined(STREAMSCONN) || defined(LOCALCONN)
case AF_UNIX:
{
if (gethostname (addrbuf, sizeof (addrbuf)) == 0)
addr = addrbuf;
break;
}
-#endif /* defined(UNIXCONN) || defined(STREAMSCONN) || defined(LOCALCONN) || defined(OS2PIPECONN) */
+#endif /* defined(UNIXCONN) || defined(STREAMSCONN) || defined(LOCALCONN) */
#if defined(TCPCONN) || defined(STREAMSCONN)
case AF_INET:
@@ -444,24 +409,6 @@ TRANS(GetPeerNetworkId) (XtransConnInfo ciptr)
#endif /* defined(TCPCONN) || defined(STREAMSCONN) */
-#if defined(DNETCONN)
- case AF_DECnet:
- {
- struct sockaddr_dn *saddr = (struct sockaddr_dn *) peer_addr;
- struct nodeent *np;
-
- if (np = getnodebyaddr(saddr->sdn_add.a_addr,
- saddr->sdn_add.a_len, AF_DECnet)) {
- snprintf(addrbuf, sizeof(addrbuf), "%s:", np->n_name);
- } else {
- snprintf(addrbuf, sizeof(addrbuf), "%s:",
- dnet_htoa(&saddr->sdn_add));
- }
- addr = addrbuf;
- break;
- }
-#endif /* defined(DNETCONN) */
-
default:
return (NULL);
}
@@ -479,7 +426,7 @@ TRANS(GetPeerNetworkId) (XtransConnInfo ciptr)
#endif /* ICE_t */
-#if defined(WIN32) && (defined(TCPCONN) || defined(DNETCONN))
+#if defined(WIN32) && defined(TCPCONN)
int
TRANS(WSAStartup) (void)
{
diff --git a/lib/libxtrans/aclocal.m4 b/lib/libxtrans/aclocal.m4
index 825cc938f..de221b629 100644
--- a/lib/libxtrans/aclocal.m4
+++ b/lib/libxtrans/aclocal.m4
@@ -825,6 +825,466 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
+dnl xorg-macros.m4. Generated from xorg-macros.m4.in:xorgversion.m4 by configure.
+dnl
+dnl Copyright 2005-2006 Sun Microsystems, Inc. All rights reserved.
+dnl
+dnl Permission is hereby granted, free of charge, to any person obtaining a
+dnl copy of this software and associated documentation files (the
+dnl "Software"), to deal in the Software without restriction, including
+dnl without limitation the rights to use, copy, modify, merge, publish,
+dnl distribute, and/or sell copies of the Software, and to permit persons
+dnl to whom the Software is furnished to do so, provided that the above
+dnl copyright notice(s) and this permission notice appear in all copies of
+dnl the Software and that both the above copyright notice(s) and this
+dnl permission notice appear in supporting documentation.
+dnl
+dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+dnl OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+dnl HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+dnl INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+dnl FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+dnl NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+dnl WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+dnl
+dnl Except as contained in this notice, the name of a copyright holder
+dnl shall not be used in advertising or otherwise to promote the sale, use
+dnl or other dealings in this Software without prior written authorization
+dnl of the copyright holder.
+
+# XORG_MACROS_VERSION(required-version)
+# -------------------------------------
+# Minimum version: 1.1.0
+#
+# If you're using a macro added in Version 1.1 or newer, include this in
+# your configure.ac with the minimum required version, such as:
+# XORG_MACROS_VERSION(1.1)
+#
+# To force at least a version with this macro defined, also add:
+# m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.1 or later before running autoconf/autogen])])
+#
+#
+# See the "minimum version" comment for each macro you use to see what
+# version you require.
+AC_DEFUN([XORG_MACROS_VERSION],[
+ [XORG_MACROS_needed_version=$1
+ XORG_MACROS_needed_major=`echo $XORG_MACROS_needed_version | sed 's/\..*$//'`
+ XORG_MACROS_needed_minor=`echo $XORG_MACROS_needed_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`]
+ AC_MSG_CHECKING([if xorg-macros used to generate configure is at least ${XORG_MACROS_needed_major}.${XORG_MACROS_needed_minor}])
+ [XORG_MACROS_version=1.2.1
+ XORG_MACROS_major=`echo $XORG_MACROS_version | sed 's/\..*$//'`
+ XORG_MACROS_minor=`echo $XORG_MACROS_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`]
+ if test $XORG_MACROS_major -ne $XORG_MACROS_needed_major ; then
+ AC_MSG_ERROR([configure built with incompatible version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.x])
+ fi
+ if test $XORG_MACROS_minor -lt $XORG_MACROS_needed_minor ; then
+ AC_MSG_ERROR([configure built with too old of a version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.${XORG_MACROS_minor}.0 or newer])
+ fi
+ AC_MSG_RESULT([yes, $XORG_MACROS_version])
+]) # XORG_MACROS_VERSION
+
+# XORG_PROG_RAWCPP()
+# ------------------
+# Minimum version: 1.0.0
+#
+# Find cpp program and necessary flags for use in pre-processing text files
+# such as man pages and config files
+AC_DEFUN([XORG_PROG_RAWCPP],[
+AC_REQUIRE([AC_PROG_CPP])
+AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}],
+ [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib])
+
+# Check for flag to avoid builtin definitions - assumes unix is predefined,
+# which is not the best choice for supporting other OS'es, but covers most
+# of the ones we need for now.
+AC_MSG_CHECKING([if $RAWCPP requires -undef])
+AC_LANG_CONFTEST([Does cpp redefine unix ?])
+if test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
+ AC_MSG_RESULT([no])
+else
+ if test `${RAWCPP} -undef < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
+ RAWCPPFLAGS=-undef
+ AC_MSG_RESULT([yes])
+ # under Cygwin unix is still defined even with -undef
+ elif test `${RAWCPP} -undef -ansi < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
+ RAWCPPFLAGS="-undef -ansi"
+ AC_MSG_RESULT([yes, with -ansi])
+ else
+ AC_MSG_ERROR([${RAWCPP} defines unix with or without -undef. I don't know what to do.])
+ fi
+fi
+rm -f conftest.$ac_ext
+
+AC_MSG_CHECKING([if $RAWCPP requires -traditional])
+AC_LANG_CONFTEST([Does cpp preserve "whitespace"?])
+if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
+ AC_MSG_RESULT([no])
+else
+ if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
+ RAWCPPFLAGS="${RAWCPPFLAGS} -traditional"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_ERROR([${RAWCPP} does not preserve whitespace with or without -traditional. I don't know what to do.])
+ fi
+fi
+rm -f conftest.$ac_ext
+AC_SUBST(RAWCPPFLAGS)
+]) # XORG_PROG_RAWCPP
+
+# XORG_MANPAGE_SECTIONS()
+# -----------------------
+# Minimum version: 1.0.0
+#
+# Determine which sections man pages go in for the different man page types
+# on this OS - replaces *ManSuffix settings in old Imake *.cf per-os files.
+# Not sure if there's any better way than just hardcoding by OS name.
+# Override default settings by setting environment variables
+
+AC_DEFUN([XORG_MANPAGE_SECTIONS],[
+AC_REQUIRE([AC_CANONICAL_HOST])
+
+if test x$APP_MAN_SUFFIX = x ; then
+ APP_MAN_SUFFIX=1
+fi
+if test x$APP_MAN_DIR = x ; then
+ APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)'
+fi
+
+if test x$LIB_MAN_SUFFIX = x ; then
+ LIB_MAN_SUFFIX=3
+fi
+if test x$LIB_MAN_DIR = x ; then
+ LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)'
+fi
+
+if test x$FILE_MAN_SUFFIX = x ; then
+ case $host_os in
+ solaris*) FILE_MAN_SUFFIX=4 ;;
+ *) FILE_MAN_SUFFIX=5 ;;
+ esac
+fi
+if test x$FILE_MAN_DIR = x ; then
+ FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)'
+fi
+
+if test x$MISC_MAN_SUFFIX = x ; then
+ case $host_os in
+ solaris*) MISC_MAN_SUFFIX=5 ;;
+ *) MISC_MAN_SUFFIX=7 ;;
+ esac
+fi
+if test x$MISC_MAN_DIR = x ; then
+ MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)'
+fi
+
+if test x$DRIVER_MAN_SUFFIX = x ; then
+ case $host_os in
+ solaris*) DRIVER_MAN_SUFFIX=7 ;;
+ *) DRIVER_MAN_SUFFIX=4 ;;
+ esac
+fi
+if test x$DRIVER_MAN_DIR = x ; then
+ DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)'
+fi
+
+if test x$ADMIN_MAN_SUFFIX = x ; then
+ case $host_os in
+ solaris*) ADMIN_MAN_SUFFIX=1m ;;
+ *) ADMIN_MAN_SUFFIX=8 ;;
+ esac
+fi
+if test x$ADMIN_MAN_DIR = x ; then
+ ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)'
+fi
+
+
+AC_SUBST([APP_MAN_SUFFIX])
+AC_SUBST([LIB_MAN_SUFFIX])
+AC_SUBST([FILE_MAN_SUFFIX])
+AC_SUBST([MISC_MAN_SUFFIX])
+AC_SUBST([DRIVER_MAN_SUFFIX])
+AC_SUBST([ADMIN_MAN_SUFFIX])
+AC_SUBST([APP_MAN_DIR])
+AC_SUBST([LIB_MAN_DIR])
+AC_SUBST([FILE_MAN_DIR])
+AC_SUBST([MISC_MAN_DIR])
+AC_SUBST([DRIVER_MAN_DIR])
+AC_SUBST([ADMIN_MAN_DIR])
+]) # XORG_MANPAGE_SECTIONS
+
+# XORG_CHECK_LINUXDOC
+# -------------------
+# Minimum version: 1.0.0
+#
+# Defines the variable MAKE_TEXT if the necessary tools and
+# files are found. $(MAKE_TEXT) blah.sgml will then produce blah.txt.
+# Whether or not the necessary tools and files are found can be checked
+# with the AM_CONDITIONAL "BUILD_LINUXDOC"
+AC_DEFUN([XORG_CHECK_LINUXDOC],[
+if test x$XORG_SGML_PATH = x ; then
+ XORG_SGML_PATH=$prefix/share/sgml
+fi
+HAVE_DEFS_ENT=
+
+if test x"$cross_compiling" = x"yes" ; then
+ HAVE_DEFS_ENT=no
+else
+ AC_CHECK_FILE([$XORG_SGML_PATH/X11/defs.ent], [HAVE_DEFS_ENT=yes])
+fi
+
+AC_PATH_PROG(LINUXDOC, linuxdoc)
+AC_PATH_PROG(PS2PDF, ps2pdf)
+
+AC_MSG_CHECKING([Whether to build documentation])
+
+if test x$HAVE_DEFS_ENT != x && test x$LINUXDOC != x ; then
+ BUILDDOC=yes
+else
+ BUILDDOC=no
+fi
+
+AM_CONDITIONAL(BUILD_LINUXDOC, [test x$BUILDDOC = xyes])
+
+AC_MSG_RESULT([$BUILDDOC])
+
+AC_MSG_CHECKING([Whether to build pdf documentation])
+
+if test x$PS2PDF != x && test x$BUILD_PDFDOC != xno; then
+ BUILDPDFDOC=yes
+else
+ BUILDPDFDOC=no
+fi
+
+AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes])
+
+AC_MSG_RESULT([$BUILDPDFDOC])
+
+MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH GROFF_NO_SGR=y $LINUXDOC -B txt"
+MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B latex --papersize=letter --output=ps"
+MAKE_PDF="$PS2PDF"
+MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B html --split=0"
+
+AC_SUBST(MAKE_TEXT)
+AC_SUBST(MAKE_PS)
+AC_SUBST(MAKE_PDF)
+AC_SUBST(MAKE_HTML)
+]) # XORG_CHECK_LINUXDOC
+
+# XORG_CHECK_DOCBOOK
+# -------------------
+# Minimum version: 1.0.0
+#
+# Checks for the ability to build output formats from SGML DocBook source.
+# For XXX in {TXT, PDF, PS, HTML}, the AM_CONDITIONAL "BUILD_XXXDOC"
+# indicates whether the necessary tools and files are found and, if set,
+# $(MAKE_XXX) blah.sgml will produce blah.xxx.
+AC_DEFUN([XORG_CHECK_DOCBOOK],[
+if test x$XORG_SGML_PATH = x ; then
+ XORG_SGML_PATH=$prefix/share/sgml
+fi
+HAVE_DEFS_ENT=
+BUILDTXTDOC=no
+BUILDPDFDOC=no
+BUILDPSDOC=no
+BUILDHTMLDOC=no
+
+AC_CHECK_FILE([$XORG_SGML_PATH/X11/defs.ent], [HAVE_DEFS_ENT=yes])
+
+AC_PATH_PROG(DOCBOOKPS, docbook2ps)
+AC_PATH_PROG(DOCBOOKPDF, docbook2pdf)
+AC_PATH_PROG(DOCBOOKHTML, docbook2html)
+AC_PATH_PROG(DOCBOOKTXT, docbook2txt)
+
+AC_MSG_CHECKING([Whether to build text documentation])
+if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKTXT != x &&
+ test x$BUILD_TXTDOC != xno; then
+ BUILDTXTDOC=yes
+fi
+AM_CONDITIONAL(BUILD_TXTDOC, [test x$BUILDTXTDOC = xyes])
+AC_MSG_RESULT([$BUILDTXTDOC])
+
+AC_MSG_CHECKING([Whether to build PDF documentation])
+if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKPDF != x &&
+ test x$BUILD_PDFDOC != xno; then
+ BUILDPDFDOC=yes
+fi
+AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes])
+AC_MSG_RESULT([$BUILDPDFDOC])
+
+AC_MSG_CHECKING([Whether to build PostScript documentation])
+if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKPS != x &&
+ test x$BUILD_PSDOC != xno; then
+ BUILDPSDOC=yes
+fi
+AM_CONDITIONAL(BUILD_PSDOC, [test x$BUILDPSDOC = xyes])
+AC_MSG_RESULT([$BUILDPSDOC])
+
+AC_MSG_CHECKING([Whether to build HTML documentation])
+if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKHTML != x &&
+ test x$BUILD_HTMLDOC != xno; then
+ BUILDHTMLDOC=yes
+fi
+AM_CONDITIONAL(BUILD_HTMLDOC, [test x$BUILDHTMLDOC = xyes])
+AC_MSG_RESULT([$BUILDHTMLDOC])
+
+MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKTXT"
+MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPS"
+MAKE_PDF="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPDF"
+MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKHTML"
+
+AC_SUBST(MAKE_TEXT)
+AC_SUBST(MAKE_PS)
+AC_SUBST(MAKE_PDF)
+AC_SUBST(MAKE_HTML)
+]) # XORG_CHECK_DOCBOOK
+
+# XORG_CHECK_MALLOC_ZERO
+# ----------------------
+# Minimum version: 1.0.0
+#
+# Defines {MALLOC,XMALLOC,XTMALLOC}_ZERO_CFLAGS appropriately if
+# malloc(0) returns NULL. Packages should add one of these cflags to
+# their AM_CFLAGS (or other appropriate *_CFLAGS) to use them.
+AC_DEFUN([XORG_CHECK_MALLOC_ZERO],[
+AC_ARG_ENABLE(malloc0returnsnull,
+ AC_HELP_STRING([--enable-malloc0returnsnull],
+ [malloc(0) returns NULL (default: auto)]),
+ [MALLOC_ZERO_RETURNS_NULL=$enableval],
+ [MALLOC_ZERO_RETURNS_NULL=auto])
+
+AC_MSG_CHECKING([whether malloc(0) returns NULL])
+if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then
+ AC_RUN_IFELSE([
+char *malloc();
+char *realloc();
+char *calloc();
+main() {
+ char *m0, *r0, *c0, *p;
+ m0 = malloc(0);
+ p = malloc(10);
+ r0 = realloc(p,0);
+ c0 = calloc(0);
+ exit(m0 == 0 || r0 == 0 || c0 == 0 ? 0 : 1);
+}],
+ [MALLOC_ZERO_RETURNS_NULL=yes],
+ [MALLOC_ZERO_RETURNS_NULL=no])
+fi
+AC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL])
+
+if test "x$MALLOC_ZERO_RETURNS_NULL" = xyes; then
+ MALLOC_ZERO_CFLAGS="-DMALLOC_0_RETURNS_NULL"
+ XMALLOC_ZERO_CFLAGS=$MALLOC_ZERO_CFLAGS
+ XTMALLOC_ZERO_CFLAGS="$MALLOC_ZERO_CFLAGS -DXTMALLOC_BC"
+else
+ MALLOC_ZERO_CFLAGS=""
+ XMALLOC_ZERO_CFLAGS=""
+ XTMALLOC_ZERO_CFLAGS=""
+fi
+
+AC_SUBST([MALLOC_ZERO_CFLAGS])
+AC_SUBST([XMALLOC_ZERO_CFLAGS])
+AC_SUBST([XTMALLOC_ZERO_CFLAGS])
+]) # XORG_CHECK_MALLOC_ZERO
+
+# XORG_WITH_LINT()
+# ----------------
+# Minimum version: 1.1.0
+#
+# Sets up flags for source checkers such as lint and sparse if --with-lint
+# is specified. (Use --with-lint=sparse for sparse.)
+# Sets $LINT to name of source checker passed with --with-lint (default: lint)
+# Sets $LINT_FLAGS to flags to pass to source checker
+# Sets LINT automake conditional if enabled (default: disabled)
+#
+AC_DEFUN([XORG_WITH_LINT],[
+
+# Allow checking code with lint, sparse, etc.
+AC_ARG_WITH(lint, [AC_HELP_STRING([--with-lint],
+ [Use a lint-style source code checker (default: disabled)])],
+ [use_lint=$withval], [use_lint=no])
+if test "x$use_lint" = "xyes" ; then
+ LINT="lint"
+else
+ LINT="$use_lint"
+fi
+if test "x$LINT_FLAGS" = "x" -a "x$LINT" != "xno" ; then
+ case $LINT in
+ lint|*/lint)
+ case $host_os in
+ solaris*)
+ LINT_FLAGS="-u -b -h -erroff=E_INDISTING_FROM_TRUNC2"
+ ;;
+ esac
+ ;;
+ esac
+fi
+
+AC_SUBST(LINT)
+AC_SUBST(LINT_FLAGS)
+AM_CONDITIONAL(LINT, [test x$LINT != xno])
+
+]) # XORG_WITH_LINT
+
+# XORG_LINT_LIBRARY(LIBNAME)
+# --------------------------
+# Minimum version: 1.1.0
+#
+# Sets up flags for building lint libraries for checking programs that call
+# functions in the library.
+# Disabled by default, enable with --enable-lint-library
+# Sets:
+# @LINTLIB@ - name of lint library file to make
+# MAKE_LINT_LIB - automake conditional
+#
+
+AC_DEFUN([XORG_LINT_LIBRARY],[
+AC_REQUIRE([XORG_WITH_LINT])
+# Build lint "library" for more indepth checks of programs calling this library
+AC_ARG_ENABLE(lint-library, [AC_HELP_STRING([--enable-lint-library],
+ [Create lint library (default: disabled)])],
+ [make_lint_lib=$enableval], [make_lint_lib=no])
+if test "x$make_lint_lib" != "xno" ; then
+ if test "x$LINT" = "xno" ; then
+ AC_MSG_ERROR([Cannot make lint library without --with-lint])
+ fi
+ if test "x$make_lint_lib" = "xyes" ; then
+ LINTLIB=llib-l$1.ln
+ else
+ LINTLIB=$make_lint_lib
+ fi
+fi
+AC_SUBST(LINTLIB)
+AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
+
+]) # XORG_LINT_LIBRARY
+
+# XORG_CWARNFLAGS
+# ---------------
+# Minimum version: 1.2.0
+#
+# Defines CWARNFLAGS to enable C compiler warnings.
+#
+AC_DEFUN([XORG_CWARNFLAGS], [
+AC_REQUIRE([AC_PROG_CC])
+if test "x$GCC" = xyes ; then
+ CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \
+-Wmissing-declarations -Wnested-externs -fno-strict-aliasing \
+-Wbad-function-cast"
+ case `gcc -dumpversion` in
+ 3.4.* | 4.*)
+ CWARNFLAGS+=" -Wold-style-definition -Wdeclaration-after-statement"
+ ;;
+ esac
+else
+ AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
+ if test "x$SUNCC" = "xyes"; then
+ CWARNFLAGS="-v"
+ fi
+fi
+AC_SUBST(CWARNFLAGS)
+]) # XORG_CWARNFLAGS
dnl Copyright 2005 Red Hat, Inc
dnl
dnl Permission to use, copy, modify, distribute, and sell this software and its
@@ -887,3 +1347,20 @@ AC_DEFUN([XORG_RELEASE_VERSION],[
[Patch version of this package])
])
+# XORG_CHANGELOG()
+# ----------------
+# Minimum version: 1.2.0
+#
+# Defines the variable CHANGELOG_CMD as the command to generate
+# ChangeLog from git.
+#
+# Arrange that distcleancheck ignores ChangeLog left over by distclean.
+#
+AC_DEFUN([XORG_CHANGELOG], [
+CHANGELOG_CMD="(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)"
+AC_SUBST([CHANGELOG_CMD])
+AC_SUBST([distcleancheck_listfiles], ['find . -type f ! -name ChangeLog -print'])
+]) # XORG_CHANGELOG
+
diff --git a/lib/libxtrans/configure b/lib/libxtrans/configure
index e35b5b591..f88921307 100644
--- a/lib/libxtrans/configure
+++ b/lib/libxtrans/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for xtrans 1.2.
+# Generated by GNU Autoconf 2.59 for xtrans 1.2.3.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@@ -269,11 +269,11 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='xtrans'
PACKAGE_TARNAME='xtrans'
-PACKAGE_VERSION='1.2'
-PACKAGE_STRING='xtrans 1.2'
+PACKAGE_VERSION='1.2.3'
+PACKAGE_STRING='xtrans 1.2.3'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE fchown_define sticky_bit_define LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE fchown_define sticky_bit_define CHANGELOG_CMD distcleancheck_listfiles LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -738,7 +738,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xtrans 1.2 to adapt to many kinds of systems.
+\`configure' configures xtrans 1.2.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -800,7 +800,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xtrans 1.2:";;
+ short | recursive ) echo "Configuration of xtrans 1.2.3:";;
esac
cat <<\_ACEOF
@@ -925,7 +925,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-xtrans configure 1.2
+xtrans configure 1.2.3
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -939,7 +939,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xtrans $as_me 1.2, which was
+It was created by xtrans $as_me 1.2.3, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1537,7 +1537,7 @@ fi
# Define the identity of the package.
PACKAGE='xtrans'
- VERSION='1.2'
+ VERSION='1.2.3'
cat >>confdefs.h <<_ACEOF
@@ -1692,6 +1692,31 @@ fi
+# Require xorg-macros version 1.2.0 or newer for XORG_CHANGELOG macro
+
+
+ XORG_MACROS_needed_version=1.2
+ XORG_MACROS_needed_major=`echo $XORG_MACROS_needed_version | sed 's/\..*$//'`
+ XORG_MACROS_needed_minor=`echo $XORG_MACROS_needed_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`
+ echo "$as_me:$LINENO: checking if xorg-macros used to generate configure is at least ${XORG_MACROS_needed_major}.${XORG_MACROS_needed_minor}" >&5
+echo $ECHO_N "checking if xorg-macros used to generate configure is at least ${XORG_MACROS_needed_major}.${XORG_MACROS_needed_minor}... $ECHO_C" >&6
+ XORG_MACROS_version=1.2.1
+ XORG_MACROS_major=`echo $XORG_MACROS_version | sed 's/\..*$//'`
+ XORG_MACROS_minor=`echo $XORG_MACROS_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`
+ if test $XORG_MACROS_major -ne $XORG_MACROS_needed_major ; then
+ { { echo "$as_me:$LINENO: error: configure built with incompatible version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.x" >&5
+echo "$as_me: error: configure built with incompatible version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.x" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ if test $XORG_MACROS_minor -lt $XORG_MACROS_needed_minor ; then
+ { { echo "$as_me:$LINENO: error: configure built with too old of a version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.${XORG_MACROS_minor}.0 or newer" >&5
+echo "$as_me: error: configure built with too old of a version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.${XORG_MACROS_minor}.0 or newer" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ echo "$as_me:$LINENO: result: yes, $XORG_MACROS_version" >&5
+echo "${ECHO_T}yes, $XORG_MACROS_version" >&6
+
+
# Because xtrans is included into other modules rather than being linked
# with, these defines have to be added to the cflags line
@@ -2950,6 +2975,14 @@ _ACEOF
+CHANGELOG_CMD="(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)"
+
+distcleancheck_listfiles='find . -type f ! -name ChangeLog -print'
+
+
+
ac_config_files="$ac_config_files Makefile xtrans.pc"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -3365,7 +3398,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by xtrans $as_me 1.2, which was
+This file was extended by xtrans $as_me 1.2.3, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3423,7 +3456,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-xtrans config.status 1.2
+xtrans config.status 1.2.3
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -3663,6 +3696,8 @@ s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
s,@fchown_define@,$fchown_define,;t t
s,@sticky_bit_define@,$sticky_bit_define,;t t
+s,@CHANGELOG_CMD@,$CHANGELOG_CMD,;t t
+s,@distcleancheck_listfiles@,$distcleancheck_listfiles,;t t
s,@LIBOBJS@,$LIBOBJS,;t t
s,@LTLIBOBJS@,$LTLIBOBJS,;t t
CEOF
diff --git a/lib/libxtrans/configure.ac b/lib/libxtrans/configure.ac
index 304fd6bc6..cf5ec7150 100644
--- a/lib/libxtrans/configure.ac
+++ b/lib/libxtrans/configure.ac
@@ -21,10 +21,14 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
-AC_INIT(xtrans, 1.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
+# 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])
diff --git a/lib/libxtrans/transport.c b/lib/libxtrans/transport.c
index 0d1eaf95b..5131d99e4 100644
--- a/lib/libxtrans/transport.c
+++ b/lib/libxtrans/transport.c
@@ -47,9 +47,6 @@ from The Open Group.
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#ifdef __UNIXOS2__
-#define I_NEED_OS2_H
-#endif
#ifdef XSERV_t
#include "os.h"
@@ -63,15 +60,9 @@ from The Open Group.
#include "Xtransint.h"
-#ifdef DNETCONN
-#include "Xtransdnet.c"
-#endif
#ifdef LOCALCONN
#include "Xtranslcl.c"
#endif
-#ifdef OS2PIPECONN
-#include "Xtransos2.c"
-#endif
#if defined(TCPCONN) || defined(UNIXCONN)
#include "Xtranssock.c"
#endif
diff --git a/lib/libxtrans/xtrans.m4 b/lib/libxtrans/xtrans.m4
index 31d456b41..f6bc2ea1e 100644
--- a/lib/libxtrans/xtrans.m4
+++ b/lib/libxtrans/xtrans.m4
@@ -32,10 +32,11 @@ 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,
- 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])