[comp.protocols.nfs] PC-NFS Wish List

evas@cs.eur.nl (Eelco van Asperen) (10/31/90)

Well, now we're at it, how about:

- extending the NFSDRIVE variable to NFSDIR so users can do something
  like:
     set NFSDIR=c:\usr\nfs
  and get rid of the \NFS that clutters their root-directory.

- multiple session support for Telnet (look at NCSA Telnet but
  make it more stable than the CUTE version)

- adding a feature to NET USE, so one can do something like
     NET USE * /d
  to unmount all drives/printers in one go.

- ability to load code in extended memory, this would help a lot to
  overcome memory shortages.

- combining PC-NFS and Lifeline: other pc-networks also include mail
  as a standard feature so why not PC-NFS ?

- keeping the net informed of developments like: when we the next
  version appear, what are the differences, etc.

Eelco van Asperen.       uucp: evas@cs.eur.nl   || asperen@hroeur5.bitnet
Erasmus University Rotterdam, The Netherlands   || no claims - no disclaimers
                                        Michael Jackson: half Man, half Bambi
-- 
Eelco van Asperen.       uucp: evas@cs.eur.nl   || asperen@hroeur5.bitnet
Erasmus University Rotterdam, The Netherlands   || no claims - no disclaimers
                                        Michael Jackson: half Man, half Bambi

koontz@cam.nist.gov (John E. Koontz X5180) (11/02/90)

In article <1990Oct31.102026.20561@cs.eur.nl>, evas@cs.eur.nl (Eelco van Asperen) writes:
> Well, now we're at it, how about:

... Various PC=NFS versions

I'd like to add:      

- ability to edit Lifeline folder list in mail.  I get real tired of fixing
  my typos with the editor.  

- ability to page in all Lifeline lists, e.g., the list of folders!

- a true name search facility in the address book and white pages displays.
  I can't believe how annoying it is to get to the right page and then have to
  curse (literally) down to the desired name.

- Why not automatically insert all mail addresses used into the address book,
  or at least make it an option?  

- Why do I have to compile the address book and white pages, anyway?  I know
  what this is accomplishing; I just don't see why I have to do it for 
  the software.  

I think that these fixes can be summarized as an 80's Interface for Lifeline.  
While they're at it they should get rid of that commercial for Vitamin C that
you get if you call mail with mail instead of nfsmail.  

And, on the subject of updates, what differences are there between the 
PC-NFS 3.0.1 update and the recent Rev. B of same?  I am guessing that
the sole purpose of this update is to at the notice that Yellow Pages is
a registered trademark of British Telecommunications, etc., but there is
nothing clarifying this in the packet.  

TOMIII@MTUS5.BITNET (Thomas Dwyer III) (11/02/90)

Ok, I feel obligated to add these wishes...


-- How about a chgrp command?

-- Why leave unencrypted passwords sitting around in memory?
   Some security wouldn't be bad.

-- Why, oh why can't we get a non-serialized version of PC-NFS?  Or maybe
   get the serial number from a server?  Keeping track of 300+ boot disks,
   making sure each machine has the right one is not acceptable.

-- I 2nd the motion for a new telnet (with 3270 support)

-- How about a toolkit that interfaces with NET.EXE's structures (such as
   which drives are mounted & where?)

-- How about allowing set-uid programs?

-- We could use a software-license checkout feature.

-- Are we ever going to get a list of bug reports, as we do with SunOS?

-- Make the timezone (DST) functions work without the need for a battery
   clock in the PC.

-- Boot the PC off the network.

-- Add an "rdate" command.


On the other hand, PC-NFS has served most of our needs over the last three
years...


Thomas Dwyer III                        Email: tomiii@mtu.edu
Network Programmer                             tomiii@mtus5.BITNET
Computing Technology Services           Voice: (906) 487-2110
Michigan Technological University       Fax:   (906) 487-2787

nol2321@dsacg4.dsac.dla.mil (Jim Dunn) (11/03/90)

Well, as far as your wish list goes, I second the motion... But you'll find
that if you wait for Sun to do them...  well, nevermind...  <grin>

However, I've found an EXCELLENT alternative to PC-NFS' telnet.exe and a
tn3270.exe program...

Try using the clarkson drivers.  This means that instead of having all the
PC-NFS drivers in your config.sys, you'll have a few less, substitute a 
couple of the clarkson's and WALAH!  You can still have PC-NFS compatibility
as well as ALSO having the Clarkson NCSA TELNET, CUTCP TELNET AND TN3270!!!

My config.sys before clarkson:

	device=pcnfs.sys
	device=sockdrv.sys
	device=vecie6.sys
	device=?????.sys

After clarkson:

	device=pcnfs.sys
	device=sockdrv.sys
	device=pktd.sys

And my autoexec.bat has to also have this with clarkson's drivers:

	3c503.com 0x7e 5 0x300   (for my 3com board)
or
	wd8003e.com 0x7e 5 0x300  (for a western digital board)

And there you have it...  the clarkson equivelant (sp) for the sun hardware
drivers...

(you can find all these drivers on the clarkson "sun" and "omnigate" ftp
file servers...  128.153.12.3, 128.153.4.2, 125.153.4.10, I think...)

Also, here's a little PC source, for compiling with the Microsoft C PC-NFS
toolkit, to give you an "rdate.exe" function on your PC:

---Cut Here---
/*
 *  rdate - get date from remote machine
 *
 * 	Copyright (c) 1988 by Sun Microsystems Inc.
 *
 *     	"rdate" sets the date and time, obtaining a timestamp froma
 *	network host via the tcp/time socket.  Since this returns
 *	a value in seconds since Jan 1, 1900,  we must
 *	subtract 86400(365*70 + 17) to convert this to the time
 *	since Jan 1, 1970. (Note that to avoid Microsoft C 4.0
 *	compiler glitches we must compute this at run time.)
 *
 * This program is supplied as an example of how to use the PC-NFS
 * Programmer's Toolkit to port typical socket-based network applications
 * from Unix systems to PCs running PC-NFS and DOS. It is supplied
 * "as is" with no warranty or support.
 *
 * The binary (rdate.exe) was built using Microsoft C 5.10 and the
 * "small model" Toolkit libraries using the following batch file:
 *
 * cl /AS /Ox /Ze rdate.c ;
 * echo rdate + > lf
 * echo ..\toolkit\tcpypobj\syp_rtns.obj ..\toolkit\tcpypobj\sprotrtn.obj >> lf
 * echo rdate.exe >> lf
 * echo rdate /m >> lf
 * echo ..\toolkit\slibtk.lib >> lf
 * link /ST:16384 @lf
 *
 */

#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define _SIZE_T_DEFINED
#include <stdio.h>


extern int errno;

main(argc, argv)
	int argc;
	char **argv;
{
	struct sockaddr_in server;
	struct sockaddr from;
	int s, i, p, q;
	u_long t;
	u_long toff;
	struct servent *sp;
	struct protoent *pp;
	struct hostent *hp;
	struct timeval timestruct;

	if (argc != 2) {
		fprintf(stderr, "usage: rdate host\n");
		exit(1);
	}
	if ((hp = gethostbyname(argv[1])) == NULL) {
		fprintf(stderr, "rdate: unknown host %s\n",
		    argv[1]);
		exit(1);
	}
	if ((sp = getservbyname("time", "tcp")) != NULL) 
		p = sp->s_port;
	else
		p = 37; /* default from Assigned Numbers RFC */

	if ((pp = getprotobyname("tcp")) != NULL) 
		q = pp->p_proto;
	else
		q = 6; /* default from Assigned Numbers */

	if ((s = socket(AF_INET, SOCK_STREAM, q)) == 0) {
		perror("rdate: socket");
		exit(1);
	}

	bzero((char *)&server, sizeof (server));
	bcopy(hp->h_addr, (char *)&server.sin_addr, hp->h_length);
	server.sin_family = hp->h_addrtype;
	server.sin_port = p;

	if (connect(s, &server, sizeof (server)) < 0) {
		perror("rdate: connect");
		exit(1);
	}
	if (read(s, (char *)&t, sizeof (long)) != sizeof (long)) {
		perror("rdate: read");
		exit(1);
	}
	t = (u_long)ntohl(t);

/* begin hack to avoid MSC problem */

	toff = 86400L;
	toff = toff * 25567L;
/* end hack */

	if (t < toff) {
		fprintf(stderr, "rdate: %s returned an unreasonable time\n",
		    argv[1]);
		exit(1);
	}

	t -= toff;

	i = setdostime(t);

	if (i == -1)
		perror("rdate: unable to set time of day");
	else
		printf("%s", ctime(&t));
	exit(0);
}

#include <dos.h>

/*
 * setdostime (t) sets the PC DOS date and time values according to
 * the timestamp in t. We first call "localtime" to obtain the
 * individual year, month, day, hour, minute and second values and
 * then use the DOS "set time" and "set date" functions. Note that
 * for "localtime" to operate properly, the "TZ" environment variable
 * must be correct.
 */

setdostime(t)
u_long t;
{
struct tm *tp;
union REGS inregs;
union REGS outregs;

	tp = localtime(&t);
	inregs.h.ah = 0x2d; /* set time */
	inregs.h.ch = tp->tm_hour;
	inregs.h.dh = tp->tm_sec;
	inregs.h.cl = tp->tm_min;
	inregs.h.dl = 0;
	intdos(&inregs, &outregs);
	if (outregs.h.al)
		return(-1);

	inregs.h.ah = 0x2b; /*set date */
	inregs.x.cx = tp->tm_year + 1900;
	inregs.h.dh = tp->tm_mon + 1;
	inregs.h.dl = tp->tm_mday;
	intdos(&inregs, &outregs);
	if (outregs.h.al)
		return(-1);

	return(0);
}

---Cut Here---

Enjoy, and please, no support...

:)
Jim, jdunn@dsac.dla.mil

bob@MorningStar.Com (Bob Sutterfield) (11/03/90)

In article <90305.173430TOMIII@MTUS5.BITNET> TOMIII@MTUS5.BITNET (Thomas Dwyer III) writes:
   -- Add an "rdate" command.

Don't bother; use NTP instead.  Move straight into 20th-century
timekeeping.

geoff@bodleian.East.Sun.COM (Geoff Arnold @ Sun BOS - R.H. coast near the top) (11/03/90)

Quoth TOMIII@MTUS5.BITNET (Thomas Dwyer III) (in <90305.173430TOMIII@MTUS5.BITNET>):
#Ok, I feel obligated to add these wishes...
#
#
#-- How about a chgrp command?

I received some strongly negative feedback on the idea of
"chown" and "chgrp" commands. Something to do with trusting
the security of the PC?

#-- Why leave unencrypted passwords sitting around in memory?
#   Some security wouldn't be bad.

Agreed. I've filed a sev2 bug against several such holes.

#-- Why, oh why can't we get a non-serialized version of PC-NFS?  Or maybe
#   get the serial number from a server?  Keeping track of 300+ boot disks,
#   making sure each machine has the right one is not acceptable.

I've passed your posting on to the people who decide pricing
and licensing questions. It's not an engineering issue. See my
posting yesterday on my longer-term thoughts on licensing & packaging.

#-- I 2nd the motion for a new telnet (with 3270 support)

Did you see the press release & story in the trade rags about the
agreement between Sun and WRQ (the Reflection folks)? Draw your
own conclusions.

#-- How about a toolkit that interfaces with NET.EXE's structures (such as
#   which drives are mounted & where?)

Longer-term (hah! there's that term again) one solution (at least in
the Windows environment) will be for PC-NFS to provide a network admin
DLL conforming to the Microsoft spec. While this interface was designed
to support the Windows control panel, it's actually a generalised admin
API, usable by applications.

#-- How about allowing set-uid programs?

Probably won't work under Windows - there isn't enough context. Run an
app in one Window, then a setuid app in a second Window, and I can't
guarantee that the first app won't get the privileges of the second.
Not safe.  DOS is still a single-user system.

#-- We could use a software-license checkout feature.

I haven't tried them, but there are several native PC schemes.
Do any of them work with PC-NFS, or are they all NetWare FAPs?

#-- Are we ever going to get a list of bug reports, as we do with SunOS?

I'll ask about this. Also about how it would be distributed. 

#-- Make the timezone (DST) functions work without the need for a battery
#   clock in the PC.

Isn't this really better answered by the last point, below?

#-- Boot the PC off the network.

It's been done by several vendors/OEMS. One whose data sheet I have in
front of me is Dirk Ko"ppen (that's o-umlaut) at dksoft@incom.de in
Denmark. Disclaimer: I haven't yet got a copy, so I can't comment
directly.

#-- Add an "rdate" command.

I've send out a version of RDATE (as a Toolkit demo) to quite a few
folks over the years, but I just checked the archive and it appears
that although I've mailed it out many times, I've never posted it here.
I'm going to post a copy in the next message.

#On the other hand, PC-NFS has served most of our needs over the last three
#years...

Thank you very much.

Geoff
-- Geoff Arnold, PC-NFS architect, Sun Microsystems. (geoff@East.Sun.COM)   --
   *** "Now is no time to speculate or hypothecate, but rather a time ***
   *** for action, or at least not a time to rule it out, though not  ***
   *** necessarily a time to rule it in, either." - George Bush       ***

geoff@hinode.East.Sun.COM (Geoff Arnold @ Sun BOS - R.H. coast near the top) (11/04/90)

If Jim's going to repost my source without acknowledgement (though
with the Sun (c)), you should note that the copy he posted was the
very first cut, with the missing "htons" for protocol and port.
I posted the latest binary yesterday; if anyone wants, I'll post the
corresponding source.

Anyone want to post NTP sources? I can also post a "finger.exe" if
you like; another midnight special which never made it into the
product....

Geoff

-- Geoff Arnold, PC-NFS architect, Sun Microsystems. (geoff@East.Sun.COM)   --
   *** "Now is no time to speculate or hypothecate, but rather a time ***
   *** for action, or at least not a time to rule it out, though not  ***
   *** necessarily a time to rule it in, either." - George Bush       ***