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

TOPS-20 file-server bug alert



If you run the TOPS-20 chaosnet qfile-server, then you probably have a bug
which can randomly cause files not to get listed in directory listings.  The
problem is that the file-server is filling up a packet with directory-listings,
and when it gets to a file that doesn't fit it backs out of listing the file in
this packet and waits to put it in the next one.  However if it is the final
CRLF after the file-properties that doesn't fit, then it thinks it is already
done with the file and never lists it.

Look in FILE.MID and see if you have the following code:

----------------------------------------
;; Done with this file, output blank line
DIRFLE:	MOVE 1,DATJFN(IDX)
	GNJFN
	 SETZM DATJFN(IDX)
DIRFE1:	PUSHJ P,DIRCLF
	AOS DATNDR(IDX)
POPJ1:	AOS (P)			;Skip return for full file
	POPJ P,	
----------------------------------------

If so, you should change it to read:

----------------------------------------
DIRFLE:	PUSHJ P,DIRCLF		;Send the CRLF FIRST, THEN do the GNJFN.  Otherwise files get lost.
	MOVE 1,DATJFN(IDX)
	GNJFN
	 SETZM DATJFN(IDX)
	SKIPA			;Skip CRLF here since we did it above.  DIRFE1 still needed as entry point 
DIRFE1:	PUSHJ P,DIRCLF
	AOS DATNDR(IDX)
POPJ1:	AOS (P)			;Skip return for full file
	POPJ P,	
----------------------------------------

					-- Ken