[308] in Zephyr Mailing List
Re: undead zwgcs
daemon@ATHENA.MIT.EDU (Steven Freed)
Mon Sep 21 08:54:41 1998
Date: Mon, 21 Sep 1998 06:54:01 -0600 (MDT)
From: Steven Freed <sfreed@gilasoft.com>
Reply-To: sfreed@gilasoft.com
To: Ken Raeburn <raeburn@MIT.EDU>
Cc: zephyr@MIT.EDU
In-Reply-To: <tx1zpbt3mhn.fsf@cygnus.com>
On 21 Sep 1998, Ken Raeburn wrote:
>
> > You have to understand what's going on and think about it. The code
> > was designed (not by me) with the assumption that each machine has a
> > single IP address; that's not just an accident of the implementation.
> > Most likely, the data structures in question will have to be modified
> > to accomodate a list of IP addresses instead of just one.
>
> Not just data structures, but the protocol as well. ...
>
> Multi-homed hosts aren't incredibly uncommon, and multiple addresses
> per host may become more common with ipv6, but I think they're still
> well in the minority today. Maybe this release can be shipped and
> then the design issues tackled? I think you're looking at a
> non-trivial amount of development work, which probably shouldn't be
> thrown in last thing before a release is cut.
You aren't kidding. I delved into this a lot over the weekend and finally
decided it was very non-trivial and I was in over my head. My first
expertise is systems administration and somewhere around 12th or 15th
place comes programming. :-) If such a project ever gets underway, I
would be very happy to assist, and in particular, provide a testbed for it
outside of MIT.
So why don't we make a release of what's there now? I have attached a
proposed installation instructions and a very short patch to make it
compile on BSD/OS. The included patch is against the sources that I
retrieved form the AFS gateway at web.mit.edu on Sep. 15 at 13:00 MDT.
I don't imagine that source tree changes very quickly, but you never know.
(I also got the et and ss libs from there also.)
--
Steven.
-------------------------------------------------------------------------
Installation instructions.
1) If you have libcom_err.a and libss.a already installed on your
system, go to step 5.
2) Get the ss and et packages from the same place you got the
zephyr sources and unpack them.
3) Go into the et directory, type ./configure; make; make install.
This will compile the library and install it and the header files
rooted in /usr/local.
4) Go into ss directory, type ./configure; make; make install.
This will compile the library and install it and the header files
rooted in /usr/local.
5) Go into the top level zephyr source directory, read the INSTALL
file and follow the instructions.
--------------------------Patch starts here--------------------------------
*** zephyr.orig/h/internal.h Mon Sep 21 06:29:08 1998
--- zephyr/h/internal.h Tue Sep 15 14:46:21 1998
***************
*** 6,11 ****
--- 6,16 ----
#include <zephyr/zephyr.h>
#include <netdb.h>
+ /* to find INADDR_LOOPBACK */
+ #ifdef __bsdi__
+ #include <rpc/types.h>
+ #endif
+
#ifdef HAVE_KRB4
#include <krb.h>
#include <krb_err.h>
diff -r -c zephyr.orig/zwgc/main.c zephyr/zwgc/main.c
*** zephyr.orig/zwgc/main.c Mon Sep 21 06:29:10 1998
--- zephyr/zwgc/main.c Tue Sep 15 16:24:26 1998
***************
*** 528,534 ****
* their child process). If we have getsid(), that's the best way
* of finding the session leader; otherwise use the process group of
* the parent process, which is a good guess. */
! #if defined(HAVE_GETSID)
setpgid(0, getsid(0));
#elif defined(HAVE_GETPGID)
setpgid(0, getpgid(getppid()));
--- 528,537 ----
* their child process). If we have getsid(), that's the best way
* of finding the session leader; otherwise use the process group of
* the parent process, which is a good guess. */
! /* BSD/OS uses the POSIX getpgrp() which does not take a pid_t pid arg */
! #if defined(__bsdi__)
! setpgid(0, getpgrp());
! #elif defined(HAVE_GETSID)
setpgid(0, getsid(0));
#elif defined(HAVE_GETPGID)
setpgid(0, getpgid(getppid()));