mirror of
https://github.com/SwallowOS/xorg_lib_libxtrans
synced 2025-12-28 04:21:04 +08:00
See ChangeLog entry 2005-11-07 for details.
This commit is contained in:
10
Xtrans.c
10
Xtrans.c
@@ -117,7 +117,7 @@ Xtransport_table Xtransports[] = {
|
||||
{ &TRANS(NAMEDFuncs), TRANS_LOCAL_NAMED_INDEX },
|
||||
#endif
|
||||
#ifndef sun
|
||||
#ifndef SCO325
|
||||
#if !defined(__SCO__) && !defined(__UNIXWARE__)
|
||||
{ &TRANS(ISCFuncs), TRANS_LOCAL_ISC_INDEX },
|
||||
#endif
|
||||
{ &TRANS(SCOFuncs), TRANS_LOCAL_SCO_INDEX },
|
||||
@@ -712,7 +712,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(SCO)) && !defined(__QNX__)
|
||||
#if defined(O_NONBLOCK) && (!defined(ultrix) && !defined(hpux) && !defined(AIXV3) && !defined(uniosu) && !defined(__UNIXOS2__) && !defined(SCO325)) && !defined(__QNX__)
|
||||
ret = fcntl (fd, F_GETFL, 0);
|
||||
if (ret != -1)
|
||||
ret = fcntl (fd, F_SETFL, ret | O_NONBLOCK);
|
||||
@@ -1303,7 +1303,7 @@ static int TRANS(WriteV) (XtransConnInfo ciptr, struct iovec *iov, int iovcnt)
|
||||
|
||||
#endif /* CRAY */
|
||||
|
||||
#if (defined(SYSV) && defined(i386) && !defined(SCO325)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
|
||||
#if (defined(SYSV) && defined(i386) && !defined(__SCO__)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
|
||||
|
||||
/*
|
||||
* emulate readv
|
||||
@@ -1335,7 +1335,7 @@ static int TRANS(ReadV) (XtransConnInfo ciptr, struct iovec *iov, int iovcnt)
|
||||
|
||||
#endif /* SYSV && i386 || WIN32 || __sxg__ */
|
||||
|
||||
#if (defined(SYSV) && defined(i386) && !defined(SCO325)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
|
||||
#if (defined(SYSV) && defined(i386) && !defined(__SCO__)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
|
||||
|
||||
/*
|
||||
* emulate writev
|
||||
@@ -1368,7 +1368,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(AIXV3) && !defined(__QNX__)) || defined(hpux) || defined(USG) || defined(SVR4) || defined(__SCO__)
|
||||
#ifndef NEED_UTSNAME
|
||||
#define NEED_UTSNAME
|
||||
#endif
|
||||
|
||||
@@ -110,7 +110,7 @@ from The Open Group.
|
||||
* 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(AIXV3) && !defined(__QNX__)) || defined(hpux) || defined(USG) || defined(SVR4) || defined(__SCO__)
|
||||
# ifndef NEED_UTSNAME
|
||||
# define NEED_UTSNAME
|
||||
# endif
|
||||
@@ -383,7 +383,7 @@ typedef struct _Xtransport_table {
|
||||
* systems, so they may be emulated.
|
||||
*/
|
||||
|
||||
#if defined(CRAY) || (defined(SYSV) && defined(i386) && !defined(SCO325)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
|
||||
#if defined(CRAY) || (defined(SYSV) && defined(i386) && !defined(__SCO__)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
|
||||
|
||||
#define READV(ciptr, iov, iovcnt) TRANS(ReadV)(ciptr, iov, iovcnt)
|
||||
|
||||
@@ -400,7 +400,7 @@ static int TRANS(ReadV)(
|
||||
#endif /* CRAY || (SYSV && i386) || WIN32 || __sxg__ || */
|
||||
|
||||
|
||||
#if defined(CRAY) || (defined(SYSV) && defined(i386) && !defined(SCO325)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
|
||||
#if defined(CRAY) || (defined(SYSV) && defined(i386) && !defined(__SCO__)) || defined(WIN32) || defined(__sxg__) || defined(__UNIXOS2__)
|
||||
|
||||
#define WRITEV(ciptr, iov, iovcnt) TRANS(WriteV)(ciptr, iov, iovcnt)
|
||||
|
||||
|
||||
158
Xtranslcl.c
158
Xtranslcl.c
@@ -146,8 +146,7 @@ TRANS(FillAddrInfo)(XtransConnInfo ciptr, char *sun_path, char *peer_sun_path)
|
||||
|
||||
if ((sunaddr = (struct sockaddr_un *) xalloc (ciptr->addrlen)) == NULL)
|
||||
{
|
||||
PRMSG(1,"FillAddrInfo: failed to allocate memory for addr\n",
|
||||
0,0,0);
|
||||
PRMSG(1,"FillAddrInfo: failed to allocate memory for addr\n", 0, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -198,7 +197,7 @@ TRANS(FillAddrInfo)(XtransConnInfo ciptr, char *sun_path, char *peer_sun_path)
|
||||
|
||||
/* PTS */
|
||||
|
||||
#if defined(SYSV) && !defined(sco) && !defined(SCO) && !defined(ISC)
|
||||
#if defined(SYSV) && !defined(__SCO__) && !defined(ISC)
|
||||
#define SIGNAL_T int
|
||||
#else
|
||||
#define SIGNAL_T void
|
||||
@@ -244,7 +243,7 @@ static void _dummy(int sig)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ISC and SCO are only defined for X11 since they are there for
|
||||
* ISC is only defined for X11 since they are there for
|
||||
* backwards binary compatability only.
|
||||
*/
|
||||
|
||||
@@ -257,6 +256,8 @@ static void _dummy(int sig)
|
||||
#if defined(XIM_t)
|
||||
#define PTSNODENAME "/dev/X/XIM."
|
||||
#define NAMEDNODENAME "/dev/X/NXIM."
|
||||
#define SCORNODENAME "/dev/XIM.%sR"
|
||||
#define SCOSNODENAME "/dev/XIM.%sS"
|
||||
#endif
|
||||
#if defined(FS_t) || defined (FONT_t)
|
||||
/*
|
||||
@@ -265,14 +266,20 @@ static void _dummy(int sig)
|
||||
*/
|
||||
#define PTSNODENAME "/dev/X/fontserver."
|
||||
#define NAMEDNODENAME "/dev/X/Nfontserver."
|
||||
#define SCORNODENAME "/dev/fontserver.%sR"
|
||||
#define SCOSNODENAME "/dev/fontserver.%sS"
|
||||
#endif
|
||||
#if defined(ICE_t)
|
||||
#define PTSNODENAME "/dev/X/ICE."
|
||||
#define NAMEDNODENAME "/dev/X/NICE."
|
||||
#define SCORNODENAME "/dev/ICE.%sR"
|
||||
#define SCOSNODENAME "/dev/ICE.%sS"
|
||||
#endif
|
||||
#if defined(TEST_t)
|
||||
#define PTSNODENAME "/dev/X/transtest."
|
||||
#define NAMEDNODENAME "/dev/X/Ntranstest."
|
||||
#define SCORNODENAME "/dev/transtest.%sR"
|
||||
#define SCOSNODENAME "/dev/transtest.%sS"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -394,8 +401,7 @@ TRANS(PTSOpenClient)(XtransConnInfo ciptr, char *port)
|
||||
|
||||
if (ret != 1) {
|
||||
PRMSG(1,
|
||||
"PTSOpenClient: failed to get acknoledgement from server\n",
|
||||
0,0,0);
|
||||
"PTSOpenClient: failed to get acknoledgement from server\n", 0, 0, 0);
|
||||
(void) close(fd);
|
||||
fd = -1;
|
||||
}
|
||||
@@ -406,8 +412,7 @@ TRANS(PTSOpenClient)(XtransConnInfo ciptr, char *port)
|
||||
|
||||
if (TRANS(FillAddrInfo) (ciptr, slave, server_path) == 0)
|
||||
{
|
||||
PRMSG(1,"PTSOpenClient: failed to fill in addr info\n",
|
||||
0,0,0);
|
||||
PRMSG(1,"PTSOpenClient: failed to fill in addr info\n", 0, 0, 0);
|
||||
close(fd);
|
||||
return -1;
|
||||
}
|
||||
@@ -517,8 +522,7 @@ TRANS(PTSOpenServer)(XtransConnInfo ciptr, char *port)
|
||||
|
||||
if (TRANS(FillAddrInfo) (ciptr, server_path, server_path) == 0)
|
||||
{
|
||||
PRMSG(1,"PTSOpenServer: failed to fill in addr info\n",
|
||||
0,0,0);
|
||||
PRMSG(1,"PTSOpenServer: failed to fill in addr info\n", 0, 0, 0);
|
||||
close(fd);
|
||||
return -1;
|
||||
}
|
||||
@@ -842,11 +846,8 @@ TRANS(NAMEDAccept)(XtransConnInfo ciptr, XtransConnInfo newciptr, int *status)
|
||||
|
||||
#ifndef sun
|
||||
|
||||
/* SCO doesnt use the ISC transport type - it causes problems */
|
||||
#ifndef SCO325
|
||||
|
||||
/*
|
||||
* connect_spipe is used by the ISC connection type.
|
||||
* connect_spipe is used by the SCO and ISC connection types.
|
||||
*/
|
||||
static int
|
||||
connect_spipe(int fd1, int fd2)
|
||||
@@ -871,7 +872,7 @@ connect_spipe(int fd1, int fd2)
|
||||
}
|
||||
|
||||
/*
|
||||
* named_spipe is used by ISC connection type.
|
||||
* named_spipe is used by the SCO and ISC connection types.
|
||||
*/
|
||||
|
||||
static int
|
||||
@@ -897,6 +898,9 @@ named_spipe(int fd, char *path)
|
||||
return(ret);
|
||||
}
|
||||
|
||||
/* SCO doesnt use the ISC transport type - it causes problems */
|
||||
#if !defined(__SCO__) && !defined(__UNIXWARE__)
|
||||
|
||||
|
||||
/* ISC */
|
||||
|
||||
@@ -1001,8 +1005,7 @@ TRANS(ISCOpenClient)(XtransConnInfo ciptr, char *port)
|
||||
|
||||
if (TRANS(FillAddrInfo) (ciptr, server_path, server_path) == 0)
|
||||
{
|
||||
PRMSG(1,"ISCOpenClient: failed to fill in addr info\n",
|
||||
0,0,0);
|
||||
PRMSG(1,"ISCOpenClient: failed to fill in addr info\n", 0, 0, 0);
|
||||
close(fd);
|
||||
return -1;
|
||||
}
|
||||
@@ -1119,8 +1122,7 @@ TRANS(ISCOpenServer)(XtransConnInfo ciptr, char *port)
|
||||
|
||||
if (TRANS(FillAddrInfo) (ciptr, server_path, server_path) == 0)
|
||||
{
|
||||
PRMSG(1,"ISCOpenServer: failed to fill in addr info\n",
|
||||
0,0,0);
|
||||
PRMSG(1,"ISCOpenServer: failed to fill in addr info\n", 0, 0, 0);
|
||||
close(fd);
|
||||
return -1;
|
||||
}
|
||||
@@ -1181,7 +1183,7 @@ TRANS(ISCAccept)(XtransConnInfo ciptr, XtransConnInfo newciptr, int *status)
|
||||
}
|
||||
|
||||
#endif /* TRANS_SERVER */
|
||||
#endif /* !SCO325 */
|
||||
#endif /* !__SCO__ && !__UNIXWARE__ */
|
||||
|
||||
|
||||
/* SCO */
|
||||
@@ -1193,6 +1195,12 @@ TRANS(ISCAccept)(XtransConnInfo ciptr, XtransConnInfo newciptr, int *status)
|
||||
* This greatly helps inter-operability between X11R6 and X11R5 (the native
|
||||
* SCO server). Mainly, it relies on streams nodes existing in /dev, not
|
||||
* creating them or unlinking them, which breaks the native X server.
|
||||
*
|
||||
* However, this is only for the X protocol. For all other protocols, we
|
||||
* do in fact create the nodes, as only X11R6 will use them, and this makes
|
||||
* it possible to have both types of clients running, otherwise we get all
|
||||
* kinds of nasty errors on startup for anything that doesnt use the X
|
||||
* protocol (like SM, when KDE starts up).
|
||||
*/
|
||||
|
||||
#ifdef TRANS_CLIENT
|
||||
@@ -1211,9 +1219,11 @@ TRANS(SCOOpenClient)(XtransConnInfo ciptr, char *port)
|
||||
#endif
|
||||
|
||||
PRMSG(2,"SCOOpenClient(%s)\n", port, 0,0 );
|
||||
if (!port || !port[0])
|
||||
port = "0";
|
||||
|
||||
#if !defined(SCORNODENAME)
|
||||
PRMSG(1,"SCOOpenClient: Protocol is not supported by a SCO connection\n", 0,0,0);
|
||||
PRMSG(2,"SCOOpenClient: Protocol is not supported by a SCO connection\n", 0,0,0);
|
||||
return -1;
|
||||
#else
|
||||
(void) sprintf(server_path, SCORNODENAME, port);
|
||||
@@ -1263,11 +1273,12 @@ TRANS(SCOOpenClient)(XtransConnInfo ciptr, char *port)
|
||||
* Everything looks good: fill in the XtransConnInfo structure.
|
||||
*/
|
||||
|
||||
#if defined(X11_t) && defined(__SCO__)
|
||||
ciptr->flags |= TRANS_NOUNLINK;
|
||||
#endif
|
||||
if (TRANS(FillAddrInfo) (ciptr, server_path, server_path) == 0)
|
||||
{
|
||||
PRMSG(1,"SCOOpenClient: failed to fill addr info\n",
|
||||
0,0,0);
|
||||
PRMSG(1,"SCOOpenClient: failed to fill addr info\n", 0, 0, 0);
|
||||
close(fd);
|
||||
return -1;
|
||||
}
|
||||
@@ -1291,11 +1302,11 @@ TRANS(SCOOpenServer)(XtransConnInfo ciptr, char *port)
|
||||
struct flock mylock;
|
||||
int fdr = -1;
|
||||
int fds = -1;
|
||||
long temp;
|
||||
struct strfdinsert sbuf;
|
||||
#endif
|
||||
|
||||
PRMSG(2,"SCOOpenServer(%s)\n", port, 0,0 );
|
||||
if (!port || !port[0])
|
||||
port = "0";
|
||||
|
||||
#if !defined(SCORNODENAME)
|
||||
PRMSG(1,"SCOOpenServer: Protocol is not supported by a SCO connection\n", 0,0,0);
|
||||
@@ -1304,9 +1315,34 @@ TRANS(SCOOpenServer)(XtransConnInfo ciptr, char *port)
|
||||
(void) sprintf(serverR_path, SCORNODENAME, port);
|
||||
(void) sprintf(serverS_path, SCOSNODENAME, port);
|
||||
|
||||
#if !defined(X11_t) || !defined(__SCO__)
|
||||
unlink(serverR_path);
|
||||
unlink(serverS_path);
|
||||
|
||||
if ((fds = open(DEV_SPX, O_RDWR)) < 0 ||
|
||||
(fdr = open(DEV_SPX, O_RDWR)) < 0 ) {
|
||||
PRMSG(1,"SCOOpenServer: failed to open %s\n", DEV_SPX, 0,0 );
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (named_spipe (fds, serverS_path) == -1) {
|
||||
PRMSG(1,"SCOOpenServer: failed to create %s\n", serverS_path, 0, 0);
|
||||
close (fdr);
|
||||
close (fds);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (named_spipe (fdr, serverR_path) == -1) {
|
||||
PRMSG(1,"SCOOpenServer: failed to create %s\n", serverR_path, 0, 0);
|
||||
close (fdr);
|
||||
close (fds);
|
||||
return -1;
|
||||
}
|
||||
#else /* X11_t */
|
||||
|
||||
fds = open (serverS_path, O_RDWR | O_NDELAY);
|
||||
if (fds < 0) {
|
||||
PRMSG(1,"SCOOpenServer: failed to open %s", serverS_path, 0, 0);
|
||||
PRMSG(1,"SCOOpenServer: failed to open %s\n", serverS_path, 0, 0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1319,30 +1355,22 @@ TRANS(SCOOpenServer)(XtransConnInfo ciptr, char *port)
|
||||
mylock.l_start = 0;
|
||||
mylock.l_len = 0;
|
||||
if (fcntl (fds, F_SETLK, &mylock) < 0) {
|
||||
PRMSG(1,"SCOOpenServer: failed to lock %s", serverS_path, 0, 0);
|
||||
PRMSG(1,"SCOOpenServer: failed to lock %s\n", serverS_path, 0, 0);
|
||||
close (fds);
|
||||
return -1;
|
||||
}
|
||||
|
||||
fdr = open (serverR_path, O_RDWR | O_NDELAY);
|
||||
if (fds < 0) {
|
||||
PRMSG(1,"SCOOpenServer: failed to open %s", serverR_path, 0, 0);
|
||||
PRMSG(1,"SCOOpenServer: failed to open %s\n", serverR_path, 0, 0);
|
||||
close (fds);
|
||||
return -1;
|
||||
}
|
||||
#endif /* X11_t */
|
||||
|
||||
sbuf.databuf.maxlen = 0;
|
||||
sbuf.databuf.len = -1;
|
||||
sbuf.databuf.buf = NULL;
|
||||
sbuf.ctlbuf.maxlen = sizeof(long);
|
||||
sbuf.ctlbuf.len = sizeof(long);
|
||||
sbuf.ctlbuf.buf = (caddr_t)&temp;
|
||||
sbuf.offset = 0;
|
||||
sbuf.flags = 0;
|
||||
sbuf.fildes = fdr;
|
||||
|
||||
if (ioctl(fds, I_FDINSERT, &sbuf) < 0) {
|
||||
PRMSG(1,"SCOOpenServer: ioctl(I_FDINSERT) failed on %s", serverS_path, 0, 0);
|
||||
if (connect_spipe(fds, fdr)) {
|
||||
PRMSG(1,"SCOOpenServer: ioctl(I_FDINSERT) failed on %s\n",
|
||||
serverS_path, 0, 0);
|
||||
close (fdr);
|
||||
close (fds);
|
||||
return -1;
|
||||
@@ -1352,7 +1380,9 @@ TRANS(SCOOpenServer)(XtransConnInfo ciptr, char *port)
|
||||
* Everything looks good: fill in the XtransConnInfo structure.
|
||||
*/
|
||||
|
||||
#if defined(X11_t) && defined(__SCO__)
|
||||
ciptr->flags |= TRANS_NOUNLINK;
|
||||
#endif
|
||||
if (TRANS(FillAddrInfo) (ciptr, serverS_path, serverR_path) == 0) {
|
||||
PRMSG(1,"SCOOpenServer: failed to fill in addr info\n", 0,0,0);
|
||||
close(fds);
|
||||
@@ -1370,35 +1400,23 @@ TRANS(SCOAccept)(XtransConnInfo ciptr, XtransConnInfo newciptr, int *status)
|
||||
{
|
||||
char c;
|
||||
int fd;
|
||||
long temp;
|
||||
struct strfdinsert sbuf;
|
||||
|
||||
PRMSG(2,"SCOAccept(%d)\n", ciptr->fd, 0,0 );
|
||||
|
||||
if (read(ciptr->fd, &c, 1) < 0) {
|
||||
PRMSG(1,"SCOAccept: can't read from client",0,0,0);
|
||||
PRMSG(1,"SCOAccept: can't read from client\n",0,0,0);
|
||||
*status = TRANS_ACCEPT_MISC_ERROR;
|
||||
return(-1);
|
||||
}
|
||||
|
||||
if( (fd = open(DEV_SPX, O_RDWR)) < 0 ) {
|
||||
PRMSG(1,"SCOAccept: can't open \"%s\"",DEV_SPX, 0,0 );
|
||||
PRMSG(1,"SCOAccept: can't open \"%s\"\n",DEV_SPX, 0,0 );
|
||||
*status = TRANS_ACCEPT_MISC_ERROR;
|
||||
return(-1);
|
||||
}
|
||||
|
||||
sbuf.databuf.maxlen = 0;
|
||||
sbuf.databuf.len = -1;
|
||||
sbuf.databuf.buf = NULL;
|
||||
sbuf.ctlbuf.maxlen = sizeof(long);
|
||||
sbuf.ctlbuf.len = sizeof(long);
|
||||
sbuf.ctlbuf.buf = (caddr_t)&temp;
|
||||
sbuf.offset = 0;
|
||||
sbuf.flags = 0;
|
||||
sbuf.fildes = fd;
|
||||
|
||||
if (ioctl(ciptr->fd, I_FDINSERT, &sbuf) < 0) {
|
||||
PRMSG(1,"SCOAccept: ioctl(I_FDINSERT) failed", 0, 0, 0);
|
||||
if (connect_spipe (ciptr->fd, fd) < 0) {
|
||||
PRMSG(1,"SCOAccept: ioctl(I_FDINSERT) failed\n", 0, 0, 0);
|
||||
close (fd);
|
||||
*status = TRANS_ACCEPT_MISC_ERROR;
|
||||
return -1;
|
||||
@@ -1419,7 +1437,9 @@ TRANS(SCOAccept)(XtransConnInfo ciptr, XtransConnInfo newciptr, int *status)
|
||||
}
|
||||
|
||||
memcpy(newciptr->addr,ciptr->addr,newciptr->addrlen);
|
||||
#if defined(__SCO__)
|
||||
newciptr->flags |= TRANS_NOUNLINK;
|
||||
#endif
|
||||
|
||||
newciptr->peeraddrlen=newciptr->addrlen;
|
||||
if( (newciptr->peeraddr=(char *)xalloc(newciptr->peeraddrlen)) == NULL ) {
|
||||
@@ -1522,7 +1542,7 @@ TRANS(NAMEDReopenServer)(XtransConnInfo ciptr, int fd, char *port)
|
||||
}
|
||||
|
||||
#ifndef sun
|
||||
#ifndef SCO325
|
||||
#if !defined(__SCO__) && !defined(__UNIXWARE__)
|
||||
static int
|
||||
TRANS(ISCReopenServer)(XtransConnInfo ciptr, int fd, char *port)
|
||||
|
||||
@@ -1550,7 +1570,7 @@ TRANS(ISCReopenServer)(XtransConnInfo ciptr, int fd, char *port)
|
||||
|
||||
#endif /* !ISCDEVNODENAME */
|
||||
}
|
||||
#endif /* !SCO325 */
|
||||
#endif /* !__SCO__ && !__UNIXWARE__ */
|
||||
|
||||
static int
|
||||
TRANS(SCOReopenServer)(XtransConnInfo ciptr, int fd, char *port)
|
||||
@@ -1561,15 +1581,19 @@ TRANS(SCOReopenServer)(XtransConnInfo ciptr, int fd, char *port)
|
||||
#endif
|
||||
|
||||
PRMSG(2,"SCOReopenServer(%s)\n", port, 0,0 );
|
||||
if (!port || !port[0])
|
||||
port = "0";
|
||||
|
||||
#if !defined(SCORNODENAME)
|
||||
PRMSG(1,"SCOReopenServer: Protocol is not supported by a SCO connection\n", 0,0,0);
|
||||
PRMSG(2,"SCOReopenServer: Protocol is not supported by a SCO connection\n", 0,0,0);
|
||||
return 0;
|
||||
#else
|
||||
(void) sprintf(serverR_path, SCORNODENAME, port);
|
||||
(void) sprintf(serverS_path, SCOSNODENAME, port);
|
||||
|
||||
#if defined(X11_t) && defined(__SCO__)
|
||||
ciptr->flags |= TRANS_NOUNLINK;
|
||||
#endif
|
||||
if (TRANS(FillAddrInfo) (ciptr, serverS_path, serverR_path) == 0)
|
||||
{
|
||||
PRMSG(1, "SCOReopenServer: failed to fill in addr info\n", 0,0,0);
|
||||
@@ -1791,7 +1815,7 @@ static LOCALtrans2dev LOCALtrans2devtab[] = {
|
||||
#endif /* SVR4 */
|
||||
|
||||
#ifndef sun
|
||||
#ifndef SCO325
|
||||
#if !defined(__SCO__) && !defined(__UNIXWARE__)
|
||||
{"isc",
|
||||
#ifdef TRANS_CLIENT
|
||||
TRANS(ISCOpenClient),
|
||||
@@ -1813,7 +1837,7 @@ static LOCALtrans2dev LOCALtrans2devtab[] = {
|
||||
TRANS(ISCAccept)
|
||||
#endif /* TRANS_SERVER */
|
||||
},
|
||||
#endif /* !SCO325 */
|
||||
#endif /* !__SCO__ && !__UNIXWARE__ */
|
||||
|
||||
{"sco",
|
||||
#ifdef TRANS_CLIENT
|
||||
@@ -1845,8 +1869,10 @@ static char *XLOCAL=NULL;
|
||||
static char *workingXLOCAL=NULL;
|
||||
static char *freeXLOCAL=NULL;
|
||||
|
||||
#ifdef SCO325
|
||||
#if defined(__SCO__)
|
||||
#define DEF_XLOCAL "SCO:UNIX:PTS"
|
||||
#elif defined(__UNIXWARE__)
|
||||
#define DEF_XLOCAL "UNIX:PTS:NAMED:SCO"
|
||||
#else
|
||||
#define DEF_XLOCAL "UNIX:PTS:NAMED:ISC:SCO"
|
||||
#endif
|
||||
@@ -2396,7 +2422,7 @@ TRANS(LocalBytesReadable)(XtransConnInfo ciptr, BytesReadable_t *pend )
|
||||
{
|
||||
PRMSG(2,"LocalBytesReadable(%x->%d,%x)\n", ciptr, ciptr->fd, pend);
|
||||
|
||||
#if defined(ISC) || defined(SCO)
|
||||
#if defined(ISC) || defined(SCO325)
|
||||
return ioctl(ciptr->fd, I_NREAD, (char *)pend);
|
||||
#else
|
||||
return ioctl(ciptr->fd, FIONREAD, (char *)pend);
|
||||
@@ -2504,7 +2530,7 @@ static char * local_aliases[] = {
|
||||
# endif
|
||||
"named",
|
||||
# ifndef sun
|
||||
# ifndef SCO325
|
||||
# if !defined(__SCO__) && !defined(__UNIXWARE__)
|
||||
"isc",
|
||||
# endif
|
||||
"sco",
|
||||
@@ -2637,7 +2663,7 @@ Xtransport TRANS(NAMEDFuncs) = {
|
||||
};
|
||||
|
||||
#ifndef sun
|
||||
#ifndef SCO325
|
||||
#if !defined(__SCO__) && !defined(__UNIXWARE__)
|
||||
Xtransport TRANS(ISCFuncs) = {
|
||||
/* Local Interface */
|
||||
"isc",
|
||||
@@ -2677,7 +2703,7 @@ Xtransport TRANS(ISCFuncs) = {
|
||||
TRANS(LocalClose),
|
||||
TRANS(LocalCloseForCloning),
|
||||
};
|
||||
#endif /* !SCO325 */
|
||||
#endif /* !__SCO__ && !__UNIXWARE__ */
|
||||
Xtransport TRANS(SCOFuncs) = {
|
||||
/* Local Interface */
|
||||
"sco",
|
||||
|
||||
18
Xtranssock.c
18
Xtranssock.c
@@ -99,11 +99,11 @@ from the copyright holders.
|
||||
#endif /* !NO_TCP_H */
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#if defined(SVR4) && !defined(SCO325) && !defined(DGUX) && !defined(_SEQUENT_)
|
||||
#if defined(SVR4) && !defined(DGUX) && !defined(_SEQUENT_)
|
||||
#include <sys/filio.h>
|
||||
#endif
|
||||
|
||||
#if (defined(i386) && defined(SYSV)) && !defined(sco) && !defined(sun)
|
||||
#if (defined(i386) && defined(SYSV)) && !defined(SCO325) && !defined(sun)
|
||||
#include <net/errno.h>
|
||||
#endif
|
||||
|
||||
@@ -330,7 +330,7 @@ TRANS(SocketINETGetAddr) (XtransConnInfo ciptr)
|
||||
#endif
|
||||
struct sockaddr_in socknamev4;
|
||||
void *socknamePtr;
|
||||
#if defined(SVR4) || defined(SCO325)
|
||||
#if defined(SVR4) || defined(__SCO__)
|
||||
size_t namelen;
|
||||
#else
|
||||
int namelen;
|
||||
@@ -405,7 +405,7 @@ TRANS(SocketINETGetPeerAddr) (XtransConnInfo ciptr)
|
||||
#endif
|
||||
struct sockaddr_in socknamev4;
|
||||
void *socknamePtr;
|
||||
#if defined(SVR4) || defined(SCO325)
|
||||
#if defined(SVR4) || defined(__SCO__)
|
||||
size_t namelen;
|
||||
#else
|
||||
int namelen;
|
||||
@@ -1103,7 +1103,7 @@ TRANS(SocketUNIXCreateListener) (XtransConnInfo ciptr, char *port,
|
||||
sprintf (sockname.sun_path, "%s%ld", UNIX_PATH, (long)getpid());
|
||||
}
|
||||
|
||||
#if defined(BSD44SOCKETS) && !defined(Lynx)
|
||||
#if (defined(BSD44SOCKETS) || defined(__UNIXWARE__)) && !defined(Lynx)
|
||||
sockname.sun_len = strlen(sockname.sun_path);
|
||||
namelen = SUN_LEN(&sockname);
|
||||
#else
|
||||
@@ -1167,7 +1167,7 @@ TRANS(SocketUNIXResetListener) (XtransConnInfo ciptr)
|
||||
|
||||
if (stat (unsock->sun_path, &statb) == -1 ||
|
||||
((statb.st_mode & S_IFMT) !=
|
||||
#if (defined (sun) && defined(SVR4)) || defined(NCR) || defined(SCO) || defined(sco) || !defined(S_IFSOCK)
|
||||
#if (defined (sun) && defined(SVR4)) || defined(NCR) || defined(SCO325) || !defined(S_IFSOCK)
|
||||
S_IFIFO))
|
||||
#else
|
||||
S_IFSOCK))
|
||||
@@ -1312,7 +1312,7 @@ TRANS(SocketUNIXAccept) (XtransConnInfo ciptr, int *status)
|
||||
{
|
||||
XtransConnInfo newciptr;
|
||||
struct sockaddr_un sockname;
|
||||
#if defined(SVR4) || defined(SCO325)
|
||||
#if defined(SVR4) || defined(__SCO__)
|
||||
size_t namelen = sizeof sockname;
|
||||
#else
|
||||
int namelen = sizeof sockname;
|
||||
@@ -1993,7 +1993,7 @@ TRANS(SocketUNIXConnect) (XtransConnInfo ciptr, char *host, char *port)
|
||||
return TRANS_CONNECT_FAILED;
|
||||
}
|
||||
|
||||
#if defined(BSD44SOCKETS) && !defined(Lynx)
|
||||
#if (defined(BSD44SOCKETS) || defined(__UNIXWARE__)) && !defined(Lynx)
|
||||
sockname.sun_len = strlen (sockname.sun_path);
|
||||
namelen = SUN_LEN (&sockname);
|
||||
#else
|
||||
@@ -2109,7 +2109,7 @@ TRANS(SocketBytesReadable) (XtransConnInfo ciptr, BytesReadable_t *pend)
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
#if (defined(i386) && defined(SYSV) && !defined(sco)) || (defined(_SEQUENT_) && _SOCKET_VERSION == 1)
|
||||
#if (defined(i386) && defined(SYSV) && !defined(SCO325)) || (defined(_SEQUENT_) && _SOCKET_VERSION == 1)
|
||||
return ioctl (ciptr->fd, I_NREAD, (char *) pend);
|
||||
#else
|
||||
#if defined(__UNIXOS2__)
|
||||
|
||||
@@ -192,6 +192,13 @@ TRANS(ConvertAddress)(int *familyp, int *addrlenp, Xtransaddr **addrp)
|
||||
}
|
||||
#endif /* defined(UNIXCONN) || defined(LOCALCONN) || defined(OS2PIPECONN)*/
|
||||
|
||||
#if (defined(__SCO__) || defined(__UNIXWARE__)) && defined(LOCALCONN)
|
||||
case 0:
|
||||
{
|
||||
*familyp=FamilyLocal;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
default:
|
||||
PRMSG(1,"ConvertAddress: Unknown family type %d\n",
|
||||
|
||||
Reference in New Issue
Block a user