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

Re: Heimdal on ULTRIX

Brian A May <bmay@dgs.monash.edu.au> writes:
> Several days ago, I started compiling Heimdal 0.1l on my MIP Ultrix 4.4
> workstation (no - it is not very fast). So far, I have routinely
> encountered two problems (ie Ultrix brokenness) with include files -

We used to say that if your code built and worked on both Ultrix and
Unicos you could be pretty sure it would work on any Unix. :-)

> 1. <sys/socket.h> and <netdb.h> cannot be included multiple times
> without generating errors. However, these include files are included
> multiple times, in roken.h + other file. As all system dependant include
> files are included in roken.h, and as roken.h seems to be included almost
> everywhere, I think the duplicates can be removed. (other include
> files are also duplicated, these two are the only ones that cause
> problems).

Yes, we worked around the broken <sys/socket.h> in krb4.  We can steal
the same kludge for heimdal.

> 2. <syslog.h> only includes some definitions. <sys/syslog.h> is required
> for other definitions. Actually, the two files overlap and produce
> a lot of warnings, but at least these aren't errors.

Hm, I don't remember having seen this before.

> Other problems:
> [554] [dec16:bmay] ~/heimdal/build/appl/rsh >./rsh snoopy.apana.org.au -x -lbam date
> socket: Permission denied
> socket: Permission denied
> rsh: kshell/tcp unknown service, using default port 544
> Thu Aug  5 12:21:16 EST 1999
> !!!!!! What is going on here ???? The best I have found (quick glance) is
>         s = socket (AF_INET, SOCK_STREAM, 0);
>         if (s < 0)
>             err (1, "socket");
> [...]
>             errsock = socket (AF_INET, SOCK_STREAM, 0);
>             if (errsock < 0)
>                 err (1, "socket");
> In which case, nothing should work???? Also, my shutdown fix doesn't
> appear to work on this platform (connections that use STDIN do not shutdown).
> Don't ask me why...

I think what you're seeing here is the two calls to `rresvport' at the
begin of main().  To be able to handle `bsd-style' privledged port
"authentication" in rsh, it always tries to allocate two ports at then
does setuid().

> Also: linking kadmin fails because strptime is undefined.

Hm, another function to implement in roken.

> What does work: kinit, klist, telnet. I think I had better stop after this
> next one and get `real' work done ;-). Probably due to roken.h
> being included *after* common.h

Ok, socket stuff has moved in roken so I don't think this should occur
any longer.