War NFS Daemon War NFS Daemon


War NFS Daemon is a powerful NFS (Network File System) server for Windows95 and NT.


Back Home

Introduction Look and feel Features Copyright and Lisencing Download


Introduction Introduction

When I decided to make the next major version of War FTP Daemon available for UNIX/Linix, I saw the need for a flexible NFS daemon for cross development. I used the Soss daemon for a while, but it's limitations irritated me to the point where I decided to write my own.

Initially I wrote the NFS daemon in a weekend. But when I started to test it with Free-BSD, I found that UNIX require consistend inode numbers for the files. So I had to implement a 'light' version of War FTP Daemon's Virtual File System in order to make it reliable with UNIX clients. The development time increased from 3 days to nearly 2 weeks

One major concern for me wat that the server would do ASCII text mapping between the UNIX machines and NT. Emacs don't like CRLF in source code files. Version 1.0 of the server support ASCII text mapping, transparent to the client. File size and file offsets are automatically adjusted by the server to reflect the size after mapping.

The current War NFS Daemon is not designed for high-volume systems. It does not handle simultainous access to a file from several clients very good, and it only use two threads (one for the server, and one for the GUI console). It also supports UDP clients only. None of these limitations should be of any significance for the intended use. The next major version will handle true high-performance systems, and address all these issues, as well as version 3 of the NFS protocol.

NFS is tightly connected with UNIX. Since version 2 of the protocol don't have any secure authentication implemented, I have choosen to use the clients IP address for authentication. The userid and groupid of the client is ignored by the server. (It's too simple to 'fake' a privileged user and bypass the UNIX authentication specified by the NFS/RPC protocol). The next major version will address this issue as well.

Since NFS is a stateless server, I have used a LRU cache for physically open files. The server will never open more than 20 file handles, and it will close the file handles after 2 seconds of inactivity. This is of course done transparent to the clients, who might believe that a file is open for hours or days.

The server has a built-in port-mapper. This is able to handle any RPC servers that use a portmapper, in addition to the NFS service. If you have several RPC based servers, it might be a good idea to use an external portmapper to avoid problems when the NFS server is stopped. The Portmapper service will not start if another portmapper is running on the machine. The built-in portmapper support all UDP calls but broadcastl. TCP is not supported. This will normally not be a limitation. If you have problems with this, use an external portmapper, or give me a word. TCP and broadcast will be implemented in the future.

Up Back Home


Look and feel Look and feel

Since NFS is a protocol mostly for computer professionals, I have not spent very much time on the user interface. Those who have the need for a NFS server will be able to use it very easily.

The server can run as a native NT service and as a normal Windows program. The Windows console gives a list of the current connections and the latest messages from the log. The only command is the 'quit' button.

The configuration is done with the file 'exports.conf'. This must reside in the same directory as the server.

# exports.conf
# Configuration file for the War NFS Daemon version 1
# Copyright 1997 by Jarle Aase
# http://www.jgaa.com
#
# NB: This file is *not* compatible with the 
# UNIX exports.conf file!!

# Declare text file mapping

SETASCII *.txt *.c *.cc *.cpp *.h *Makefile* 
SETASCII *.log *.ini *.conf *.htm *.html

# Mount file systems

export g:\src\msvc4 as /devel
	domain 193.91.161.23 read mapascii
	domain 193.91.161.24 read write mapascii

export h:\tmp as /tmp
	domain * read mapascii
As you can see, the config file is pretty easy to understand.

The server keeps a cache of files that have been accessed. thsi cache is stored in the file InodeCache.dat. If this file exist, the configuration file is NOT read. This is to ensure that the inode numbers and mount points are consistent between sessions. If you need to change the configuration, you must unmount all the clients, delete 'InodeCache.dat', change the exports.conf file, and then restart the server (not the machine).

Up Back Home


Features Features

Up Back Home


Copyright and Lisencing Copyright and Lisencing

War NFS Daemon is Copyright 1997 by Jarle (jgaa) Aase. Distributiom is unlimited as long as no charge is taken for the program itself (you can charge for the media).

The program contains modules Copyright (c) 1987, 1990 by Sun Microsystems, Inc.
The program contains modules Copyright (C) 1991, 1992 Free Software Foundation, Inc.

The program might be freely used commercially and non-commercially under the following restrictions:

Up Back Home


Download Download

Go to the Download page

Up Back Home


[About these pages] [Awards] [Introduction] [Companion Sites] [Sponsors] [Want to mirror this site?] [Contact Information] [Main Section]

Email:webmaster@jgaa.com

This page was generated by HTMgen32 0.5b

Anti-spam banner