Sprout from master 1999-10-14 15:34:55 UTC Jan Rękorajski <baggins@pld-linux.org> '- 3.9.16'
Delete:
XFree86-HasZlib.patch
XFree86-IPv6.patch
XFree86-XF86Config-path.patch
XFree86-XF86Setup-fonts.patch
XFree86-alpha-sockets.patch
XFree86-fixiso8859-2.patch
XFree86-fsstnd.patch
XFree86-joy.patch
XFree86-ncurses.patch
XFree86-nosuidxterm.patch
XFree86-pam.patch
XFree86-rh.patch
XFree86-rhxdm.patch
XFree86-ru_SU.patch
XFree86-voodoo-Rush.patch
XFree86-xdm+pam_env.patch
XFree86-xfsredhat.patch
XFree86-xinitrace.patch
XFree86-xterm-color.patch
XTerm.ad-pl
twm.desktop
xdm.initd
xdm.pamd
xfs.config
xfs.initd
xserver.pamd
+++ /dev/null
---- XFree86-3.3.2.3/xc/config/cf/linux.cf~ Sun Aug 30 15:23:40 1998
-+++ XFree86-3.3.2.3/xc/config/cf/linux.cf Sun Aug 30 15:25:09 1998
-@@ -309,3 +309,7 @@
- #ifndef XtermWithI18N
- #define XtermWithI18N YES
- #endif
-+
-+#ifndef HasZlib
-+#define HasZlib YES
-+#endif
+++ /dev/null
---- XFree86-3.3.3.1/xc/lib/SM/sm_genid.c.ipv6 Sun Oct 4 16:36:38 1998
-+++ XFree86-3.3.3.1/xc/lib/SM/sm_genid.c Thu Jun 24 12:39:44 1999
-@@ -64,6 +64,7 @@
- #define XOS_USE_NO_LOCKING
- #define X_INCLUDE_NETDB_H
- #include <X11/Xos_r.h>
-+#include <resolv.h>
- #endif
-
- #else /* WIN32 */
-@@ -137,6 +138,7 @@
-
- #if defined(TCPCONN) || defined(STREAMSCONN)
- {
-+ u_long options;
- char* inet_addr;
- char temp[4], *ptr1, *ptr2;
- unsigned char decimal[4];
-@@ -144,7 +146,13 @@
- _Xgethostbynameparams hparams;
- struct hostent *hostp;
-
-- if ((hostp = _XGethostbyname (hostname,hparams)) != NULL)
-+ if ((_res.options & RES_INIT) == 0)
-+ (void) res_init ();
-+ options = _res.options;
-+ _res.options &= ~RES_USE_INET6;
-+ hostp = _XGethostbyname (hostname,hparams);
-+ _res.options = options;
-+ if (hostp != NULL)
- inet_addr = inet_ntoa (*(struct in_addr *)(hostp->h_addr));
- else
- return NULL;
---- XFree86-3.3.3.1/xc/lib/X11/ConnDis.c.ipv6 Sat Jan 18 07:51:49 1997
-+++ XFree86-3.3.3.1/xc/lib/X11/ConnDis.c Thu Jun 24 12:39:45 1999
-@@ -163,7 +163,9 @@
-
- if (!lastc) return NULL; /* must have a colon */
-
-- if ((lastp != lastc) && (*(lastc - 1) == ':')) {
-+ /* :: is DECnet, : and ::: are IPv6 */
-+ if ((lastp != lastc) && (*(lastc - 1) == ':') &&
-+ (lastp == lastc-1 || *(lastc - 2) != ':') ) {
- /* DECnet display specified */
-
- #ifndef DNETCONN
-@@ -334,7 +336,7 @@
- _X11TransGetPeerAddr(trans_conn, &family, &saddrlen, &saddr);
-
- /*
-- * The family is given in a socket format (ie AF_INET). This
-+ * The family is given in a socket format (ie AF_INET[6]). This
- * will convert it to the format used by the authorization and
- * X protocol (ie FamilyInternet).
- */
-@@ -1026,6 +1028,21 @@
- for(i=4; i<8; i++) /* do sin_addr */
- xdmcp_data[j++] = ((char *)addr)[i];
- for(i=2; i<4; i++) /* do sin_port */
-+ xdmcp_data[j++] = ((char *)addr)[i];
-+ break;
-+ }
-+#endif /* AF_INET */
-+#ifdef AF_INET6
-+ case AF_INET6:
-+ {
-+ /*
-+ * addr will contain a sockaddr_in6 with all
-+ * of the members already in network byte order.
-+ */
-+
-+ for(i=20; i<24; i++) /* do sin6_addr last 4 bytes */
-+ xdmcp_data[j++] = ((char *)addr)[i];
-+ for(i=2; i<4; i++) /* do sin6_port */
- xdmcp_data[j++] = ((char *)addr)[i];
- break;
- }
---- XFree86-3.3.3.1/xc/lib/X11/Imakefile.ipv6 Fri Nov 6 17:32:30 1998
-+++ XFree86-3.3.3.1/xc/lib/X11/Imakefile Thu Jun 24 12:39:46 1999
-@@ -947,6 +947,7 @@
- InstallLintLibrary(X11,$(LINTLIBDIR))
-
-
-+SpecialCLibObjectRule(AuGetBest,$(ICONFIGFILES),$(CONN_DEFINES))
- LinkSourceFile(AuDispose.c,$(XAUTHSRC))
- LinkSourceFile(AuGetBest.c,$(XAUTHSRC))
- LinkSourceFile(AuFileName.c,$(XAUTHSRC))
---- XFree86-3.3.3.1/xc/lib/Xau/AuGetBest.c.ipv6 Sun Dec 22 04:20:12 1996
-+++ XFree86-3.3.3.1/xc/lib/Xau/AuGetBest.c Thu Jun 24 12:39:46 1999
-@@ -49,6 +49,32 @@
- return 1;
- }
-
-+#if defined(TCPCONN)
-+#include <netinet/in.h>
-+#include <X11/X.h>
-+#define MAPTOIPV4(a) ((char *)(a) + sizeof(struct in6_addr) - \
-+ sizeof(struct in_addr))
-+#define acmp(a1, a2, len) memcmp((char *)(a1), (char *)(a2), len)
-+static int
-+inetMapEqual (a4, l4, a6, l6)
-+ char *a4, *a6;
-+ int l4, l6;
-+{
-+ /* compare IPv4 with special IPv6 : mapped, loopback */
-+ if (l4 == sizeof(struct in6_addr) && l6 == sizeof(struct in_addr)) {
-+ char *a = a4;
-+ a4 = a6;
-+ a6 = a;
-+ } else if (l6 != sizeof(struct in6_addr) || l4 != sizeof(struct in_addr))
-+ return 0;
-+ if (IN6_IS_ADDR_V4MAPPED((struct in6_addr *)a6))
-+ return !acmp(a4, MAPTOIPV4(a6), sizeof(*a4));
-+ else
-+ return (a4[0] == 127 && a4[1] == 0 && a4[2] == 0 && a4[3] == 1 &&
-+ acmp(a6, &in6addr_loopback, sizeof(*a6)) == 0);
-+}
-+#endif
-+
- #if NeedFunctionPrototypes
- Xauth *
- XauGetBestAuthByAddr (
-@@ -147,6 +173,13 @@
- (entry->family == family &&
- ((address_length == entry->address_length &&
- binaryEqual (entry->address, address, (int)address_length))
-+#if defined(TCPCONN)
-+ || (family == FamilyInternet &&
-+ address_length != entry->address_length &&
-+ inetMapEqual ((char *)entry->address,
-+ (int)entry->address_length,
-+ (char *)address, (int)address_length))
-+#endif
- #ifdef hpux
- || (family == FamilyLocal &&
- fully_qual_address_length == entry->address_length &&
---- XFree86-3.3.3.1/xc/lib/Xau/Imakefile.ipv6 Fri Nov 6 17:32:44 1998
-+++ XFree86-3.3.3.1/xc/lib/Xau/Imakefile Thu Jun 24 12:39:46 1999
-@@ -23,6 +23,9 @@
- INCLUDES =
- #endif
-
-+ CONN_DEFINES = ConnectionFlags
-+ DEPEND_DEFINES = $(CONN_DEFINES)
-+
- HEADERS = \
- Xauth.h
-
-@@ -33,6 +36,8 @@
- AuRead.o AuUnlock.o AuWrite.o $(K5ENCOBJ)
-
- #include <Library.tmpl>
-+
-+SpecialCLibObjectRule(AuGetBest,$(ICONFIGFILES),$(CONN_DEFINES))
-
- InstallLinkKitLibrary(Xau,$(LINKKITDIR)/lib)
-
---- XFree86-3.3.3.1/xc/lib/Xmu/CvtStdSel.c.ipv6 Sat Jan 18 07:52:13 1997
-+++ XFree86-3.3.3.1/xc/lib/Xmu/CvtStdSel.c Thu Jun 24 12:39:47 1999
-@@ -225,7 +225,9 @@
- if ((hostp = _XGethostbyname (hostname,hparams)) == NULL)
- return False;
-
-- if (hostp->h_addrtype != AF_INET) return False;
-+ if ((hostp->h_addrtype != AF_INET) &&
-+ (hostp->h_addrtype != AF_INET6))
-+ return False;
- *length = hostp->h_length;
- *value = XtMalloc(*length);
- (void) memmove (*value, hostp->h_addr, *length);
---- XFree86-3.3.3.1/xc/lib/xtrans/Xtrans.c.ipv6 Thu Jun 24 12:39:35 1999
-+++ XFree86-3.3.3.1/xc/lib/xtrans/Xtrans.c Thu Jun 24 12:39:47 1999
-@@ -218,7 +218,9 @@
- *
- * If the protocol part is missing, then assume INET.
- * If the protocol part and host part are missing, then assume local.
-- * If a "::" is found then assume DNET.
-+ * If a "host::" is found then assume DNET.
-+ * For IPv6, pb with possible : in host --> use rightmost : and test
-+ * x:y->inet, x::y->dnet, x:::y->inet(v6)
- */
-
- char *mybuf, *tmpptr;
-@@ -289,7 +291,23 @@
-
- _host = mybuf;
-
-- if ((mybuf = strchr (mybuf,':')) == NULL)
-+ /* For IPv6, we need the rightmost : in the non-catalog part */
-+ {
-+ char *p;
-+#if defined(FONT_t) || defined(FS_t)
-+ char *f = strchr (mybuf, '/');
-+ if (f) *f = 0;
-+#endif
-+ p = strrchr (mybuf,':');
-+ if (p && p > mybuf && p[-1] == ':')
-+ if (p-1 == mybuf || p[-2] != ':')
-+ p--;
-+ mybuf = p;
-+#if defined(FONT_t) || defined(FS_t)
-+ if (f) *f = '/';
-+#endif
-+ }
-+ if (mybuf == NULL)
- {
- *protocol = NULL;
- *host = NULL;
---- XFree86-3.3.3.1/xc/lib/xtrans/Xtranssock.c.ipv6 Thu Jun 24 12:39:42 1999
-+++ XFree86-3.3.3.1/xc/lib/xtrans/Xtranssock.c Thu Jun 24 12:39:47 1999
-@@ -70,6 +70,7 @@
- #define X_INCLUDE_NETDB_H
- #define XOS_USE_NO_LOCKING
- #include <X11/Xos_r.h>
-+#include <resolv.h>
- #endif
-
- #ifdef UNIXCONN
-@@ -190,8 +191,8 @@
-
- static Sockettrans2dev Sockettrans2devtab[] = {
- #ifdef TCPCONN
-- {"inet",AF_INET,SOCK_STREAM,SOCK_DGRAM,0},
-- {"tcp",AF_INET,SOCK_STREAM,SOCK_DGRAM,0},
-+ {"inet",AF_INET6,SOCK_STREAM,SOCK_DGRAM,0},
-+ {"tcp",AF_INET6,SOCK_STREAM,SOCK_DGRAM,0},
- #endif /* TCPCONN */
- #ifdef UNIXCONN
- {"unix",AF_UNIX,SOCK_STREAM,SOCK_DGRAM,0},
-@@ -294,7 +295,7 @@
- XtransConnInfo ciptr;
-
- {
-- struct sockaddr_in sockname;
-+ struct sockaddr_in6 sockname;
- #if defined(SVR4) || defined(SCO325)
- size_t namelen = sizeof sockname;
- #else
-@@ -322,7 +323,7 @@
- return -1;
- }
-
-- ciptr->family = sockname.sin_family;
-+ ciptr->family = sockname.sin6_family;
- ciptr->addrlen = namelen;
- memcpy (ciptr->addr, &sockname, ciptr->addrlen);
-
-@@ -341,7 +342,7 @@
- XtransConnInfo ciptr;
-
- {
-- struct sockaddr_in sockname;
-+ struct sockaddr_in6 sockname;
- #if defined(SVR4) || defined(SCO325)
- size_t namelen = sizeof sockname;
- #else
-@@ -410,10 +411,11 @@
- }
-
- #ifdef TCP_NODELAY
-- if (Sockettrans2devtab[i].family == AF_INET)
-+ if ((Sockettrans2devtab[i].family == AF_INET) ||
-+ (Sockettrans2devtab[i].family == AF_INET6))
- {
- /*
-- * turn off TCP coalescence for INET sockets
-+ * turn off TCP coalescence for INET[6] sockets
- */
-
- int tmp = 1;
-@@ -546,10 +548,11 @@
- #ifdef SO_REUSEADDR
-
- /*
-- * SO_REUSEADDR only applied to AF_INET
-+ * SO_REUSEADDR only applied to AF_INET6
- */
-
-- if (Sockettrans2devtab[i].family == AF_INET)
-+ if ((Sockettrans2devtab[i].family == AF_INET) ||
-+ (Sockettrans2devtab[i].family == AF_INET6))
- {
- int one = 1;
- setsockopt (ciptr->fd, SOL_SOCKET, SO_REUSEADDR,
-@@ -770,7 +773,8 @@
-
- PRMSG (3, "SocketCreateListener(%x,%d)\n", ciptr, fd, 0);
-
-- if (Sockettrans2devtab[ciptr->index].family == AF_INET)
-+ if ((Sockettrans2devtab[ciptr->index].family == AF_INET) ||
-+ (Sockettrans2devtab[ciptr->index].family == AF_INET6))
- retry = 20;
- else
- retry = 0;
-@@ -793,7 +797,8 @@
- #endif /* SO_REUSEDADDR */
- }
-
-- if (Sockettrans2devtab[ciptr->index].family == AF_INET) {
-+ if ((Sockettrans2devtab[ciptr->index].family == AF_INET) ||
-+ (Sockettrans2devtab[ciptr->index].family == AF_INET)) {
- #ifdef SO_DONTLINGER
- setsockopt (fd, SOL_SOCKET, SO_DONTLINGER, (char *) NULL, 0);
- #else
-@@ -830,7 +835,7 @@
- char *port;
-
- {
-- struct sockaddr_in sockname;
-+ struct sockaddr_in6 sockname;
- int namelen = sizeof(sockname);
- int status;
- short tmpport;
-@@ -878,22 +883,23 @@
- port, 0, 0);
- return TRANS_CREATE_LISTENER_FAILED;
- }
-- sockname.sin_port = servp->s_port;
-+ sockname.sin6_port = servp->s_port;
- }
- else
- {
- tmpport = (short) atoi (port);
-- sockname.sin_port = htons (tmpport);
-+ sockname.sin6_port = htons (tmpport);
- }
- }
- else
-- sockname.sin_port = htons (0);
-+ sockname.sin6_port = htons (0);
-
- #ifdef BSD44SOCKETS
-- sockname.sin_len = sizeof (sockname);
-+ sockname.sin6_len = sizeof (sockname);
- #endif
-- sockname.sin_family = AF_INET;
-- sockname.sin_addr.s_addr = htonl (INADDR_ANY);
-+ sockname.sin6_family = AF_INET6;
-+ sockname.sin6_flowinfo = 0;
-+ sockname.sin6_addr = in6addr_any;
-
- if ((status = TRANS(SocketCreateListener) (ciptr,
- (struct sockaddr *) &sockname, namelen)) < 0)
-@@ -1095,7 +1101,7 @@
-
- {
- XtransConnInfo newciptr;
-- struct sockaddr_in sockname;
-+ struct sockaddr_in6 sockname;
- int namelen = sizeof(sockname);
-
- PRMSG (2, "SocketINETAccept(%x,%d)\n", ciptr, ciptr->fd, 0);
-@@ -1258,7 +1264,7 @@
- char *port;
-
- {
-- struct sockaddr_in sockname;
-+ struct sockaddr_in6 sockname;
- #if defined(SVR4) || defined(SCO325)
- size_t namelen = sizeof sockname;
- #else
-@@ -1268,14 +1274,15 @@
- _Xgetservbynameparams sparams;
- struct hostent *hostp;
- struct servent *servp;
-+ u_long options;
-
- #define PORTBUFSIZE 64 /* what is a real size for this? */
- char portbuf[PORTBUFSIZE];
-
- int ret;
- short tmpport;
-- unsigned long tmpaddr;
- char hostnamebuf[256]; /* tmp space */
-+ char v[64]; /* Vixie's tmp space */
-
- PRMSG (2,"SocketINETConnect(%d,%s,%s)\n", ciptr->fd, host, port);
-
-@@ -1311,67 +1318,44 @@
- */
-
- #ifdef BSD44SOCKETS
-- sockname.sin_len = sizeof (struct sockaddr_in);
-+ sockname.sin6_len = sizeof (struct sockaddr_in6);
- #endif
-- sockname.sin_family = AF_INET;
-+ sockname.sin6_family = AF_INET6;
-+ sockname.sin6_flowinfo = 0;
-
- /*
-- * fill in sin_addr
-+ * fill in sin6_addr
- */
-
-- /* check for ww.xx.yy.zz host string */
--
-- if (isascii (host[0]) && isdigit (host[0])) {
-- tmpaddr = inet_addr (host); /* returns network byte order */
-- } else {
-- tmpaddr = -1;
-- }
--
-- PRMSG (4,"SocketINETConnect: inet_addr(%s) = %x\n",
-- host, tmpaddr, 0);
-+ /* ww.xx.yy.zz host string done by _XGethostbyname() */
-
-- if (tmpaddr == -1)
-- {
-- if ((hostp = _XGethostbyname(host,hparams)) == NULL)
-- {
-- PRMSG (1,"SocketINETConnect: Can't get address for %s\n",
-- host, 0, 0);
-- ESET(EINVAL);
-- return TRANS_CONNECT_FAILED;
-- }
-- if (hostp->h_addrtype != AF_INET) /* is IP host? */
-- {
-- PRMSG (1,"SocketINETConnect: not INET host%s\n",
-- host, 0, 0);
-- ESET(EPROTOTYPE);
-- 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 */
--
-+ if ((_res.options & RES_INIT) == 0)
-+ (void)res_init();
-+ options = _res.options;
-+ _res.options |= RES_USE_INET6;
-+
-+ hostp = _XGethostbyname(host,hparams);
-+ _res.options = options;
-+ if (hostp == NULL)
-+ {
-+ PRMSG (1,"SocketINETConnect: Can't get address for %s\n",
-+ host, 0, 0);
-+ ESET(EINVAL);
-+ return TRANS_CONNECT_FAILED;
- }
--else
-+ if (hostp->h_addrtype != AF_INET6) /* is IPv6 host? */
- {
--#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 */
-+ PRMSG (1,"SocketINETConnect: not INET host%s\n",
-+ host, 0, 0);
-+ ESET(EPROTOTYPE);
-+ return TRANS_CONNECT_FAILED;
- }
-+
-+ memcpy ((char *) &sockname.sin6_addr, (char *) hostp->h_addr,
-+ sizeof (sockname.sin6_addr));
-
- /*
-- * fill in sin_port
-+ * fill in sin6_port
- */
-
- /* Check for number in the port string */
-@@ -1384,16 +1368,16 @@
- portbuf, 0, 0);
- return TRANS_CONNECT_FAILED;
- }
-- sockname.sin_port = servp->s_port;
-+ sockname.sin6_port = servp->s_port;
- }
- else
- {
- tmpport = (short) atoi (portbuf);
-- sockname.sin_port = htons (tmpport);
-+ sockname.sin6_port = htons (tmpport);
- }
-
-- PRMSG (4,"SocketINETConnect: sockname.sin_port = %d\n",
-- ntohs(sockname.sin_port), 0, 0);
-+ PRMSG (4,"SocketINETConnect: sockname.sin6_port = %d\n",
-+ ntohs(sockname.sin6_port), 0, 0);
-
- /*
- * Do the connect()
-@@ -1481,13 +1465,21 @@
- * by TRANS(GetHostname)), then the two hostnames are equivalent,
- * and we know that 'host' is really a local host.
- */
-- char specified_local_addr_list[10][4];
-+ char specified_local_addr_list[10][16];
- int scount, equiv, i, j;
- _Xgethostbynameparams hparams;
- struct hostent *hostp;
-+ u_long options;
-
-- if ((hostp = _XGethostbyname (host,hparams)) == NULL)
-+ if ((_res.options & RES_INIT) == 0)
-+ (void)res_init();
-+ options = _res.options;
-+ _res.options |= RES_USE_INET6;
-+
-+ if ((hostp = _XGethostbyname (host,hparams)) == NULL) {
-+ _res.options = options;
- return (0);
-+ }
-
- scount = 0;
- while (hostp->h_addr_list[scount] && scount <= 8)
-@@ -1497,17 +1489,14 @@
- * from the 1st call, so we must save the address list.
- */
-
-- specified_local_addr_list[scount][0] =
-- hostp->h_addr_list[scount][0];
-- specified_local_addr_list[scount][1] =
-- hostp->h_addr_list[scount][1];
-- specified_local_addr_list[scount][2] =
-- hostp->h_addr_list[scount][2];
-- specified_local_addr_list[scount][3] =
-- hostp->h_addr_list[scount][3];
-+ memcpy(specified_local_addr_list[scount],
-+ hostp->h_addr_list[scount],
-+ hostp->h_length);
- scount++;
- }
-- if ((hostp = _XGethostbyname (hostnamebuf,hparams)) == NULL)
-+ hostp = _XGethostbyname (hostnamebuf,hparams);
-+ _res.options = options;
-+ if (hostp == NULL)
- return (0);
-
- equiv = 0;
-@@ -1519,14 +1508,9 @@
-
- while (hostp->h_addr_list[j])
- {
-- if ((specified_local_addr_list[i][0] ==
-- hostp->h_addr_list[j][0]) &&
-- (specified_local_addr_list[i][1] ==
-- hostp->h_addr_list[j][1]) &&
-- (specified_local_addr_list[i][2] ==
-- hostp->h_addr_list[j][2]) &&
-- (specified_local_addr_list[i][3] ==
-- hostp->h_addr_list[j][3]))
-+ if (memcmp(specified_local_addr_list[i],
-+ hostp->h_addr_list[j],
-+ hostp->h_length) == 0)
- {
- /* They're equal, so we're done */
-
---- XFree86-3.3.3.1/xc/lib/xtrans/Xtransutil.c.ipv6 Thu Jun 24 12:39:42 1999
-+++ XFree86-3.3.3.1/xc/lib/xtrans/Xtransutil.c Thu Jun 24 12:39:47 1999
-@@ -84,7 +84,7 @@
- /*
- * TRANS(ConvertAddress) converts a sockaddr based address to an
- * X authorization based address. Some of this is defined as part of
-- * the ChangeHost protocol. The rest is just doen in a consistent manner.
-+ * the ChangeHost protocol. The rest is just done in a consistent manner.
- */
-
- int
-@@ -134,6 +134,32 @@
- }
- break;
- }
-+
-+ case AF_INET6:
-+ {
-+ /*
-+ * Check for the hack localhost address ::1.
-+ * In this case, we are really FamilyLocal.
-+ */
-+
-+ struct sockaddr_in6 saddr;
-+ int len = sizeof(saddr.sin6_addr);
-+ char *cp = (char *) &saddr.sin6_addr;
-+
-+ memcpy (&saddr, *addrp, sizeof (struct sockaddr_in6));
-+
-+ if (memcmp(cp, (char *)&in6addr_loopback, len) == 0)
-+ {
-+ *familyp=FamilyLocal;
-+ }
-+ else
-+ {
-+ *familyp=FamilyInternet;
-+ *addrlenp=len;
-+ memcpy(*addrp,&saddr.sin6_addr,len);
-+ }
-+ break;
-+ }
- #endif /* defined(TCPCONN) || defined(STREAMSCONN) || MNX_TCPCONN */
-
- #if defined(DNETCONN)
-@@ -269,6 +295,18 @@
- sprintf (networkId, "%s/%s:%s", transName, hostnamebuf, portnumbuf);
- break;
- }
-+
-+ case AF_INET6:
-+ {
-+ struct sockaddr_in6 *saddr = (struct sockaddr_in6 *) addr;
-+ char portnumbuf[10];
-+
-+ sprintf (portnumbuf, "%d", ntohs (saddr->sin6_port));
-+ networkId = (char *) xalloc (3 + strlen (transName) +
-+ strlen (hostnamebuf) + strlen (portnumbuf));
-+ sprintf (networkId, "%s/%s:%s", transName, hostnamebuf, portnumbuf);
-+ break;
-+ }
- #endif /* defined(TCPCONN) || defined(STREAMSCONN) || MNX_TCPCONN */
-
- #if defined(DNETCONN)
-@@ -377,6 +415,42 @@
- addr = hostp->h_name;
- else
- addr = inet_ntoa (saddr->sin_addr);
-+ break;
-+ }
-+
-+ case AF_INET6:
-+ {
-+ struct sockaddr_in6 *saddr = (struct sockaddr_in6 *) peer_addr;
-+ _Xgethostbynameparams hparams;
-+ struct hostent * hostp;
-+ static char v[64];
-+
-+#ifdef SIGALRM
-+ /*
-+ * gethostbyaddr can take a LONG time if the host does not exist.
-+ * Assume that if it does not respond in NAMESERVER_TIMEOUT seconds
-+ * that something is wrong and do not make the user wait.
-+ * gethostbyaddr will continue after a signal, so we have to
-+ * jump out of it.
-+ */
-+
-+ nameserver_timedout = 0;
-+ signal (SIGALRM, nameserver_lost);
-+ alarm (4);
-+ if (setjmp(env) == 0) {
-+#endif
-+ hostp = _XGethostbyaddr ((char *) &saddr->sin6_addr,
-+ sizeof (saddr->sin6_addr), AF_INET6, hparams);
-+#ifdef SIGALRM
-+ }
-+ alarm (0);
-+#endif
-+ if (hostp != NULL)
-+ addr = hostp->h_name;
-+ else {
-+ inet_ntop (AF_INET6, &saddr->sin6_addr, v, sizeof (v));
-+ addr = addrbuf;
-+ }
- break;
- }
-
---- XFree86-3.3.3.1/xc/programs/Xserver/os/access.c.ipv6 Thu Jun 24 12:39:34 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/os/access.c Thu Jun 24 12:39:47 1999
-@@ -163,6 +163,7 @@
- #else
- #if !defined(AMOEBA) && !defined(MINIX)
- #include <netdb.h>
-+#include <resolv.h>
- #else
- #ifdef AMOEBA
- #include <server/ip/gen/netdb.h>
-@@ -215,10 +216,12 @@
-
- #define acmp(a1, a2, len) memcmp((char *)(a1), (char *)(a2), len)
- #define acopy(a1, a2, len) memmove((char *)(a2), (char *)(a1), len)
-+#if !defined(TCPCONN)
- #define addrEqual(fam, address, length, host) \
- ((fam) == (host)->family &&\
- (length) == (host)->len &&\
- !acmp (address, (host)->addr, length))
-+#endif
-
- static int ConvertAddr(
- #if NeedFunctionPrototypes
-@@ -260,6 +263,49 @@
- static int LocalHostEnabled = FALSE;
- static int UsingXdmcp = FALSE;
-
-+#if defined(TCPCONN)
-+#define MAPTOIPV4(a) ((char *)(a) + sizeof(struct in6_addr) - \
-+ sizeof(struct in_addr))
-+#define MAPTOIPV6(d,a) { \
-+ bzero(&d.s6_addr[0], \
-+ sizeof(struct in6_addr)-2-sizeof(struct in_addr)); \
-+ d.s6_addr[10] = d.s6_addr[11] = 0xff; \
-+ acopy(a, MAPTOIPV4(&d.s6_addr[0]), sizeof(struct in_addr)); \
-+ }
-+
-+static int
-+addrEqual(fam, addr, len, host)
-+ unsigned char *addr;
-+ register HOST *host;
-+ int fam, len;
-+{
-+ char *a4, *a6;
-+
-+ if (fam != host->family)
-+ return FALSE;
-+ if (len == host->len)
-+ return !acmp (addr, host->addr, len);
-+ if (fam != FamilyInternet)
-+ return FALSE;
-+
-+ /* compare IPv4 with special IPv6 : mapped, loopback */
-+ if (len == sizeof(struct in6_addr) &&
-+ host->len == sizeof(struct in_addr)) {
-+ a4 = host->addr;
-+ a6 = addr;
-+ } else if (len == sizeof(struct in_addr) &&
-+ host->len == sizeof(struct in6_addr)) {
-+ a4 = addr;
-+ a6 = host->addr;
-+ } else
-+ return FALSE;
-+ if (IN6_IS_ADDR_V4MAPPED((struct in6_addr *)a6))
-+ return !acmp(a4, MAPTOIPV4(a6), sizeof(*a4));
-+ else
-+ return (a4[0] == 127 && a4[1] == 0 && a4[2] == 0 && a4[3] == 1 &&
-+ acmp(a6, &in6addr_loopback, sizeof(*a6)) == 0);
-+}
-+#endif
-
- /*
- * called when authorization is not enabled to add the
-@@ -634,6 +680,7 @@
- int family;
- register HOST *host;
- register struct ifreq *ifr;
-+ struct in6_addr mapped;
-
- #ifdef DNETCONN
- struct dn_naddr *dnaddr = getnodeadd();
-@@ -692,10 +739,32 @@
- if (family == -1 || family == FamilyLocal)
- continue;
- #ifdef DEF_SELF_DEBUG
-- if (family == FamilyInternet)
-- ErrorF("Xserver: DefineSelf(): ifname = %s, addr = %d.%d.%d.%d\n",
-- ifr->ifr_name, addr[0], addr[1], addr[2], addr[3]);
-+ if (family == FamilyInternet) {
-+ char v[64];
-+
-+ ErrorF("Xserver: DefineSelf(): ifname = %s, addr = %s\n",
-+ ifr->ifr_name,
-+ inet_ntop(len == 4 ? AF_INET : AF_INET6, addr, v, 64));
-+ }
- #endif
-+ if (family == FamilyInternet) {
-+ if (len == 4) {
-+ /* Mapped IPv4 to IPv6 with special case for loopback */
-+ if (addr[0] == 127 && addr[1] == 0 &&
-+ addr[2] == 0 && addr[3] == 1)
-+ addr = (unsigned char *)&in6addr_loopback;
-+ else {
-+ MAPTOIPV6(mapped, addr);
-+ addr = (unsigned char *) &mapped;
-+ }
-+ len = sizeof(mapped);
-+ }
-+ /*
-+ * Link local addresses are too weird
-+ */
-+ if (IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)addr))
-+ continue;
-+ }
- for (host = selfhosts;
- host && !addrEqual (family, addr, len, host);
- host = host->next)
-@@ -724,13 +793,15 @@
- /*
- * ignore 'localhost' entries as they're not useful
- * on the other end of the wire
-+ * ignore 'link local' entries
- */
-- if (len == 4 &&
-- addr[0] == 127 && addr[1] == 0 &&
-- addr[2] == 0 && addr[3] == 1)
-+ if (acmp(addr, &in6addr_loopback, len)==0)
- continue;
-
- XdmcpRegisterConnection (family, (char *)addr, len);
-+ /* what to do with INET6 ???? */
-+ if (ifr->ifr_addr.sa_family != AF_INET);
-+ continue;
- broad_addr = ifr->ifr_addr;
- ((struct sockaddr_in *) &broad_addr)->sin_addr.s_addr =
- htonl (INADDR_BROADCAST);
-@@ -794,10 +865,22 @@
- int family;
- pointer addr;
- register HOST *host;
-+ struct in6_addr mapped;
-
- family = ConvertAddr(from, &len, (pointer *)&addr);
- if (family == -1 || family == FamilyLocal)
- return;
-+ if ((family == FamilyInternet) && (len == 4)) {
-+ /* Mapped IPv4 to IPv6 with special case for loopback */
-+ if (((char *)addr)[0] == 127 && ((char *)addr)[1] == 0 &&
-+ ((char *)addr)[2] == 0 && ((char *)addr)[3] == 1)
-+ addr = (pointer)&in6addr_loopback;
-+ else {
-+ MAPTOIPV6(mapped, addr);
-+ addr = (unsigned char *) &mapped;
-+ }
-+ len = sizeof(mapped);
-+ }
- for (host = selfhosts; host; host = host->next)
- {
- if (addrEqual(family, addr, len, host))
-@@ -840,7 +923,7 @@
- union {
- struct sockaddr sa;
- #if defined(TCPCONN) || defined(STREAMSCONN) || defined(MNX_TCPCONN)
-- struct sockaddr_in in;
-+ struct sockaddr_in6 in;
- #endif /* TCPCONN || STREAMSCONN */
- #ifdef DNETCONN
- struct sockaddr_dn dn;
-@@ -978,12 +1061,16 @@
- #endif /* SECURE_RPC */
- #if defined(TCPCONN) || defined(STREAMSCONN) || defined(MNX_TCPCONN)
- {
-+ if ((_res.options & RES_INIT) == 0)
-+ (void)res_init();
-+ _res.options |= RES_USE_INET6;
-+
- /* host name */
- if (family == FamilyInternet && (hp = gethostbyname (hostname)) ||
- (hp = gethostbyname (hostname)))
- {
- saddr.sa.sa_family = hp->h_addrtype;
-- len = sizeof(saddr.sa);
-+ len = sizeof(saddr.in);
- if ((family = ConvertAddr (&saddr.sa, &len, (pointer *)&addr)) != -1)
- {
- #ifdef h_addr /* new 4.3bsd version of gethostent */
-@@ -1072,6 +1159,7 @@
- pointer pAddr;
- {
- int len;
-+ struct in6_addr mapped;
-
- if (!AuthorizedClient(client))
- return(BadAccess);
-@@ -1092,6 +1180,11 @@
- break;
- #endif
- case FamilyInternet:
-+ if (length == sizeof (struct in_addr)) {
-+ MAPTOIPV6(mapped, pAddr);
-+ pAddr = (char *)& mapped;
-+ length = sizeof(mapped);
-+ }
- case FamilyDECnet:
- case FamilyChaos:
- if ((len = CheckAddr (family, pAddr, length)) < 0)
-@@ -1174,6 +1267,7 @@
- {
- int len;
- register HOST *host, **prev;
-+ struct in6_addr mapped;
-
- if (!AuthorizedClient(client))
- return(BadAccess);
-@@ -1193,6 +1287,11 @@
- break;
- #endif
- case FamilyInternet:
-+ if (length == sizeof (struct in_addr)) {
-+ MAPTOIPV6(mapped, pAddr);
-+ pAddr = (char *)& mapped;
-+ length = sizeof(mapped);
-+ }
- case FamilyDECnet:
- case FamilyChaos:
- if ((len = CheckAddr (family, pAddr, length)) < 0)
-@@ -1236,7 +1335,12 @@
- for (host = validhosts; host; host = host->next)
- {
- nHosts++;
-- n += (((host->len + 3) >> 2) << 2) + sizeof(xHostEntry);
-+ len = host->len;
-+ if (host->family == FamilyInternet &&
-+ len == sizeof (struct in6_addr) &&
-+ IN6_IS_ADDR_V4MAPPED((struct in6_addr *)host->addr))
-+ len = sizeof (struct in_addr);
-+ n += (((len + 3) >> 2) << 2) + sizeof(xHostEntry);
- }
- if (n)
- {
-@@ -1247,11 +1351,19 @@
- }
- for (host = validhosts; host; host = host->next)
- {
-+ char *ad = host->addr;
-+
- len = host->len;
- ((xHostEntry *)ptr)->family = host->family;
-+ if (host->family == FamilyInternet &&
-+ len == sizeof (struct in6_addr) &&
-+ IN6_IS_ADDR_V4MAPPED((struct in6_addr *)host->addr)) {
-+ len = sizeof (struct in_addr);
-+ ad = MAPTOIPV4(ad);
-+ }
- ((xHostEntry *)ptr)->length = len;
- ptr += sizeof(xHostEntry);
-- acopy (host->addr, ptr, len);
-+ acopy (ad, ptr, len);
- ptr += ((len + 3) >> 2) << 2;
- }
- } else {
-@@ -1277,11 +1389,7 @@
- {
- #if defined(TCPCONN) || defined(STREAMSCONN) || defined(AMTCPCONN) || defined(MNX_TCPCONN)
- case FamilyInternet:
--#if !defined(AMOEBA)
-- if (length == sizeof (struct in_addr))
--#else
-- if (length == sizeof(ipaddr_t))
--#endif
-+ if (length == sizeof (struct in6_addr))
- len = length;
- else
- len = -1;
-@@ -1312,11 +1420,7 @@
- * Returns 1 if host is invalid, 0 if we've found it. */
-
- InvalidHost (saddr, len)
--#ifndef AMOEBA_ORIG
- register struct sockaddr *saddr;
--#else
-- register ipaddr_t *saddr;
--#endif
- int len;
- {
- int family;
-@@ -1359,11 +1463,7 @@
-
- static int
- ConvertAddr (saddr, len, addr)
--#ifndef AMOEBA_ORIG
- register struct sockaddr *saddr;
--#else
-- register ipaddr_t *saddr;
--#endif
- int *len;
- pointer *addr;
- {
-@@ -1381,6 +1481,10 @@
- case AF_INET:
- *len = sizeof (struct in_addr);
- *addr = (pointer) &(((struct sockaddr_in *) saddr)->sin_addr);
-+ return FamilyInternet;
-+ case AF_INET6:
-+ *len = sizeof (struct in6_addr);
-+ *addr = (pointer) &(((struct sockaddr_in6 *) saddr)->sin6_addr);
- return FamilyInternet;
- #endif
- #ifdef DNETCONN
---- XFree86-3.3.3.1/xc/programs/Xserver/os/connection.c.ipv6 Thu Jun 24 12:39:34 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/os/connection.c Thu Jun 24 12:39:47 1999
-@@ -477,6 +477,7 @@
- int auth_id;
- {
- char addr[128];
-+ char v[64];
- char *out = addr;
-
- if (!((OsCommPtr)client->osPrivate)->trans_conn) {
-@@ -499,6 +500,13 @@
- sprintf(out, "IP %s port %d",
- inet_ntoa(((struct sockaddr_in *) saddr)->sin_addr),
- ntohs(((struct sockaddr_in *) saddr)->sin_port));
-+ break;
-+ case AF_INET6:
-+ sprintf(out, "IPv6 %s port %d",
-+ inet_ntop(AF_INET6,
-+ &((struct sockaddr_in6 *) saddr)->sin6_addr,
-+ v, sizeof (v)),
-+ ntohs(((struct sockaddr_in6 *) saddr)->sin6_port));
- break;
- #endif
- #ifdef DNETCONN
---- XFree86-3.3.3.1/xc/programs/Xserver/os/k5auth.c.ipv6 Fri May 10 09:02:15 1996
-+++ XFree86-3.3.3.1/xc/programs/Xserver/os/k5auth.c Thu Jun 24 12:39:47 1999
-@@ -277,7 +277,7 @@
- long addrlen;
- krb5_error_code retval, retval2;
- register char n;
-- struct sockaddr cli_net_addr;
-+ struct sockaddr_in6 cli_net_addr;
- xReq prefix;
- krb5_principal cprinc;
- krb5_data buf;
-@@ -299,15 +299,15 @@
- }
- addrlen = sizeof (cli_net_addr);
- if (getpeername(((OsCommPtr)client->osPrivate)->fd,
-- &cli_net_addr, &addrlen) == -1)
-+ (struct sockaddr *)&cli_net_addr, &addrlen) == -1)
- {
- if (creds)
- krb5_free_creds(creds);
- return(SendConnSetup(client, "Krb5 stage1: getpeername failed"));
- }
-- if (cli_net_addr.sa_family == AF_UNSPEC
-+ if (cli_net_addr.sin6_family == AF_UNSPEC
- #if defined(UNIXCONN) || defined(LOCALCONN) || defined(OS2PIPECONN)
-- || cli_net_addr.sa_family == AF_UNIX
-+ || cli_net_addr.sin6_family == AF_UNIX
- #endif
- ) /* assume local host */
- {
-@@ -324,9 +324,9 @@
- }
- else
- {
-- cli_addr.addrtype = cli_net_addr.sa_family; /* the values
-+ cli_addr.addrtype = cli_net_addr.sin6_family; /* the values
- are compatible */
-- switch (cli_net_addr.sa_family)
-+ switch (cli_net_addr.sin6_family)
- {
- #ifdef TCPCONN
- case AF_INET:
-@@ -334,6 +334,11 @@
- cli_addr.contents =
- (krb5_octet *)&((struct sockaddr_in *)&cli_net_addr)->sin_addr;
- break;
-+ case AF_INET6:
-+ cli_addr.length = sizeof (struct in6_addr);
-+ cli_addr.contents =
-+ (krb5_octet *)&(&cli_net_addr)->sin6_addr;
-+ break;
- #endif
- #ifdef DNETCONN
- case AF_DECnet:
-@@ -348,7 +353,7 @@
- if (creds)
- krb5_free_creds(creds);
- sprintf(kerror, "Krb5 stage1: unknown address family %d from getpeername",
-- cli_net_addr.sa_family);
-+ cli_net_addr.sin6_family);
- return(SendConnSetup(client, kerror));
- }
- }
---- XFree86-3.3.3.1/xc/programs/Xserver/os/utils.c.ipv6 Thu Jun 24 12:39:34 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/os/utils.c Thu Jun 24 12:39:47 1999
-@@ -1112,7 +1112,9 @@
-
- #if defined(TCPCONN) || defined(STREAMSCONN)
- #ifndef WIN32
-+#include <netinet/in.h>
- #include <netdb.h>
-+#include <resolv.h>
- #endif
- #endif
-
-@@ -1134,6 +1136,10 @@
- char hname[1024], *hnameptr;
- struct hostent *host;
- int len;
-+
-+ if ((_res.options & RES_INIT) == 0)
-+ (void)res_init();
-+ _res.options |= RES_USE_INET6;
-
- gethostname(hname, 1024);
- host = gethostbyname(hname);
---- XFree86-3.3.3.1/xc/programs/Xserver/os/xdmcp.c.ipv6 Thu Jun 24 12:39:34 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/os/xdmcp.c Thu Jun 24 12:39:47 1999
-@@ -38,6 +38,8 @@
- #endif
- #include <netinet/in.h>
- #include <netdb.h>
-+#include <resolv.h>
-+#undef QUERY
- #else
- #if defined(MINIX)
- #include <net/hton.h>
-@@ -81,7 +83,7 @@
-
- static int xdmcpSocket, sessionSocket;
- static xdmcp_states state;
--static struct sockaddr_in req_sockaddr;
-+static struct sockaddr_in6 req_sockaddr;
- static int req_socklen;
- static CARD32 SessionID;
- static CARD32 timeOutTime;
-@@ -96,7 +98,7 @@
-
- static XdmcpBuffer buffer;
-
--static struct sockaddr_in ManagerAddress;
-+static struct sockaddr_in6 ManagerAddress;
-
- static void get_xdmcp_sock(
- #if NeedFunctionPrototypes
-@@ -112,7 +114,7 @@
-
- static void recv_willing_msg(
- #if NeedFunctionPrototypes
-- struct sockaddr_in */*from*/,
-+ struct sockaddr_in6 */*from*/,
- int /*fromlen*/,
- unsigned /*length*/
- #endif
-@@ -332,24 +334,27 @@
-
- #define MAX_BROADCAST 10
-
--static struct sockaddr_in BroadcastAddresses[MAX_BROADCAST];
-+static struct sockaddr_in6 BroadcastAddresses[MAX_BROADCAST];
- static int NumBroadcastAddresses;
-
- void
- XdmcpRegisterBroadcastAddress (addr)
- struct sockaddr_in *addr;
- {
-- struct sockaddr_in *bcast;
-+ struct sockaddr_in6 *bcast;
- if (NumBroadcastAddresses >= MAX_BROADCAST)
- return;
- bcast = &BroadcastAddresses[NumBroadcastAddresses++];
-- bzero (bcast, sizeof (struct sockaddr_in));
-+ bzero (bcast, sizeof (struct sockaddr_in6));
-+ /* mapped the IPv4 broadcast address to IPv6 */
- #ifdef BSD44SOCKETS
-- bcast->sin_len = addr->sin_len;
-+ bcast->sin6_len = sizeof(struct sockaddr_in6);
- #endif
-- bcast->sin_family = addr->sin_family;
-- bcast->sin_port = htons (xdm_udp_port);
-- bcast->sin_addr = addr->sin_addr;
-+ bcast->sin6_family = AF_INET6;
-+ bcast->sin6_port = htons (xdm_udp_port);
-+ bcast->sin6_flowinfo = 0;
-+ bcast->sin6_addr.s6_addr[10] = bcast->sin6_addr.s6_addr[11] = 0xff;
-+ memmove(&bcast->sin6_addr.s6_addr[12], &addr->sin_addr, 4);
- }
-
- /*
-@@ -464,6 +469,13 @@
- XdmcpDisposeARRAYofARRAY8 (&ConnectionAddresses);
- xdmcpGeneration = serverGeneration;
- }
-+ /* for INET6, try go back to INET, to help not INET6 managers !! */
-+ if (type == FamilyInternet &&
-+ addrlen == sizeof (struct in6_addr) &&
-+ IN6_IS_ADDR_V4MAPPED((struct in6_addr *)address)) {
-+ addrlen = sizeof (struct in_addr);
-+ address += sizeof (struct in6_addr) - sizeof (struct in_addr);
-+ }
- newAddress = (CARD8 *) xalloc (addrlen * sizeof (CARD8));
- if (!newAddress)
- return;
-@@ -750,7 +762,7 @@
-
- /*ARGSUSED*/
- XdmcpAddHost(from, fromlen, AuthenticationName, hostname, status)
-- struct sockaddr_in *from;
-+ struct sockaddr_in6 *from;
- ARRAY8Ptr AuthenticationName, hostname, status;
- {
- XdmcpSelectHost(from, fromlen, AuthenticationName);
-@@ -766,8 +778,8 @@
- static void
- receive_packet()
- {
-- struct sockaddr_in from;
-- int fromlen = sizeof(struct sockaddr_in);
-+ struct sockaddr_in6 from;
-+ int fromlen = sizeof(struct sockaddr_in6);
- XdmcpHeader header;
-
- /* read message off socket */
-@@ -980,7 +992,7 @@
- #ifndef _MINIX
- int soopts = 1;
-
-- if ((xdmcpSocket = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
-+ if ((xdmcpSocket = socket(AF_INET6, SOCK_DGRAM, 0)) < 0)
- #else /* MINIX */
- char *udp_device;
- int r, s_errno;
-@@ -1066,7 +1078,7 @@
-
- for (i = 0; i < NumBroadcastAddresses; i++)
- XdmcpFlush (xdmcpSocket, &buffer, &BroadcastAddresses[i],
-- sizeof (struct sockaddr_in));
-+ sizeof (struct sockaddr_in6));
- }
- else
- {
-@@ -1077,7 +1089,7 @@
-
- static void
- recv_willing_msg(from, fromlen, length)
-- struct sockaddr_in *from;
-+ struct sockaddr_in6 *from;
- int fromlen;
- unsigned length;
- {
-@@ -1380,23 +1392,29 @@
- ErrorF("Xserver: missing host name in command line\n");
- exit(1);
- }
-+
-+ if ((_res.options & RES_INIT) == 0)
-+ (void)res_init();
-+ _res.options |= RES_USE_INET6;
-+
- if (!(hep = gethostbyname(argv[i])))
- {
- ErrorF("Xserver: unknown host: %s\n", argv[i]);
- exit(1);
- }
- #ifndef _MINIX
-- if (hep->h_length == sizeof (struct in_addr))
-+ if (hep->h_length == sizeof (struct in6_addr))
- #else
- if (hep->h_length == sizeof (ipaddr_t))
- #endif
- {
-- memmove(&ManagerAddress.sin_addr, hep->h_addr, hep->h_length);
-+ memmove(&ManagerAddress.sin6_addr, hep->h_addr, hep->h_length);
- #ifdef BSD44SOCKETS
-- ManagerAddress.sin_len = sizeof(ManagerAddress);
-+ ManagerAddress.sin6_len = sizeof(ManagerAddress);
- #endif
-- ManagerAddress.sin_family = AF_INET;
-- ManagerAddress.sin_port = htons (xdm_udp_port);
-+ ManagerAddress.sin6_family = AF_INET6;
-+ ManagerAddress.sin6_port = htons (xdm_udp_port);
-+ ManagerAddress.sin6_flowinfo = 0;
- }
- else
- {
---- XFree86-3.3.3.1/xc/programs/lbxproxy/os/connection.c.ipv6 Thu Jun 24 12:39:42 1999
-+++ XFree86-3.3.3.1/xc/programs/lbxproxy/os/connection.c Thu Jun 24 12:39:47 1999
-@@ -231,7 +231,7 @@
- int retry; /* boolean - retry if addr busy */
-
- {
-- struct sockaddr_in insock;
-+ struct sockaddr_in6 insock;
- int request;
- int retryCount;
- #ifndef SO_DONTLINGER
-@@ -240,7 +240,7 @@
- #endif /* SO_LINGER */
- #endif /* SO_DONTLINGER */
-
-- if ((request = socket (AF_INET, SOCK_STREAM, 0)) < 0)
-+ if ((request = socket (AF_INET6, SOCK_STREAM, 0)) < 0)
- {
- Error ("Creating TCP socket");
- return -1;
-@@ -255,11 +255,12 @@
- {
- bzero ((char *)&insock, sizeof (insock));
- #ifdef BSD44SOCKETS
-- insock.sin_len = sizeof(insock);
-+ insock.sin6_len = sizeof(insock);
- #endif
-- insock.sin_family = AF_INET;
-- insock.sin_port = htons ((unsigned short)(X_TCP_PORT + atoi (display)));
-- insock.sin_addr.s_addr = htonl(INADDR_ANY);
-+ insock.sin6_family = AF_INET6;
-+ insock.sin6_flowinfo = 0;
-+ insock.sin6_port = htons ((unsigned short)(X_TCP_PORT + atoi (display)));
-+ insock.sin6_addr = in6addr_any;
-
- retryCount = retry ? 19 : 0;
-
-@@ -1776,7 +1777,7 @@
- struct sockaddr_un un;
- #endif /* UNIXCONN */
- #ifdef TCPCONN
-- struct sockaddr_in in;
-+ struct sockaddr_in6 in;
- #endif /* TCPCONN */
- #ifdef DNETCONN
- struct sockaddr_dn dn;
-@@ -1801,7 +1802,9 @@
- fromlen = sizeof (from);
- if (!getpeername (newconn, &from.sa, &fromlen))
- {
-- if (fromlen && (from.sa.sa_family == AF_INET))
-+ if (fromlen &&
-+ ((from.sa.sa_family == AF_INET) ||
-+ (from.sa.sa_family == AF_INET6)))
- {
- int mi = 1;
- setsockopt (newconn, IPPROTO_TCP, TCP_NODELAY,
---- XFree86-3.3.3.1/xc/programs/xauth/gethost.c.ipv6 Sun Sep 13 15:15:53 1998
-+++ XFree86-3.3.3.1/xc/programs/xauth/gethost.c Thu Jun 24 12:39:47 1999
-@@ -144,15 +144,21 @@
- alarm (4);
- if (setjmp(env) == 0) {
- #endif
-- hp = gethostbyaddr (auth->address, auth->address_length, AF_INET);
-+ hp = gethostbyaddr (auth->address, auth->address_length,
-+ auth->address_length == 4 ? AF_INET : AF_INET6);
- #ifdef SIGALRM
- }
- alarm (0);
- #endif
- if (hp)
- return (hp->h_name);
-- else
-- return (inet_ntoa(*((struct in_addr *)(auth->address))));
-+ else {
-+ static char v[64];
-+
-+ inet_ntop (auth->address_length == 4 ? AF_INET : AF_INET6,
-+ auth->address, v, sizeof(v));
-+ return (v);
-+ }
- }
- #endif
- #ifdef DNETCONN
-@@ -172,38 +178,26 @@
- }
-
- #ifdef TCPCONN
--/*
-- * cribbed from lib/X/XConnDis.c
-- */
- static Bool get_inet_address (name, resultp)
- char *name;
-- unsigned int *resultp; /* return */
-+ struct in6_addr *resultp; /* return */
- {
-- unsigned int hostinetaddr = inet_addr (name);
- struct hostent *host_ptr;
-- struct sockaddr_in inaddr; /* dummy variable for size calcs */
-
--#ifndef INADDR_NONE
--#define INADDR_NONE -1
--#endif
--
-- if (hostinetaddr == INADDR_NONE) {
-- if ((host_ptr = gethostbyname (name)) == NULL) {
-- /* No such host! */
-- errno = EINVAL;
-- return False;
-- }
-- /* Check the address type for an internet host. */
-- if (host_ptr->h_addrtype != AF_INET) {
-- /* Not an Internet host! */
-- errno = EPROTOTYPE;
-- return False;
-- }
--
-- memmove( (char *)&hostinetaddr, (char *)host_ptr->h_addr,
-- sizeof(inaddr.sin_addr));
-+ if ((host_ptr = gethostbyname (name)) == NULL) {
-+ /* No such host! */
-+ errno = EINVAL;
-+ return False;
- }
-- *resultp = hostinetaddr;
-+ /* Check the address type for an internet host. */
-+ if (host_ptr->h_addrtype != AF_INET6) {
-+ /* Not an Internet host! */
-+ errno = EPROTOTYPE;
-+ return False;
-+ }
-+
-+ memmove( (char *)resultp, (char *)host_ptr->h_addr,
-+ host_ptr->h_length);
- return True;
- }
- #endif
-@@ -239,8 +233,7 @@
- int len = 0;
- char *src = NULL;
- #ifdef TCPCONN
-- unsigned int hostinetaddr;
-- struct sockaddr_in inaddr; /* dummy variable for size calcs */
-+ struct in6_addr hostinetaddr;
- #endif
- #ifdef DNETCONN
- struct dn_naddr dnaddr;
-@@ -273,7 +266,7 @@
- #ifdef TCPCONN
- if (!get_inet_address (host, &hostinetaddr)) return NULL;
- src = (char *) &hostinetaddr;
-- len = 4; /* sizeof inaddr.sin_addr, would fail on Cray */
-+ len = (sizeof hostinetaddr);
- break;
- #else
- return NULL;
---- XFree86-3.3.3.1/xc/programs/xauth/parsedpy.c.ipv6 Mon Feb 16 01:43:19 1998
-+++ XFree86-3.3.3.1/xc/programs/xauth/parsedpy.c Thu Jun 24 12:39:47 1999
-@@ -115,12 +115,18 @@
- if (!displayname || !displayname[0]) return False;
-
- /* must have at least :number */
-- ptr = strchr(displayname, ':');
-+ /*
-+ * If a "host::" is found then assume DNET.
-+ * For IPv6, pb with possible : in host --> use rightmost : and test
-+ * x:y->inet, x::y->dnet, x:::y->inet(v6)
-+ */
-+ ptr = strrchr(displayname, ':');
- if (!ptr || !ptr[1]) return False;
-- if (ptr[1] == ':') {
-- if (ptr[2] == '\0') return False;
-- dnet = True;
-- }
-+ if (ptr > displayname && ptr[-1] == ':')
-+ if (ptr-1 == displayname || ptr[-2] != ':') {
-+ ptr--;
-+ dnet = True;
-+ }
-
-
- /*
---- XFree86-3.3.3.1/xc/programs/xauth/xauth.c.ipv6 Wed Apr 27 09:19:54 1994
-+++ XFree86-3.3.3.1/xc/programs/xauth/xauth.c Thu Jun 24 12:39:47 1999
-@@ -32,6 +32,8 @@
-
- #include "xauth.h"
-
-+#include <netinet/in.h>
-+#include <resolv.h>
-
- /*
- * global data
-@@ -102,6 +104,10 @@
- int status;
-
- ProgramName = argv[0];
-+
-+ if ((_res.options & RES_INIT) == 0)
-+ (void)res_init();
-+ _res.options |= RES_USE_INET6;
-
- for (i = 1; i < argc; i++) {
- char *arg = argv[i];
---- XFree86-3.3.3.1/xc/programs/xdm/access.c.ipv6 Sat Jan 18 08:02:17 1997
-+++ XFree86-3.3.3.1/xc/programs/xdm/access.c Thu Jun 24 12:39:47 1999
-@@ -379,6 +379,11 @@
- display->connectionType = FamilyInternet;
- break;
- #endif
-+#ifdef AF_INET6
-+ case AF_INET6:
-+ display->connectionType = FamilyInternet;
-+ break;
-+#endif
- #ifdef AF_DECnet
- case AF_DECnet:
- display->connectionType = FamilyDECnet;
---- XFree86-3.3.3.1/xc/programs/xdm/auth.c.ipv6 Thu Jun 24 12:39:34 1999
-+++ XFree86-3.3.3.1/xc/programs/xdm/auth.c Thu Jun 24 12:39:47 1999
-@@ -86,8 +86,8 @@
- # endif /* ESIX */
- #endif /* i386 */
-
--#ifdef SVR4
- # include <netdb.h>
-+#ifdef SVR4
- # ifndef SCO325
- # include <sys/sockio.h>
- # endif
-@@ -988,6 +988,21 @@
- Debug ("Skipping localhost address\n");
- continue;
- }
-+ if (len == sizeof (struct in6_addr)) {
-+ if (bcmp(addr, &in6addr_loopback, len) == 0)
-+ {
-+ Debug ("Skipping localhost address\n");
-+ continue;
-+ }
-+ /*
-+ * ignore Link local address, the semantic would be weird
-+ */
-+ if (IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)addr))
-+ {
-+ Debug ("Skipping link-local address\n");
-+ continue;
-+ }
-+ }
- family = FamilyInternet;
- }
- Debug ("DefineSelf: write network address, length %d\n", len);
-@@ -1014,10 +1029,10 @@
-
- union {
- struct sockaddr sa;
-- struct sockaddr_in in;
-+ struct sockaddr_in6 in;
- } saddr;
-
-- struct sockaddr_in *inetaddr;
-+ struct sockaddr_in6 *inetaddr;
-
- /* hpux:
- * Why not use gethostname()? Well, at least on my system, I've had to
-@@ -1029,12 +1044,12 @@
- hp = gethostbyname (name.nodename);
- if (hp != NULL) {
- saddr.sa.sa_family = hp->h_addrtype;
-- inetaddr = (struct sockaddr_in *) (&(saddr.sa));
-- memmove( (char *) &(inetaddr->sin_addr), (char *) hp->h_addr, (int) hp->h_length);
-+ inetaddr = (struct sockaddr_in6 *) (&(saddr.sa));
-+ memmove( (char *) &(inetaddr->sin6_addr), (char *) hp->h_addr, (int) hp->h_length);
- family = ConvertAddr ( &(saddr.sa), &len, &addr);
- if ( family >= 0) {
-- writeAddr (FamilyInternet, sizeof (inetaddr->sin_addr),
-- (char *) (&inetaddr->sin_addr), file, auth);
-+ writeAddr (FamilyInternet, sizeof (inetaddr->sin6_addr),
-+ (char *) (&inetaddr->sin6_addr), file, auth);
- }
- }
- }
-@@ -1101,7 +1116,7 @@
- tcp_device= TCP_DEVICE;
- fd = open(tcp_device, O_RDWR);
- #else
-- fd = socket (AF_INET, SOCK_STREAM, 0);
-+ fd = socket (AF_INET6, SOCK_STREAM, 0);
- #endif
- DefineSelf (fd, file, auth);
- close (fd);
-@@ -1133,6 +1148,35 @@
- setAuthNumber (auth, name);
- family = ConvertAddr (peer, &peerlen, &addr);
- Debug ("writeRemoteAuth: family %d\n", family);
-+ /* if remote and name, set all the remote addresses */
-+ if (family == FamilyInternet)
-+ {
-+ struct in6_addr tmp;
-+ struct hostent *hp;
-+ char **ad, *colon;
-+ int af;
-+
-+ if (peerlen == sizeof (struct in6_addr) &&
-+ !IN6_IS_ADDR_V4MAPPED((struct in6_addr *)addr))
-+ af = AF_INET6;
-+ else
-+ af = AF_INET;
-+ colon = strrchr(name, ':');
-+ if (colon) {
-+ *colon = 0;
-+ if (inet_pton(af, name, &tmp) == 0 &&
-+ (hp = gethostbyname2(name, af))) {
-+ for(ad = hp->h_addr_list; *ad; ad++) {
-+ Debug ("writeRemoteAuth: %d, %d, %x\n",
-+ family, hp->h_length, *(int *)*ad);
-+ writeAddr (family, hp->h_length, *ad, file, auth);
-+ }
-+ *colon = ':';
-+ return;
-+ }
-+ *colon = ':';
-+ }
-+ }
- if (family != FamilyLocal)
- {
- Debug ("writeRemoteAuth: %d, %d, %x\n",
---- XFree86-3.3.3.1/xc/programs/xdm/choose.c.ipv6 Sat Jan 18 08:02:19 1997
-+++ XFree86-3.3.3.1/xc/programs/xdm/choose.c Thu Jun 24 12:39:47 1999
-@@ -232,6 +232,22 @@
- result_len = 8;
- }
- break;
-+ case AF_INET6:
-+ {
-+ char *port;
-+ int portlen;
-+ ARRAY8Ptr localAddress, getLocalAddress ();
-+
-+ port = NetaddrPort((XdmcpNetaddr)addr_buf, &portlen);
-+ result_buf[0] = netfamily >> 8;
-+ result_buf[1] = netfamily & 0xFF;
-+ result_buf[2] = port[0];
-+ result_buf[3] = port[1];
-+ localAddress = getLocalAddress ();
-+ memmove( (char *)result_buf+4, (char *)localAddress->data, 16);
-+ result_len = 20;
-+ }
-+ break;
- #ifdef AF_DECnet
- case AF_DECnet:
- break;
---- XFree86-3.3.3.1/xc/programs/xdm/chooser.c.ipv6 Thu Jun 24 12:39:34 1999
-+++ XFree86-3.3.3.1/xc/programs/xdm/chooser.c Thu Jun 24 12:39:47 1999
-@@ -88,6 +88,7 @@
- #endif
- #include <netinet/in.h>
- #include <arpa/inet.h>
-+#include <resolv.h>
- #else /* MINIX */
- #include <net/hton.h>
- #include <net/netlib.h>
-@@ -347,6 +348,11 @@
- hostAddr.length = 4;
- connectionType = FamilyInternet;
- break;
-+ case AF_INET6:
-+ hostAddr.data = (CARD8 *) &((struct sockaddr_in6 *) addr)->sin6_addr;
-+ hostAddr.length = 16;
-+ connectionType = FamilyInternet;
-+ break;
- default:
- hostAddr.data = (CARD8 *) "";
- hostAddr.length = 0;
-@@ -376,11 +382,12 @@
- switch (addr->sa_family)
- {
- case AF_INET:
-+ case AF_INET6:
- {
- struct hostent *hostent;
- char *host;
-
-- hostent = gethostbyaddr ((char *)hostAddr.data, hostAddr.length, AF_INET);
-+ hostent = gethostbyaddr ((char *)hostAddr.data, hostAddr.length, addr->sa_family);
- if (hostent)
- {
- XdmcpDisposeARRAY8 (hostname);
-@@ -493,7 +500,7 @@
- ARRAY8 hostname;
- ARRAY8 status;
- int saveHostname = 0;
-- struct sockaddr addr;
-+ struct sockaddr_in6 addr;
- int addrlen;
- #ifdef MINIX
- int r;
-@@ -750,6 +757,7 @@
- in_addr.sin_family = AF_INET;
- else
- {
-+ /* TODO */
- hostent = gethostbyname (name);
- if (!hostent)
- return;
-@@ -920,7 +928,7 @@
- ref.ref_int= socketFD;
- nbio_setcallback(socketFD, ASIO_READ, read_cb, ref);
- #else /* !MINIX */
-- if ((socketFD = socket (AF_INET, SOCK_DGRAM, 0)) < 0)
-+ if ((socketFD = socket (AF_INET6, SOCK_DGRAM, 0)) < 0)
- return 0;
- #endif /* MINIX */
- #endif
-@@ -950,7 +958,7 @@
- {
- if (app_resources.xdmAddress)
- {
-- struct sockaddr_in in_addr;
-+ struct sockaddr_in6 in_addr;
- struct sockaddr *addr;
- int family;
- int len;
-@@ -970,13 +978,14 @@
- xdm = (char *) app_resources.xdmAddress->data;
- family = (xdm[0] << 8) + xdm[1];
- switch (family) {
-- case AF_INET:
-+ case AF_INET6:
- #ifdef BSD44SOCKETS
-- in_addr.sin_len = sizeof(in_addr);
-+ in_addr.sin6_len = sizeof(in_addr);
- #endif
-- in_addr.sin_family = family;
-- memmove( &in_addr.sin_port, xdm + 2, 2);
-- memmove( &in_addr.sin_addr, xdm + 4, 4);
-+ in_addr.sin6_family = family;
-+ in_addr.sin6_flowinfo = 0;
-+ memmove( &in_addr.sin6_port, xdm + 2, 2);
-+ memmove( &in_addr.sin6_addr, xdm + 4, 16);
- addr = (struct sockaddr *) &in_addr;
- len = sizeof (in_addr);
- break;
-@@ -1172,6 +1181,10 @@
- Arg position[3];
- Dimension width, height;
- Position x, y;
-+
-+ if ((_res.options & RES_INIT) == 0)
-+ (void)res_init();
-+ _res.options |= RES_USE_INET6;
-
- toplevel = XtInitialize (argv[0], "Chooser", options, XtNumber(options), &argc, argv);
-
---- XFree86-3.3.3.1/xc/programs/xdm/dm.c.ipv6 Sat Oct 31 21:17:43 1998
-+++ XFree86-3.3.3.1/xc/programs/xdm/dm.c Thu Jun 24 12:39:47 1999
-@@ -79,6 +79,8 @@
- extern int errno;
- #endif
-
-+#include <netinet/in.h>
-+#include <resolv.h>
-
- #if defined(SVR4) && !defined(SCO)
- extern FILE *fdopen();
-@@ -118,6 +120,10 @@
- Title = argv[0];
- TitleLen = (argv[argc - 1] + strlen(argv[argc - 1])) - Title;
- #endif
-+
-+ if ((_res.options & RES_INIT) == 0)
-+ (void)res_init();
-+ _res.options |= RES_USE_INET6;
-
- /*
- * Step 1 - load configuration parameters
---- XFree86-3.3.3.1/xc/programs/xdm/netaddr.c.ipv6 Sat Jan 18 08:02:21 1997
-+++ XFree86-3.3.3.1/xc/programs/xdm/netaddr.c Thu Jun 24 12:39:47 1999
-@@ -65,7 +65,7 @@
- #endif
-
- /* given an XdmcpNetaddr, returns the socket protocol family used,
-- e.g., AF_INET */
-+ e.g., AF_INET[6] */
-
- int NetaddrFamily(netaddrp)
- XdmcpNetaddr netaddrp;
-@@ -96,6 +96,9 @@
- case AF_INET:
- *lenp = 2;
- return (char *)&(((struct sockaddr_in *)netaddrp)->sin_port);
-+ case AF_INET6:
-+ *lenp = 2;
-+ return (char *)&(((struct sockaddr_in6 *)netaddrp)->sin6_port);
- default:
- *lenp = 0;
- return NULL;
-@@ -125,6 +128,9 @@
- case AF_INET:
- *lenp = sizeof (struct in_addr);
- return (char *) &(((struct sockaddr_in *)netaddrp)->sin_addr);
-+ case AF_INET6:
-+ *lenp = sizeof (struct in6_addr);
-+ return (char *) &(((struct sockaddr_in6 *)netaddrp)->sin6_addr);
- #endif
- #ifdef DNETCONN
- case AF_DECnet:
-@@ -177,6 +183,7 @@
- #endif
- #ifdef TCPCONN
- case AF_INET:
-+ case AF_INET6:
- retval = FamilyInternet;
- break;
- #endif
-@@ -248,6 +255,20 @@
-
- Debug ("port %d, host %d.%d.%d.%d\n",
- (p[0] << 8) + p[1], t[0], t[1], t[2], t[3]);
-+ break;
-+ }
-+#endif
-+#ifdef AF_INET6
-+ case AF_INET6:
-+
-+ p = (unsigned char *) &((struct sockaddr_in6 *) a)->sin6_port;
-+ t = (unsigned char *) &((struct sockaddr_in6 *) a)->sin6_addr;
-+
-+ Debug ("port %d, host %2x%02x:%2x%02x:%2x%02x:%2x%02x:%2x%02x:%2x%02x:%2x%02x:%2x%02x\n",
-+ (p[0] << 8) + p[1],
-+ t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7],
-+ t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15]);
-+
- break;
- }
- #endif
---- XFree86-3.3.3.1/xc/programs/xdm/socket.c.ipv6 Sat Jan 18 08:02:24 1997
-+++ XFree86-3.3.3.1/xc/programs/xdm/socket.c Thu Jun 24 12:39:47 1999
-@@ -84,7 +84,7 @@
- CreateWellKnownSockets ()
- {
- #ifndef MINIX
-- struct sockaddr_in sock_addr;
-+ struct sockaddr_in6 sock_addr;
- #else /* MINIX */
- char *tcp_device, *udp_device;
- nwio_udpopt_t udpopt;
-@@ -103,7 +103,7 @@
- udp_device= UDP_DEVICE;
- xdmcpFd = open(udp_device, O_RDWR);
- #else
-- xdmcpFd = socket (AF_INET, SOCK_DGRAM, 0);
-+ xdmcpFd = socket (AF_INET6, SOCK_DGRAM, 0);
- #endif
- if (xdmcpFd == -1) {
- LogError ("XDMCP socket creation failed, errno %d\n", errno);
-@@ -145,11 +145,12 @@
- /* zero out the entire structure; this avoids 4.4 incompatibilities */
- bzero ((char *) &sock_addr, sizeof (sock_addr));
- #ifdef BSD44SOCKETS
-- sock_addr.sin_len = sizeof(sock_addr);
-+ sock_addr.sin6_len = sizeof(sock_addr);
- #endif
-- sock_addr.sin_family = AF_INET;
-- sock_addr.sin_port = htons ((short) request_port);
-- sock_addr.sin_addr.s_addr = htonl (INADDR_ANY);
-+ sock_addr.sin6_family = AF_INET6;
-+ sock_addr.sin6_port = htons ((short) request_port);
-+ sock_addr.sin6_flowinfo = 0;
-+ sock_addr.sin6_addr = in6addr_any;
- if (bind (xdmcpFd, (struct sockaddr *)&sock_addr, sizeof (sock_addr)) == -1)
- {
- LogError ("error %d binding socket address %d\n", errno, request_port);
-@@ -167,7 +168,7 @@
- tcp_device= TCP_DEVICE;
- chooserFd = open(tcp_device, O_RDWR);
- #else
-- chooserFd = socket (AF_INET, SOCK_STREAM, 0);
-+ chooserFd = socket (AF_INET6, SOCK_STREAM, 0);
- #endif
- Debug ("Created chooser socket %d\n", chooserFd);
- if (chooserFd == -1)
-@@ -216,7 +217,7 @@
- char *addr;
- int *lenp;
- {
-- struct sockaddr_in in_addr;
-+ struct sockaddr_in6 in_addr;
- int len;
-
- len = sizeof in_addr;
---- XFree86-3.3.3.1/xc/programs/xdm/xdmcp.c.ipv6 Sun Feb 1 22:44:04 1998
-+++ XFree86-3.3.3.1/xc/programs/xdm/xdmcp.c Thu Jun 24 12:39:47 1999
-@@ -66,6 +66,8 @@
- #include <net/gen/netdb.h>
- #endif /* !MINIX */
-
-+# include <arpa/inet.h>
-+
- #ifdef X_NOT_STDC_ENV
- #define Time_t long
- extern Time_t time ();
-@@ -133,8 +135,8 @@
- ARRAY8Ptr address;
- char *closure;
- {
--#ifdef AF_INET
-- struct sockaddr_in in_addr;
-+#ifdef AF_INET6
-+ struct sockaddr_in6 in_addr;
- #endif
- #ifdef AF_DECnet
- #endif
-@@ -143,19 +145,20 @@
-
- switch (connectionType)
- {
--#ifdef AF_INET
-+#ifdef AF_INET6
- case FamilyInternet:
- addr = (struct sockaddr *) &in_addr;
- bzero ((char *) &in_addr, sizeof (in_addr));
- #ifdef BSD44SOCKETS
-- in_addr.sin_len = sizeof(in_addr);
-+ in_addr.sin6_len = sizeof(in_addr);
- #endif
-- in_addr.sin_family = AF_INET;
-- in_addr.sin_port = htons ((short) XDM_UDP_PORT);
-- if (address->length != 4)
-+ in_addr.sin6_family = AF_INET6;
-+ in_addr.sin6_flowinfo = 0;
-+ in_addr.sin6_port = htons ((short) XDM_UDP_PORT);
-+ if (address->length != 16)
- return;
-- memmove( (char *) &in_addr.sin_addr, address->data, address->length);
-- addrlen = sizeof (struct sockaddr_in);
-+ memmove( (char *) &in_addr.sin6_addr, address->data, address->length);
-+ addrlen = sizeof (struct sockaddr_in6);
- break;
- #endif
- #ifdef AF_DECnet
-@@ -287,7 +290,7 @@
- ProcessRequestSocket ()
- {
- XdmcpHeader header;
-- struct sockaddr_in addr;
-+ struct sockaddr_in6 addr;
- int addrlen = sizeof addr;
- #ifdef MINIX
- int r;
-@@ -486,7 +489,8 @@
-
- data = connectionAddress->data;
- hostent = gethostbyaddr ((char *)data,
-- connectionAddress->length, AF_INET);
-+ connectionAddress->length,
-+ connectionAddress->length == 4 ? AF_INET : AF_INET6);
- if (sourceAddress && hostent) {
- #if defined(__SVR4) && defined(__sun)
- /*
-@@ -546,11 +550,34 @@
- }
- else
- {
-+ if (multiHomed) {
-+ if (((struct sockaddr_in *)
-+ originalAddress)->sin_family == AF_INET) {
-+ data = (CARD8 *) &((struct sockaddr_in *)
-+ originalAddress)->sin_addr.s_addr;
-+ goto v4;
-+ }
-+ data = (CARD8 *) &((struct sockaddr_in6 *)
-+ originalAddress)->sin6_addr;
-+ goto v6;
-+ }
-+ if (connectionAddress->length == sizeof (struct in6_addr)) {
-+ v6:
-+ if (IN6_IS_ADDR_V4MAPPED((struct in6_addr *)data)) {
-+ data += sizeof(struct in6_addr)-sizeof(struct in_addr);
-+ goto v4;
-+ }
-+ if (!getString (name, INET6_ADDRSTRLEN+6))
-+ return 0;
-+ (void) inet_ntop(AF_INET6, data, name, INET6_ADDRSTRLEN);
-+ sprintf(name+strlen(name), ":%d", displayNumber);
-+ return name;
-+ }
-+ if (connectionAddress->length != 4)
-+ return 0;
-+ v4:
- if (!getString (name, 25))
- return 0;
-- if (multiHomed)
-- data = (CARD8 *) &((struct sockaddr_in *)originalAddress)->
-- sin_addr.s_addr;
- sprintf(name, "%d.%d.%d.%d:%d",
- data[0], data[1], data[2], data[3], displayNumber);
- }
-@@ -631,6 +658,29 @@
- }
- break;
- #endif
-+#ifdef AF_INET6
-+ case AF_INET6:
-+ {
-+ struct sockaddr_in6 in_addr;
-+
-+ if (clientAddress.length != 16 ||
-+ clientPort.length != 2)
-+ {
-+ goto badAddress;
-+ }
-+ bzero ((char *) &in_addr, sizeof (in_addr));
-+#ifdef BSD44SOCKETS
-+ in_addr.sin6_len = sizeof(in_addr);
-+#endif
-+ in_addr.sin6_family = AF_INET6;
-+ in_addr.sin6_flowinfo = 0;
-+ memmove( &in_addr.sin6_addr, clientAddress.data, 16);
-+ memmove( (char *) &in_addr.sin6_port, clientPort.data, 2);
-+ client = (struct sockaddr *) &in_addr;
-+ clientlen = sizeof (in_addr);
-+ }
-+ break;
-+#endif
- #ifdef AF_UNIX
- case AF_UNIX:
- {
-@@ -1199,11 +1249,14 @@
- char *local_name;
-
- hostent = gethostbyaddr ((char *)connectionAddress->data,
-- connectionAddress->length, AF_INET);
-+ connectionAddress->length,
-+ connectionAddress->length == 4 ? AF_INET : AF_INET6);
-
- if (hostent)
- local_name = hostent->h_name;
- else {
-+ if (connectionAddress->length != 4)
-+ break;
- /* can't get name, so use emergency fallback */
- sprintf(dotted, "%d.%d.%d.%d",
- connectionAddress->data[0],
---- XFree86-3.3.3.1/xc/programs/xfs/difs/main.c.ipv6 Thu Jun 24 12:39:41 1999
-+++ XFree86-3.3.3.1/xc/programs/xfs/difs/main.c Thu Jun 24 12:39:47 1999
-@@ -60,6 +60,10 @@
- #include "site.h"
- #include <unistd.h>
-
-+#include <sys/types.h>
-+#include <netinet/in.h>
-+#include <resolv.h>
-+
- char *ConnectionInfo;
- int ConnInfoLen;
-
-@@ -94,6 +98,10 @@
-
- argcGlobal = argc;
- argvGlobal = argv;
-+
-+ if ((_res.options & RES_INIT) == 0)
-+ (void)res_init();
-+ _res.options |= RES_USE_INET6;
-
- configfilename = DEFAULT_CONFIG_FILE;
-
---- XFree86-3.3.3.1/xc/programs/xfs/os/access.c.ipv6 Sat Jan 18 08:02:45 1997
-+++ XFree86-3.3.3.1/xc/programs/xfs/os/access.c Thu Jun 24 12:39:47 1999
-@@ -93,7 +93,7 @@
- char hname[64];
- struct hostent *hp;
-
-- addr->addr_len = sizeof(struct in_addr);
-+ addr->addr_len = sizeof(struct in6_addr);
- addr->address = (pointer) fsalloc(addr->addr_len);
- if (!addr->address)
- return FSBadAlloc;
---- XFree86-3.3.3.1/xc/programs/xfwp/xfwp.c.ipv6 Fri Jan 23 00:53:25 1998
-+++ XFree86-3.3.3.1/xc/programs/xfwp/xfwp.c Thu Jun 24 14:22:13 1999
-@@ -57,6 +57,7 @@
- #endif
- #include <sys/wait.h>
- #include <netdb.h>
-+#include <resolv.h>
- #if defined(_ANSI_SOURCE) && defined(__bsdi__)
- #undef _ANSI_SOURCE
- #include <signal.h>
-@@ -163,13 +164,13 @@
- main (int argc, char * argv[])
- {
- struct clientDataStruct client_data;
-- struct sockaddr_in dest_server;
-+ struct sockaddr_in6 dest_server;
- struct pm_policy policy;
- int pm_listen_array[MAX_TRANSPORTS];
- int pm_conn_counter;
-- struct sockaddr_in pm_sockaddr_in;
-+ struct sockaddr_in6 pm_sockaddr_in6;
- int rem_listen_counter;
-- struct sockaddr_in rem_sockaddr_in;
-+ struct sockaddr_in6 rem_sockaddr_in6;
- fd_set readable, writable, rinit, winit;
- int nfds = 0;
- int nready = 0;
-@@ -196,6 +197,10 @@
- /*
- // now do the rest of the setup
- */
-+ if ((_res.options & RES_INIT) == 0)
-+ (void) res_init();
-+ _res.options |= RES_USE_INET6;
-+
- doProcessInputArgs(config_info, argc, argv);
- if ((config_status = doHandleConfigFile(config_info)) == FAILURE)
- exit(1);
-@@ -515,7 +520,7 @@
- {
- int this_server;
- int one = 1;
-- struct sockaddr_in rem_sockaddr_in;
-+ struct sockaddr_in6 rem_sockaddr_in6;
- int port_counter;
- int listen_port;
- char port_buff[10];
-@@ -578,7 +583,7 @@
- return FAILURE;
- }
- if ((server_array[this_server]->client_listen_fd =
-- socket(AF_INET, SOCK_STREAM, 0)) < 0)
-+ socket(AF_INET6, SOCK_STREAM, 0)) < 0)
- {
- #ifdef DEBUG
- fprintf(stderr,"doRemClientSetup: socket() call failed!");
-@@ -599,8 +604,10 @@
- /*
- // set up the rest of the remote client listener
- */
-- bzero((char * ) &rem_sockaddr_in, sizeof(rem_sockaddr_in));
-- rem_sockaddr_in.sin_family = AF_INET;
-+ bzero((char * ) &rem_sockaddr_in6, sizeof(rem_sockaddr_in6));
-+ rem_sockaddr_in6.sin6_family = AF_INET6;
-+ rem_sockaddr_in6.sin6_flowinfo = 0;
-+ rem_sockaddr_in6.sin6_addr = in6addr_any;
- if (setsockopt(server_array[this_server]->client_listen_fd,
- SOL_SOCKET, SO_REUSEADDR,
- &one, sizeof(one)) < 0)
-@@ -617,10 +624,10 @@
- }
-
- while (True) {
-- rem_sockaddr_in.sin_port = htons(listen_port);
-+ rem_sockaddr_in6.sin6_port = htons(listen_port);
- if (bind(server_array[this_server]->client_listen_fd,
-- (struct sockaddr *)&rem_sockaddr_in,
-- sizeof(rem_sockaddr_in)) == 0)
-+ (struct sockaddr *)&rem_sockaddr_in6,
-+ sizeof(rem_sockaddr_in6)) == 0)
- break;
- if (errno != EADDRINUSE)
- {
-@@ -1003,7 +1010,7 @@
- int server_reason_len;
- int conn_auth_namelen, conn_auth_datalen;
- char throw_away[RWBUFFER_SIZE];
-- struct sockaddr_in server_sockaddr_in;
-+ struct sockaddr_in6 server_sockaddr_in6;
- enum CONFIG_CHECK server_status;
- xConnClientPrefix client;
- xConnSetupPrefix prefix;
-@@ -1039,10 +1046,10 @@
- int check_sock_fd;
- struct timeval time_val;
- struct timezone time_zone;
-- struct sockaddr_in temp_sockaddr_in;
-+ struct sockaddr_in6 temp_sockaddr_in6;
- int retval;
- int config_check;
-- int addrlen = sizeof(temp_sockaddr_in);
-+ int addrlen = sizeof(temp_sockaddr_in6);
- /*
- // start by accepting the connection if you can, use pm_listen_array
- // index to index into ICE listen_object list (this is because the
-@@ -1061,17 +1068,17 @@
- // connection; start by using getpeername() to get endpoint info
- */
- retval = getpeername(temp_sock_fd,
-- (struct sockaddr*)&temp_sockaddr_in,
-+ (struct sockaddr*)&temp_sockaddr_in6,
- &addrlen);
-
-- assert(temp_sockaddr_in.sin_family == AF_INET);
-+ assert(temp_sockaddr_in6.sin6_family == AF_INET6);
-
- /*
- // then do the configuration check; NOTE: we're not doing anything
-- // with the server_sockaddr_in argument
-+ // with the server_sockaddr_in6 argument
- */
-- if ((config_check = doConfigCheck(&temp_sockaddr_in,
-- &server_sockaddr_in,
-+ if ((config_check = doConfigCheck(&temp_sockaddr_in6,
-+ &server_sockaddr_in6,
- config_info,
- PMGR,
- &log_data)) == FAILURE)
-@@ -1302,17 +1309,18 @@
- // configuration, if connection allowed, allocate
- // the read/write buffer for this connection;
- */
-- struct sockaddr_in temp_sockaddr_in;
-- int temp_sock_fd;
-- int temp_sock_len;
-- int host_count;
-- int config_check;
-- struct timeval time_val;
-- struct timezone time_zone;
-+ struct sockaddr_in6 temp_sockaddr_in6;
-+ int temp_sock_fd;
-+ int temp_sock_len;
-+ int host_count;
-+ int config_check;
-+ struct timeval time_val;
-+ struct timezone time_zone;
-+ char v1[64], v2[64];
-
-- temp_sock_len = sizeof(temp_sockaddr_in);
-+ temp_sock_len = sizeof(temp_sockaddr_in6);
- if ((temp_sock_fd = accept(fd_counter,
-- (struct sockaddr *) &temp_sockaddr_in,
-+ (struct sockaddr *) &temp_sockaddr_in6,
- &temp_sock_len)) < 0)
- {
- /*
-@@ -1336,7 +1344,7 @@
- if ((server_status =
- doServerConnectSetup(server_array[listen_counter]->x_server_hostport,
- &server_array[listen_counter]->server_fd,
-- &server_sockaddr_in)) == FAILURE)
-+ &server_sockaddr_in6)) == FAILURE)
- {
- #ifdef DEBUG
- fprintf(stderr,
-@@ -1346,7 +1354,7 @@
- }
- if ((server_status =
- doServerConnect(&server_array[listen_counter]->server_fd,
-- &server_sockaddr_in)) == FAILURE)
-+ &server_sockaddr_in6)) == FAILURE)
- {
- #ifdef DEBUG
- fprintf(stderr,
-@@ -1355,15 +1363,18 @@
- return;
- }
- /*
-- // derive and save the client IP source and destination address strings
-- // for logging purposes (have to do it here while we have them; even if
-- // this client connection passes the config check, it might fail the
-- // server security checks later); also, init the config_rule_num field
-- */
-- log_data.source = Malloc(strlen(inet_ntoa(temp_sockaddr_in.sin_addr)));
-- log_data.destination = Malloc(strlen(inet_ntoa(server_sockaddr_in.sin_addr)));
-- strcpy(log_data.source, inet_ntoa(temp_sockaddr_in.sin_addr));
-- strcpy(log_data.destination, inet_ntoa(server_sockaddr_in.sin_addr));
-+ // derive and save the client IPv6 source and destination
-+ // address strings for logging purposes (have to do it here
-+ // while we have them; even if this client connection passes
-+ // the config check, it might fail the server security checks later);
-+ // also, init the config_rule_num field
-+ */
-+ log_data.source = Malloc(strlen(inet_ntop(AF_INET6,
-+ &temp_sockaddr_in6.sin6_addr, v1, sizeof(v1))));
-+ log_data.destination = Malloc(strlen(inet_ntop(AF_INET6,
-+ &server_sockaddr_in6.sin6_addr, v2, sizeof(v2))));
-+ strcpy(log_data.source, v1);
-+ strcpy(log_data.destination, v2);
- log_data.config_rule_num = -1;
- /*
- // do config check on client source and destination (must do
-@@ -1371,8 +1382,8 @@
- // to query and we may not be able to resolve server name
- // alone from xfindproxy()
- */
-- if ((config_check = doConfigCheck(&temp_sockaddr_in,
-- &server_sockaddr_in,
-+ if ((config_check = doConfigCheck(&temp_sockaddr_in6,
-+ &server_sockaddr_in6,
- config_info,
- CLIENT,
- &log_data)) == FAILURE)
-@@ -1454,13 +1465,13 @@
- // server security extension or other loggable events)
- */
- client_conn_array[temp_sock_fd]->source =
-- Malloc(strlen(inet_ntoa(temp_sockaddr_in.sin_addr)));
-+ Malloc(strlen(inet_ntop(AF_INET6,
-+ &temp_sockaddr_in6.sin6_addr, v1, sizeof(v1))));
- client_conn_array[temp_sock_fd]->destination =
-- Malloc(strlen(inet_ntoa(server_sockaddr_in.sin_addr)));
-- strcpy(client_conn_array[temp_sock_fd]->source,
-- inet_ntoa(temp_sockaddr_in.sin_addr));
-- strcpy(client_conn_array[temp_sock_fd]->destination,
-- inet_ntoa(server_sockaddr_in.sin_addr));
-+ Malloc(strlen(inet_ntop(AF_INET6,
-+ &server_sockaddr_in6.sin6_addr, v2, sizeof(v2))));
-+ strcpy(client_conn_array[temp_sock_fd]->source, v1);
-+ strcpy(client_conn_array[temp_sock_fd]->destination, v2);
- /*
- // allocate a buffer for the X server connection
- // and create the association between client and server
-@@ -1959,7 +1970,7 @@
- fprintf(stderr, "Server replied AUTHENTICATE!\n");
- #endif
- /*
-- // retrieve the client IP source and destination address strings
-+ // retrieve the client IPv6 source and destination address strings
- */
- log_data.source =
- Malloc(strlen
-@@ -2030,13 +2041,22 @@
- }/* end if client_conn_array != NULL */
- }
-
--int doConfigCheck(struct sockaddr_in * source_sockaddr_in,
-- struct sockaddr_in * dest_sockaddr_in,
-+#define IN6ADDR_MATCH(x,m,y) \
-+ match = 1; \
-+ for (i = 0; i < sizeof(struct in6_addr) && (m).s6_addr[i] != 0; i++) \
-+ if (((x).s6_addr[i] & (m).s6_addr[i]) != (y).s6_addr[i]) { \
-+ match = 0; \
-+ break; \
-+ }
-+
-+int doConfigCheck(struct sockaddr_in6 * source_sockaddr_in6,
-+ struct sockaddr_in6 * dest_sockaddr_in6,
- struct config * config_info,
- int context,
- struct log_struct * log_data)
- {
- int line_counter;
-+ int i, match;
- /*
- // look through the config file parse tree for a source IP address
- // that matches this request
-@@ -2045,12 +2065,13 @@
- {
- if (config_info->config_file_data[line_counter] != NULL)
- {
-- if ((source_sockaddr_in->sin_addr.s_addr &
-- (~(config_info->config_file_data[line_counter]->source_net))) ==
-- config_info->config_file_data[line_counter]->source_host)
-+ IN6ADDR_MATCH(source_sockaddr_in6->sin6_addr,
-+ config_info->config_file_data[line_counter]->source_net,
-+ config_info->config_file_data[line_counter]->source_host);
-+ if (match)
- {
- /*
-- // okay, the source host and netmask fields pass, see if the
-+ // okay, the source host and prefix length fields pass, see if the
- // config file specifies "permit" or "deny" for this host
- */
- if (!strcmp(config_info->config_file_data[line_counter]->permit_deny,
-@@ -2065,9 +2086,10 @@
- /*
- // compute destination info restrictions
- */
-- if ((dest_sockaddr_in->sin_addr.s_addr &
-- (~(config_info->config_file_data[line_counter]->dest_net))) ==
-- config_info->config_file_data[line_counter]->dest_host)
-+ IN6ADDR_MATCH(dest_sockaddr_in6->sin6_addr,
-+ config_info->config_file_data[line_counter]->dest_net,
-+ config_info->config_file_data[line_counter]->dest_host);
-+ if (match)
- {
- /*
- // you got a match on the destination, so look at
-@@ -2171,9 +2193,10 @@
- /*
- // compute destination info restrictions
- */
-- if ((dest_sockaddr_in->sin_addr.s_addr &
-- (~(config_info->config_file_data[line_counter]->dest_net))) ==
-- config_info->config_file_data[line_counter]->dest_host)
-+ IN6ADDR_MATCH(dest_sockaddr_in6->sin6_addr,
-+ config_info->config_file_data[line_counter]->dest_net,
-+ config_info->config_file_data[line_counter]->dest_host);
-+ if (match)
- {
- /*
- // you got a match on the destination, so look at
-@@ -2292,7 +2315,7 @@
- if (config_info->config_file_path == NULL)
- {
- if (printConfigVerify)
-- fputs("matched default permit 0.0.0.0 255.255.255.255\n", stderr);
-+ fputs("matched default permit :: 0\n", stderr);
- /*
- // there's no rule match to save
- */
-@@ -2301,7 +2324,7 @@
- }
-
- if (printConfigVerify)
-- fputs("matched default deny 0.0.0.0 255.255.255.255\n", stderr);
-+ fputs("matched default deny :: 0\n", stderr);
- /*
- // not in this case either
- */
-@@ -2395,8 +2418,8 @@
- pmGetProxyAddrReplyMsg * pReply;
- char * pReplyData;
- struct hostent * hostptr;
-- struct sockaddr_in server_sockaddr_in;
-- struct sockaddr_in dummy_sockaddr_in;
-+ struct sockaddr_in6 server_sockaddr_in6;
-+ struct sockaddr_in6 dummy_sockaddr_in6;
- char * server_name_base;
- int config_check;
- char * config_failure = "unrecognized server or permission denied";
-@@ -2497,9 +2520,9 @@
- #endif
- goto sendFailure;
- }
-- memset(&server_sockaddr_in, 0, sizeof(server_sockaddr_in));
-- memset(&dummy_sockaddr_in, 0, sizeof(dummy_sockaddr_in));
-- memcpy((char *) &server_sockaddr_in.sin_addr,
-+ memset(&server_sockaddr_in6, 0, sizeof(server_sockaddr_in6));
-+ memset(&dummy_sockaddr_in6, 0, sizeof(dummy_sockaddr_in6));
-+ memcpy((char *) &server_sockaddr_in6.sin6_addr,
- hostptr->h_addr,
- hostptr->h_length);
-
-@@ -2509,11 +2532,11 @@
- // NOTE: source configuration will always match (see XFWP man
- // page) unless sysadmin explicitly chooses to deny
- */
-- memcpy((char *) &dummy_sockaddr_in.sin_addr,
-+ memcpy((char *) &dummy_sockaddr_in6.sin6_addr,
- hostptr->h_addr,
- hostptr->h_length);
-- if ((config_check = doConfigCheck(&dummy_sockaddr_in,
-- &server_sockaddr_in,
-+ if ((config_check = doConfigCheck(&dummy_sockaddr_in6,
-+ &server_sockaddr_in6,
- global_data.config_info,
- FINDPROXY,
- &log_data)) == FAILURE)
-@@ -2759,7 +2782,7 @@
-
- int doServerConnectSetup(char * x_server_hostport,
- int * server_connect_fd,
-- struct sockaddr_in * server_sockaddr_in)
-+ struct sockaddr_in6 * server_sockaddr_in6)
- {
- struct hostent * hostptr;
- char * server_name_base;
-@@ -2796,7 +2819,7 @@
- #endif
- return;
- }
-- if ((*server_connect_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
-+ if ((*server_connect_fd = socket(AF_INET6, SOCK_STREAM, 0)) < 0)
- {
- #ifdef DEBUG
- fprintf(stderr,
-@@ -2805,20 +2828,20 @@
- #endif
- return FAILURE;
- }
-- memset(server_sockaddr_in, 0, sizeof(*server_sockaddr_in));
-- server_sockaddr_in->sin_family = hostptr->h_addrtype;
-- memcpy((char *) &server_sockaddr_in->sin_addr,
-+ memset(server_sockaddr_in6, 0, sizeof(*server_sockaddr_in6));
-+ server_sockaddr_in6->sin6_family = hostptr->h_addrtype;
-+ memcpy((char *) &server_sockaddr_in6->sin6_addr,
- hostptr->h_addr,
- hostptr->h_length);
-- server_sockaddr_in->sin_port = htons(server_port);
-+ server_sockaddr_in6->sin6_port = htons(server_port);
- return SUCCESS;
- }
-
- int doServerConnect(int * server_connect_fd,
-- struct sockaddr_in * server_sockaddr_in)
-+ struct sockaddr_in6 * server_sockaddr_in6)
- {
-- if(connect(*server_connect_fd, (struct sockaddr * )server_sockaddr_in,
-- sizeof(*server_sockaddr_in)) < 0)
-+ if(connect(*server_connect_fd, (struct sockaddr * )server_sockaddr_in6,
-+ sizeof(*server_sockaddr_in6)) < 0)
- {
- #ifdef DEBUG
- fprintf(stderr,
-@@ -3122,13 +3145,13 @@
-
- config_lineP->permit_deny = NULL;
- config_lineP->source_hostname = NULL;
-- config_lineP->source_host = 0;
-- config_lineP->source_netmask = NULL;
-- config_lineP->source_net = 0;
-+ bzero((char *)&config_lineP->source_host, sizeof(struct in6_addr));
-+ config_lineP->source_preflen = NULL;
-+ bzero((char *)&config_lineP->source_net, sizeof(struct in6_addr));
- config_lineP->dest_hostname = NULL;
-- config_lineP->dest_host = 0;
-- config_lineP->dest_netmask = NULL;
-- config_lineP->dest_net = 0;
-+ bzero((char *)&config_lineP->dest_host, sizeof(struct in6_addr));
-+ config_lineP->dest_preflen = NULL;
-+ bzero((char *)&config_lineP->dest_net, sizeof(struct in6_addr));
- config_lineP->operator = NULL;
- config_lineP->service = NULL;
-
-@@ -3200,7 +3223,7 @@
- {
- char token[64];
- strcpy(token, result);
-- if (doVerifyHostMaskToken(token))
-+ if (doVerifyHostToken(token))
- {
- if ((config_file_data[line_number]->source_hostname =
- (char *) malloc (strlen(result) + 1)) == NULL)
-@@ -3219,22 +3242,24 @@
- /*
- // generate network address format
- */
-- config_file_data[line_number]->source_host =
-- inet_addr(config_file_data[line_number]->source_hostname);
-+ inet_pton(AF_INET6,
-+ config_file_data[line_number]->source_hostname,
-+ &config_file_data[line_number]->source_host);
- } else
- bad_token = 1;
- }
-
- /*
-- // now the source netmask field
-+ // now the source prefix length field
- */
- if ((result = strtok(NULL, SEPARATOR1)) != NULL)
- {
- char token[64];
-+ int plen, j;
- strcpy(token, result);
-- if (doVerifyHostMaskToken(token))
-+ if (doVerifyMaskToken(token))
- {
-- if ((config_file_data[line_number]->source_netmask =
-+ if ((config_file_data[line_number]->source_preflen =
- (char *) malloc (strlen(result) + 1)) == NULL)
- {
- #ifdef DEBUG
-@@ -3242,14 +3267,18 @@
- #endif
- return 0;
- }
-- strcpy(config_file_data[line_number]->source_netmask, result);
-+ strcpy(config_file_data[line_number]->source_preflen, result);
- #ifdef DEBUG
- fprintf(stderr,
- "third token = %s\n",
-- config_file_data[line_number]->source_netmask);
-+ config_file_data[line_number]->source_preflen);
- #endif
-- config_file_data[line_number]->source_net =
-- inet_addr(config_file_data[line_number]->source_netmask);
-+ plen = atoi(config_file_data[line_number]->source_preflen);
-+ for (j = 0; plen >= 8; plen -= 8, j++)
-+ config_file_data[line_number]->source_net.s6_addr[j] = 0xff;
-+ if (plen != 0)
-+ config_file_data[line_number]->source_net.s6_addr[j] =
-+ 0xff << (8 - plen);
- } else
- bad_token = 1;
- }
-@@ -3260,7 +3289,7 @@
- {
- char token[64];
- strcpy(token, result);
-- if (doVerifyHostMaskToken(token))
-+ if (doVerifyHostToken(token))
- {
- if ((config_file_data[line_number]->dest_hostname =
- (char *) malloc (strlen(result) + 1)) == NULL)
-@@ -3276,21 +3305,23 @@
- "fourth token = %s\n",
- config_file_data[line_number]->dest_hostname);
- #endif
-- config_file_data[line_number]->dest_host =
-- inet_addr(config_file_data[line_number]->dest_hostname);
-+ inet_pton(AF_INET6,
-+ config_file_data[line_number]->dest_hostname,
-+ &config_file_data[line_number]->dest_host);
- } else
- bad_token = 1;
- }
- /*
-- // now the destination netmask field
-+ // now the destination prefix length field
- */
- if ((result = strtok(NULL, SEPARATOR1)) != NULL)
- {
- char token[64];
-+ int plen, j;
- strcpy(token, result);
-- if (doVerifyHostMaskToken(token))
-+ if (doVerifyMaskToken(token))
- {
-- if ((config_file_data[line_number]->dest_netmask =
-+ if ((config_file_data[line_number]->dest_preflen =
- (char *) malloc (strlen(result) + 1)) == NULL)
- {
- #ifdef DEBUG
-@@ -3298,14 +3329,18 @@
- #endif
- return 0;
- }
-- strcpy(config_file_data[line_number]->dest_netmask, result);
-+ strcpy(config_file_data[line_number]->dest_preflen, result);
- #ifdef DEBUG
- fprintf(stderr,
- "fifth token = %s\n",
-- config_file_data[line_number]->dest_netmask);
-+ config_file_data[line_number]->dest_preflen);
- #endif
-- config_file_data[line_number]->dest_net =
-- inet_addr(config_file_data[line_number]->dest_netmask);
-+ plen = atoi(config_file_data[line_number]->dest_preflen);
-+ for (j = 0; plen >= 8; plen -= 8, j++)
-+ config_file_data[line_number]->dest_net.s6_addr[j] = 0xff;
-+ if (plen != 0)
-+ config_file_data[line_number]->dest_net.s6_addr[j] =
-+ 0xff << (8 - plen);
- } else
- bad_token = 1;
- }
-@@ -3377,9 +3412,9 @@
- ((config_file_data[line_number]->permit_deny != NULL) &&
- (config_file_data[line_number]->source_hostname == NULL)) ||
- ((config_file_data[line_number]->source_hostname != NULL) &&
-- (config_file_data[line_number]->source_netmask == NULL)) ||
-+ (config_file_data[line_number]->source_preflen == NULL)) ||
- ((config_file_data[line_number]->dest_hostname != NULL) &&
-- (config_file_data[line_number]->dest_netmask == NULL)) ||
-+ (config_file_data[line_number]->dest_preflen == NULL)) ||
- ((config_file_data[line_number]->operator != NULL) &&
- (config_file_data[line_number]->service == NULL)))
- return 1;
-@@ -3388,27 +3423,23 @@
- return 0;
- }
-
--int doVerifyHostMaskToken(char token[])
-+int doVerifyHostToken(char token[])
- {
-- char * result;
-- int delimiter_count = 0;
-+ struct in6_addr addr;
- /*
-- // verify there are 3 "." delimiters in the token
-+ // verify it is a real IPv6 address
- */
-- while (token)
-- {
-- if ((result = strchr(token, SEPARATOR2)) != NULL)
-- {
-- token = result;
-- delimiter_count++;
-- token ++;
-- } else
-- token = result;
-- }
-- if ((delimiter_count < 3) || (delimiter_count > 3))
-- return 0;
-- else
-- return 1;
-+ return (inet_pton(AF_INET6, token, &addr) > 0);
-+}
-+
-+int doVerifyMaskToken(char token[])
-+{
-+ int plen;
-+ /*
-+ // verify it is a legal prefix length
-+ */
-+ plen = atoi(token);
-+ return ((plen >= 0) && (plen <= 128));
- }
-
- void BadSyntax(char *msg, int line)
-@@ -3483,8 +3514,8 @@
- struct config_line *ruleP = config_info->config_file_data[line_counter];
- fprintf(stderr,"matched: %s %s %s %s %s %s %s\n",
- ruleP->permit_deny,
-- ruleP->source_hostname, ruleP->source_netmask,
-- ruleP->dest_hostname, ruleP->dest_netmask,
-+ ruleP->source_hostname, ruleP->source_preflen,
-+ ruleP->dest_hostname, ruleP->dest_preflen,
- ruleP->operator,
- ruleP->service);
- }
---- XFree86-3.3.3.1/xc/programs/xfwp/xfwp.h.ipv6 Wed Jun 11 14:09:00 1997
-+++ XFree86-3.3.3.1/xc/programs/xfwp/xfwp.h Thu Jun 24 12:39:47 1999
-@@ -61,7 +61,7 @@
- /* allocate ADD_LINES entries at a time when loading the configuration */
- #define ADD_LINES 20
- #define SEPARATOR1 " \t\n"
--#define SEPARATOR2 '.'
-+#define SEPARATOR2 ':'
-
- #define min(a,b) ((a) < (b) ? (a) : (b))
- #define max(a,b) ((a) > (b) ? (a) : (b))
-@@ -194,13 +194,13 @@
- {
- char * permit_deny;
- char * source_hostname;
-- unsigned int source_host;
-- char * source_netmask;
-- unsigned int source_net;
-+ struct in6_addr source_host;
-+ char * source_preflen;
-+ struct in6_addr source_net;
- char * dest_hostname;
-- unsigned int dest_host;
-- char * dest_netmask;
-- unsigned int dest_net;
-+ struct in6_addr dest_host;
-+ char * dest_preflen;
-+ struct in6_addr dest_net;
- char * operator;
- char * service;
- int service_id;
-@@ -303,8 +303,8 @@
- struct client_conn_buf * client_conn_array[],
- struct ice_data * ice_data);
-
--int doConfigCheck(struct sockaddr_in * temp_sockaddr_in,
-- struct sockaddr_in * server_sockaddr_in,
-+int doConfigCheck(struct sockaddr_in6 * temp_sockaddr_in6,
-+ struct sockaddr_in6 * server_sockaddr_in6,
- struct config * config_info,
- int context,
- struct log_struct * log_data);
-@@ -337,10 +337,10 @@
-
- int doServerConnectSetup(char * x_server_hostport,
- int * server_connect_fd,
-- struct sockaddr_in * server_addr_in);
-+ struct sockaddr_in6 * server_addr_in6);
-
- int doServerConnect(int * server_connect_fd,
-- struct sockaddr_in * server_addr_in);
-+ struct sockaddr_in6 * server_addr_in6);
-
- int doProcessLine(char *line,
- struct config * config_info,
-@@ -352,7 +352,9 @@
-
- Bool doConfigRequireDisallow(int, char*);
-
--int doVerifyHostMaskToken(char token[]);
-+int doVerifyHostToken(char token[]);
-+
-+int doVerifyMaskToken(char token[]);
-
- void doInstallIOErrorHandler();
-
---- XFree86-3.3.3.1/xc/programs/xfwp/xfwp.man.ipv6 Tue Dec 24 11:04:47 1996
-+++ XFree86-3.3.3.1/xc/programs/xfwp/xfwp.man Thu Jun 24 12:39:47 1999
-@@ -206,7 +206,7 @@
- packet-filtering routers. It contains zero or more source-destination
- rules of the following form:
- .PP
--[#]{permit | deny} <src> <src mask> [<dest> <dest mask> [<operator> <service>]]
-+[#]{permit | deny} <src> <src len> [<dest> <dest len> [<operator> <service>]]
- .sp
- .IP # 12
- comment delimiter; evaluator will skip these lines
-@@ -214,21 +214,21 @@
- the keywords ``permit'' or ``deny'' indicate whether the
- rule will enable or disable access, respectively
- .IP src 12
--the IP address against the host who originated the
--connection request will be matched, expressed in IP
--format (x.x.x.x)
--.IP "src mask" 12
--a subnet mask, also in IP format, for further qualifying
--the source mask. Bits set in the mask indicate bits of the
-+the IPv6 address against the host who originated the
-+connection request will be matched, expressed in IPv6
-+format (x:x:x:x:x:x:x:x)
-+.IP "src len" 12
-+a prefix length, a number between 0 and 128, for further qualifying
-+the source prefix. Bits after the prefix indicate bits of the
- incoming address to be \fIignored\fP when comparing to the specified src
- .IP dest 12
--the IP address against which the destination of the
--incoming connection request (i.e. the host IP of the
-+the IPv6 address against which the destination of the
-+incoming connection request (i.e. the host IPv6 of the
- X server to which the incoming client is attempting to
- connect) will be matched
--.IP "dest mask" 12
--a subnet mask, also in IP format, for further qualifying
--the destination mask. Bits set in the mask indicate bits of the
-+.IP "dest len" 12
-+a prefix length, a number between 0 and 128, for further qualifying
-+the destination prefix. Bits after the prefix indicate bits of the
- destination address to be \fIignored\fP when comparing to the specified dest
- .IP operator 12
- always ``eq'' (if the service field is not NULL)
-@@ -267,8 +267,8 @@
- .RS 3
- while (more entries to check)
- {
-- if ((<originator IP> AND (NOT <src mask>)) == src)
-- [if ((<dest X server IP> AND (NOT <dest mask>)) == dest)]
-+ if ((<originator IPv6> AND (<src prefix>)) == src)
-+ [if ((<dest X server IPv6> AND (<dest prefix>)) == dest)]
- [if (service fields present and matching)]
- do either permit or deny connection depending on keyword
- else
-@@ -312,22 +312,22 @@
- require policy1
- require policy2
- #
--# deny pm connections originating on 8.7.6.5 [NOTE: If pm service
-+# deny pm connections originating on 8:7:6:5:4:3:2:1 [NOTE: If pm service
- # is explicitly qualified, line must include destination fields as
- # shown.]
- #
--deny 8.7.6.5 0.0.0.0 0.0.0.0 255.255.255.255 eq pm
-+deny 8:7:6:5:4:3:2:1 128 :: 0 eq pm
- #
- # permit xfindproxy X server connects to anywhere [NOTE: If
- # fp service is explicitly qualified, line must include source fields
- # as shown.]
- #
--permit 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq fp
-+permit :: 0 :: 0 eq fp
- #
--# permit all connection types originating from the 192.0.0.0
--# IP domain only
-+# permit all connection types originating from the fec0::/10
-+# IPv6 domain only
- #
--permit 192.0.0.0 0.255.255.255
-+permit fec0:: 10
- .fi
- \fP
- .PP
---- XFree86-3.3.3.1/xc/programs/xhost/xhost.c.ipv6 Sun Sep 13 15:15:59 1998
-+++ XFree86-3.3.3.1/xc/programs/xhost/xhost.c Thu Jun 24 12:39:47 1999
-@@ -75,6 +75,7 @@
- #endif
- #include <netdb.h>
- #include <netinet/in.h>
-+#include <resolv.h>
- #else
- #include <server/ip/gen/socket.h>
- #include <server/ip/types.h>
-@@ -153,6 +154,9 @@
- #ifdef AF_INET
- { AF_INET, FamilyInternet },
- #endif
-+#ifdef AF_INET6
-+ { AF_INET6, FamilyInternet },
-+#endif
- };
-
- #define FAMILIES ((sizeof familyMap)/(sizeof familyMap[0]))
-@@ -184,6 +188,12 @@
-
- ProgramName = argv[0];
-
-+#ifdef NEEDSOCKETS
-+ if ((_res.options & RES_INIT) == 0)
-+ (void)res_init();
-+ _res.options |= RES_USE_INET6;
-+#endif
-+
- if ((dpy = XOpenDisplay(NULL)) == NULL) {
- fprintf(stderr, "%s: unable to open display \"%s\"\n",
- ProgramName, XDisplayName (NULL));
-@@ -308,7 +318,7 @@
- #endif
- #ifdef NEEDSOCKETS
- #ifndef AMTCPCONN
-- static struct in_addr addr; /* so we can point at it */
-+ static struct in6_addr addr; /* so we can point at it */
- #else
- static ipaddr_t addr;
- #endif
-@@ -484,41 +494,30 @@
- }
- #ifdef NEEDSOCKETS
- /*
-- * First see if inet_addr() can grok the name; if so, then use it.
-- */
--#ifndef AMTCPCONN
-- if ((addr.s_addr = inet_addr(name)) != -1) {
--#else
-- if ((addr = inet_addr(name)) != -1) {
--#endif
-- ha.family = FamilyInternet;
-- ha.length = 4; /* but for Cray would be sizeof(addr.s_addr) */
-- ha.address = (char *)&addr; /* but for Cray would be &addr.s_addr */
-- if (add) {
-- XAddHost (dpy, &ha);
-- printf ("%s %s\n", name, add_msg);
-- } else {
-- XRemoveHost (dpy, &ha);
-- printf ("%s %s\n", name, remove_msg);
-- }
-- return 1;
-- }
-- /*
-+ * (gethostbyname knows how to handle litterals...)
- * Is it in the namespace?
- */
-- else if (((hp = gethostbyname(name)) == (struct hostent *)NULL)
-- || hp->h_addrtype != AF_INET) {
-+ if (((hp = gethostbyname(name)) == (struct hostent *)NULL)
-+ || hp->h_addrtype != AF_INET6) {
- return 0;
- } else {
- ha.family = XFamily(hp->h_addrtype);
-- ha.length = hp->h_length;
- #ifdef h_addr /* new 4.3bsd version of gethostent */
- {
- char **list;
-
- /* iterate over the hosts */
- for (list = hp->h_addr_list; *list; list++) {
-+ ha.length = hp->h_length;
- ha.address = *list;
-+#ifdef UNMAPPED_IPV4
-+ if ((ha.family == FamilyInternet) &&
-+ (ha.length == sizeof(struct in6_addr)) &&
-+ IN6_IS_ADDR_V4MAPPED((struct in6_addr *)ha.address)) {
-+ ha.length = sizeof(struct in_addr);
-+ ha.address += sizeof(struct in6_addr) - sizeof(struct in_addr);
-+ }
-+#endif
- if (add) {
- XAddHost (dpy, &ha);
- } else {
-@@ -527,7 +526,16 @@
- }
- }
- #else
-+ ha.length = hp->h_length;
- ha.address = hp->h_addr;
-+#ifdef UNMAPPED_IPV4
-+ if ((ha.family == FamilyInternet) &&
-+ (ha.length == sizeof(struct in6_addr)) &&
-+ IN6_IS_ADDR_V4MAPPED((struct in6_addr *)ha.address)) {
-+ ha.length = sizeof(struct in_addr);
-+ ha.address += sizeof(struct in6_addr) - sizeof(struct in_addr);
-+ }
-+#endif
- if (add) {
- XAddHost (dpy, &ha);
- } else {
-@@ -545,7 +553,7 @@
-
- /*
- * get_hostname - Given an internet address, return a name (CHARON.MIT.EDU)
-- * or a string representing the address (18.58.0.13) if the name cannot
-+ * or a string representing the address (::ffff:18.58.0.13) if the name cannot
- * be found.
- */
-
-@@ -556,7 +564,7 @@
- {
- #if defined(TCPCONN) || defined(STREAMSCONN) || defined(AMTCPCONN)
- struct hostent *hp = NULL;
-- char *inet_ntoa();
-+ static char v[64];
- #endif
- #ifdef DNETCONN
- struct nodeent *np;
-@@ -571,12 +579,6 @@
-
- #if defined(TCPCONN) || defined(STREAMSCONN) || defined(AMTCPCONN)
- if (ha->family == FamilyInternet) {
--#ifdef CRAY
-- struct in_addr t_addr;
-- bzero((char *)&t_addr, sizeof(t_addr));
-- bcopy(ha->address, (char *)&t_addr, 4);
-- ha->address = (char *)&t_addr;
--#endif
- /* gethostbyaddr can take a LONG time if the host does not exist.
- Assume that if it does not respond in NAMESERVER_TIMEOUT seconds
- that something is wrong and do not make the user wait.
-@@ -586,16 +588,17 @@
- signal(SIGALRM, nameserver_lost);
- alarm(4);
- if (setjmp(env) == 0) {
-- hp = gethostbyaddr (ha->address, ha->length, AF_INET);
-+ hp = gethostbyaddr (ha->address, ha->length,
-+ ha->length == 4 ? AF_INET : AF_INET6);
- }
- alarm(0);
- if (hp)
- return (hp->h_name);
--#ifndef AMTCPCONN
-- else return (inet_ntoa(*((struct in_addr *)(ha->address))));
--#else
-- else return (inet_ntoa(*((ipaddr_t *)(ha->address))));
--#endif
-+ else {
-+ inet_ntop(ha->length == 4 ? AF_INET : AF_INET6,
-+ ha->address, v, sizeof(v));
-+ return (v);
-+ }
- }
- #endif
- if (ha->family == FamilyNetname) {
+++ /dev/null
-Binary files XFree86-3.3.5.orig/xc/doc/specs/XIE/XIEProto/ch8_xie.doc and XFree86-3.3.5/xc/doc/specs/XIE/XIEProto/ch8_xie.doc differ
-diff -urN XFree86-3.3.5.orig/xc/programs/Xserver/hw/xfree86/common/xf86Config.c XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/common/xf86Config.c
---- XFree86-3.3.5.orig/xc/programs/Xserver/hw/xfree86/common/xf86Config.c Thu Jul 29 11:22:44 1999
-+++ XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/common/xf86Config.c Thu Sep 2 19:42:40 1999
-@@ -774,11 +774,11 @@
- }
-
- /*
-- * /etc/XF86Config
-+ * /etc/X11/XF86Config
- */
- configPaths[++pcount] = (char *)xalloc(PATH_MAX);
- #if !defined(__QNX__) || defined(__QNXNTO__)
-- strcpy(configPaths[pcount], "/etc/XF86Config");
-+ strcpy(configPaths[pcount], "/etc/X11/XF86Config");
- #else
- /* On QNX, we default to /etc/config/XF86Config.nid to
- * keep config files separate for network setups
+++ /dev/null
---- XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/XF86Setup/filelist.tcl~ Mon Nov 16 14:13:41 1998
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/XF86Setup/filelist.tcl Sat Jun 19 16:19:34 1999
-@@ -48,8 +48,8 @@
- lib/X11/fonts/misc/fonts.dir 444
- lib/X11/fonts/misc/fonts.alias 444
- lib/X11/fonts/misc/6x13.pc* 444
-- lib/X11/fonts/75dpi/fonts.dir 444
-- lib/X11/fonts/75dpi/symb10.pc* 444
-+ lib/X11/fonts/*dpi/fonts.dir 444
-+ lib/X11/fonts/*dpi/symb10.pc* 444
- }
-
- array set FilePermsDB {
+++ /dev/null
---- XFree86-3.3.3.1/xc/include/Xpoll.h.alpha-sockets Mon Jan 11 12:28:21 1999
-+++ XFree86-3.3.3.1/xc/include/Xpoll.h Mon Jan 11 12:30:05 1999
-@@ -40,7 +40,7 @@
-
- #include <X11/Xos.h>
- #if !defined(DGUX)
--#if (defined(SVR4) || defined(CRAY) || defined(AIXV3)) && !defined(FD_SETSIZE)
-+#if (defined(SVR4) || defined(CRAY) || defined(AIXV3) || defined(linux)) && !defined(FD_SETSIZE)
- #include <sys/select.h>
- #ifdef luna
- #include <sysent.h>
---- XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/common/compiler.h.alpha-sockets Mon Oct 19 16:39:32 1998
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/common/compiler.h Mon Jan 11 12:28:22 1999
-@@ -161,53 +161,93 @@
- * from linux/include/asm-alpha/unaligned.h
- */
-
--static __inline__ unsigned long ldq_u(unsigned long * r11)
--{
-+/*
-+ * This is a silly but good way to make sure that
-+ * the get/put functions are indeed always optimized,
-+ * and that we use the correct sizes.
-+ */
-+extern void bad_unaligned_access_length(void);
-+
-+/*
-+ * EGCS 1.1 knows about arbitrary unaligned loads. Define some
-+ * packed structures to talk about such things with.
-+ */
-+
-+struct __una_u64 { unsigned long x __attribute__((packed)); };
-+struct __una_u32 { unsigned int x __attribute__((packed)); };
-+struct __una_u16 { unsigned short x __attribute__((packed)); };
-+
-+/*
-+ * Elemental unaligned loads
-+ */
-+
-+extern __inline__ unsigned long ldq_u(const unsigned long * r11)
-+{
-+#if __GNUC__ > 2 || __GNUC_MINOR__ >= 91
-+ const struct __una_u64 *ptr = (const struct __una_u64 *) r11;
-+ return ptr->x;
-+#else
- unsigned long r1,r2;
- __asm__("ldq_u %0,%3\n\t"
- "ldq_u %1,%4\n\t"
- "extql %0,%2,%0\n\t"
-- "extqh %1,%2,%1\n\t"
-- "bis %1,%0,%0"
-+ "extqh %1,%2,%1"
- :"=&r" (r1), "=&r" (r2)
- :"r" (r11),
- "m" (*r11),
-- "m" (*(unsigned long *)(7+(char *) r11)));
-- return r1;
-+ "m" (*(const unsigned long *)(7+(char *) r11)));
-+ return r1 | r2;
-+#endif
- }
-
--static __inline__ unsigned long ldl_u(unsigned int * r11)
-+extern __inline__ unsigned long ldl_u(const unsigned int * r11)
- {
-+#if __GNUC__ > 2 || __GNUC_MINOR__ >= 91
-+ const struct __una_u32 *ptr = (const struct __una_u32 *) r11;
-+ return ptr->x;
-+#else
- unsigned long r1,r2;
- __asm__("ldq_u %0,%3\n\t"
- "ldq_u %1,%4\n\t"
- "extll %0,%2,%0\n\t"
-- "extlh %1,%2,%1\n\t"
-- "bis %1,%0,%0"
-+ "extlh %1,%2,%1"
- :"=&r" (r1), "=&r" (r2)
- :"r" (r11),
- "m" (*r11),
-- "m" (*(unsigned long *)(3+(char *) r11)));
-- return r1;
-+ "m" (*(const unsigned long *)(3+(char *) r11)));
-+ return r1 | r2;
-+#endif
- }
-
--static __inline__ unsigned long ldw_u(unsigned short * r11)
-+extern __inline__ unsigned long ldw_u(const unsigned short * r11)
- {
-+#if __GNUC__ > 2 || __GNUC_MINOR__ >= 91
-+ const struct __una_u16 *ptr = (const struct __una_u16 *) r11;
-+ return ptr->x;
-+#else
- unsigned long r1,r2;
- __asm__("ldq_u %0,%3\n\t"
- "ldq_u %1,%4\n\t"
- "extwl %0,%2,%0\n\t"
-- "extwh %1,%2,%1\n\t"
-- "bis %1,%0,%0"
-+ "extwh %1,%2,%1"
- :"=&r" (r1), "=&r" (r2)
- :"r" (r11),
- "m" (*r11),
-- "m" (*(unsigned long *)(1+(char *) r11)));
-- return r1;
-+ "m" (*(const unsigned long *)(1+(char *) r11)));
-+ return r1 | r2;
-+#endif
- }
-
--static __inline__ void stq_u(unsigned long r5, unsigned long * r11)
--{
-+/*
-+ * Elemental unaligned stores
-+ */
-+
-+extern __inline__ void stq_u(unsigned long r5, unsigned long * r11)
-+{
-+#if __GNUC__ > 2 || __GNUC_MINOR__ >= 91
-+ struct __una_u64 *ptr = (struct __una_u64 *) r11;
-+ ptr->x = r5;
-+#else
- unsigned long r1,r2,r3,r4;
-
- __asm__("ldq_u %3,%1\n\t"
-@@ -224,10 +264,15 @@
- "=m" (*(unsigned long *)(7+(char *) r11)),
- "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
- :"r" (r5), "r" (r11));
-+#endif
- }
-
--static __inline__ void stl_u(unsigned long r5, unsigned int * r11)
-+extern __inline__ void stl_u(unsigned long r5, unsigned int * r11)
- {
-+#if __GNUC__ > 2 || __GNUC_MINOR__ >= 91
-+ struct __una_u32 *ptr = (struct __una_u32 *) r11;
-+ ptr->x = r5;
-+#else
- unsigned long r1,r2,r3,r4;
-
- __asm__("ldq_u %3,%1\n\t"
-@@ -244,10 +289,15 @@
- "=m" (*(unsigned long *)(3+(char *) r11)),
- "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
- :"r" (r5), "r" (r11));
-+#endif
- }
-
--static __inline__ void stw_u(unsigned long r5, unsigned short * r11)
-+extern __inline__ void stw_u(unsigned long r5, unsigned short * r11)
- {
-+#if __GNUC__ > 2 || __GNUC_MINOR__ >= 91
-+ struct __una_u16 *ptr = (struct __una_u16 *) r11;
-+ ptr->x = r5;
-+#else
- unsigned long r1,r2,r3,r4;
-
- __asm__("ldq_u %3,%1\n\t"
-@@ -264,6 +314,7 @@
- "=m" (*(unsigned long *)(1+(char *) r11)),
- "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
- :"r" (r5), "r" (r11));
-+#endif
- }
-
- #define mem_barrier() __asm__ __volatile__("mb" : : : "memory")
---- XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/common/xf86Summa.c.alpha-sockets Mon Jan 11 12:28:16 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/common/xf86Summa.c Mon Jan 11 12:28:22 1999
-@@ -600,7 +600,7 @@
- timeout.tv_sec = 0;
- timeout.tv_usec = 200000;
-
-- SYSCALL(err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout));
-+ SYSCALL(err = select(fd+1, &readfds, NULL, NULL, &timeout));
- if (err == -1) {
- Error("SummaSketch select");
- return NULL;
---- XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/common/xf86Wacom.c.alpha-sockets Mon Jan 11 12:28:16 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/common/xf86Wacom.c Mon Jan 11 12:28:23 1999
-@@ -692,7 +692,7 @@
-
- timeout.tv_sec = 1;
- timeout.tv_usec = 0;
-- SYSCALL(err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout));
-+ SYSCALL(err = select(fd+1, &readfds, NULL, NULL, &timeout));
-
- return err;
- }
---- XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/common/xf86_Mouse.c.alpha-sockets Mon Jan 11 12:28:16 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/common/xf86_Mouse.c Mon Jan 11 12:28:23 1999
-@@ -437,7 +437,7 @@
- write(mouse->mseFd, s, 1);
- FD_ZERO(&fds);
- FD_SET(mouse->mseFd, &fds);
-- if (select(FD_SETSIZE, &fds, NULL, NULL, NULL) <= 0)
-+ if (select(mouse->mseFd+1, &fds, NULL, NULL, NULL) <= 0)
- break;
- read(mouse->mseFd, &c, 1);
- if (c != *s)
---- XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/common/xf86_PnPMouse.c.alpha-sockets Mon Mar 2 05:23:21 1998
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/common/xf86_PnPMouse.c Mon Jan 11 12:28:23 1999
-@@ -235,7 +235,7 @@
- FD_SET(mouse->mseFd, &fds);
- timeout.tv_sec = 0;
- timeout.tv_usec = 200000;
-- if (select(FD_SETSIZE, &fds, NULL, NULL, &timeout) <= 0) {
-+ if (select(mouse->mseFd+1, &fds, NULL, NULL, &timeout) <= 0) {
-
- /* port setup, 2nd phase (2.1.5) */
- i = TIOCM_DTR | TIOCM_RTS; /* DTR = 0, RTS = 0 */
-@@ -252,7 +252,7 @@
- FD_SET(mouse->mseFd, &fds);
- timeout.tv_sec = 0;
- timeout.tv_usec = 200000;
-- if (select(FD_SETSIZE, &fds, NULL, NULL, &timeout) <= 0)
-+ if (select(mouse->mseFd+1, &fds, NULL, NULL, &timeout) <= 0)
- goto connect_idle;
- }
- #else
-@@ -277,7 +277,7 @@
- FD_SET(mouse->mseFd, &fds);
- timeout.tv_sec = 0;
- timeout.tv_usec = 200000;
-- if (select(FD_SETSIZE, &fds, NULL, NULL, &timeout) <= 0)
-+ if (select(mouse->mseFd+1, &fds, NULL, NULL, &timeout) <= 0)
- goto connect_idle;
- #endif
-
-@@ -302,7 +302,7 @@
- FD_SET(mouse->mseFd, &fds);
- timeout.tv_sec = 0;
- timeout.tv_usec = 200000;
-- if (select(FD_SETSIZE, &fds, NULL, NULL, &timeout) <= 0)
-+ if (select(mouse->mseFd+1, &fds, NULL, NULL, &timeout) <= 0)
- break;
-
- read(mouse->mseFd, &buf[i], 1);
---- XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_driver.c.alpha-sockets Mon Jan 11 12:28:17 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_driver.c Mon Jan 11 12:28:23 1999
-@@ -1256,6 +1256,16 @@
- MGASave(save)
- vgaHWPtr save;
- {
-+#if NeedFunctionPrototypes
-+ extern void *MGA3026Save(void*);
-+ extern void *MGA1064Save(void*);
-+ extern void *MGA200Save(void*);
-+#else
-+ extern void *MGA3026Save();
-+ extern void *MGA1064Save();
-+ extern void *MGA200Save();
-+#endif
-+
- switch (MGAchipset)
- {
- case PCI_CHIP_MGA2064:
---- XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/xaa/xf86bench.c.alpha-sockets Mon Jan 11 12:28:19 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/xaa/xf86bench.c Mon Jan 11 12:28:23 1999
-@@ -96,7 +96,7 @@
- unsigned char *end;
- #ifdef __alpha__
- unsigned long data64;
-- data64 = data | (data << 32);
-+ data64 = (unsigned long)data | ((unsigned long)data << 32);
- #endif
- end = dest + nbytes;
- while (dest <= end - 128) {
---- XFree86-3.3.3.1/xc/programs/Xserver/include/os.h.alpha-sockets Thu Jan 22 05:47:13 1998
-+++ XFree86-3.3.3.1/xc/programs/Xserver/include/os.h Mon Jan 11 12:28:23 1999
-@@ -773,4 +773,20 @@
- /* stuff for FlushCallback */
- extern CallbackListPtr FlushCallback;
-
-+#ifdef LONG64
-+
-+/* Systems with 64-bit 'long' have their own quirks, like
-+ select()'s fd_mask components are 64-bit long, but the
-+ ffs() function works only on 'int', which at least at
-+ an Alpha are 32-bit wide... */
-+
-+# define ffs mffs
-+
-+extern int mffs (
-+#if NeedFunctionPrototypes
-+ unsigned long
-+#endif
-+);
-+#endif /* LONG64 */
-+
- #endif /* OS_H */
---- XFree86-3.3.3.1/xc/programs/Xserver/os/WaitFor.c.alpha-sockets Sat Oct 24 03:56:28 1998
-+++ XFree86-3.3.3.1/xc/programs/Xserver/os/WaitFor.c Mon Jan 11 12:28:23 1999
-@@ -83,9 +83,10 @@
- #include "dixstruct.h"
- #include "opaque.h"
-
--/* modifications by raphael */
--#define ffs mffs
--int mffs(fd_mask mask) {
-+/* modifications by raphael, and [mea];
-+ system uses this if LONG64 is defined.
-+ See at the end of the "os.h" */
-+int mffs(unsigned long mask) {
- register i;
- if ( ! mask ) return 0;
- i = 1;
-@@ -423,17 +424,18 @@
- if (XFD_ANYSET (&clientsReadable))
- {
- #ifndef WIN32
-- for (i=0; i<howmany(XFD_SETSIZE, NFDBITS); i++)
-+ for (i=0;
-+ i < (sizeof(clientsReadable)/sizeof(clientsReadable.fds_bits[0]));
-+ i++)
- {
- int highest_priority;
-
- while (clientsReadable.fds_bits[i])
- {
- int client_priority, client_index;
--
- curclient = ffs (clientsReadable.fds_bits[i]) - 1;
-- client_index = /* raphael: modified */
-- ConnectionTranslation[curclient + (i * (sizeof(fd_mask) * 8))];
-+ curclient += i * (8 * sizeof(fd_mask));
-+ client_index = ConnectionTranslation[curclient];
- #else
- int highest_priority;
- fd_set savedClientsReadable;
-@@ -476,11 +478,10 @@
- {
- pClientsReady[nready++] = client_index;
- }
-+
-+ FD_CLR(curclient, &clientsReadable);
- #ifndef WIN32
-- clientsReadable.fds_bits[i] &= ~(((fd_mask)1) << curclient);
- }
--#else
-- FD_CLR(curclient, &clientsReadable);
- #endif
- }
- }
-@@ -541,12 +542,13 @@
- COPYBITS(ClientsWithInput, clientsReadable);
- dbprintf(("WaitFor: "));
- nready = 0;
-- for (i=0; i < mskcnt; i++) {
-+ for (i=0; i < mskcnt;i++) {
- while (clientsReadable[i]) {
- int client_priority, curclient, client_index;
-
- curclient = ffs (clientsReadable[i]) - 1;
-- client_index = ConnectionTranslation[curclient + (i << 5)];
-+ curclient += i * (8 * sizeof(clientsReadable[i]));
-+ client_index = ConnectionTranslation[curclient];
- dbprintf(("%d has input\n", curclient));
- #ifdef XSYNC
- client_priority = clients[client_index]->priority;
-@@ -794,7 +796,7 @@
- {
- OsTimerPtr timer;
-
-- while (timer = timers)
-+ while ((timer = timers))
- {
- timers = timer->next;
- xfree(timer);
---- XFree86-3.3.3.1/xc/programs/Xserver/os/connection.c.alpha-sockets Mon Jan 11 12:28:20 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/os/connection.c Mon Jan 11 12:28:23 1999
-@@ -178,10 +178,6 @@
- #include <netdnet/dn.h>
- #endif /* DNETCONN */
-
--/* added by raphael */
--#define ffs mffs
--extern int mffs(long);
--
- extern char *display; /* The display number */
- int lastfdesc; /* maximum file descriptor */
-
-@@ -785,6 +781,8 @@
- {
- #ifndef WIN32
- fd_mask readyconnections; /* mask of listeners that are ready */
-+ /* In UNIX environments we assume that all listeners fit into
-+ the first 32 file descriptor ids. */
- #else
- fd_set readyconnections; /* set of listeners that are ready */
- #endif
-@@ -981,9 +979,6 @@
- void
- CheckConnections()
- {
--#ifndef WIN32
-- fd_mask mask;
--#endif
- fd_set tmask;
- register int curclient, curoff;
- int i;
-@@ -994,23 +989,24 @@
- #endif
-
- #ifndef AMOEBA
-- notime.tv_sec = 0;
-- notime.tv_usec = 0;
--
- #ifndef WIN32
-- for (i=0; i<howmany(XFD_SETSIZE, NFDBITS); i++)
-+ for (i=0; i < (sizeof(AllClients)/sizeof(fd_mask)); i++)
- {
-- mask = AllClients.fds_bits[i];
-+ fd_mask mask = AllClients.fds_bits[i];
- while (mask)
- {
- curoff = ffs (mask) - 1;
-- curclient = curoff + (i << 5);
-+ curclient = curoff + (i * 8 * sizeof(mask));
- FD_ZERO(&tmask);
- FD_SET(curclient, &tmask);
-+ /* there are operating systems which *do* alter the timeout
-+ variables -- it is good practice to initialize them always */
-+ notime.tv_sec = 0;
-+ notime.tv_usec = 0;
- r = Select (curclient + 1, &tmask, NULL, NULL, ¬ime);
- if (r < 0)
- CloseDownClient(clients[ConnectionTranslation[curclient]]);
-- mask &= ~(1 << curoff);
-+ mask &= ~(((fd_mask)1) << curoff);
- }
- }
- #else
---- XFree86-3.3.3.1/xc/programs/Xserver/os/io.c.alpha-sockets Sat Oct 24 03:56:29 1998
-+++ XFree86-3.3.3.1/xc/programs/Xserver/os/io.c Mon Jan 11 12:28:23 1999
-@@ -85,10 +85,6 @@
- #include "lbxserve.h"
- #endif
-
--/* added by raphael */
--#define ffs mffs
--extern int mffs(long);
--
- CallbackListPtr ReplyCallback;
- CallbackListPtr FlushCallback;
-
-@@ -995,7 +991,7 @@
- NewOutputPending = FALSE;
-
- #ifndef WIN32
-- for (base = 0; base < howmany(XFD_SETSIZE, NFDBITS); base++)
-+ for (base = 0; base < (sizeof(OutputPending)/sizeof(fd_mask)); base++)
- {
- mask = OutputPending.fds_bits[ base ];
- OutputPending.fds_bits[ base ] = 0;
-@@ -1003,7 +999,8 @@
- {
- index = ffs(mask) - 1;
- mask &= ~lowbit(mask);
-- if ((index = ConnectionTranslation[(base << 5) + index]) == 0)
-+ index = ConnectionTranslation[ base * (8 * sizeof(mask)) + index ];
-+ if (index == 0)
- continue;
- client = clients[index];
- if (client->clientGone)
---- XFree86-3.3.3.1/xc/programs/lbxproxy/include/os.h.alpha-sockets Sat Dec 21 23:16:36 1996
-+++ XFree86-3.3.3.1/xc/programs/lbxproxy/include/os.h Mon Jan 11 12:28:23 1999
-@@ -243,4 +243,20 @@
- #endif
- );
-
-+#ifdef LONG64
-+
-+/* Systems with 64-bit 'long' have their own quirks, like
-+ select()'s fd_mask components are 64-bit long, but the
-+ ffs() function works only on 'int', which at least at
-+ an Alpha are 32-bit wide... */
-+
-+# define ffs mffs
-+
-+extern int mffs (
-+#if NeedFunctionPrototypes
-+ unsigned long
-+#endif
-+);
-+#endif /* LONG64 */
-+
- #endif
---- XFree86-3.3.3.1/xc/programs/lbxproxy/os/WaitFor.c.alpha-sockets Sat Dec 21 23:16:30 1996
-+++ XFree86-3.3.3.1/xc/programs/lbxproxy/os/WaitFor.c Mon Jan 11 12:28:23 1999
-@@ -71,6 +71,20 @@
- #include "osdep.h"
- #include "os.h"
-
-+/* modifications by raphael, and [mea];
-+ system uses this if LONG64 is defined.
-+ See at the end of the "os.h" */
-+int mffs(unsigned long mask) {
-+ register i;
-+ if ( ! mask ) return 0;
-+ i = 1;
-+ while (! (mask & 1)) {
-+ i++;
-+ mask = mask >> 1;
-+ }
-+ return i;
-+}
-+
- extern fd_set AllSockets;
- extern fd_set AllClients;
- extern fd_set LastSelectMask;
-@@ -192,17 +206,18 @@
- nready = 0;
- if (XFD_ANYSET(&clientsReadable))
- {
-- for (i=0; i<howmany(XFD_SETSIZE, NFDBITS); i++)
-+ for (i=0; i < (sizeof(clientsReadable)/sizeof(fd_mask)); i++)
- {
- while (clientsReadable.fds_bits[i])
- {
- int client_index;
-
- curclient = ffs (clientsReadable.fds_bits[i]) - 1;
-- client_index = ConnectionTranslation[curclient + (i << 5)];
-- {
-- pClientsReady[nready++] = client_index;
-- }
-+ curclient += i * (8 * sizeof(fd_mask));
-+ client_index = ConnectionTranslation[curclient];
-+
-+ pClientsReady[nready++] = client_index;
-+
- clientsReadable.fds_bits[i] &= ~(((fd_mask)1) << curclient);
- }
- }
---- XFree86-3.3.3.1/xc/programs/lbxproxy/os/connection.c.alpha-sockets Thu Nov 5 14:27:57 1998
-+++ XFree86-3.3.3.1/xc/programs/lbxproxy/os/connection.c Mon Jan 11 12:28:23 1999
-@@ -1746,7 +1746,7 @@
- while (readyconnections)
- {
- curconn = ffs (readyconnections) - 1;
-- readyconnections &= ~(1 << curconn);
-+ readyconnections &= ~(((fd_mask)1) << curconn);
- if ((newconn = accept (curconn,
- (struct sockaddr *) NULL,
- (int *)NULL)) < 0)
-@@ -1905,19 +1905,19 @@
- notime.tv_sec = 0;
- notime.tv_usec = 0;
-
-- for (i=0; i<howmany(XFD_SETSIZE, NFDBITS); i++)
-+ for (i=0; i < (sizeof(AllClients)/sizeof(fd_mask)); i++)
- {
- mask = AllClients.fds_bits[i];
- while (mask)
- {
- curoff = ffs (mask) - 1;
-- curclient = curoff + (i << 5);
-+ curclient = curoff + i * (8 * sizeof(mask));
- FD_ZERO(&tmask);
- FD_SET(curclient, &tmask);
- r = Select (curclient + 1, &tmask, NULL, NULL, ¬ime);
- if (r < 0)
- CloseDownClient(clients[ConnectionTranslation[curclient]]);
-- mask &= ~(1 << curoff);
-+ mask &= ~(((fd_mask)1) << curoff);
- }
- }
- }
---- XFree86-3.3.3.1/xc/programs/lbxproxy/os/io.c.alpha-sockets Wed Jan 1 22:02:48 1997
-+++ XFree86-3.3.3.1/xc/programs/lbxproxy/os/io.c Mon Jan 11 12:28:23 1999
-@@ -913,7 +913,8 @@
- void
- FlushAllOutput()
- {
-- register int index, base, mask;
-+ register int index, base;
-+ register fd_mask mask;
- OsCommPtr oc;
- register ClientPtr client;
-
-@@ -927,7 +928,7 @@
- */
- NewOutputPending = FALSE;
-
-- for (base = 0; base < howmany(XFD_SETSIZE, NFDBITS); base++)
-+ for (base = 0; base < (sizeof(OutputPending)/sizeof(mask)); base++)
- {
- mask = OutputPending.fds_bits[ base ];
- OutputPending.fds_bits[ base ] = 0;
-@@ -935,7 +936,9 @@
- {
- index = ffs(mask) - 1;
- mask &= ~lowbit(mask);
-- if ((index = ConnectionOutputTranslation[(base << 5) + index]) == 0)
-+ index += base * (8 * sizeof(mask));
-+ index = ConnectionOutputTranslation[index];
-+ if (index == 0)
- continue;
- client = clients[index];
- if (client->clientGone)
---- XFree86-3.3.3.1/xc/programs/xfs/include/os.h.alpha-sockets Fri Jan 5 08:21:30 1996
-+++ XFree86-3.3.3.1/xc/programs/xfs/include/os.h Mon Jan 11 12:28:23 1999
-@@ -94,4 +94,19 @@
- extern int ListCatalogues();
- extern int ListAlternateServers();
-
-+#ifdef LONG64
-+
-+/* Systems with 64-bit 'long' have their own quirks, like
-+ select()'s fd_mask components are 64-bit long, but the
-+ ffs() function works only on 'int', which at least at
-+ an Alpha are 32-bit wide... */
-+
-+# define ffs mffs
-+
-+extern int mffs (
-+#if NeedFunctionPrototypes
-+ unsigned long
-+#endif
-+);
-+#endif /* LONG64 */
- #endif /* _OS_H_ */
---- XFree86-3.3.3.1/xc/programs/xfs/os/connection.c.alpha-sockets Thu Nov 5 14:28:31 1998
-+++ XFree86-3.3.3.1/xc/programs/xfs/os/connection.c Mon Jan 11 12:28:23 1999
-@@ -325,6 +325,9 @@
-
- /*
- * accepts new connections
-+ *
-+ * This assumes that all sockets in *listen* mode are numbered
-+ * something below 32! (likely true..)
- */
- void
- MakeNewConnections()
-@@ -495,15 +498,15 @@
- struct timeval notime;
- int r;
-
-- notime.tv_sec = 0;
-- notime.tv_usec = 0;
--
- XFD_COPYSET(&AllClients, &mask);
- for (i = 0; i < howmany(XFD_SETSIZE, NFDBITS); i++) {
- while (mask.fds_bits[i]) {
-- curclient = ffs(mask.fds_bits[i]) - 1 + (i << 5);
-+ curclient = ffs(mask.fds_bits[i]) - 1;
-+ curclient += i * (8 * sizeof(mask.fds_bits[i]));
- FD_ZERO(&tmask);
- FD_SET(curclient, &tmask);
-+ notime.tv_sec = 0;
-+ notime.tv_usec = 0;
- r = Select(curclient + 1, &tmask, NULL, NULL, ¬ime);
- if (r < 0)
- CloseDownClient(clients[ConnectionTranslation[curclient]]);
---- XFree86-3.3.3.1/xc/programs/xfs/os/io.c.alpha-sockets Thu May 29 10:01:08 1997
-+++ XFree86-3.3.3.1/xc/programs/xfs/os/io.c Mon Jan 11 12:28:23 1999
-@@ -69,6 +69,7 @@
- #include "X11/Xpoll.h"
- #include "osdep.h"
- #include "globals.h"
-+#include "os.h"
-
- #ifdef X_NOT_STDC_ENV
- extern int errno;
-@@ -530,13 +531,14 @@
-
- NewOutputPending = FALSE;
-
-- for (base = 0; base < howmany(XFD_SETSIZE, NFDBITS); base++) {
-+ for (base = 0; base < (sizeof(OutputPending)/sizeof(mask)); base++) {
- mask = OutputPending.fds_bits[base];
- OutputPending.fds_bits[base] = 0;
- while (mask) {
- index = ffs(mask) - 1;
- mask &= ~lowbit(mask);
-- if ((index = ConnectionTranslation[(base << 5) + index]) == 0)
-+ index += base * (8 * sizeof(mask));
-+ if ((index = ConnectionTranslation[index]) == 0)
- continue;
- client = clients[index];
- if (client->clientGone == CLIENT_GONE)
---- XFree86-3.3.3.1/xc/programs/xfs/os/waitfor.c.alpha-sockets Sat Jan 18 02:02:48 1997
-+++ XFree86-3.3.3.1/xc/programs/xfs/os/waitfor.c Mon Jan 11 12:28:23 1999
-@@ -65,6 +65,21 @@
- #include "globals.h"
- #include "X11/Xpoll.h"
- #include "osdep.h"
-+#include "os.h"
-+
-+/* modifications by raphael, and [mea];
-+ system uses this if LONG64 is defined.
-+ See at the end of the "os.h" */
-+int mffs(unsigned long mask) {
-+ register i;
-+ if ( ! mask ) return 0;
-+ i = 1;
-+ while (! (mask & 1)) {
-+ i++;
-+ mask = mask >> 1;
-+ }
-+ return i;
-+}
-
- #ifdef MINIX
- #include <sys/nbio.h>
-@@ -208,10 +223,11 @@
-
- if (current_time) /* may not have been set */
- current_time = GetTimeInMillis();
-- for (i = 0; i < howmany(XFD_SETSIZE, NFDBITS); i++) {
-+ for (i = 0; i < (sizeof(clientsReadable)/sizeof(fd_mask)); i++) {
- while (clientsReadable.fds_bits[i]) {
- curclient = ffs(clientsReadable.fds_bits[i]) - 1;
-- conn = ConnectionTranslation[curclient + (i << 5)];
-+ curclient += i * (8 * sizeof(fd_mask));
-+ conn = ConnectionTranslation[curclient];
- FD_CLR (curclient, &clientsReadable);
- client = clients[conn];
- if (!client)
+++ /dev/null
---- XFree86-3.3.3.1/xc/nls/XLC_LOCALE/iso8859-2.fixiso8859-2 Thu Jun 10 14:25:13 1999
-+++ XFree86-3.3.3.1/xc/nls/XLC_LOCALE/iso8859-2 Thu Jun 10 14:25:48 1999
-@@ -67,7 +67,7 @@
- #else
- wc_encoding \x00008080
- #endif
-- ct_encoding ISO8859-2:GR
-+ ct_encoding ISO8859-2:GR; ISO8859-1:GR
- }
-
- END XLC_XLOCALE
+++ /dev/null
-diff -urN XFree86-3.3.5.orig/xc/programs/Xserver/hw/xfree86/XF86Setup/Imakefile XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/XF86Setup/Imakefile
---- XFree86-3.3.5.orig/xc/programs/Xserver/hw/xfree86/XF86Setup/Imakefile Sat Jan 9 15:19:00 1999
-+++ XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/XF86Setup/Imakefile Thu Sep 2 15:17:02 1999
-@@ -81,7 +81,7 @@
-
- XCONFIG_DEFINES = $(EXT_DEFINES) -DXF86SETUP \
- '-DPROJECTROOT="$(PROJECTROOT)"' \
-- '-DSERVER_CONFIG_FILE="$(LIBDIR)/$(XCONFIGFILE)"'
-+ '-DSERVER_CONFIG_FILE="/etc/X11/$(XCONFIGFILE)"'
-
- XF86SETUPLIBDIR = $(LIBDIR)/XF86Setup
- DEFINES = -DCARD_DATABASE_FILE='"$(CARDDBFILE)"' \
-diff -urN XFree86-3.3.5.orig/xc/programs/Xserver/hw/xfree86/XF86Setup/phase5.tcl XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/XF86Setup/phase5.tcl
---- XFree86-3.3.5.orig/xc/programs/Xserver/hw/xfree86/XF86Setup/phase5.tcl Sat Feb 21 07:07:02 1998
-+++ XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/XF86Setup/phase5.tcl Thu Sep 2 15:17:02 1999
-@@ -38,7 +38,7 @@
- set devid [lindex $DeviceIDs $idx]
- global Device_$devid
- set server [set Device_${devid}(Server)]
-- set linkname $Xwinhome/bin/X
-+ set linkname /etc/X11/X
- set lastlink $linkname
- for {set nlinks 0} \
- {[file exists $linkname] && [file type $linkname]=="link" \
-@@ -72,7 +72,7 @@
- cd $linkdir
- catch "unlink X" ret
- if !$pc98 {
-- if [catch "link $Xwinhome/bin/XF86_$server X" ret] {
-+ if [catch "link ../../usr/X11R6/bin/XF86_$server X" ret] {
- mesg "Link creation failed!\n\
- You'll have to do it yourself" okay
- } else {
-diff -urN XFree86-3.3.5.orig/xc/programs/Xserver/hw/xfree86/xf86config/xf86config.c XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/xf86config/xf86config.c
---- XFree86-3.3.5.orig/xc/programs/Xserver/hw/xfree86/xf86config/xf86config.c Tue Aug 17 09:39:39 1999
-+++ XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/xf86config/xf86config.c Thu Sep 2 15:19:14 1999
-@@ -107,7 +107,7 @@
- #endif
-
- /*
-- * Define this to have /etc/XF86Config prompted for as the default
-+ * Define this to have /etc/X11/XF86Config prompted for as the default
- * location to write the XF86Config file to.
- */
- #define PREFER_XF86CONFIG_IN_ETC
-@@ -215,7 +215,7 @@
- "This program will create a basic " CONFIGNAME " file, based on menu selections you\n"
- "make.\n"
- "\n"
--"The " CONFIGNAME " file usually resides in " TREEROOTLX " or /etc. A sample\n"
-+"The " CONFIGNAME " file usually resides in " TREEROOTLX " or /etc/X11. A sample\n"
- CONFIGNAME " file is supplied with XFree86; it is configured for a standard\n"
- "VGA card and monitor with 640x480 resolution. This program will ask for a\n"
- "pathname when it is ready to write the file.\n"
-@@ -2986,7 +2986,7 @@
- #endif
- #ifdef PREFER_XF86CONFIG_IN_ETC
- #if !(defined(__QNX__) && !defined(__QNXNTO__))
-- printf("Shall I write it to /etc/XF86Config? ");
-+ printf("Shall I write it to /etc/X11/XF86Config? ");
- #else
- printf("Shall I write it to /etc/config/X11/XF86Config.%d? ",
- getnid());
-@@ -2995,7 +2995,7 @@
- printf("\n");
- if (answerisyes(s))
- #if !(defined(__QNX__) && !defined(__QNXNTO__))
-- return "/etc/XF86Config";
-+ return "/etc/X11/XF86Config";
- #else
- /* In QNX, use XF86Config.nid for filename */
- {
-@@ -3030,11 +3030,11 @@
- #endif
-
- #ifndef PREFER_XF86CONFIG_IN_ETC
-- printf("Shall I write it to /etc/XF86Config? ");
-+ printf("Shall I write it to /etc/X11/XF86Config? ");
- getstring(s);
- printf("\n");
- if (answerisyes(s))
-- return "/etc/XF86Config";
-+ return "/etc/X11/XF86Config";
- #endif
- #else /* __EMX__ */
- {
-diff -urN XFree86-3.3.5.orig/xc/programs/Xserver/os/wrapper.c XFree86-3.3.5/xc/programs/Xserver/os/wrapper.c
---- XFree86-3.3.5.orig/xc/programs/Xserver/os/wrapper.c Thu Jul 29 11:23:02 1999
-+++ XFree86-3.3.5/xc/programs/Xserver/os/wrapper.c Thu Sep 2 15:17:02 1999
-@@ -42,6 +42,9 @@
- #define XSERVER_PATH "/usr/X11R6/bin/X"
- #endif
-
-+#undef XSERVER_PATH
-+#define XSERVER_PATH "/etc/X11/X"
-+
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
+++ /dev/null
---- XFree86-3.3.3/xc/config/cf/xfree86.cf.joy Mon Dec 7 15:50:14 1998
-+++ XFree86-3.3.3/xc/config/cf/xfree86.cf Mon Dec 7 15:50:36 1998
-@@ -684,7 +684,7 @@
- #endif
- #endif
- #ifndef JoystickSupport
--#define JoystickSupport NO
-+#define JoystickSupport YES
- #endif
-
- /*
+++ /dev/null
-diff -u --recursive --new-file XFree86-3.3.2.3.macro/xc/config/cf/linux.cf XFree86-3.3.2.3/xc/config/cf/linux.cf
---- XFree86-3.3.2.3.macro/xc/config/cf/linux.cf Mon Mar 2 11:55:22 1998
-+++ XFree86-3.3.2.3/xc/config/cf/linux.cf Thu Aug 27 12:12:50 1998
-@@ -163,7 +163,7 @@
- #define AsmDefines -D__ELF__
- #define CplusplusCmd c++
- #if UseStaticTermcapLib
--#define TermcapLibrary StaticLibrary(/usr/lib/termcap,termcap)
-+#define TermcapLibrary StaticLibrary(/usr/lib,ncurses)
- #endif
- #else
- #ifdef AlphaArchitecture
-diff -u --recursive --new-file XFree86-3.3.2.3.macro/xc/config/cf/xf86site.def XFree86-3.3.2.3/xc/config/cf/xf86site.def
---- XFree86-3.3.2.3.macro/xc/config/cf/xf86site.def Mon Mar 2 11:55:22 1998
-+++ XFree86-3.3.2.3/xc/config/cf/xf86site.def Thu Aug 27 12:14:33 1998
-@@ -93,8 +93,8 @@
- * Some Linux releases don't have a libtermcap. In this case you may need
- * to uncomment the following
- *
--#define TermcapLibrary -lncurses
- */
-+#define TermcapLibrary -lncurses
-
- /*
- * If you have Tk (which is required to build XF86Setup), uncomment this
---- XFree86-3.3.3.1.new/xc/programs/xterm/Imakefile Tue Mar 23 14:01:57 1999
-+++ XFree86-3.3.3.1/xc/programs/xterm/Imakefile Sat Oct 24 09:58:19 1998
-@@ -73,7 +73,7 @@
- -DOSMINORVERSION=$(OSMINORVERSION)
- MISC_DEFINES = /* -DALLOWLOGGING -DALLOWLOGFILEEXEC */
- XKB_DEFINES = XkbClientDefines
-- DEFINES = -I. $(XKB_DEFINES) $(TERMCAPDEFINES) $(FEATURE_DEFINES) $(SCROLLBAR_RIGHT)
-+ DEFINES = -I. -I/usr/include/ncurses $(XKB_DEFINES) $(TERMCAPDEFINES) $(FEATURE_DEFINES) $(SCROLLBAR_RIGHT)
-
- #ifdef OS2Architecture
- MAINSRC = os2main.c
+++ /dev/null
-diff -urN XFree86-3.3.5.orig/xc/programs/xterm/Imakefile XFree86-3.3.5/xc/programs/xterm/Imakefile
---- XFree86-3.3.5.orig/xc/programs/xterm/Imakefile Wed Jul 28 15:37:50 1999
-+++ XFree86-3.3.5/xc/programs/xterm/Imakefile Thu Sep 2 18:51:23 1999
-@@ -20,6 +20,10 @@
- #define XkbClientDefines /**/
- #endif
-
-+#if InstallXtermSetUID
-+#undef InstallXtermSetUID
-+#endif
-+
- #ifndef XkbClientDepLibs
- #define XkbClientDepLibs /**/
- #endif
-@@ -48,6 +52,8 @@
- PUCCPTYDDEF = -DPUCC_PTYD /* does not need to be setuid */
- PTYLIB = -lpucc
- #endif
-+
-+ PTYLIB = -lutil -lutempter
-
- #if ((LinuxCLibMajorVersion == 6) && (LinuxCLibMinorVersion < 1))
- PTYLIB = -lutil
-diff -urN XFree86-3.3.5.orig/xc/programs/xterm/main.c XFree86-3.3.5/xc/programs/xterm/main.c
---- XFree86-3.3.5.orig/xc/programs/xterm/main.c Thu Sep 2 16:49:51 1999
-+++ XFree86-3.3.5/xc/programs/xterm/main.c Thu Sep 2 18:52:41 1999
-@@ -1934,7 +1934,7 @@
- static int
- get_pty (int *pty)
- {
--#if defined(__osf__) || (defined(__GLIBC__) && !defined(USE_USG_PTYS))
-+#if defined(__osf__) || (defined(__GLIBC__) && !defined(USE_USG_PTYS)) || defined(__linux__)
- int tty;
- return (openpty(pty, &tty, ttydev, NULL, NULL));
- #elif (defined(SYSV) && defined(i386) && !defined(SVR4)) || defined(__QNXNTO__)
-@@ -2611,6 +2611,9 @@
- }
- #endif /* sun vs TIOCSWINSZ */
-
-+#undef UTMP
-+ addToUtmp(ttydev, NULL, screen->respond);
-+
- if (!am_slave) {
- #ifdef USE_HANDSHAKE
- if (pipe(pc_pipe) || pipe(cp_pipe))
-@@ -3230,6 +3233,7 @@
- if (pw && pw->pw_name)
- Setenv ("LOGNAME=", pw->pw_name); /* for POSIX */
- #ifdef USE_SYSV_UTMP
-+
- /* Set up our utmp entry now. We need to do it here
- ** for the following reasons:
- ** - It needs to have our correct process id (for
-@@ -3328,7 +3332,6 @@
- #endif
- /* close the file */
- (void) endutent();
--
- #else /* USE_SYSV_UTMP */
- /* We can now get our ttyslot! We can also set the initial
- * UTMP entry.
-@@ -4063,6 +4066,7 @@
- Exit(int n)
- {
- register TScreen *screen = &term->screen;
-+ removeFromUtmp();
- #ifdef UTMP
- #ifdef USE_SYSV_UTMP
- #if defined(SVR4) || defined(SCO325)
+++ /dev/null
---- XFree86-3.3.5/xc/config/cf/linux.cf~ Thu Sep 2 20:21:42 1999
-+++ XFree86-3.3.5/xc/config/cf/linux.cf Thu Sep 2 21:14:58 1999
-@@ -139,7 +139,7 @@
- #define HasMkstemp YES
- #endif
- #ifndef HasPam
--#define HasPam NO
-+#define HasPam YES
- #endif
-
- #define AvoidNullMakeCommand YES
+++ /dev/null
---- XFree86-3.3.3/xc/config/cf/xf86site.def.rh Sun Nov 8 06:19:11 1998
-+++ XFree86-3.3.3/xc/config/cf/xf86site.def Mon Nov 30 13:48:39 1998
-@@ -66,9 +66,9 @@
- *
- * This should automatically get set correctly by imake.
- *
--#define LinuxCLibMajorVersion 5
--#define LinuxClibMinorVersion 4
- */
-+#define LinuxCLibMajorVersion 6
-+#define LinuxClibMinorVersion 0
-
- /*
- * If you want to use the GNU malloc library, uncomment this
-@@ -101,8 +101,8 @@
- * Note: version 4.0 or 4.1 is required, and XF86Setup links it statically by
- * default.
- *
--#define HasTk YES
- */
-+#define HasTk YES
-
- /*
- * Set the paths and names for your Tk library if they don't match the
-@@ -115,25 +115,26 @@
- *
- * Some Linux releases need TkLibDir set to /usr/X11R6/lib
- *
--#define TkLibDir /usr/local/lib
--#define TkIncDir /usr/local/include
--#define TkLibName tk
- */
-+#define TkLibDir /usr/lib
-+#define TkIncDir /usr/include
-+#define TkLibName tk
-
- /*
- * By default, XF86Setup is linked with a static Tk library. To change
- * that, uncomment the following line.
- *
--#define XF86SetupUsesStaticTk NO
- */
-+#define XF86SetupUsesStaticTk NO
-+
-
- /*
- * If you have Tcl (which is required to build XF86Setup), uncomment this
- * Note: version 7.4 or 7.5 is required, and XF86Setup links it statically by
- * default.
- *
--#define HasTcl YES
- */
-+#define HasTcl YES
-
- /*
- * Set the paths and names for your Tcl library if they don't match the
-@@ -143,17 +144,17 @@
- *
- * Some Linux releases need TclIncDir set to /usr/include/tcl.
- *
--#define TclLibDir /usr/local/lib
--#define TclIncDir /usr/local/include
--#define TclLibName tcl
- */
-+#define TclLibDir /usr/lib
-+#define TclIncDir /usr/include
-+#define TclLibName tcl
-
- /*
- * By default, XF86Setup is linked with a static Tcl library. To change
- * that, uncomment the following line.
- *
--#define XF86SetupUsesStaticTcl NO
- */
-+#define XF86SetupUsesStaticTcl NO
-
- /*
- * Which servers do you wish to build, you can save a lot of disk space
-@@ -369,8 +370,8 @@
- /*
- * To not build/install the Cyrillic fonts, uncomment the following
- *
--#define BuildCyrillicFonts NO
- */
-+#define BuildCyrillicFonts YES
-
- /*
- * To not install the local font directory, uncomment the following
-@@ -400,7 +401,7 @@
- * will need to be built with the Joystick driver in order to be able to
- * use this.
- *
--#define JoystickSupport NO
-+#define JoystickSupport YES
- #define WacomSupport YES
- #define MicroTouchSupport YES
- #define ElographicsSupport YES
-@@ -536,8 +537,8 @@
- * To forceably build static libraries in addition to shared libraries,
- * uncomment this.
- *
--#define ForceNormalLib YES
- */
-+#define ForceNormalLib YES
-
- /*
- * Uncomment this if your default tools (eg, gcc, ld, as, etc) are
---- XFree86-3.3.3/xc/config/cf/site.def.rh Sun Jun 22 06:32:21 1997
-+++ XFree86-3.3.3/xc/config/cf/site.def Mon Nov 30 13:43:48 1998
-@@ -106,10 +111,11 @@
- */
-
- /*
--#undef DefaultUserPath
--#define DefaultUserPath /bin:/usr/bin:$(BINDIR):/usr/ucb:/usr/local/bin
- */
--
-+#undef DefaultUserPath
-+#define DefaultUserPath /usr/local/bin:/bin:/usr/bin
-+#undef DefaultSystemPath
-+#define DefaultSystemPath /sbin:/usr/sbin:/bin:/usr/bin
-
- /* You do NOT need SetUID if you only run the server under xdm */
- /* You MAY need SetUID if users run the server by hand or under xinit */
---- XFree86-3.3.3/xc/config/cf/linux.cf.rh Sun Nov 8 06:34:50 1998
-+++ XFree86-3.3.3/xc/config/cf/linux.cf Mon Nov 30 13:43:53 1998
-@@ -318,1 +318,5 @@
- #include <xfree86.cf>
-+
-+#ifndef XtermWithI18N
-+#define XtermWithI18N YES
-+#endif
---- XFree86-3.3.3/xc/programs/xinit/Imakefile.rh Thu Nov 5 14:28:39 1998
-+++ XFree86-3.3.3/xc/programs/xinit/Imakefile Mon Nov 30 13:43:47 1998
-@@ -35,9 +35,11 @@
- InstallNamedProg(startx,startx,$(BINDIR))
- InstallManPage(startx,$(MANDIR))
-
--#if InstallXinitConfig
--InstallNonExecFile($(SAMPLECONFIG),$(XINITDIR))
--#else
--InstallNonExecFileNoClobber($(SAMPLECONFIG),$(XINITDIR))
--#endif
-+XCOMM Red Hat gets this from a different package
-+XCOMM #if InstallXinitConfig
-+XCOMM InstallNonExecFile($(SAMPLECONFIG),$(XINITDIR))
-+XCOMM #else
-+XCOMM InstallNonExecFileNoClobber($(SAMPLECONFIG),$(XINITDIR))
-+XCOMM #endif
-+
- #endif
+++ /dev/null
---- XFree86-3.3.3.1/xc/programs/xdm/config/Xsession.rhxdm Wed Jan 3 02:36:27 1996
-+++ XFree86-3.3.3.1/xc/programs/xdm/config/Xsession Mon Apr 12 19:26:02 1999
-@@ -1,5 +1,23 @@
--#!/bin/sh
--# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
-+#!/bin/sh -l
-+# Xsession for Red Hat Linux 6.0
-+# Copyright (c) 1999 Red Hat Software, Inc.
-+
-+# clean up after xbanner
-+if [ -f /usr/X11R6/bin/freetemp ]; then
-+ freetemp
-+fi
-+
-+# clear screen to some sane color
-+/usr/X11R6/bin/xsetroot -solid "#356390"
-+
-+case $# in
-+1)
-+ case $1 in
-+ failsafe)
-+ exec xterm -geometry 80x24-0-0
-+ ;;
-+ esac
-+esac
-
- # redirect errors to a file in user's home directory if we can
- for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER"
-@@ -12,20 +30,15 @@
- fi
- done
-
--case $# in
--1)
-- case $1 in
-- failsafe)
-- exec xterm -geometry 80x24-0-0
-- ;;
-- esac
--esac
--
- startup=$HOME/.xsession
- resources=$HOME/.Xresources
-
--if [ -f "$startup" ]; then
-+if [ -x "$startup" ]; then
- exec "$startup"
-+elif [ -x "$HOME/.Xclients" ]; then
-+ exec "$HOME/.Xclients"
-+elif [ -x /etc/X11/xinit/Xclients ]; then
-+ exec /etc/X11/xinit/Xclients
- else
- if [ -f "$resources" ]; then
- xrdb -load "$resources"
---- XFree86-3.3.3.1/xc/programs/xdm/config/Xsetup_0.rhxdm Wed Apr 27 03:20:03 1994
-+++ XFree86-3.3.3.1/xc/programs/xdm/config/Xsetup_0 Mon Apr 12 19:26:02 1999
-@@ -1,3 +1,6 @@
- #!/bin/sh
--# $XConsortium: Xsetup_0,v 1.3 93/09/28 14:30:31 gildea Exp $
--xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
-+# Xsetup for Red Hat Linux 6.0
-+# Copyright (c) 1999 Red Hat Software, Inc.
-+/usr/X11R6/bin/xsetroot -solid "#356390"
-+/usr/bin/xsri -geometry +5+5 -avoid 300x250 -keep-aspect \
-+ /usr/share/pixmaps/redhat/redhat-transparent.png
---- XFree86-3.3.3.1/xc/programs/xdm/config/xdm-conf.cpp.rhxdm Sat Feb 10 00:46:54 1996
-+++ XFree86-3.3.3.1/xc/programs/xdm/config/xdm-conf.cpp Mon Apr 12 19:26:02 1999
-@@ -1,19 +1,19 @@
- ! $XConsortium: xdm-conf.cpp /main/3 1996/01/15 15:17:26 gildea $
--DisplayManager.errorLogFile: XDMDIR/xdm-errors
--DisplayManager.pidFile: XDMDIR/xdm-pid
--DisplayManager.keyFile: XDMDIR/xdm-keys
--DisplayManager.servers: XDMDIR/Xservers
--DisplayManager.accessFile: XDMDIR/Xaccess
-+DisplayManager.errorLogFile: /var/log/xdm-error.log
-+DisplayManager.pidFile: /var/run/xdm.pid
-+DisplayManager.keyFile: /etc/X11/xdm/xdm-keys
-+DisplayManager.servers: /etc/X11/xdm/Xservers
-+DisplayManager.accessFile: /etc/X11/xdm/Xaccess
- ! All displays should use authorization, but we cannot be sure
- ! X terminals will be configured that way, so by default
- ! use authorization only for local displays :0, :1, etc.
- DisplayManager._0.authorize: true
- DisplayManager._1.authorize: true
- ! The following three resources set up display :0 as the console.
--DisplayManager._0.setup: XDMDIR/Xsetup_0
--DisplayManager._0.startup: XDMDIR/GiveConsole
--DisplayManager._0.reset: XDMDIR/TakeConsole
-+DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0
-+DisplayManager._0.startup: /etc/X11/xdm/GiveConsole
-+DisplayManager._0.reset: /etc/X11/xdm/TakeConsole
- !
--DisplayManager*resources: XDMDIR/Xresources
--DisplayManager*session: XDMDIR/Xsession
-+DisplayManager*resources: /etc/X11/xdm/Xresources
-+DisplayManager*session: /etc/X11/xdm/Xsession
- DisplayManager*authComplain: false
---- XFree86-3.3.3.1/xc/programs/xdm/config/GiveConsole.rhxdm Mon Apr 12 19:33:09 1999
-+++ XFree86-3.3.3.1/xc/programs/xdm/config/GiveConsole Mon Apr 12 19:34:11 1999
-@@ -8,3 +8,5 @@
- # causing serious grief.
- #
- chown $USER /dev/console
-+/usr/X11R6/bin/sessreg -a -w "/var/log/wtmp" -u "/var/run/utmp" \
-+ -x "/etc/X11/xdm/Xservers" -l $DISPLAY -h "" $USER
---- XFree86-3.3.3.1/xc/programs/xdm/config/TakeConsole.rhxdm Mon Apr 12 19:33:13 1999
-+++ XFree86-3.3.3.1/xc/programs/xdm/config/TakeConsole Mon Apr 12 19:34:45 1999
-@@ -5,3 +5,5 @@
- #
- chmod 622 /dev/console
- chown root /dev/console
-+/usr/X11R6/bin/sessreg -d -w "/var/log/wtmp" -u "/var/run/utmp" \
-+ -x "/etc/X11/xdm/Xservers" -l $DISPLAY -h "" $USER
+++ /dev/null
---- XFree86-3.3.4.orig/xc/nls/locale.alias Wed Jun 2 09:50:05 1999
-+++ XFree86-3.3.4/xc/nls/locale.alias Sun Aug 8 21:57:30 1999
-@@ -282,7 +282,7 @@
- ru_RU.iso88595 ru_RU.ISO8859-5
- #if defined(INCLUDE_ru_SU)
- XCOMM ru_SU is redundant now
--ru_SU ru_RU.ISO8859-5
-+ru_SU ru_RU.KOI8-R
- ru_SU.ISO8859-5 ru_RU.ISO8859-5
- ru_SU.KOI8-R ru_RU.KOI8-R
- #endif
+++ /dev/null
-diff -c -N -r xc.old/config/cf/X11.tmpl xc/config/cf/X11.tmpl
-*** xc.old/config/cf/X11.tmpl Mon Mar 2 03:55:22 1998
---- xc/config/cf/X11.tmpl Sat Apr 11 13:56:54 1998
-***************
-*** 202,207 ****
---- 202,213 ----
- #ifndef BuildXF86DGALibrary
- #define BuildXF86DGALibrary BuildXF86DGA
- #endif
-+ #ifndef BuildXF86RushExt
-+ #define BuildXF86RushExt NO
-+ #endif
-+ #ifndef BuildXF86RushLibrary
-+ #define BuildXF86RushLibrary BuildXF86RushExt
-+ #endif
- #ifndef BuildDPMSExt
- #define BuildDPMSExt NO
- #endif
-***************
-*** 992,997 ****
---- 998,1019 ----
- #endif
- #endif
-
-+ #if BuildXF86RushLibrary
-+ #ifndef SharedLibXxf86rush
-+ #define SharedLibXxf86rush YES
-+ #endif
-+ #ifndef NormalLibXxf86rush
-+ #define NormalLibXxf86rush YES
-+ #endif
-+ #ifndef DebugLibXxf86rush
-+ #define DebugLibXxf86rush NO
-+ #endif
-+ #ifndef ProfileLibXxf86rush
-+ #define ProfileLibXxf86rush NO
-+ #endif
-+ #endif
-+
-+
- #if BuildDPMSLibrary
- #ifndef SharedLibXdpms
- #define SharedLibXdpms NO
-***************
-*** 1078,1083 ****
---- 1100,1117 ----
- SharedLibReferences(XXF86DGA,Xxf86dga,$(XXF86DGALIBSRC),SOXXF86DGAREV,SharedXxf86dgaRev)
- #else
- ProjectUnsharedLibReferences(XXF86DGA,Xxf86dga,$(XXF86DGALIBSRC),XBuildLibDir)
-+ #endif
-+ #endif
-+
-+ #if BuildXF86RushLibrary
-+ XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush
-+ #if SharedLibXxf86rush
-+ #ifndef SharedXxf86RushRev
-+ #define SharedXxf86RushRev 1.0
-+ #endif
-+ SharedLibReferences(XXF86RUSH,Xxf86rush,$(XXF86RUSHLIBSRC),SOXXF86RUSHREV,SharedXxf86RushRev)
-+ #else
-+ ProjectUnsharedLibReferences(XXF86RUSH,Xxf86rush,$(XXF86RUSHLIBSRC),XBuildLibDir)
- #endif
- #endif
-
-diff -c -N -r xc.old/config/cf/xfree86.cf xc/config/cf/xfree86.cf
-*** xc.old/config/cf/xfree86.cf Mon Mar 2 03:55:22 1998
---- xc/config/cf/xfree86.cf Sat Apr 11 15:34:02 1998
-***************
-*** 619,624 ****
---- 619,627 ----
- #ifndef BuildDPMSLibrary
- #define BuildDPMSLibrary YES
- #endif
-+ #ifndef BuildXF86RushLibrary
-+ #define BuildXF86RushLibrary YES
-+ #endif
-
- /*
- * Build the XFree86-VidMode extension
-***************
-*** 673,678 ****
---- 676,688 ----
- #define BuildDPMSExt YES
- #endif
-
-+ /*
-+ * Build the Rush extension support
-+ */
-+ #ifndef BuildXF86RushExt
-+ #define BuildXF86RushExt YES
-+ #endif
-+
- #if Malloc0ReturnsNull
- #ifndef XtMalloc0ReturnsNullDefines
- #define XtMalloc0ReturnsNullDefines Malloc0ReturnsNullDefines -DXTMALLOC_BC
-***************
-*** 764,769 ****
---- 774,785 ----
- #define XFree86DGADefines /**/
- #endif
-
-+ #if BuildXF86RushExt
-+ #define XFree86RushDefines -DXFreeXRUSH
-+ #else
-+ #define XFree86RushDefines /**/
-+ #endif
-+
- #ifndef MakeHasPosixVariableSubstitutions
- #if !HasBsdMake
- #define MakeHasPosixVariableSubstitutions NO
-***************
-*** 774,780 ****
-
- /* Server defines required for all OSs */
- #ifndef XFree86ServerDefines
-! #define XFree86ServerDefines -DSTATIC_COLOR -DAVOID_GLYPHBLT -DPIXPRIV LinkKitDefines XFree86DGADefines
- #endif
-
- #ifndef XFree86ServerOSDefines
---- 790,796 ----
-
- /* Server defines required for all OSs */
- #ifndef XFree86ServerDefines
-! #define XFree86ServerDefines -DSTATIC_COLOR -DAVOID_GLYPHBLT -DPIXPRIV LinkKitDefines XFree86DGADefines XFree86RushDefines
- #endif
-
- #ifndef XFree86ServerOSDefines
-*** xc.old/include/extensions/Imakefile Sun Jan 12 02:39:14 1997
---- xc/include/extensions/Imakefile Sun Apr 5 17:34:16 1998
-***************
-*** 14,19 ****
---- 14,22 ----
- #if BuildXF86DGALibrary
- XF86DGAHEADERS = xf86dga.h xf86dgastr.h
- #endif
-+ #if BuildXF86RushLibrary
-+ XF86RUSHHEADERS = xf86rush.h xf86rushstr.h
-+ #endif
- #if BuildLBX
- LBXHEADERS = lbxbuf.h lbxbufstr.h lbxdeltastr.h lbximage.h lbxopts.h lbxstr.h lbxzlib.h
- #endif
-***************
-*** 21,27 ****
- DPMSHEADERS = dpms.h dpmsstr.h
- #endif
-
-! EXTRAHEADERS = $(SCREENSAVERHEADERS) $(XF86VIDMODEHEADERS) $(XF86DGAHEADERS) $(XF86MISCHEADERS) $(LBXHEADERS) $(DPMSHEADERS)
-
-
-
---- 24,30 ----
- DPMSHEADERS = dpms.h dpmsstr.h
- #endif
-
-! EXTRAHEADERS = $(SCREENSAVERHEADERS) $(XF86VIDMODEHEADERS) $(XF86DGAHEADERS) $(XF86RUSHHEADERS) $(XF86MISCHEADERS) $(LBXHEADERS) $(DPMSHEADERS)
-
-
-
-diff -c -N -r xc.old/include/extensions/xf86rush.h xc/include/extensions/xf86rush.h
-*** xc.old/include/extensions/xf86rush.h Wed Dec 31 16:00:00 1969
---- xc/include/extensions/xf86rush.h Sun Apr 19 15:56:23 1998
-***************
-*** 0 ****
---- 1,70 ----
-+ /* $$ */
-+ /*
-+
-+ Copyright (c) 1998 Daryll Strauss
-+
-+ */
-+
-+ #ifndef _XF86RUSH_H_
-+ #define _XF86RUSH_H_
-+
-+ #include <X11/Xfuncproto.h>
-+
-+ #define X_XF86RushQueryVersion 0
-+ #define X_XF86RushLockPixmap 1
-+ #define X_XF86RushUnlockPixmap 2
-+ #define X_XF86RushUnlockAllPixmaps 3
-+
-+ #define XF86RushNumberEvents 0
-+
-+ #define XF86RushClientNotLocal 0
-+ #define XF86RushNumberErrors (XF86RushClientNotLocal + 1)
-+
-+ #ifndef _XF86RUSH_SERVER_
-+
-+ _XFUNCPROTOBEGIN
-+
-+ Bool XF86RushQueryVersion(
-+ #if NeedFunctionPrototypes
-+ Display* /* dpy */,
-+ int* /* majorVersion */,
-+ int* /* minorVersion */
-+ #endif
-+ );
-+
-+ Bool XF86RushQueryExtension(
-+ #if NeedFunctionPrototypes
-+ Display* /* dpy */,
-+ int* /* event_base */,
-+ int* /* error_base */
-+ #endif
-+ );
-+
-+ Bool XF86RushLockPixmap(
-+ #if NeedFunctionPrototypes
-+ Display * /* dpy */,
-+ int /* screen */,
-+ Pixmap /* Pixmap */,
-+ void ** /* Return address */
-+ #endif
-+ );
-+
-+ Bool XF86RushUnlockPixmap(
-+ #if NeedFunctionPrototypes
-+ Display * /* dpy */,
-+ int /* screen */,
-+ Pixmap /* Pixmap */
-+ #endif
-+ );
-+
-+ Bool XF86RushUnlockAllPixmaps(
-+ #if NeedFunctionPrototypes
-+ Display * /* dpy */
-+ #endif
-+ );
-+
-+ _XFUNCPROTOEND
-+
-+ #endif /* _XF86RUSH_SERVER_ */
-+
-+ #endif /* _XF86RUSH_H_ */
-diff -c -N -r xc.old/include/extensions/xf86rushstr.h xc/include/extensions/xf86rushstr.h
-*** xc.old/include/extensions/xf86rushstr.h Wed Dec 31 16:00:00 1969
---- xc/include/extensions/xf86rushstr.h Sun Apr 5 21:44:32 1998
-***************
-*** 0 ****
---- 1,82 ----
-+ /* $$ */
-+ /*
-+
-+ Copyright (c) 1998 Daryll Strauss
-+
-+ */
-+
-+ #ifndef _XF86RUSHSTR_H_
-+ #define _XF86RUSHSTR_H_
-+
-+ #include "xf86rush.h"
-+
-+ #define XF86RUSHNAME "XFree86-Rush"
-+
-+ #define XF86RUSH_MAJOR_VERSION 1 /* current version numbers */
-+ #define XF86RUSH_MINOR_VERSION 0
-+
-+ typedef struct _XF86RushQueryVersion {
-+ CARD8 reqType; /* always RushReqCode */
-+ CARD8 rushReqType; /* always X_RushQueryVersion */
-+ CARD16 length B16;
-+ } xXF86RushQueryVersionReq;
-+ #define sz_xXF86RushQueryVersionReq 4
-+
-+ typedef struct {
-+ BYTE type; /* X_Reply */
-+ BOOL pad1;
-+ CARD16 sequenceNumber B16;
-+ CARD32 length B32;
-+ CARD16 majorVersion B16; /* major version of Rush protocol */
-+ CARD16 minorVersion B16; /* minor version of Rush protocol */
-+ CARD32 pad2 B32;
-+ CARD32 pad3 B32;
-+ CARD32 pad4 B32;
-+ CARD32 pad5 B32;
-+ CARD32 pad6 B32;
-+ } xXF86RushQueryVersionReply;
-+ #define sz_xXF86RushQueryVersionReply 32
-+
-+ typedef struct _XF86RushLockPixmap {
-+ CARD8 reqType; /* always RushReqCode */
-+ CARD8 rushReqType; /* always X_RushLockPixmap */
-+ CARD16 length B16;
-+ CARD16 screen B16;
-+ CARD16 pad B16;
-+ CARD32 pixmap B32;
-+ } xXF86RushLockPixmapReq;
-+ #define sz_xXF86RushLockPixmapReq 12
-+
-+ typedef struct {
-+ BYTE type;
-+ BOOL pad1;
-+ CARD16 sequenceNumber B16;
-+ CARD32 length B32;
-+ CARD32 addr B32;
-+ CARD32 pad2 B32;
-+ CARD32 pad3 B32;
-+ CARD32 pad4 B32;
-+ CARD32 pad5 B32;
-+ CARD32 pad6 B32;
-+ } xXF86RushLockPixmapReply;
-+ #define sz_xXF86RushLockPixmapReply 32
-+
-+ typedef struct _XF86RushUnlockPixmap {
-+ CARD8 reqType; /* always RushReqCode */
-+ CARD8 rushReqType; /* always X_RushUnlockPixmap */
-+ CARD16 length B16;
-+ CARD16 screen B16;
-+ CARD16 pad B16;
-+ CARD32 pixmap B32;
-+ } xXF86RushUnlockPixmapReq;
-+ #define sz_xXF86RushUnlockPixmapReq 12
-+
-+ typedef struct _XF86RushUnlockAllPixmaps {
-+ CARD8 reqType; /* always RushReqCode */
-+ CARD8 rushReqType; /* always X_RushUnlockAllPixmaps */
-+ CARD16 length B16;
-+ } xXF86RushUnlockAllPixmapsReq;
-+ #define sz_xXF86RushUnlockAllPixmapsReq 4
-+
-+ #endif /* _XF86RUSHSTR_H_ */
-+
-diff -c -N -r xc.old/lib/Imakefile xc/lib/Imakefile
-*** xc.old/lib/Imakefile Sat Jul 5 08:55:33 1997
---- xc/lib/Imakefile Sat Apr 11 13:24:59 1998
-***************
-*** 39,45 ****
- XF86DGALIB = Xxf86dga
- #endif
-
-! XF86EXTLIBS = $(XF86MISCLIB) $(XF86VMLIB) $(XF86DGALIB)
-
- #if BuildDPMSLibrary
- XDPMSLIBDIR = Xdpms
---- 39,49 ----
- XF86DGALIB = Xxf86dga
- #endif
-
-! #if BuildXF86RushLibrary
-! XF86RUSHLIB = Xxf86rush
-! #endif
-!
-! XF86EXTLIBS = $(XF86MISCLIB) $(XF86VMLIB) $(XF86DGALIB) $(XF86RUSHLIB)
-
- #if BuildDPMSLibrary
- XDPMSLIBDIR = Xdpms
-***************
-*** 61,67 ****
-
- #if !BuildServersOnly
- LINTSUBDIRS = Xau Xdmcp $(THRSTUBLIB) X11 oldX ICE SM Xext Xt \
-! $(SSLIB) $(XF86MISCLIB) $(XF86VMLIB) $(XF86DGALIB) \
- Xmu Xaw XIE Xi Xtst FS \
- PEX5 $(XKBLIBDIR) $(XKBUILIBDIR) $(LBXUTILDIR) $(XALIBDIR) \
- $(XDPMSLIBDIR) \
---- 65,71 ----
-
- #if !BuildServersOnly
- LINTSUBDIRS = Xau Xdmcp $(THRSTUBLIB) X11 oldX ICE SM Xext Xt \
-! $(SSLIB) $(XF86MISCLIB) $(XF86VMLIB) $(XF86DGALIB) $(XF86RUSHLIB) \
- Xmu Xaw XIE Xi Xtst FS \
- PEX5 $(XKBLIBDIR) $(XKBUILIBDIR) $(LBXUTILDIR) $(XALIBDIR) \
- $(XDPMSLIBDIR) \
-diff -c -N -r xc.old/lib/Xext/XF86Rush.c xc/lib/Xext/XF86Rush.c
-*** xc.old/lib/Xext/XF86Rush.c Wed Dec 31 16:00:00 1969
---- xc/lib/Xext/XF86Rush.c Sun Apr 5 18:01:55 1998
-***************
-*** 0 ****
---- 1,163 ----
-+ /* $$ */
-+ /*
-+
-+ Copyright (c) 1998 Daryll Strauss
-+
-+ */
-+
-+ /* THIS IS NOT AN X CONSORTIUM STANDARD */
-+
-+ #define NEED_EVENTS
-+ #define NEED_REPLIES
-+ #include "Xlibint.h"
-+ #include "xf86rushstr.h"
-+ #include "Xext.h"
-+ #include "extutil.h"
-+
-+ static XExtensionInfo _xf86rush_info_data;
-+ static XExtensionInfo *xf86rush_info = &_xf86rush_info_data;
-+ static char *xf86rush_extension_name = XF86RUSHNAME;
-+
-+ #define XF86RushCheckExtension(dpy,i,val) \
-+ XextCheckExtension (dpy, i, xf86rush_extension_name, val)
-+
-+ /*****************************************************************************
-+ * *
-+ * private utility routines *
-+ * *
-+ *****************************************************************************/
-+
-+ static int close_display();
-+ static /* const */ XExtensionHooks xf86rush_extension_hooks = {
-+ NULL, /* create_gc */
-+ NULL, /* copy_gc */
-+ NULL, /* flush_gc */
-+ NULL, /* free_gc */
-+ NULL, /* create_font */
-+ NULL, /* free_font */
-+ close_display, /* close_display */
-+ NULL, /* wire_to_event */
-+ NULL, /* event_to_wire */
-+ NULL, /* error */
-+ NULL, /* error_string */
-+ };
-+
-+ static XEXT_GENERATE_FIND_DISPLAY (find_display, xf86rush_info,
-+ xf86rush_extension_name,
-+ &xf86rush_extension_hooks,
-+ 0, NULL)
-+
-+ static XEXT_GENERATE_CLOSE_DISPLAY (close_display, xf86rush_info)
-+
-+
-+ /*****************************************************************************
-+ * *
-+ * public XFree86-DGA Extension routines *
-+ * *
-+ *****************************************************************************/
-+
-+ Bool XF86RushQueryExtension (dpy, event_basep, error_basep)
-+ Display *dpy;
-+ int *event_basep, *error_basep;
-+ {
-+ XExtDisplayInfo *info = find_display (dpy);
-+
-+ if (XextHasExtension(info)) {
-+ *event_basep = info->codes->first_event;
-+ *error_basep = info->codes->first_error;
-+ return True;
-+ } else {
-+ return False;
-+ }
-+ }
-+
-+ Bool XF86RushQueryVersion(dpy, majorVersion, minorVersion)
-+ Display* dpy;
-+ int* majorVersion;
-+ int* minorVersion;
-+ {
-+ XExtDisplayInfo *info = find_display (dpy);
-+ xXF86RushQueryVersionReply rep;
-+ xXF86RushQueryVersionReq *req;
-+
-+ XF86RushCheckExtension (dpy, info, False);
-+
-+ LockDisplay(dpy);
-+ GetReq(XF86RushQueryVersion, req);
-+ req->reqType = info->codes->major_opcode;
-+ req->dgaReqType = X_XF86RushQueryVersion;
-+ if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return False;
-+ }
-+ *majorVersion = rep.majorVersion;
-+ *minorVersion = rep.minorVersion;
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return True;
-+ }
-+
-+ Bool XF86RushLockPixmap(dpy, screen, pixmap, addr)
-+ Display *dpy;
-+ int screen;
-+ Pixmap pixmap;
-+ void **addr;
-+ {
-+ XExtDisplayInfo *info = find_display (dpy);
-+ xXF86RushLockPixmapReply rep;
-+ xXF86RushLockPixmapReq *req;
-+
-+ XF86RushCheckExtension (dpy, info, False);
-+ LockDisplay(dpy);
-+ GetReq(XF86RushLockPixmap, req);
-+ req->reqType = info->codes->major_opcode;
-+ req->dgaReqType = X_XF86RushLockPixmap;
-+ req->screen=screen;
-+ req->pixmap=pixmap;
-+ if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return False;
-+ }
-+ *addr=(void*)rep.addr;
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return True;
-+ }
-+
-+ Bool XF86RushUnlockPixmap(dpy, screen, pixmap)
-+ Display *dpy;
-+ int screen;
-+ Pixmap pixmap;
-+ {
-+ XExtDisplayInfo *info = find_display(dpy);
-+ xXF86RushUnlockPixmapReq *req;
-+
-+ XF86RushCheckExtension (dpy, info, False);
-+ LockDisplay(dpy);
-+ GetReq(XF86RushUnlockPixmap, req);
-+ req->reqType = info->codes->major_opcode;
-+ req->dgaReqType = X_XF86RushUnlockPixmap;
-+ req->screen=screen;
-+ req->pixmap=pixmap;
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return True;
-+ }
-+
-+ Bool XF86RushUnlockAllPixmaps(dpy)
-+ Display *dpy;
-+ {
-+ XExtDisplayInfo *info = find_display(dpy);
-+ xXF86RushUnlockAllPixmapsReq *req;
-+
-+ XF86RushCheckExtension (dpy, info, False);
-+ LockDisplay(dpy);
-+ GetReq(XF86RushUnlockAllPixmaps, req);
-+ req->reqType = info->codes->major_opcode;
-+ req->dgaReqType = X_XF86RushUnlockAllPixmaps;
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return True;
-+ }
-diff -c -N -r xc.old/lib/Xxf86rush/Imakefile xc/lib/Xxf86rush/Imakefile
-*** xc.old/lib/Xxf86rush/Imakefile Wed Dec 31 16:00:00 1969
---- xc/lib/Xxf86rush/Imakefile Sat Apr 11 13:29:38 1998
-***************
-*** 0 ****
---- 1,33 ----
-+ XCOMM $$
-+ #define DoNormalLib NormalLibXxf86rush
-+ #define DoSharedLib SharedLibXxf86rush
-+ #define DoDebugLib DebugLibXxf86rush
-+ #define DoProfileLib ProfileLibXxf86rush
-+ #define LibName Xxf86rush
-+ #define SoRev SOXXF86RUSHREV
-+ #define LibHeaders NO
-+
-+ #include <Threads.tmpl>
-+
-+ #ifdef SharedXxf86rushReqs
-+ REQUIREDLIBS = SharedXxf86rushReqs
-+ #endif
-+
-+ XF86RUSHSRCS = XF86Rush.c
-+ XF86RUSHOBJS = XF86Rush.o
-+
-+ #if Malloc0ReturnsNull
-+ ALLOC_DEFINES = -DMALLOC_0_RETURNS_NULL
-+ #endif
-+
-+ DEFINES = $(ALLOC_DEFINES)
-+ INCLUDES = -I$(XLIBSRC) -I$(EXTINCSRC)
-+ SRCS = $(XF86RUSHSRCS)
-+ OBJS = $(XF86RUSHOBJS)
-+ LINTLIBS = $(LINTXLIB)
-+
-+ #include <Library.tmpl>
-+
-+ DependTarget()
-+
-+
-diff -c -N -r xc.old/lib/Xxf86rush/XF86Rush.c xc/lib/Xxf86rush/XF86Rush.c
-*** xc.old/lib/Xxf86rush/XF86Rush.c Wed Dec 31 16:00:00 1969
---- xc/lib/Xxf86rush/XF86Rush.c Sat Apr 11 13:55:40 1998
-***************
-*** 0 ****
---- 1,163 ----
-+ /* $$ */
-+ /*
-+
-+ Copyright (c) 1998 Daryll Strauss
-+
-+ */
-+
-+ /* THIS IS NOT AN X CONSORTIUM STANDARD */
-+
-+ #define NEED_EVENTS
-+ #define NEED_REPLIES
-+ #include "Xlibint.h"
-+ #include "xf86rushstr.h"
-+ #include "Xext.h"
-+ #include "extutil.h"
-+
-+ static XExtensionInfo _xf86rush_info_data;
-+ static XExtensionInfo *xf86rush_info = &_xf86rush_info_data;
-+ static char *xf86rush_extension_name = XF86RUSHNAME;
-+
-+ #define XF86RushCheckExtension(dpy,i,val) \
-+ XextCheckExtension (dpy, i, xf86rush_extension_name, val)
-+
-+ /*****************************************************************************
-+ * *
-+ * private utility routines *
-+ * *
-+ *****************************************************************************/
-+
-+ static int close_display();
-+ static /* const */ XExtensionHooks xf86rush_extension_hooks = {
-+ NULL, /* create_gc */
-+ NULL, /* copy_gc */
-+ NULL, /* flush_gc */
-+ NULL, /* free_gc */
-+ NULL, /* create_font */
-+ NULL, /* free_font */
-+ close_display, /* close_display */
-+ NULL, /* wire_to_event */
-+ NULL, /* event_to_wire */
-+ NULL, /* error */
-+ NULL, /* error_string */
-+ };
-+
-+ static XEXT_GENERATE_FIND_DISPLAY (find_display, xf86rush_info,
-+ xf86rush_extension_name,
-+ &xf86rush_extension_hooks,
-+ 0, NULL)
-+
-+ static XEXT_GENERATE_CLOSE_DISPLAY (close_display, xf86rush_info)
-+
-+
-+ /*****************************************************************************
-+ * *
-+ * public XFree86-DGA Extension routines *
-+ * *
-+ *****************************************************************************/
-+
-+ Bool XF86RushQueryExtension (dpy, event_basep, error_basep)
-+ Display *dpy;
-+ int *event_basep, *error_basep;
-+ {
-+ XExtDisplayInfo *info = find_display (dpy);
-+
-+ if (XextHasExtension(info)) {
-+ *event_basep = info->codes->first_event;
-+ *error_basep = info->codes->first_error;
-+ return True;
-+ } else {
-+ return False;
-+ }
-+ }
-+
-+ Bool XF86RushQueryVersion(dpy, majorVersion, minorVersion)
-+ Display* dpy;
-+ int* majorVersion;
-+ int* minorVersion;
-+ {
-+ XExtDisplayInfo *info = find_display (dpy);
-+ xXF86RushQueryVersionReply rep;
-+ xXF86RushQueryVersionReq *req;
-+
-+ XF86RushCheckExtension (dpy, info, False);
-+
-+ LockDisplay(dpy);
-+ GetReq(XF86RushQueryVersion, req);
-+ req->reqType = info->codes->major_opcode;
-+ req->rushReqType = X_XF86RushQueryVersion;
-+ if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return False;
-+ }
-+ *majorVersion = rep.majorVersion;
-+ *minorVersion = rep.minorVersion;
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return True;
-+ }
-+
-+ Bool XF86RushLockPixmap(dpy, screen, pixmap, addr)
-+ Display *dpy;
-+ int screen;
-+ Pixmap pixmap;
-+ void **addr;
-+ {
-+ XExtDisplayInfo *info = find_display (dpy);
-+ xXF86RushLockPixmapReply rep;
-+ xXF86RushLockPixmapReq *req;
-+
-+ XF86RushCheckExtension (dpy, info, False);
-+ LockDisplay(dpy);
-+ GetReq(XF86RushLockPixmap, req);
-+ req->reqType = info->codes->major_opcode;
-+ req->rushReqType = X_XF86RushLockPixmap;
-+ req->screen=screen;
-+ req->pixmap=pixmap;
-+ if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return False;
-+ }
-+ *addr=(void*)rep.addr;
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return True;
-+ }
-+
-+ Bool XF86RushUnlockPixmap(dpy, screen, pixmap)
-+ Display *dpy;
-+ int screen;
-+ Pixmap pixmap;
-+ {
-+ XExtDisplayInfo *info = find_display(dpy);
-+ xXF86RushUnlockPixmapReq *req;
-+
-+ XF86RushCheckExtension (dpy, info, False);
-+ LockDisplay(dpy);
-+ GetReq(XF86RushUnlockPixmap, req);
-+ req->reqType = info->codes->major_opcode;
-+ req->rushReqType = X_XF86RushUnlockPixmap;
-+ req->screen=screen;
-+ req->pixmap=pixmap;
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return True;
-+ }
-+
-+ Bool XF86RushUnlockAllPixmaps(dpy)
-+ Display *dpy;
-+ {
-+ XExtDisplayInfo *info = find_display(dpy);
-+ xXF86RushUnlockAllPixmapsReq *req;
-+
-+ XF86RushCheckExtension (dpy, info, False);
-+ LockDisplay(dpy);
-+ GetReq(XF86RushUnlockAllPixmaps, req);
-+ req->reqType = info->codes->major_opcode;
-+ req->rushReqType = X_XF86RushUnlockAllPixmaps;
-+ UnlockDisplay(dpy);
-+ SyncHandle();
-+ return True;
-+ }
-diff -c -N -r xc.old/programs/Xserver/Xext/Imakefile ./Xext/Imakefile
-*** xc.old/programs/Xserver/Xext/Imakefile Fri Jan 23 04:35:11 1998
---- xc/programs/Xserver/Xext/Imakefile Sun Apr 4 18:13:41 1999
-***************
-*** 32,37 ****
---- 32,42 ----
- DPMSOBJS = dpms.o
- #endif
-
-+ #if BuildXF86RushExt
-+ XF86RRUSHSRCS = xf86Rush.c
-+ XF86RUSHOBJS = xf86Rush.o
-+ #endif
-+
- #if BuildAppgroup
- APPGROUPSRCS = appgroup.c
- APPGROUPOBJS = appgroup.o
-***************
-*** 47,59 ****
- mitmisc.c xtest.c xtest1di.c xtest1dd.c sleepuntil.c \
- bigreq.c sync.c $(SCRNSAVSRC) xcmisc.c $(VIDMODESRCS) \
- $(XF86MISCSRCS) $(XF86DGASRCS) $(SECURITYSRCS) \
-! $(DPMSSRCS) \
- $(APPGROUPSRCS) xprint.c
- OBJS = shape.o $(SHMOBJS) mbuf.o \
- mitmisc.o xtest.o xtest1di.o xtest1dd.o sleepuntil.o \
- bigreq.o sync.o $(SCRNSAVOBJ) xcmisc.o $(VIDMODEOBJS) \
- $(XF86MISCOBJS) $(XF86DGAOBJS) $(SECURITYOBJS) \
-! $(DPMSOBJS) \
- $(APPGROUPOBJS) xprint.o
-
- XF86INCLUDES = -I../hw/xfree86/common -I../hw/xfree86/os-support
---- 52,64 ----
- mitmisc.c xtest.c xtest1di.c xtest1dd.c sleepuntil.c \
- bigreq.c sync.c $(SCRNSAVSRC) xcmisc.c $(VIDMODESRCS) \
- $(XF86MISCSRCS) $(XF86DGASRCS) $(SECURITYSRCS) \
-! $(DPMSSRCS) $(XF86RUSHSRCS) \
- $(APPGROUPSRCS) xprint.c
- OBJS = shape.o $(SHMOBJS) mbuf.o \
- mitmisc.o xtest.o xtest1di.o xtest1dd.o sleepuntil.o \
- bigreq.o sync.o $(SCRNSAVOBJ) xcmisc.o $(VIDMODEOBJS) \
- $(XF86MISCOBJS) $(XF86DGAOBJS) $(SECURITYOBJS) \
-! $(DPMSOBJS) $(XF86RUSHOBJS) \
- $(APPGROUPOBJS) xprint.o
-
- XF86INCLUDES = -I../hw/xfree86/common -I../hw/xfree86/os-support
-diff -c -N -r xc.old/programs/Xserver/Xext/xf86Rush.c ./Xext/xf86Rush.c
-*** xc.old/programs/Xserver/Xext/xf86Rush.c Wed Dec 31 16:00:00 1969
---- xc/programs/Xserver/Xext/xf86Rush.c Sun Apr 4 18:13:41 1999
-***************
-*** 0 ****
---- 1,213 ----
-+ /* $XFree86: $ */
-+
-+ /*
-+
-+ Copyright (c) 1998 Daryll Strauss
-+
-+ */
-+
-+ #define NEED_REPLIES
-+ #define NEED_EVENTS
-+ #include "X.h"
-+ #include "Xproto.h"
-+ #include "misc.h"
-+ #include "dixstruct.h"
-+ #include "extnsionst.h"
-+ #include "colormapst.h"
-+ #include "cursorstr.h"
-+ #include "scrnintstr.h"
-+ #include "servermd.h"
-+ #define _XF86RUSH_SERVER_
-+ #include "xf86rushstr.h"
-+ #include "swaprep.h"
-+ #include "../hw/xfree86/common/xf86.h"
-+ #include <dlfcn.h>
-+
-+ #include <X11/Xtrans.h>
-+ #include "../os/osdep.h"
-+ #include <X11/Xauth.h>
-+ #ifndef ESIX
-+ #ifndef Lynx
-+ #include <sys/socket.h>
-+ #else
-+ #include <socket.h>
-+ #endif
-+ #else
-+ #include <lan/socket.h>
-+ #endif
-+
-+ extern int xf86ScreenIndex;
-+ static unsigned char RushReqCode = 0;
-+ static int RushErrorBase;
-+
-+ static DISPATCH_PROC(ProcXF86RushDispatch);
-+ static DISPATCH_PROC(ProcRushQueryVersion);
-+ static DISPATCH_PROC(ProcRushLockPixmap);
-+ static DISPATCH_PROC(ProcRushUnlockPixmap);
-+ static DISPATCH_PROC(ProcRushUnlockAllPixmaps);
-+
-+ static DISPATCH_PROC(SProcXF86RushDispatch);
-+
-+ static void XF86RushResetProc(
-+ #if NeedFunctionPrototypes
-+ ExtensionEntry* /* extEntry */
-+ #endif
-+ );
-+
-+ void
-+ XFree86RushExtensionInit()
-+ {
-+ ExtensionEntry* extEntry;
-+
-+ if (
-+ (extEntry = AddExtension(XF86RUSHNAME,
-+ XF86RushNumberEvents,
-+ XF86RushNumberErrors,
-+ ProcXF86RushDispatch,
-+ SProcXF86RushDispatch,
-+ XF86RushResetProc,
-+ StandardMinorOpcode))) {
-+ RushReqCode = (unsigned char)extEntry->base;
-+ RushErrorBase = extEntry->errorBase;
-+ }
-+ }
-+
-+ /*ARGSUSED*/
-+ static void
-+ XF86RushResetProc (extEntry)
-+ ExtensionEntry* extEntry;
-+ {
-+ }
-+
-+ static int
-+ ProcRushQueryVersion(client)
-+ register ClientPtr client;
-+ {
-+ xXF86RushQueryVersionReply rep;
-+ register int n;
-+
-+ REQUEST_SIZE_MATCH(xXF86RushQueryVersionReq);
-+ rep.type = X_Reply;
-+ rep.length = 0;
-+ rep.sequenceNumber = client->sequence;
-+ rep.majorVersion = XF86RUSH_MAJOR_VERSION;
-+ rep.minorVersion = XF86RUSH_MINOR_VERSION;
-+ if (client->swapped) {
-+ swaps(&rep.sequenceNumber, n);
-+ swapl(&rep.length, n);
-+ }
-+ WriteToClient(client, sizeof(xXF86RushQueryVersionReply), (char *)&rep);
-+ return (client->noClientException);
-+ }
-+
-+ static int
-+ ProcXF86RushLockPixmap(client)
-+ register ClientPtr client;
-+ {
-+ REQUEST(xXF86RushLockPixmapReq);
-+ xXF86RushLockPixmapReply rep;
-+ ScrnInfoPtr vptr;
-+ PixmapPtr pix;
-+ void *handle;
-+ void *(*func)();
-+
-+ if (stuff->screen > screenInfo.numScreens)
-+ return BadValue;
-+
-+ vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr;
-+
-+ REQUEST_SIZE_MATCH(xXF86RushLockPixmapReq);
-+ rep.type = X_Reply;
-+ rep.length = 0;
-+ rep.sequenceNumber = client->sequence;
-+ pix = (PixmapPtr)SecurityLookupIDByType(client,
-+ stuff->pixmap, RT_PIXMAP,
-+ SecurityReadAccess);
-+ handle=dlopen(0, 0);
-+ if (handle) {
-+ func=(void*(*)())dlsym(handle, "xf86LockPixmap");
-+ dlclose(handle);
-+ }
-+ if (handle && func) rep.addr=(int)func(pix);
-+ else rep.addr = 0;
-+
-+ WriteToClient(client, SIZEOF(xXF86RushLockPixmapReply), (char*)&rep);
-+ return client->noClientException;
-+ }
-+
-+ static int
-+ ProcXF86RushUnlockPixmap(client)
-+ register ClientPtr client;
-+ {
-+ REQUEST(xXF86RushUnlockPixmapReq);
-+ ScrnInfoPtr vptr;
-+ PixmapPtr pix;
-+ void *handle;
-+ void (*func)();
-+
-+ if (stuff->screen > screenInfo.numScreens)
-+ return BadValue;
-+
-+ vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr;
-+ REQUEST_SIZE_MATCH(xXF86RushUnlockPixmapReq);
-+ pix = (PixmapPtr)SecurityLookupIDByType(client,
-+ stuff->pixmap, RT_PIXMAP,
-+ SecurityReadAccess);
-+ handle=dlopen(0, 0);
-+ if (handle) {
-+ func=(void(*)())dlsym(handle, "xf86UnlockPixmap");
-+ dlclose(handle);
-+ }
-+ if (handle && func) func(pix);
-+ return client->noClientException;
-+ }
-+
-+ static int
-+ ProcXF86RushUnlockAllPixmaps(client)
-+ register ClientPtr client;
-+ {
-+ void *handle;
-+ void (*func)();
-+
-+ REQUEST(xXF86RushUnlockAllPixmapsReq);
-+ REQUEST_SIZE_MATCH(xXF86RushUnlockAllPixmapsReq);
-+ handle=dlopen(0, 0);
-+ if (handle) {
-+ func=(void(*)())dlsym(handle, "xf86UnlockAllPixmaps");
-+ dlclose(handle);
-+ }
-+ if (handle && func) func();
-+ return client->noClientException;
-+ }
-+
-+ ProcXF86RushDispatch (client)
-+ register ClientPtr client;
-+ {
-+ REQUEST(xReq);
-+
-+ if (!LocalClient(client))
-+ return RushErrorBase + XF86RushClientNotLocal;
-+
-+ switch (stuff->data)
-+ {
-+ case X_XF86RushQueryVersion:
-+ return ProcRushQueryVersion(client);
-+ case X_XF86RushLockPixmap:
-+ return ProcXF86RushLockPixmap(client);
-+ case X_XF86RushUnlockPixmap:
-+ return ProcXF86RushUnlockPixmap(client);
-+ case X_XF86RushUnlockAllPixmaps:
-+ return ProcXF86RushUnlockAllPixmaps(client);
-+ default:
-+ return BadRequest;
-+ }
-+ }
-+
-+ SProcXF86RushDispatch (client)
-+ register ClientPtr client;
-+ {
-+ REQUEST(xReq);
-+
-+ return RushErrorBase + XF86RushClientNotLocal;
-+ }
-+
-diff -c -N -r xc.old/programs/Xserver/hw/xfree86/LinkKit/Imakefile ./hw/xfree86/LinkKit/Imakefile
-*** xc.old/programs/Xserver/hw/xfree86/LinkKit/Imakefile Sun Jan 12 02:41:28 1997
---- xc/programs/Xserver/hw/xfree86/LinkKit/Imakefile Sun Apr 4 18:13:41 1999
-***************
-*** 73,78 ****
---- 73,79 ----
- LimitBoolean("BuildXF86VidModeExt", NO, BuildXF86VidModeExt) >> $@
- LimitBoolean("BuildXF86MiscExt", NO, BuildXF86MiscExt) >> $@
- LimitBoolean("BuildXF86DGA", NO, BuildXF86DGA) >> $@
-+ LimitBoolean("BuildXF86RushExt", NO, BuildXF86RushExt) >> $@
- LimitBoolean("BuildDPMSExt", BuildDPMSExt, BuildDPMSExt) >> $@
-
- clean::
-diff -c -N -r xc.old/programs/Xserver/hw/xfree86/common/xf86Cursor.c ./hw/xfree86/common/xf86Cursor.c
-*** xc.old/programs/Xserver/hw/xfree86/common/xf86Cursor.c Sat Oct 31 12:13:18 1998
---- xc/programs/Xserver/hw/xfree86/common/xf86Cursor.c Sun Apr 4 18:13:41 1999
-***************
-*** 138,143 ****
---- 138,150 ----
- Bool frameChanged = FALSE;
- ScrnInfoPtr pScr = XF86SCRNINFO(pScreen);
-
-+ #ifdef XFreeXDGA
-+ /*
-+ * Since we're in DGA mode we need to trash this scroll request
-+ */
-+ if (pScr->directMode&XF86DGADirectGraphics)
-+ return;
-+ #endif
- /*
- * check wether (x,y) belongs to the visual part of the screen
- * if not, change the base of the displayed frame accoring
-diff -c -N -r xc.old/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_cursor.c ./hw/xfree86/vga256/drivers/apm/apm_cursor.c
-*** xc.old/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_cursor.c Sun Jan 18 02:35:30 1998
---- xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_cursor.c Sun Apr 4 18:13:42 1999
-***************
-*** 23,29 ****
- #include "apm.h"
-
- static void ApmShowCursor(void);
-! static void ApmHideCursor(void);
- static Bool ApmRealizeCursor(ScreenPtr pScr, CursorPtr pCurs);
- static Bool ApmUnrealizeCursor(ScreenPtr pScr, CursorPtr pCurs);
- static void ApmLoadCursorToCard(ScreenPtr pScr, CursorPtr pCurs, int x, int y);
---- 23,29 ----
- #include "apm.h"
-
- static void ApmShowCursor(void);
-! void ApmHideCursor(void);
- static Bool ApmRealizeCursor(ScreenPtr pScr, CursorPtr pCurs);
- static Bool ApmUnrealizeCursor(ScreenPtr pScr, CursorPtr pCurs);
- static void ApmLoadCursorToCard(ScreenPtr pScr, CursorPtr pCurs, int x, int y);
-***************
-*** 108,114 ****
- * This is also a local function, it's not called from outside.
- */
-
-! static void
- ApmHideCursor(void)
- {
- ApmCheckMMIO_Init();
---- 108,114 ----
- * This is also a local function, it's not called from outside.
- */
-
-! void
- ApmHideCursor(void)
- {
- ApmCheckMMIO_Init();
-diff -c -N -r xc.old/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_driver.c ./hw/xfree86/vga256/drivers/apm/apm_driver.c
-*** xc.old/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_driver.c Sun Feb 15 16:42:15 1998
---- xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_driver.c Sun Apr 4 18:13:42 1999
-***************
-*** 610,616 ****
---- 610,624 ----
-
- #ifdef XFreeXDGA
- if (vga256InfoRec.directMode&XF86DGADirectGraphics && !enter)
-+ {
-+ if (vgaHWCursor.Initialized == TRUE)
-+ {
-+ extern void ApmHideCursor(void);
-+ ApmHideCursor();
-+ }
- return;
-+ }
-+
- #endif
-
- if (enter)
-***************
-*** 965,970 ****
---- 973,985 ----
- */
- modinx(vgaIOBase + 4, 0x1c, 0x0f, (Base & 0x0f0000) >> 16);
-
-+ #ifdef XFreeXDGA
-+ if (vga256InfoRec.directMode & XF86DGADirectGraphics) {
-+ /* Wait until vertical retrace is in progress. */
-+ while (inb(vgaIOBase + 0xA) & 0x08);
-+ while (!(inb(vgaIOBase + 0xA) & 0x08));
-+ }
-+ #endif
- }
-
- /*
-diff -c -N -r xc.old/programs/Xserver/hw/xfree86/xaa/xf86cparea.c ./hw/xfree86/xaa/xf86cparea.c
-*** xc.old/programs/Xserver/hw/xfree86/xaa/xf86cparea.c Mon Nov 18 05:22:11 1996
---- xc/programs/Xserver/hw/xfree86/xaa/xf86cparea.c Tue Apr 6 23:51:36 1999
-***************
-*** 85,90 ****
---- 85,92 ----
- #include "xf86xaa.h"
- #include "xf86local.h"
-
-+ #include "xf86Priv.h"
-+ #include "xf86pcache.h"
-
- RegionPtr
- xf86CopyArea(pSrcDrawable, pDstDrawable,
-***************
-*** 96,105 ****
- int width, height;
- int dstx, dsty;
- {
-! if (pSrcDrawable->type == DRAWABLE_WINDOW
-! && pDstDrawable->type == DRAWABLE_WINDOW) {
- return (*xf86GCInfoRec.cfbBitBltDispatch)(
-! pSrcDrawable, pDstDrawable,
- pGC, srcx, srcy, width, height, dstx, dsty,
- xf86DoBitBlt, 0L);
- }
---- 98,110 ----
- int width, height;
- int dstx, dsty;
- {
-! if ((pDstDrawable->type == DRAWABLE_WINDOW) &&
-! ((pSrcDrawable->type == DRAWABLE_WINDOW) ||
-! ((xf86AccelInfoRec.Flags & PIXMAP_CACHE) &&
-! (pSrcDrawable->type == DRAWABLE_PIXMAP) &&
-! xf86CacheIsLocked((PixmapPtr)pSrcDrawable)))) {
- return (*xf86GCInfoRec.cfbBitBltDispatch)(
-! pSrcDrawable, pDstDrawable,
- pGC, srcx, srcy, width, height, dstx, dsty,
- xf86DoBitBlt, 0L);
- }
-***************
-*** 132,137 ****
---- 137,154 ----
- int xdir; /* 1 = left right, -1 = right left/ */
- int ydir; /* 1 = top down, -1 = bottom up */
- int careful;
-+ extern CacheInfoPtr xf86CacheInfo;
-+ int i, slot;
-+
-+ /* Handle locked pixmaps just like screen to screen blits */
-+ if (pSrc->type==DRAWABLE_PIXMAP) {
-+ slot=((xf86PixPrivPtr)((PixmapPtr)pSrc)->devPrivates[xf86PixmapIndex].ptr)->slot;
-+ pptTmp=pptSrc;
-+ for (i=0; i<REGION_NUM_RECTS(prgnDst); i++, pptTmp++) {
-+ pptTmp->x+=xf86CacheInfo[slot].x;
-+ pptTmp->y+=xf86CacheInfo[slot].y;
-+ }
-+ }
-
- /* XXX we have to err on the side of safety when both are windows,
- * because we don't know if IncludeInferiors is being used.
-diff -c -N -r xc.old/programs/Xserver/hw/xfree86/xaa/xf86pcache.c ./hw/xfree86/xaa/xf86pcache.c
-*** xc.old/programs/Xserver/hw/xfree86/xaa/xf86pcache.c Sun Feb 8 07:36:25 1998
---- xc/programs/Xserver/hw/xfree86/xaa/xf86pcache.c Tue Apr 13 12:21:33 1999
-***************
-*** 127,144 ****
-
- CacheInfoPtr xf86CacheInfo = NULL;
- static int MaxSlot;
- static int MaxWidth;
- static int MaxHeight;
- static unsigned int pixmap_cache_clock = 1;
- static int FirstWideSlot;
- static int MaxWideSlotHeight;
-
- void xf86InitPixmapCacheSlots()
- {
- ScrnInfoPtr infoRec;
- int memoryStart, memoryEnd;
-! int width_in_bytes, cache_start_y, i;
-! int height_left, standard_slots, wide_slots, wide_slot_width;
-
- infoRec = xf86AccelInfoRec.ServerInfoRec;
- memoryStart = xf86AccelInfoRec.PixmapCacheMemoryStart;
---- 127,147 ----
-
- CacheInfoPtr xf86CacheInfo = NULL;
- static int MaxSlot;
-+ static int MaxBigSlot;
- static int MaxWidth;
- static int MaxHeight;
- static unsigned int pixmap_cache_clock = 1;
- static int FirstWideSlot;
-+ static int FirstBigSlot;
- static int MaxWideSlotHeight;
-+ static int cache_start_y;
-
- void xf86InitPixmapCacheSlots()
- {
- ScrnInfoPtr infoRec;
- int memoryStart, memoryEnd;
-! int width_in_bytes, i;
-! int height_left, standard_slots, wide_slots, wide_slot_width, big_slots;
-
- infoRec = xf86AccelInfoRec.ServerInfoRec;
- memoryStart = xf86AccelInfoRec.PixmapCacheMemoryStart;
-***************
-*** 228,236 ****
- }
- }
-
- MaxSlot = standard_slots + wide_slots - 1;
-! xf86CacheInfo = (CacheInfoPtr)xcalloc(MaxSlot + 1, sizeof(CacheInfo));
- FirstWideSlot = standard_slots;
-
- ErrorF("%s %s: XAA: Using %d %dx%d ",
- XCONFIG_PROBED, infoRec->name, standard_slots, MaxWidth, MaxHeight);
---- 231,243 ----
- }
- }
-
-+ /* Arbitrarily say you can have 10 big slots */
-+ big_slots = 10;
- MaxSlot = standard_slots + wide_slots - 1;
-! MaxBigSlot = MaxSlot + big_slots;
-! xf86CacheInfo = (CacheInfoPtr)xcalloc(MaxBigSlot + 1, sizeof(CacheInfo));
- FirstWideSlot = standard_slots;
-+ FirstBigSlot = standard_slots + wide_slots;
-
- ErrorF("%s %s: XAA: Using %d %dx%d ",
- XCONFIG_PROBED, infoRec->name, standard_slots, MaxWidth, MaxHeight);
-***************
-*** 255,261 ****
- xf86CacheInfo[i + standard_slots].cache_height = min(32, height_left);
- }
-
-! for (i = 0; i <= MaxSlot; i++) {
- xf86CacheInfo[i].id = -1;
- xf86CacheInfo[i].lru = pixmap_cache_clock;
- xf86CacheInfo[i].fg_color = 0;
---- 262,268 ----
- xf86CacheInfo[i + standard_slots].cache_height = min(32, height_left);
- }
-
-! for (i = 0; i <= MaxBigSlot; i++) {
- xf86CacheInfo[i].id = -1;
- xf86CacheInfo[i].lru = pixmap_cache_clock;
- xf86CacheInfo[i].fg_color = 0;
-***************
-*** 315,321 ****
- #ifdef PIXPRIV
- devPriv = (xf86PixPrivPtr)(pix->devPrivates[xf86PixmapIndex].ptr);
-
-! if (devPriv->slot == MaxSlot + 1)
- /*
- * Special value indicates that this pattern was found to be
- * non-cachable.
---- 322,328 ----
- #ifdef PIXPRIV
- devPriv = (xf86PixPrivPtr)(pix->devPrivates[xf86PixmapIndex].ptr);
-
-! if (devPriv->slot == MaxBigSlot + 1)
- /*
- * Special value indicates that this pattern was found to be
- * non-cachable.
-***************
-*** 344,350 ****
- * pattern, but can't, and ScreenToScreencopy doesn't have
- * the required support for transparency.
- */
-! devPriv->slot = MaxSlot + 1;
- return 0;
- }
- devPriv->slot = slot;
---- 351,357 ----
- * pattern, but can't, and ScreenToScreencopy doesn't have
- * the required support for transparency.
- */
-! devPriv->slot = MaxBigSlot + 1;
- return 0;
- }
- devPriv->slot = slot;
-***************
-*** 893,898 ****
---- 900,906 ----
- pci->flags = 0;
- pci->lru = pixmap_cache_clock;
- pci->id = pix->drawable.serialNumber;
-+ pci->locked = FALSE;
-
- reducible_status = TILE_UNKNOWN;
-
-***************
-*** 1303,1305 ****
---- 1311,1483 ----
- return (pix->drawable.width <= MaxWidth &&
- pix->drawable.height <= MaxHeight);
- }
-+
-+ /* Rush extension support */
-+
-+ int testOverlap(pcipix)
-+ CacheInfoPtr pcipix;
-+ {
-+ int slot;
-+ CacheInfoPtr pcitest;
-+
-+ for (slot=FirstBigSlot; slot<=MaxBigSlot; slot++) {
-+ if (xf86CacheInfo[slot].id>0) {
-+ pcitest=&xf86CacheInfo[slot];
-+ if (!((pcipix->x+pcipix->w<pcitest->x ||
-+ pcipix->x>pcitest->x+pcitest->w) &&
-+ (pcipix->y+pcipix->h<pcitest->y ||
-+ pcipix->y>pcitest->y+pcitest->w)))
-+ return 1;
-+ }
-+ }
-+ return 0;
-+ }
-+
-+
-+ /*
-+ Dividing up the extra memory among X and Glide is difficult.
-+ We'll take what we're given and then try to stick up to big_slots
-+ pixmaps within it. big_slots should be small to keep this efficient.
-+ To fit the pixmap we'll try to put it next to and below each
-+ existing pixmap. Then we'll check if it overlaps anything.
-+ */
-+ static int
-+ findPosition(pci, pix)
-+ CacheInfoPtr pci;
-+ PixmapPtr pix;
-+ {
-+ int slot, bestx, besty;
-+
-+ bestx=-2;
-+ for (slot=FirstBigSlot; slot<=MaxBigSlot; slot++) {
-+ if (xf86CacheInfo[slot].id>0) {
-+ if (bestx==-2) bestx==-1;
-+ /* Check for fit to right */
-+ pci->x=xf86CacheInfo[slot].x+xf86CacheInfo[slot].w;
-+ pci->y=xf86CacheInfo[slot].y;
-+ if (bestx<0 || (bestx+besty>pci->x+pci->y)) {
-+ if (!testOverlap(pci, &xf86CacheInfo[slot])) {
-+ bestx=pci->x;
-+ besty=pci->y;
-+ }
-+ }
-+ /* Check for fit below */
-+ pci->x=xf86CacheInfo[slot].x;
-+ pci->y=xf86CacheInfo[slot].y+xf86CacheInfo[slot].h;
-+ if (bestx<0 || (bestx+besty>pci->x+pci->y)) {
-+ if (!testOverlap(pci, &xf86CacheInfo[slot])) {
-+ bestx=pci->x;
-+ besty=pci->y;
-+ }
-+ }
-+ }
-+ }
-+ if (bestx==-2) { /* Nothing in the list yet */
-+ bestx=0;
-+ besty=cache_start_y+MaxHeight;
-+ }
-+ if (bestx==-1) { /* Doesn't fit */
-+ return 0;
-+ }
-+ pci->x=bestx;
-+ pci->y=besty;
-+ }
-+
-+ void *
-+ xf86LockPixmap(pix)
-+ PixmapPtr pix;
-+ {
-+ xf86PixPrivPtr devPriv =
-+ (xf86PixPrivPtr)(pix->devPrivates[xf86PixmapIndex].ptr);
-+ int slot, size;
-+ ScrnInfoPtr infoRec;
-+ CacheInfoPtr pci;
-+
-+ switch (xf86AccelInfoRec.BitsPerPixel) {
-+ case 8:
-+ size=1;
-+ break;
-+ case 16:
-+ size=2;
-+ break;
-+ case 24:
-+ size=3;
-+ break;
-+ case 32:
-+ size=4;
-+ break;
-+ case 1:
-+ case 4:
-+ default:
-+ return 0;
-+ }
-+ for (slot=FirstBigSlot; slot<MaxBigSlot ; slot++) {
-+ if (slot==-1) break;
-+ }
-+ if (slot==MaxBigSlot) return 0;
-+ /* Assign the slot */
-+ IncrementCacheLRU(slot);
-+ devPriv->slot = slot;
-+ /* Fill in the cache entry */
-+ pci = &xf86CacheInfo[devPriv->slot];
-+ pci->pix_w = pix->drawable.width;
-+ pci->pix_h = pix->drawable.height;
-+ pci->nx = 1;
-+ pci->ny = 1;
-+ pci->w = pci->pix_w;
-+ pci->h = pci->pix_h;
-+ pci->fg_color = 0;
-+ pci->bg_color = 0;
-+ pci->flags = 0;
-+ pci->lru = pixmap_cache_clock;
-+ pci->locked = TRUE;
-+ /* Assign X & Y position */
-+ if (!findPosition(pci, pix)) return 0;
-+ pci->id = pix->drawable.serialNumber;
-+ xf86AccelInfoRec.ImageWrite(pci->x, pci->y, pci->pix_w, pci->pix_h,
-+ pix->devPrivate.ptr, pix->devKind, GXcopy,
-+ 0xFFFFFFFF);
-+ infoRec=xf86AccelInfoRec.ServerInfoRec;
-+ return (void*)(infoRec->physBase +
-+ (xf86CacheInfo[slot].x +
-+ xf86CacheInfo[slot].y*infoRec->displayWidth) * size);
-+ }
-+
-+ void
-+ xf86UnlockPixmap(pix)
-+ PixmapPtr pix;
-+ {
-+ xf86PixPrivPtr devPriv =
-+ (xf86PixPrivPtr)(pix->devPrivates[xf86PixmapIndex].ptr);
-+ if (devPriv->slot<0) return;
-+ xf86CacheInfo[devPriv->slot].locked = FALSE;
-+ xf86CacheInfo[devPriv->slot].id = -1;
-+ devPriv->slot = 0;
-+ }
-+
-+ void
-+ xf86UnlockAllPixmaps()
-+ {
-+ int i;
-+
-+ for (i=FirstBigSlot; i<=MaxBigSlot; i++) {
-+ if (xf86CacheInfo[i].id>0 && xf86CacheInfo[i].locked) {
-+ xf86CacheInfo[i].locked = FALSE;
-+ xf86CacheInfo[i].id = -1;
-+ }
-+ }
-+ }
-+
-+ int
-+ xf86CacheIsLocked(pix)
-+ PixmapPtr pix;
-+ {
-+ xf86PixPrivPtr devPriv =
-+ (xf86PixPrivPtr)(pix->devPrivates[xf86PixmapIndex].ptr);
-+ int slot;
-+
-+ slot=devPriv->slot;
-+ if (slot<FirstBigSlot || slot>MaxBigSlot) return 0;
-+ return xf86CacheInfo[slot].locked;
-+ }
-+
-diff -c -N -r xc.old/programs/Xserver/hw/xfree86/xaa/xf86pcache.h ./hw/xfree86/xaa/xf86pcache.h
-*** xc.old/programs/Xserver/hw/xfree86/xaa/xf86pcache.h Fri Jan 17 22:57:28 1997
---- xc/programs/Xserver/hw/xfree86/xaa/xf86pcache.h Sun Apr 4 18:13:42 1999
-***************
-*** 19,24 ****
---- 19,25 ----
- int pattern0; /* if fixed pattern, pattern 0 register contents */
- int pattern1; /* if fixed pattern, pattern 1 register contents */
- unsigned int lru; /* lru counter */
-+ Bool locked;
- } CacheInfo, *CacheInfoPtr;
-
- #ifdef PIXPRIV
-***************
-*** 43,45 ****
---- 44,47 ----
- void xf86InitPixmapCacheSlots();
-
- void xf86InvalidatePixmapCache();
-+
-diff -c -N -r xc.old/programs/Xserver/mi/Imakefile ./mi/Imakefile
-*** xc.old/programs/Xserver/mi/Imakefile Sat May 3 02:50:45 1997
---- xc/programs/Xserver/mi/Imakefile Sun Apr 4 18:13:42 1999
-***************
-*** 32,38 ****
- * Make sure XINPUT, XF86VidTune, etc aren't defined for the miinitext.o
- * used by Xnest, Xvfb
- */
-! EXT_DEFINES = ExtensionDefines -UXINPUT -UXF86VIDMODE -UXFreeXDGA -UXF86MISC
- #else
- EXT_DEFINES = ExtensionDefines
- #endif
---- 32,39 ----
- * Make sure XINPUT, XF86VidTune, etc aren't defined for the miinitext.o
- * used by Xnest, Xvfb
- */
-! EXT_DEFINES = ExtensionDefines -UXINPUT -UXF86VIDMODE -UXFreeXDGA -UXF86MISC \
-! -UXFreeXRUSH
- #else
- EXT_DEFINES = ExtensionDefines
- #endif
-diff -c -N -r xc.old/programs/Xserver/mi/miinitext.c ./mi/miinitext.c
-*** xc.old/programs/Xserver/mi/miinitext.c Thu May 22 07:00:46 1997
---- xc/programs/Xserver/mi/miinitext.c Sun Apr 4 18:13:42 1999
-***************
-*** 155,160 ****
---- 155,163 ----
- #ifdef XFreeXDGA
- extern void XFree86DGAExtensionInit(INITARGS);
- #endif
-+ #ifdef XFreeXRUSH
-+ extern void XFree86RushExtensionInit(INITARGS);
-+ #endif
- #ifdef DPMSExtension
- extern void DPMSExtensionInit(INITARGS);
- #endif
-***************
-*** 264,269 ****
---- 267,275 ----
- #endif
- #if defined(XFreeXDGA) && !defined(PRINT_ONLY_SERVER)
- XFree86DGAExtensionInit();
-+ #endif
-+ #if defined(XFreeXRUSH) && !defined(PRINT_ONLY_SERVER)
-+ XFree86RushExtensionInit();
- #endif
- #if defined(DPMSExtension) && !defined(PRINT_ONLY_SERVER)
- DPMSExtensionInit();
+++ /dev/null
---- XFree86-3.3.3.1/xc/programs/xdm/session.c~ Sat Jun 19 02:25:32 1999
-+++ XFree86-3.3.3.1/xc/programs/xdm/session.c Sat Jun 19 04:30:43 1999
-@@ -699,6 +699,32 @@
- #endif /* K5AUTH */
- bzero(passwd, strlen(passwd));
- SetUserAuthorization (d, verify);
-+#ifdef USE_PAM
-+{
-+ int i, j;
-+ const char *const *pam_env;
-+ char *tmp_pam_env;
-+
-+ pam_env = (const char *const *) pam_getenvlist((pam_handle_t *) pamh);
-+
-+ if (pam_env != NULL) {
-+ tmp_pam_env = malloc(4096);
-+ if (tmp_pam_env != NULL) {
-+ for (i = 0; pam_env[i]; i++) {
-+ Debug("env[%d] = %s\n", i, pam_env[i]);
-+ strncpy(tmp_pam_env, pam_env[i], 4095);
-+ tmp_pam_env[4095] = 0;
-+ j = 0;
-+ while (tmp_pam_env[j] != '=')
-+ j++;
-+ tmp_pam_env[j] = 0;
-+ verify->userEnviron = setEnv(verify->userEnviron, tmp_pam_env, &tmp_pam_env[j + 1]);
-+ }
-+ }
-+ free(tmp_pam_env);
-+ }
-+}
-+#endif
- home = getEnv (verify->userEnviron, "HOME");
- if (home)
- if (chdir (home) == -1) {
+++ /dev/null
---- XFree86-3.3.3.1/xc/programs/xfs/difs/fonts.c.xfsredhat Fri Jan 5 08:21:27 1996
-+++ XFree86-3.3.3.1/xc/programs/xfs/difs/fonts.c Wed Feb 17 12:03:19 1999
-@@ -118,6 +118,113 @@
- }
-
- /*
-+ * xf86GetPathElem --
-+ * Extract a single element from the font path string starting at
-+ * pnt. The font path element will be returned, and pnt will be
-+ * updated to point to the start of the next element, or set to
-+ * NULL if there are no more.
-+ */
-+char *
-+xf86GetPathElem(pnt)
-+ char **pnt;
-+{
-+ char *p1;
-+
-+ p1 = *pnt;
-+ *pnt = index(*pnt, ',');
-+ if (*pnt != NULL) {
-+ **pnt = '\0';
-+ *pnt += 1;
-+ }
-+ return(p1);
-+}
-+
-+/*
-+ * xf86ValidateFontPath --
-+ * Validates the user-specified font path. Each element that
-+ * begins with a '/' is checked to make sure the directory exists.
-+ * If the directory exists, the existence of a file named 'fonts.dir'
-+ * is checked. If either check fails, an error is printed and the
-+ * element is removed from the font path.
-+ */
-+#define DIR_FILE "/fonts.dir"
-+#define CHECK_TYPE(mode, type) ((S_IFMT & (mode)) == (type))
-+static char *
-+xf86ValidateFontPath(path)
-+ char *path;
-+{
-+ char *tmp_path, *out_pnt, *path_elem, *next, *p1, *dir_elem;
-+ struct stat stat_buf;
-+ int flag;
-+ int dirlen;
-+
-+ tmp_path = (char *)calloc(1,strlen(path)+1);
-+ out_pnt = tmp_path;
-+ path_elem = NULL;
-+ next = path;
-+ while (next != NULL) {
-+ path_elem = xf86GetPathElem(&next);
-+#ifndef __EMX__
-+ if (*path_elem == '/') {
-+ dir_elem = (char *)calloc(1, strlen(path_elem) + 1);
-+ if ((p1 = strchr(path_elem, ':')) != 0)
-+#else
-+ /* OS/2 must prepend X11ROOT */
-+ if (*path_elem == '/') {
-+ path_elem = (char*)__XOS2RedirRoot(path_elem);
-+ dir_elem = (char*)calloc(1, strlen(path_elem) + 1);
-+ if (p1 = strchr(path_elem+2, ':'))
-+#endif
-+ dirlen = p1 - path_elem;
-+ else
-+ dirlen = strlen(path_elem);
-+ strncpy(dir_elem, path_elem, dirlen);
-+ dir_elem[dirlen] = '\0';
-+ flag = stat(dir_elem, &stat_buf);
-+ if (flag == 0)
-+ if (!CHECK_TYPE(stat_buf.st_mode, S_IFDIR))
-+ flag = -1;
-+ if (flag != 0) {
-+ printf("warning!\n");
-+ ErrorF("Warning: The directory \"%s\" does not exist.\n", dir_elem);
-+ ErrorF(" Entry deleted from font path.\n");
-+ continue;
-+ }
-+ else {
-+ p1 = (char *)malloc(strlen(dir_elem)+strlen(DIR_FILE)+1);
-+ strcpy(p1, dir_elem);
-+ strcat(p1, DIR_FILE);
-+ flag = stat(p1, &stat_buf);
-+ if (flag == 0)
-+ if (!CHECK_TYPE(stat_buf.st_mode, S_IFREG))
-+ flag = -1;
-+#ifndef __EMX__
-+ free(p1);
-+#endif
-+ if (flag != 0) {
-+ ErrorF("Warning: 'fonts.dir' not found (or not valid) in \"%s\".\n",
-+ dir_elem);
-+ ErrorF(" Entry deleted from font path.\n");
-+ ErrorF(" (Run 'mkfontdir' on \"%s\").\n", dir_elem);
-+ continue;
-+ }
-+ }
-+ free(dir_elem);
-+ }
-+
-+ /*
-+ * Either an OK directory, or a font server name. So add it to
-+ * the path.
-+ */
-+ if (out_pnt != tmp_path)
-+ *out_pnt++ = ',';
-+ strcat(out_pnt, path_elem);
-+ out_pnt += strlen(path_elem);
-+ }
-+ return(tmp_path);
-+}
-+
-+/*
- * note that the font wakeup queue is not refcounted. this is because
- * an fpe needs to be added when it's inited, and removed when it's finally
- * freed, in order to handle any data that isn't requested, like FS events.
-@@ -753,8 +860,12 @@
- *end,
- *p;
- int err;
-+ char *fixedpath;
-+
-+ fixedpath = xf86ValidateFontPath(str);
-
-- len = strlen(str) + 1;
-+ len = strlen(fixedpath) + 1;
-+ str = fixedpath;
- paths = p = (char *) ALLOCATE_LOCAL(len);
- npaths = 0;
-
-@@ -774,6 +885,7 @@
-
- err = set_font_path_elements(npaths, paths, badpath);
-
-+ free(fixedpath);
- DEALLOCATE_LOCAL(paths);
-
- return err;
---- XFree86-3.3.3.1/xc/programs/xfs/difs/main.c.xfsredhat Thu Nov 5 14:28:29 1998
-+++ XFree86-3.3.3.1/xc/programs/xfs/difs/main.c Wed Feb 17 17:08:27 1999
-@@ -58,6 +58,7 @@
- #include "servermd.h"
- #include "cache.h"
- #include "site.h"
-+#include <unistd.h>
-
- char *ConnectionInfo;
- int ConnInfoLen;
-@@ -107,6 +108,8 @@
- ErrorF("fatal: couldn't read config file\n");
- exit(1);
- }
-+
-+ daemon(0, 0);
-
- while (1) {
- serverGeneration++;
+++ /dev/null
---- XFree86-3.3.4.orig/xc/programs/xinit/xinit.c Sun Jun 27 12:32:26 1999
-+++ XFree86-3.3.4/xc/programs/xinit/xinit.c Sun Aug 8 22:28:20 1999
-@@ -596,30 +596,40 @@
- serverpid = -1;
- break;
- }
-- /*
-- * kludge to avoid race with TCP, giving server time to
-- * set his socket options before we try to open it,
-- * either use the 15 second timeout, or await SIGUSR1.
-+
-+ /*
-+ * before we try the below kludge, see if we are already
-+ * ready to connect. Fast CPUs with cached filesystems
-+ * shouldn't have to wait 15 seconds.
- *
-- * If your machine is substantially slower than 15 seconds,
-- * you can easily adjust this value.
-+ * pbrown@redhat.com - 06/08/1999
- */
-- alarm (15);
-+ if (waitforserver() == 0) {
-+ /*
-+ * kludge to avoid race with TCP, giving server time to
-+ * set his socket options before we try to open it,
-+ * either use the 15 second timeout, or await SIGUSR1.
-+ *
-+ * If your machine is substantially slower than 15 seconds,
-+ * you can easily adjust this value.
-+ */
-+ alarm (15);
-
- #ifndef X_NOT_POSIX
-- sigsuspend(&old);
-- alarm (0);
-- sigprocmask(SIG_SETMASK, &old, NULL);
-+ sigsuspend(&old);
-+ alarm (0);
-+ sigprocmask(SIG_SETMASK, &old, NULL);
- #else
-- sigpause (old);
-- alarm (0);
-- sigsetmask (old);
-+ sigpause (old);
-+ alarm (0);
-+ sigsetmask (old);
- #endif
-
-- if (waitforserver() == 0) {
-- Error("unable to connect to X server\r\n");
-- shutdown();
-- serverpid = -1;
-+ if (waitforserver() == 0) {
-+ Error("unable to connect to X server\r\n");
-+ shutdown();
-+ serverpid = -1;
-+ }
- }
- break;
- }
+++ /dev/null
---- XFree86-3.3.3.1/xc/programs/xterm/xterm.h~ Sat Oct 24 09:58:29 1998
-+++ XFree86-3.3.3.1/xc/programs/xterm/xterm.h Sat Jun 19 03:54:49 1999
-@@ -25,7 +25,7 @@
- #endif
-
- #ifndef DFT_TERMTYPE
--#define DFT_TERMTYPE "xterm"
-+#define DFT_TERMTYPE "xterm-color"
- #endif
-
- #ifndef X_NOT_POSIX
+++ /dev/null
-! $autor: Tomasz K³oczko <kloczek@rudy.mif.pg.gda.pl>
-! $Ver: 0.02
-! - 09.04.98
-! Pierwsza w miarê kompletna wersja
-! - 04.02.99
-! Poprawione dzia³anie klawiszy Home, End
-
-NXTerm.JoinSession: False
-*SimpleMenu*BackingStore: NotUseful
-*SimpleMenu*menuLabel.font: -misc-*-*-*-*-*-15-*-*-*-*-*-*-2
-*SimpleMenu*menuLabel.vertSpace: 100
-*SimpleMenu*HorizontalMargins: 16
-*SimpleMenu*Sme.height: 16
-*SimpleMenu*Cursor: left_ptr
-*saveLines: 1500
-*eightBitInput: True
-*scrollBar: True
-*fullCursor: True
-*reverseWrap: True
-*titleBar: True
-*dynamicColors: True
-
-! Kolory
-*cursorColor: blue
-*background: black
-*foreground: white
-*SimpleMenu.background: #00aaff
-*SimpleMenu.foreground: black
-
-! *VT100.geometry: 80x45
-*VT100*colorULMode: on
-*VT100*underLine: on
-*VT100*colorBDMode: on
-
-*VT100*color0: black
-*VT100*color1: red3
-*VT100*color2: green3
-*VT100*color3: yellow3
-*VT100*color4: blue3
-*VT100*color5: magenta3
-*VT100*color6: cyan3
-*VT100*color7: gray90
-*VT100*color8: gray30
-*VT100*color9: red
-*VT100*color10: green
-*VT100*color11: yellow
-*VT100*color12: blue
-*VT100*color13: magenta
-*VT100*color14: cyan
-*VT100*color15: white
-*VT100*colorBD: white
-*VT100*colorUL: green
-
-*mainMenu.Label: Opcje g³ówne
-*mainMenu*securekbd*Label: Zabezpiecz klawiaturê
-*mainMenu*allowsends*Label: Allow SendEvents
-*mainMenu*logging*Label: Log to File
-*mainMenu*redraw*Label: Od¶wie¿ zawarto¶æ okna
-*mainMenu*suspend*Label: Wy¶lij sygna³ STOP
-*mainMenu*continue*Label: Wy¶lij sygna³ CONT
-*mainMenu*interrupt*Label: Wy¶lij sygna³ INT
-*mainMenu*hangup*Label: Wy¶lij sygna³ HUP
-*mainMenu*terminate*Label: Wy¶lij sygna³ TERM
-*mainMenu*kill*Label: Wy¶lij sygna³ KILL
-*mainMenu*quit*Label: Koniec
-*mainMenu*eightBit*Label: 8-Bit Controls
-
-*vtMenu.Label: Opcje terminala
-*vtMenu*scrollbar*Label: W³±cz pasek przewijania
-*vtMenu*jumpscroll*Label: Enable Jump Scroll
-*vtMenu*reversevideo*Label: Zamieñ kolory t³a i fontu
-*vtMenu*autowrap*Label: Enable Auto Wraparound
-*vtMenu*reversewrap*Label: Enable Reverse Wraparound
-*vtMenu*autolinefeed*Label: Enable Auto Linefeed
-*vtMenu*appcursor*Label: W³acz dla aplikacji klawiaturê kursorów
-*vtMenu*appkeypad*Label: W³acz dla aplikacji klawiaturê numeryczn±
-*vtMenu*scrollkey*Label: Przewijaj w dó³ po naci¶niêciu klawisza
-*vtMenu*scrollttyoutput*Label: Przewijaj w dó³ po dowolnej akcji terminala
-*vtMenu*allow132*Label: Zezwól na prze³±czanie 80/132 kolumn
-*vtMenu*cursesemul*Label: W³acz emulacjê kursora
-*vtMenu*visualbell*Label: W³±cz sygna³ wizualny
-*vtMenu*marginbell*Label: Enable Margin Bell
-*vtMenu*altscreen*Label: Show Alternate Screen
-*vtMenu*softreset*Label: Wykonaj miekki reset
-*vtMenu*hardreset*Label: Wykonaj pe³ny reset
-*vtMenu*clearsavedlines*Label: Reset i wyczyszcznie bufora terminala
-*vtMenu*tekshow*Label: Poka¿ okno Tektronic
-*vtMenu*tekmode*Label: Prze³±cz w tryb Tek
-*vtMenu*vthide*Label: Ukryj okno terminala
-
-*font: -misc-*-bold-*-*-*-15-*-*-*-*-*-*-2
-
-*fontMenu.Label: Font terminala
-*fontMenu*fontdefault*Label: Domy¶lny (iso-8859-2)
-#VT100*font: -misc-*-bold-*-*-*-15-*-*-*-*-*-*-2
-*fontMenu*font1*Label: Nieczytelny
-*VT100*font1: nil2
-*fontMenu*font2*Label: Bardzo ma³y
-*VT100*font2: 5x7
-*fontMenu*font3*Label: Ma³y
-*VT100*font3: 6x10
-*fontMenu*font4*Label: ¦redni
-*VT100*font4: 7x13
-*fontMenu*font5*Label: Du¿y (iso-8859-2)
-*VT100*font5: -misc-*-medium-*-*-*-15-*-*-*-*-*-*-2
-*fontMenu*font6*Label: Bardzo du¿y (iso-8859-2)
-*VT100*font6: -misc-*-medium-*-*-*-20-*-*-*-*-*-*-2
-*fontMenu*fontescape*Label: Escape Sequence
-*fontMenu*fontsel*Label: Zaznaczony
-!fontescape and fontsel overridden by application
-
-*visualBell: off
-*tekMenu.Label: Opcje terminala Tektronix
-*tekMenu*tektextlarge*Label: Large Characters
-*tekMenu*tektext2*Label: #2 Size Characters
-*tekMenu*tektext3*Label: #3 Size Characters
-*tekMenu*tektextsmall*Label: Small Characters
-*tekMenu*tekpage*Label: PAGE
-*tekMenu*tekreset*Label: RESET
-*tekMenu*tekcopy*Label: COPY
-*tekMenu*vtshow*Label: Poka¿ okno terminala
-*tekMenu*vtmode*Label: Prze³±cz na tryb terminala
-*tekMenu*tekhide*Label: Ukryj okno Tektronic
-
-*tek4014*fontLarge: 9x15
-*tek4014*font2: 8x13
-*tek4014*font3: 6x13
-*tek4014*fontSmall: 6x10
-
-! This file causes when loaded using xrdb correct behaviour of xterm
-! is you are using enclosed xterm.tcap and xterm.ti.
-! Some keys would never normally work if they weren't here (like Alt
-! something), some key definitions differ from one termcap/terminfo
-! to the other. You may delete any line if you find out that mc
-! sends exactly that string which is mentioned here.
-! See xterm(1).
-! Either put this into your ~/.Xdefaults, or to app-defaults/XTerm
-! or wherever it will be loaded into xrm from.
-! To know, why this works, see Xt documentation (appendix B).
-! On some systems you may want to replace the a (alt) modifiers with
-! m (meta) modifier in fron of some <Key> events.
-*vt100.translations: #override \
- @Num_Lock<Key>KP_0: string(0)\n\
- @Num_Lock<Key>KP_1: string(1)\n\
- @Num_Lock<Key>KP_2: string(2)\n\
- @Num_Lock<Key>KP_3: string(3)\n\
- @Num_Lock<Key>KP_4: string(4)\n\
- @Num_Lock<Key>KP_5: string(5)\n\
- @Num_Lock<Key>KP_6: string(6)\n\
- @Num_Lock<Key>KP_7: string(7)\n\
- @Num_Lock<Key>KP_8: string(8)\n\
- @Num_Lock<Key>KP_9: string(9)\n\
- @Num_Lock<Key>KP_Add: string(+)\n\
- @Num_Lock<Key>KP_Decimal: string(.)\n\
- @Num_Lock<Key>KP_Divide: string(/)\n\
- @Num_Lock<Key>KP_Enter: string(\015)\n\
- @Num_Lock<Key>KP_Equal: string(=)\n\
- @Num_Lock<Key>KP_Multiply: string(*)\n\
- @Num_Lock<Key>KP_Subtract: string(-)\n\
- <Key>KP_Add: string(+)\n\
- <Key>KP_Divide: string(/)\n\
- <Key>KP_Enter: string(\015)\n\
- <Key>KP_Equal: string(=)\n\
- <Key>KP_Multiply: string(*)\n\
- @Num_Lock<Key>KP_Subtract: string(-)\n\
- <Key>KP_Add: string(+)\n\
- <Key>KP_Divide: string(/)\n\
- <Key>KP_Enter: string(\015)\n\
- <Key>KP_Equal: string(=)\n\
- <Key>KP_Multiply: string(*)\n\
- <Key>KP_Subtract: string(-)\n\
- Shift<Key>Prior:scroll-back(1,page)\n\
- Shift<Key>Next:scroll-forw(1,page)\n\
- <Key>F16: start-extend() select-end(PRIMARY, CUT_BUFFER0, CLIPBOARD) \n\
- <Key>F18: insert-selection(PRIMARY, CLIPBOARD) \n\
- <Key>F27: scroll-back(100,page) \n\
- <Key>R13: scroll-forw(100,page) \n\
- ~Meta<Key>Home: string(0x1b) string("[1~") \n\
- Meta<Key>Home: string(0x1b) string(0x1b) string("[1~") \n\
- ~Meta<Key>End: string(0x1b) string("[4~") \n\
- Meta<Key>End: string(0x1b) string(0x1b) string("[4~") \n\
- ~Meta<Key>Insert: string(0x1b) string("[2~") \n\
- Meta<Key>Insert: string(0x1b) string(0x1b) string("[2~") \n\
- ~Meta<Key>Delete: string(0x1b) string("[3~") \n\
- Meta<Key>Delete: string(0x1b) string(0x1b) string("[3~") \n\
- ~Meta<Key>Page_Up: string(0x1b) string("[5~") \n\
- Meta<Key>Page_Up: string(0x1b) string(0x1b) string("[5~") \n\
- ~Meta<Key>Page_Down: string(0x1b) string("[6~") \n\
- Meta<Key>Page_Down: string(0x1b) string(0x1b) string("[6~") \n\
- ~Meta<Key>BackSpace: string(\177) \n\
- Meta<Key>BackSpace: string(0x1b) string(\177) \n\
- ~Meta<Key>Up: string(0x1b) string("OA") \n\
- Meta<Key>Up: string(0x1b) string(0x1b) string("OA") \n\
- ~Meta<Key>Down: string(0x1b) string("OB") \n\
- Meta<Key>Down: string(0x1b) string(0x1b) string("OB") \n\
- ~Meta<Key>Left: string(0x1b) string("OD") \n\
- Meta<Key>Left: string(0x1b) string(0x1b) string("OD") \n\
- ~Meta<Key>Right: string(0x1b) string("OC") \n\
- Meta<Key>Right: string(0x1b) string(0x1b) string("OC") \n\
- ~Meta<Key>Return: string(0x0d) \n\
- Meta<Key>Return: string(0x1b) string(0x0d) \n\
- ~Meta<Key>Tab: string(0x09) \n\
- Meta<Key>Tab: string(0x1b) string(0x09) \n\
- ~Shift<Key>F1: string(0x1b) string("[11~") \n\
- ~Shift<Key>F2: string(0x1b) string("[12~") \n\
- ~Shift<Key>F3: string(0x1b) string("[13~") \n\
- ~Shift<Key>F4: string(0x1b) string("[14~") \n\
- ~Shift<Key>F5: string(0x1b) string("[15~") \n\
- ~Shift<Key>F6: string(0x1b) string("[17~") \n\
- ~Shift<Key>F7: string(0x1b) string("[18~") \n\
- ~Shift<Key>F8: string(0x1b) string("[19~") \n\
- ~Shift<Key>F9: string(0x1b) string("[20~") \n\
- ~Shift<Key>F10: string(0x1b) string("[21~") \n\
- <Key>F11: string(0x1b) string("[23~") \n\
- <Key>F12: string(0x1b) string("[24~") \n\
- <Key>F13: string(0x1b) string("[25~") \n\
- <Key>F14: string(0x1b) string("[26~") \n\
- <Key>F15: string(0x1b) string("[28~") \n\
- <Key>F16: string(0x1b) string("[29~") \n\
- <Key>F17: string(0x1b) string("[31~") \n\
- <Key>F18: string(0x1b) string("[32~") \n\
- <Key>F19: string(0x1b) string("[33~") \n\
- <Key>F20: string(0x1b) string("[34~") \n\
- Shift<Key>F1: string(0x1b) string("[23~") \n\
- Shift<Key>F2: string(0x1b) string("[24~") \n\
- Shift<Key>F3: string(0x1b) string("[25~") \n\
- Shift<Key>F4: string(0x1b) string("[26~") \n\
- Shift<Key>F5: string(0x1b) string("[28~") \n\
- Shift<Key>F6: string(0x1b) string("[29~") \n\
- Shift<Key>F7: string(0x1b) string("[31~") \n\
- Shift<Key>F8: string(0x1b) string("[32~") \n\
- Shift<Key>F9: string(0x1b) string("[33~") \n\
- Shift<Key>F10: string(0x1b) string("[34~") \n\
- Shift<Key>Home: scroll-back(100,page) \n\
- Shift<Key>End: scroll-forw(100,page) \n
- s<Key>F1: string(0x1b) string("[23~") \n\
- s<Key>F2: string(0x1b) string("[24~") \n\
- s<Key>F3: string(0x1b) string("[25~") \n\
- s<Key>F4: string(0x1b) string("[26~") \n\
- s<Key>F5: string(0x1b) string("[28~") \n\
- s<Key>F6: string(0x1b) string("[29~") \n\
- s<Key>F7: string(0x1b) string("[31~") \n\
- s<Key>F8: string(0x1b) string("[32~") \n\
- s<Key>F9: string(0x1b) string("[33~") \n\
- s<Key>F10: string(0x1b) string("[34~") \n\
- a<Key>Return: string(0x1b) string(0x0d) \n\
- a<Key>Tab: string(0x1b) string(0x09) \n\
- a<Key>space: string(0x1b) string(" ") \n\
- a<Key>a: string(0x1b) string("a") \n\
- a<Key>b: string(0x1b) string("b") \n\
- a<Key>c: string(0x1b) string("c") \n\
- a<Key>d: string(0x1b) string("d") \n\
- a<Key>e: string(0x1b) string("e") \n\
- a<Key>f: string(0x1b) string("f") \n\
- a<Key>g: string(0x1b) string("g") \n\
- a<Key>h: string(0x1b) string("h") \n\
- a<Key>i: string(0x1b) string("i") \n\
- a<Key>j: string(0x1b) string("j") \n\
- a<Key>k: string(0x1b) string("k") \n\
- a<Key>l: string(0x1b) string("l") \n\
- a<Key>m: string(0x1b) string("m") \n\
- a<Key>n: string(0x1b) string("n") \n\
- a<Key>o: string(0x1b) string("o") \n\
- a<Key>p: string(0x1b) string("p") \n\
- a<Key>q: string(0x1b) string("q") \n\
- a<Key>r: string(0x1b) string("r") \n\
- a<Key>s: string(0x1b) string("s") \n\
- a<Key>t: string(0x1b) string("t") \n\
- a<Key>u: string(0x1b) string("u") \n\
- a<Key>v: string(0x1b) string("v") \n\
- a<Key>w: string(0x1b) string("w") \n\
- a<Key>x: string(0x1b) string("x") \n\
- a<Key>y: string(0x1b) string("y") \n\
- a<Key>z: string(0x1b) string("z")
+++ /dev/null
-[Desktop Entry]
-Name=twm
-Name[ko]=twm
-Name[pl]=twm
-Exec=twm
-TryExec=twm
-
-[Window Manager]
-SessionManaged=false
+++ /dev/null
-#!/bin/sh
-# ver. 0.5
-#
-#
-# xdm: Starts the X Display Manager (gdm / kdm / xdm)
-#
-# Version: @(#) /etc/rc.d/init.d/xdm 1.3
-#
-# chkconfig: 5 95 5
-# description: Starts and stops the X Display Manager at startup and shutdown.
-# can run one of several display managers; gdm, kdm, or xdm, in that order of
-# preferential treatment.
-#
-# config: /etc/X11/xdm/xdm-config
-# probe: true
-# hide: true
-
-. /etc/rc.d/init.d/functions
-
-# See how we were called.
-case "$1" in
- start)
- show Starting X Daemon
- daemon /usr/X11R6/bin/xdm
- touch /var/lock/subsys/xdm
- ;;
- stop)
- show Shuting down X daemon
- killproc xdm
- rm -f /var/lock/subsys/xdm
- ;;
- status)
- status xdm
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- *)
- echo "Usage: $0 {start|stop|status|restart}"
- exit 1
-esac
-
-exit 0
-
+++ /dev/null
-#%PAM-1.0
-auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/security/blacklist onerr=succeed
-auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/security/blacklist.xdm onerr=succeed
-auth required /lib/security/pam_unix.so
-auth required /lib/security/pam_tally.so file=/var/log/faillog onerr=succeed no_magic_root
-auth required /lib/security/pam_shells.so
-auth required /lib/security/pam_nologin.so
-account required /lib/security/pam_tally.so deny=0 file=/var/log/faillog onerr=succeed no_magic_root
-account required /lib/security/pam_access.so
-account required /lib/security/pam_time.so
-account required /lib/security/pam_unix.so
-password required /lib/security/pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
-password required /lib/security/pam_unix.so md5 shadow use_authtok
-password required /lib/security/pam_make.so /var/db
-session required /lib/security/pam_unix.so
-session required /lib/security/pam_env.so
-session required /lib/security/pam_limits.so
-session optional /lib/security/pam_console.so
+++ /dev/null
-#
-# Default font server configuration file for Red Hat Linux 6.0
-#
-
-# allow a max of 4 clients to connect to this font server
-client-limit = 4
-
-# when a font server reaches its limit, start up a new one
-clone-self = off
-
-# alternate font servers for clients to use
-#alternate-servers = foo:7101,bar:7102
-
-# where to look for fonts
-# Some of these are commented out, i.e. the TrueType and Type1
-# directories in /usr/share, because they aren't forced to be
-# installed alongside X.
-#
-catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
- /usr/X11R6/lib/X11/fonts/75dpi:unscaled,
- /usr/X11R6/lib/X11/fonts/100dpi:unscaled,
- /usr/X11R6/lib/X11/fonts/misc,
- /usr/X11R6/lib/X11/fonts/Type1,
- /usr/X11R6/lib/X11/fonts/Speedo
-
-# in 12 points, decipoints
-default-point-size = 120
-
-# 100 x 100 and 75 x 75
-default-resolutions = 75,75,100,100
-
-# how to log errors
-use-syslog = on
+++ /dev/null
-#!/bin/sh
-#
-# xfs: Starts the X Font Server
-#
-# Version: @(#) /etc/rc.d/init.d/xfs 1.0
-#
-# chkconfig: 345 90 10
-# description: Starts and stops the X Font Server at boot time and shutdown.
-#
-# processname: xfs
-# config: /etc/X11/fs/config
-
-# Source function library.
-. /etc/rc.d/init.d/functions
-
-# See how we were called.
-case "$1" in
- start)
- show Starting X Font Server
- daemon /usr/X11R6/bin/xfs
- touch /var/lock/subsys/xfs
- ;;
- stop)
- show Shutting down X Font Server
- killproc xfs
- rm -f /var/lock/subsys/xfs
- ;;
- status)
- status xfs
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- *)
- echo "Usage: $0 {start|stop|status|restart}"
- exit 1
-esac
-
-exit 0
-
+++ /dev/null
-#%PAM-1.0
-auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/security/blacklist onerr=succeed
-auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/security/blacklist.xserver onerr=succeed
-auth sufficient /lib/security/pam_rootok.so
-auth required /lib/security/pam_console.so
-account required /lib/security/pam_permit.so