Commit b5bfd3a4 authored by Ulrich Sibiller's avatar Ulrich Sibiller Committed by Mike Gabriel

remove DECnet support

just as Xorg upstream did
parent a9b145d4
......@@ -378,9 +378,6 @@ XCOMM the platform-specific parameters - edit site.def to change
#ifndef HasStreams
#define HasStreams !HasSockets
#endif
#ifndef HasDECnet
#define HasDECnet NO
#endif
#ifndef HasPoll
#if SystemV || SystemV4
#define HasPoll YES
......
......@@ -53,7 +53,6 @@ Imake.tmpl provides defaults for the following variables:
HasCodeCenter boolean for system has CodeCenter
HasCookieMaker boolean for system has xauth cookie generator
HasCplusplus system has a C++ compiler?
HasDECnet system has DECnet?
HasFortran boolean for system has Fortran compiler
HasGcc boolean for system has GNU gcc compiler
HasGcc2 boolean for system has GNU gcc 2.x compiler
......
......@@ -355,18 +355,11 @@ XORGRELSTRING = XorgManVersionString
#ifndef IPv6SocketsAlsoIPv4
#define IPv6SocketsAlsoIPv4 YES
#endif
#ifndef DECnetFlags
#if HasDECnet
#define DECnetFlags -DDNETCONN
#else
#define DECnetFlags
#endif
#endif
#ifndef ConnectionFlags
#if HasStreams
#define ConnectionFlags -DSTREAMSCONN
#else
#define ConnectionFlags -DTCPCONN -DUNIXCONN DECnetFlags
#define ConnectionFlags -DTCPCONN -DUNIXCONN
#endif
#endif
#if HasStickyDirBit
......
......@@ -430,13 +430,6 @@
#endif /* #if defined(LinuxArchitecture) */
/*
* If you have Linux DECnet support, and want to build XFree86 with support
* for connections over DECnet, uncomment this.
*
#define HasDECnet YES
*/
/*
* To build static and shared libraries with debugging information, uncomment
* this. Assumes you have Gcc2.
* (If you don't have Gcc2, you can use the DebugLib{X11,...} variables
......
......@@ -861,15 +861,8 @@ XCOMM binutils: (LinuxBinUtilsMajorVersion)
#define PamMiscLibraries -lpam_misc
#endif
#ifndef HasDECnet
#define HasDECnet NO
#endif
#if HasDECnet
# define ConnectionFlags -DUNIXCONN -DTCPCONN -DDNETCONN
# define ExtraLibraries -ldnet
#else
# define ConnectionFlags -DUNIXCONN -DTCPCONN
#endif
#define ConnectionFlags -DUNIXCONN -DTCPCONN
/* Some of these man page defaults are overriden in the above OS sections */
#ifndef ManSuffix
......
......@@ -276,13 +276,6 @@
#define HasXdmAuth YES
/*
* If you have Linux DECnet support, and want to build XFree86 with support
* for connections over DECnet, uncomment this.
*
#define HasDECnet YES
*/
/*
* To build static and shared libraries with debugging information, uncomment
* this. Assumes you have Gcc2.
* (If you don't have Gcc2, you can use the DebugLib{X11,...} variables
......
......@@ -145,14 +145,15 @@ static char *copystring (const char *src, int len)
*
* [protocol/] [hostname] : [:] displaynumber [.screennumber]
*
* A string with exactly two colons seperating hostname from the display
* indicates a DECnet style name. Colons in the hostname may occur if an
* IPv6 numeric address is used as the hostname. An IPv6 numeric address
* may also end in a double colon, so three colons in a row indicates an
* IPv6 address ending in :: followed by :display. To make it easier for
* people to read, an IPv6 numeric address hostname may be surrounded by
* [ ] in a similar fashion to the IPv6 numeric address URL syntax defined
* by IETF RFC 2732.
* A string with exactly two colons seperating hostname from the
* display indicates a (now unsupported) DECnet style name. Colons in
* the hostname may occur if an IPv6 numeric address is used as the
* hostname. An IPv6 numeric address may also end in a double colon,
* so three colons in a row indicates an IPv6 address ending in ::
* followed by :display. To make it easier for people to read, an
* IPv6 numeric address hostname may be surrounded by [ ] in a similar
* fashion to the IPv6 numeric address URL syntax defined by IETF RFC
* 2732.
*
* If no hostname and no protocol is specified, the string is interpreted
* as the most efficient local connection to a server on the same machine.
......@@ -188,7 +189,6 @@ _X11TransConnectDisplay (
char *phostname = NULL; /* start of host of display */
char *pdpynum = NULL; /* start of dpynum of display */
char *pscrnum = NULL; /* start of screen of display */
Bool dnet = False; /* if true, then DECnet format */
int idisplay = 0; /* required display number */
int iscreen = 0; /* optional screen number */
/* int (*connfunc)(); */ /* method to create connection */
......@@ -318,6 +318,7 @@ _X11TransConnectDisplay (
* or two colons in the case of DECnet (DECnet Phase V allows a single
* colon in the hostname). (See note above regarding IPv6 numeric
* addresses with triple colons or [] brackets.)
* FIXME: we do not support DECnet anymore, so maybe remove these checks?
*/
lastp = p;
......@@ -335,16 +336,7 @@ _X11TransConnectDisplay (
) {
/* DECnet display specified */
#ifndef DNETCONN
goto bad;
#else
dnet = True;
/* override the protocol specified */
if (pprotocol)
Xfree (pprotocol);
pprotocol = copystring ("dnet", 4);
hostlen = lastc - 1 - lastp;
#endif
}
else
hostlen = lastc - lastp;
......@@ -482,7 +474,6 @@ _X11TransConnectDisplay (
* phostname hostname string or NULL
* idisplay display number
* iscreen screen number
* dnet DECnet boolean
*
* We can now decide which transport to use based on the ConnectionFlags
* build parameter the hostname string. If phostname is NULL or equals
......@@ -654,7 +645,7 @@ _X11TransConnectDisplay (
original_hostname = NULL;
}
#endif
len = ((phostname ? strlen(phostname) : 0) + 1 + (dnet ? 1 : 0) +
len = ((phostname ? strlen(phostname) : 0) + 1 +
strlen(pdpynum) + 1 + (pscrnum ? strlen(pscrnum) : 1) + 1);
*fullnamep = (char *) Xmalloc (len);
if (!*fullnamep) goto bad;
......@@ -663,13 +654,13 @@ _X11TransConnectDisplay (
if (phostname && strlen(phostname) > 11 && !strncmp(phostname, "/tmp/launch", 11))
sprintf (*fullnamep, "%s%s%d",
(phostname ? phostname : ""),
(dnet ? "::" : ":"),
":",
idisplay);
else
#endif
sprintf (*fullnamep, "%s%s%d.%d",
(phostname ? phostname : ""),
(dnet ? "::" : ":"),
":",
idisplay, iscreen);
*dpynump = idisplay;
......@@ -1419,13 +1410,6 @@ GetAuthorization(
break;
}
#endif /* AF_UNIX */
#ifdef AF_DECnet
case AF_DECnet:
/*
* What is the defined encoding for this?
*/
break;
#endif /* AF_DECnet */
default:
/*
* Need to return some kind of errro status here.
......
......@@ -9,7 +9,6 @@ DEFINES = $(FAILDEFINES)
HEADERS = \
Xtrans.h \
Xtrans.c \
Xtransdnet.c \
Xtransint.h \
Xtranslcl.c \
Xtransos2.c \
......
......@@ -93,9 +93,6 @@ 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 },
......@@ -206,7 +203,6 @@ TRANS(ParseAddress) (char *address, char **protocol, char **host, char **port)
*
* If the protocol part is missing, then assume TCP.
* If the protocol part and host part are missing, then assume local.
* If a "::" is found then assume DNET.
*/
char *mybuf, *tmpptr;
......@@ -289,22 +285,6 @@ TRANS(ParseAddress) (char *address, char **protocol, char **host, char **port)
return 0;
}
/* Check for DECnet */
if ((mybuf != _host) && (*(mybuf - 1) == ':')
#if defined(IPv6) && defined(AF_INET6)
/* An IPv6 address can end in :: so three : in a row is assumed to be
an IPv6 host and not a DECnet node with a : in it's name, unless
DECnet is specifically requested */
&& ( ((mybuf - 1) == _host) || (*(mybuf - 2) != ':') ||
((_protocol != NULL) && (strcmp(_protocol, "dnet") == 0)) )
#endif
)
{
_protocol = "dnet";
*(mybuf - 1) = '\0';
}
*mybuf ++= '\0';
_host_len = strlen(_host);
......@@ -420,7 +400,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);
......
......@@ -481,7 +481,7 @@ TRANS(GetHostname) (
int /* maxlen */
);
#if defined(WIN32) && (defined(TCPCONN) || defined(DNETCONN))
#if defined(WIN32) && defined(TCPCONN)
int TRANS(WSAStartup)();
#endif
......
/*
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 <nx-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 *) malloc (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 *) malloc (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) calloc (
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) calloc (
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)
{
free ((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) calloc (
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) calloc (
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) calloc (
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) calloc(
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);
free (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);
free (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) free (newciptr->addr);
free (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),
};
......@@ -158,20 +158,6 @@ 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)
case AF_UNIX:
......@@ -297,18 +283,6 @@ TRANS(GetMyNetworkId) (XtransConnInfo ciptr)
}
#endif /* defined(TCPCONN) || defined(STREAMSCONN) */
#if defined(DNETCONN)
case AF_DECnet:
{
struct sockaddr_dn *saddr = (struct sockaddr_dn *) addr;
networkId = (char *) malloc (
13 + strlen (hostnamebuf) + saddr->sdn_objnamel);
sprintf (networkId, "dnet/%s::%s",
hostnamebuf, saddr->sdn_objname);
break;
}
#endif /* defined(DNETCONN) */
default:
break;
......@@ -429,22 +403,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)) {
sprintf(addrbuf, "%s:", np->n_name);
} else {
sprintf(addrbuf, "%s:", dnet_htoa(&saddr->sdn_add));
}
addr = addrbuf;
break;
}
#endif /* defined(DNETCONN) */
default:
return (NULL);
......@@ -464,7 +422,7 @@ TRANS(GetPeerNetworkId) (XtransConnInfo ciptr)
#endif /* ICE_t */
#if defined(WIN32) && (defined(TCPCONN) || defined(DNETCONN))
#if defined(WIN32) && defined(TCPCONN)
int
TRANS(WSAStartup) (void)
{
......
......@@ -61,9 +61,6 @@ from The Open Group.
#include "Xtransint.h"
#ifdef DNETCONN
#include "Xtransdnet.c"
#endif
#ifdef LOCALCONN
#include "Xtranslcl.c"
#endif
......
......@@ -852,7 +852,7 @@ property Woo-Hoo OhBoy = "*son" ad
.fi
.SH "NETWORK CONNECTIONS"
The X server supports client connections via a platform-dependent subset of
the following transport types: TCP\/IP, Unix Domain sockets, DECnet,
the following transport types: TCP\/IP, Unix Domain sockets
and several varieties of SVR4 local connections. See the DISPLAY
NAMES section of the \fIX\fP(__miscmansuffix__) manual page to learn how to
specify which transport type clients should try to use.
......@@ -882,9 +882,9 @@ If no other authorization mechanism is being used,
this list initially consists of the host on which the server is running as
well as any machines listed in the file \fI/etc/X\fBn\fI.hosts\fR, where
\fBn\fP is the display number of the server. Each line of the file should
contain either an Internet hostname (e.g. expo.lcs.mit.edu) or a DECnet
hostname in double colon format (e.g. hydra::) or a complete name in the format
\fIfamily\fP:\fIname\fP as described in the \fIxhost\fP(1) manual page.
contain either an Internet hostname (e.g. expo.lcs.mit.edu) or a complete
name in the format \fIfamily\fP:\fIname\fP as described in the
\fIxhost\fP(1) manual page.
There should be no leading or trailing spaces on any lines. For example:
.sp
.in +8
......
......@@ -87,10 +87,6 @@ SOFTWARE.
#if defined(TCPCONN) || defined(STREAMSCONN) || defined(ISC) || defined(__SCO__)
#include <netinet/in.h>
#endif /* TCPCONN || STREAMSCONN || ISC || __SCO__ */
#ifdef DNETCONN
#include <netdnet/dn.h>
#include <netdnet/dnetdb.h>
#endif
#ifdef HAS_GETPEERUCRED
# include <ucred.h>
......@@ -740,35 +736,6 @@ DefineSelf (int fd)
int family;
register HOST *host;
#ifdef DNETCONN
struct dn_naddr *dnaddr = getnodeadd();
/*
* AF_DECnet may not be listed in the interface list. Instead use
* the supported library call to find out the local address (if any).
*/
if (dnaddr)
{
addr = (unsigned char *) dnaddr;
len = dnaddr->a_len + sizeof(dnaddr->a_len);
family = FamilyDECnet;
for (host = selfhosts;
host && !addrEqual (family, addr, len, host);
host = host->next)
;
if (!host)
{
MakeHost(host,len)
if (host)
{
host->family = family;
host->len = len;
acopy(addr, host->addr, len);
host->next = selfhosts;
selfhosts = host;
}
}
}
#endif /* DNETCONN */
#ifndef HAS_GETIFADDRS
len = sizeof(buf);
......@@ -823,13 +790,6 @@ DefineSelf (int fd)
len = ifraddr_size (IFR_IFR_ADDR);
family = ConvertAddr ((struct sockaddr *) &IFR_IFR_ADDR,
&len, (void **)&addr);
#ifdef DNETCONN
/*
* DECnet was handled up above.
*/
if (family == AF_DECnet)
continue;
#endif /* DNETCONN */
if (family == -1 || family == FamilyLocal)
continue;
#if defined(IPv6) && defined(AF_INET6)
......@@ -975,10 +935,6 @@ DefineSelf (int fd)
return;
}
for (ifr = ifap; ifr != NULL; ifr = ifr->ifa_next) {
#ifdef DNETCONN
if (ifr->ifa_addr.sa_family == AF_DECnet)
continue;
#endif /* DNETCONN */
len = sizeof(*(ifr->ifa_addr));
family = ConvertAddr(ifr->ifa_addr, &len, (void **)&addr);
if (family == -1 || family == FamilyLocal)
......@@ -1155,21 +1111,14 @@ ResetHosts (char *display)
char *ptr;
int i, hostlen;
#if ((defined(TCPCONN) || defined(STREAMSCONN) || defined(MNX_TCPCONN)) && \
(!defined(IPv6) || !defined(AF_INET6))) || defined(DNETCONN)
(!defined(IPv6) || !defined(AF_INET6)))
union {
struct sockaddr sa;
#if defined(TCPCONN) || defined(STREAMSCONN) || defined(MNX_TCPCONN)
struct sockaddr_in in;
#endif /* TCPCONN || STREAMSCONN */
#ifdef DNETCONN
struct sockaddr_dn dn;
#endif
} saddr;
#endif
#ifdef DNETCONN
struct nodeent *np;
struct dn_naddr dnaddr, *dnaddrp, *dnet_addr();
#endif
int family = 0;
void *addr = NULL;
int len;
......@@ -1231,13 +1180,6 @@ ResetHosts (char *display)
}
#endif
#endif
#ifdef DNETCONN
else if (!strncmp("dnet:", lhostname, 5))
{
family = FamilyDECnet;
hostname = ohostname + 5;
}
#endif
#ifdef SECURE_RPC
else if (!strncmp("nis:", lhostname, 4))
{
......@@ -1261,32 +1203,6 @@ ResetHosts (char *display)
}
}
else
#ifdef DNETCONN
if ((family == FamilyDECnet) || ((family == FamilyWild) &&
(ptr = strchr(hostname, ':')) && (*(ptr + 1) == ':') &&
!(*ptr = '\0'))) /* bash trailing colons if necessary */
{
/* node name (DECnet names end in "::") */
dnaddrp = dnet_addr(hostname);
if (!dnaddrp && (np = getnodebyname (hostname)))
{
/* node was specified by name */
saddr.sa.sa_family = np->n_addrtype;
len = sizeof(saddr.sa);
if (ConvertAddr (&saddr.sa, &len, (void **)&addr) == FamilyDECnet)
{
bzero ((char *) &dnaddr, sizeof (dnaddr));
dnaddr.a_len = np->n_length;
acopy (np->n_addr, dnaddr.a_addr, np->n_length);
dnaddrp = &dnaddr;
}
}
if (dnaddrp)
(void) NewHost(FamilyDECnet, (void *)dnaddrp,
(int)(dnaddrp->a_len + sizeof(dnaddrp->a_len)), FALSE);
}
else
#endif /* DNETCONN */
#ifdef SECURE_RPC
if ((family == FamilyNetname) || (strchr(hostname, '@')))
{
......@@ -1542,7 +1458,6 @@ AddHost (ClientPtr client,
#if defined(IPv6) && defined(AF_INET6)
case FamilyInternet6:
#endif
case FamilyDECnet:
case FamilyChaos:
case FamilyServerInterpreted:
if ((len = CheckAddr (family, pAddr, length)) < 0)
......@@ -1639,7 +1554,6 @@ RemoveHost (
#if defined(IPv6) && defined(AF_INET6)
case FamilyInternet6:
#endif
case FamilyDECnet:
case FamilyChaos:
case FamilyServerInterpreted:
if ((len = CheckAddr (family, pAddr, length)) < 0)
......@@ -1744,21 +1658,6 @@ CheckAddr (
break;
#endif
#endif
#ifdef DNETCONN
case FamilyDECnet:
{
struct dn_naddr *dnaddr = (struct dn_naddr *) pAddr;
if ((length < sizeof(dnaddr->a_len)) ||
(length < dnaddr->a_len + sizeof(dnaddr->a_len)))
len = -1;
else
len = dnaddr->a_len + sizeof(dnaddr->a_len);
if (len > sizeof(struct dn_naddr))
len = -1;
}
break;
#endif
case FamilyServerInterpreted:
len = siCheckAddr(pAddr, length);
break;
......@@ -1861,15 +1760,6 @@ ConvertAddr (
}
#endif
#endif
#ifdef DNETCONN
case AF_DECnet:
{
struct sockaddr_dn *sdn = (struct sockaddr_dn *) saddr;
*len = sdn->sdn_nodeaddrl + sizeof(sdn->sdn_nodeaddrl);
*addr = (void *) &(sdn->sdn_add);
}
return FamilyDECnet;
#endif
#ifdef CHAOSCONN
case AF_CHAOS:
{
......
......@@ -156,10 +156,6 @@ extern __const__ int _nfiles;
#define Pid_t pid_t
#endif
#ifdef DNETCONN
#include <netdnet/dn.h>
#endif /* DNETCONN */
int lastfdesc; /* maximum file descriptor */
fd_set WellKnownConnections; /* Listener mask */
......@@ -620,12 +616,6 @@ AuthAudit (ClientPtr client, Bool letin,
break;
#endif
#endif
#ifdef DNETCONN
case AF_DECnet:
sprintf(out, "DN %s",
dnet_ntoa(&((struct sockaddr_dn *) saddr)->sdn_add));
break;
#endif
default:
strcpy(out, "unknown address");
}
......
......@@ -1572,7 +1572,7 @@ get_addr_by_name(
#ifdef XTHREADS_NEEDS_BYNAMEPARAMS
_Xgethostbynameparams hparams;
#endif
#if defined(WIN32) && (defined(TCPCONN) || defined(DNETCONN))
#if defined(WIN32) && defined(TCPCONN)
_XSERVTransWSAStartup();
#endif
if (!(hep = _XGethostbyname(namestr, hparams)))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment