[net.bugs.uucp] help with uname

rsb@usfvax2.UUCP (Scot Boake) (03/27/86)

[ Line Eater Do Your Thing ]

I have been having some problems getting Usenet 2.10.1 running on a
Tandy 6000 with Xenix 3.1.1.

The first problem is that when uname() is called, it passes back a structure
in which the member name 'nodename' is set to null instead of the system name.
There is no documented way to fix this!  So I just wrote my own uname() and
placed it in the archive libc.a.  Problem 1 Fixed.

Problem 2 is more fun... when I call my site which is going to feed us news,
their uucp does not know who they are talking to.  (They are 'usfvax2' VAX 750
running 4.2 BSD Unix) I hooked a terminal up in the modem line and saw the
following.  "Shereusfvax2" sent from them.  My system sent "Shere" and no
system name.  The LOGFILE on the usfvax2 said that they are talking to ""
and proceeded to seed me ALL of the spooled up uucp files for all systems.

When the VAX calls the Tandy 6000 no problem.  Everything works fine.  But
since it is a long distance call, we have to pick up the tab by polling them.

At this time I am getting news from a AT&T 3b2/300 with no uucp problems but
due to strange reasons, we need to start getting news directly from the vax.

I am assuming that uucp is using the uname() system call to get the nodename
and since nodename is NULL, there is no system name being sent after the
'Shere'.  Since I DO NOT have the source I cannot prove / disprove this theory.

I've talked to Tandy about this and their reply thus far has been tough
cookies.  (Gee Thanks! :-( )

Is anybody out there in net land using a Tandy 6000 to talk to a vax??

Scott Boake                                     Small Systems Consulting
(813) 544 - 8152 (Voice)                        4669 - 73rd Ave North Suite A
Nice Short Path :-)                             Pinellas Park, FL 33565
{akgub,gatech}!akgua!akguc!codas!peroa!ucf-cs!usfvax2!rsb

ben@catnip.UUCP (Bennett Broder) (03/29/86)

In article <245@usfvax2.UUCP>, rsb@usfvax2.UUCP (Scot Boake) writes:
> [ Line Eater Do Your Thing ]
> 
> I have been having some problems getting Usenet 2.10.1 running on a
> Tandy 6000 with Xenix 3.1.1.

Since I recently brought up 2.10.3 on SCO Xenix System V, I may be of
some help.
 
> The first problem is that when uname() is called, it passes back a structure
> in which the member name 'nodename' is set to null instead of the system name.
> There is no documented way to fix this!  So I just wrote my own uname() and
> placed it in the archive libc.a.  Problem 1 Fixed.

The only way to get uname to return the name of the system is to remake
the kernel.  If you have the development system, that shouldn't be a
problem.  Check through the files in your configuration directory, it is
pretty easy to find where node is defined.  (It is in /usr/sys/conf/master
on my system).  Then just type make, and copy then resulting kernel to
/xenix.
 
> Problem 2 is more fun... when I call my site which is going to feed us news,
> their uucp does not know who they are talking to.  (They are 'usfvax2' VAX 750
> running 4.2 BSD Unix) I hooked a terminal up in the modem line and saw the
> following.  "Shereusfvax2" sent from them.  My system sent "Shere" and no
> system name.  The LOGFILE on the usfvax2 said that they are talking to ""
> and proceeded to seed me ALL of the spooled up uucp files for all systems.
> 
> When the VAX calls the Tandy 6000 no problem.  Everything works fine.  But
> since it is a long distance call, we have to pick up the tab by polling them.
> 
> At this time I am getting news from a AT&T 3b2/300 with no uucp problems but
> due to strange reasons, we need to start getting news directly from the vax.
> 
> I am assuming that uucp is using the uname() system call to get the nodename
> and since nodename is NULL, there is no system name being sent after the
> 'Shere'.  Since I DO NOT have the source I cannot prove / disprove this theory.

No, most versions of Xenix use a version of uucico derived from v7.
V7 uucico did not send Shere=sitename, but just Shere.

However, if your machine is sending any kind of Shere message when calling
the Vax, there is something seriously wrong with your uucp.  Shere
indicates that the machine is in slave mode, but the uucp node originating
the call should always be in *master* mode.  So if the "Shere" rather than
"Shere=sitename" was going to cause a problem, it should do it when the Vax
calls you.

Hope this was of some help.

-- 

Ben Broder
{ihnp4,decvax} !hjuxa!catnip!ben
{houxm,topaz}/

ron@dsi1.UUCP (03/29/86)

In article <245@usfvax2.UUCP> rsb@usfvax2.UUCP (Scot Boake) writes:
>
>I have been having some problems getting Usenet 2.10.1 running on a
>Tandy 6000 with Xenix 3.1.1.
>
You should probably abandon 2.10.1 and get yourself a copy of 2.10.2 or
even 2.10.3 Beta (If you can find it?)  There is code to do get the
system name from a file called "/usr/include/whoami.h", which if you
don't have you can easily create.  It's a one liner that reads as
follows:

#define sysname "your_site_name"

You could even modify this code to do an fgets on /etc/systemid which is
where Tandy, in their infinite wisdom (maybe Microsoft can take some of
the blame) chose to put the system or node name.  But creating whoami.h
is much easier.

>The first problem is that when uname() is called, it passes back a structure
>in which the member name 'nodename' is set to null instead of the system name.
>There is no documented way to fix this!  So I just wrote my own uname() and
>placed it in the archive libc.a.  Problem 1 Fixed.
>
The Above takes care of this obviously.

>Problem 2 is more fun... when I call my site which is going to feed us news,
>their uucp does not know who they are talking to.  (They are 'usfvax2' VAX 750
>running 4.2 BSD Unix) I hooked a terminal up in the modem line and saw the
>following.  "Shereusfvax2" sent from them.  My system sent "Shere" and no
>system name.  The LOGFILE on the usfvax2 said that they are talking to ""
>and proceeded to seed me ALL of the spooled up uucp files for all systems.
>
The UUCP that is supplied with the Tandy dev system is quite an atrosity
to begin with, but believe it or not, it really does work?  You need to
make sure that your system name is in /etc/systemid and also make sure
that you have an L.sys and USERFILE entry for 'usfvax2'.  You should not
worry about the fact that their UUCP sends Shere(sysname) while yours
only sends Shere, this is typical since many different flavors of UUCP
exist.  This will not cause any problems all that really need to be
there is the 'Shere' itself.  It sounds like one of two things is
happening to cause their system to not know who they are talking to; 1)
your sitename is not in /etc/systemid thus your UUCP is sending a NULL
sitename, or 2) Their UUCP is bashed and doesn't recognize you as a site
it knows.

>When the VAX calls the Tandy 6000 no problem.  Everything works fine.  But
>since it is a long distance call, we have to pick up the tab by polling them.
>
This make #1 above sound more accurate.  When they call you they know
who they are calling. When you call them they have no idea. Check your
/etc/systemid.  Make sure the file is globally readable.

--
Ron Flax  (ron@dsi1.UUCP)
ARPA:	dsi1!ron@seismo.arpa
UUCP:	..!{seismo, rlgvax, prometheus}!dsi1!ron

wescott@sauron.UUCP (Michael Wescott) (03/31/86)

In article <269@catnip.UUCP> ben@catnip.UUCP (Bennett Broder) writes:
>The only way to get uname to return the name of the system is to remake
>the kernel.  If you have the development system, that shouldn't be a
>problem.  Check through the files in your configuration directory, it is
>pretty easy to find where node is defined.  (It is in /usr/sys/conf/master
>on my system).  Then just type make, and copy then resulting kernel to
>/xenix.

I have posted a program to net.sources that can be used to "fix" an already
made kernel.  It has been tested ONLY on an NCR Tower.  But it should not
be too difficult to port. (I hope).

	-Mike Wescott
	ncrcae!wescott

tanner@ki4pv.UUCP (Tanner Andrews) (04/02/86)

First problem, lack of node name on xenix system, is easy enough to
cure.  Patch _utsname+9 in /xenix; next time you boot there'll be a
name in there, sure enough.  Works with xenix3 as well as xenix5.

You'll have to remember to patch that each time you re-build the
system.
-- 
<std dsclm, copies upon request>	   Tanner Andrews