[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: XFree was easy, someone could make a .deb.



As you can tell, I didn't have much time to examine the patch (which
is a result of the fact that I didn't and still don't completely know
the API; as I said before, I fell asleep reading the RFC 3/4 the way
through.)

Thank you for the information, since I knew this was the level
of information I did not have.

From: Arkadiusz Miśkiewicz <misiek@pld.org.pl>
misiek> On Tue, 18 Apr 2000, Brad Allen wrote:
misiek> > KAME/INRIA BSD patch for XFree worked under Linux without mods.  I

misiek> this is dirty patch ... X won't work on ipv4 only host (ie
misiek> ipv6 module wasn't loaded) and for example because that X in
misiek> PLD GNU/Linux are without IPv6 support ;-(

misiek> ps. XFree86 Team is planing ipv6 support ?

I did not mean to infer this.  I want them to, and they seem not to
be, which in my NSH opinion is stupid since even if this patch is
dirty, it seems pretty trivial and indicates to me a high possibility
of a trivial clean patch.  Also, since the patch works, it also seems to
me that it could offer easy pointers on starting points for a clean patch.

Perhaps XFree86.Org needs some guidance on IPv6 issues, and needs someone
to take up the ball to put together such a clean patch for say, 3.3.6,
and then port it to 4.0.0, and test both and when they are shown to
work under various combinations, then send the patch in to the XFree86
team outlining the specific IPv6 issues and which ones have been
addressed (such as the one you brought up).  This would probably make
the XFree86 team more comfortable including IPv6 in their product
sooner rather than later.

Still, I thought issues of IP#s in fields that use colons as
seperators between IP# and other non-IP# data need to be addressed
(but see below; I may be wrong); I simply used NSSWITCH.CONF "hosts:
files ..." and a domain name to mimick this behavoir, and I think is a
wholey acceptable workaround for now, as that workaround is clean and
administratively clean as well, since using an IP# in a config file is
administratively the same as using an IP# in a different config file
corresponding to a name.  (Be sure to put "files" (or "db" if you use
that) before everything else (i.e., "dns") for the "hosts:" line in
/etc/nsswitch.conf for this administratively equivalent behavoir, and
pare your /etc/hosts file down to only the XFree86 entries, plus
whatever else you actually found NECESSARY for /etc/hosts, which in my
case was very little; mostly security concerns.)  Ok, I could be
wrong, because I am scanning the patch now and found:

diff -urN X335/xc/lib/xtrans/Xtrans.c xc/lib/xtrans/Xtrans.c
--- X335/xc/lib/xtrans/Xtrans.c	Thu Jul 29 18:22:31 1999
+++ xc/lib/xtrans/Xtrans.c	Sat Dec 11 04:10:38 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;

::::::::::::::::::::::::::::::::::::::::

Ah, I see, here is:

-    struct sockaddr_in 	sockname;
+    struct sockaddr_in6	sockname;

This doesn't seem to be using the more flexible stuff found in the API
RFC near the section where I fell asleep (the IEEE API).  (Why did I
fall asleep?  I had written down the entire (first, more traditional)
API, only to find that another entire API was going to be repeated all
over again in the RFC, probably better and probably what I should be
using (starts with getaddrinfo() if I'm not mistaken).)

::::::::::::::::::::::::::::::::::::::::

And this looks raunchy to say the least:

-    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)

That looks like a getaddrinfo() candidate if I've ever seen one
(which I haven't, so I have no idea).

::::::::::::::::::::::::::::::::::::::::

Look, guys, the patch only has 52 pages = 3146 lines = 11935 words =
96915 characters.  It works, and ought to give some good pointers to
someone wanting to do a clean IPv6 interface rewrite and polish job
and start jousting with the XFree86 freaks.  (I can't and won't due to
time resource problems.)

I left a copy of it at:

   http://www.bayview.com/~ulmo/ipv6/x/xfree86-3.3.5-ipv6-19990224.diff.gz

You have to use the download command in your WWW browser.  I'll also
leave it at:

   http://www.bayview.com/~ulmo/ipv6/x/xfree86-3.3.5-ipv6-19990224.diff
   MD5SUM: 96c2e6d7c15cc9d16196cf1f3a908a27

I used it against XFree86's 3.3.6 source (their latest before 4.0.0)
with no problems.


I do not know if that would be duplicating effort with anybody in the
BSD camp, or at XFree, but my first guess would be no.

Attachment: pgpGNseq5wqAn.pgp
Description: PGP signature


Reply to: