mars_nwe-0.97.pl05

This commit is contained in:
Mario Fetka 2011-11-13 00:38:56 +01:00
parent 32780f7403
commit 306b5e3325
10 changed files with 866 additions and 224 deletions

View File

@ -165,6 +165,7 @@ static int free_dir_handle(int dhandle)
void set_default_guid(void) void set_default_guid(void)
{ {
seteuid(0); seteuid(0);
setgroups(0, NULL);
if (setegid(default_gid) < 0 || seteuid(default_uid) < 0) { if (setegid(default_gid) < 0 || seteuid(default_uid) < 0) {
errorp(1, "set_default_guid, !! Abort !!", errorp(1, "set_default_guid, !! Abort !!",
"Cannot set default gid=%d and uid=%d" , default_gid, default_uid); "Cannot set default gid=%d and uid=%d" , default_gid, default_uid);
@ -174,13 +175,25 @@ void set_default_guid(void)
void set_guid(int gid, int uid) void set_guid(int gid, int uid)
{ {
char aktname[100];
if (gid > -1 && uid > -1) {
seteuid(uid);
cuserid(aktname);
} else aktname[0] = '\0';
if ( gid < 0 || uid < 0 if ( gid < 0 || uid < 0
|| seteuid(0) || seteuid(0)
|| setegid(gid) == -1 || setegid(gid) == -1
|| seteuid(uid) == -1 ) { || seteuid(uid) == -1 ) {
DPRINTF(("SET GID=%d, UID=%d failed\n", gid, uid)); DPRINTF(("SET GID=%d, UID=%d failed\n", gid, uid));
set_default_guid(); set_default_guid();
} else XDPRINTF((5,0,"SET GID=%d, UID=%d OK", gid, uid)); } else {
if (aktname[0]) {
seteuid(0);
initgroups(aktname, gid);
if (seteuid(uid) == -1) set_default_guid();
}
XDPRINTF((5,0,"SET GID=%d, UID=%d OK", gid, uid));
}
} }
static char *conn_get_nwpath_name(NW_PATH *p) static char *conn_get_nwpath_name(NW_PATH *p)

View File

@ -126,6 +126,9 @@ Erste 'oeffentliche' Version
- falls internal net = 0 wird nun die IP Nummer als internal net verwendet. - falls internal net = 0 wird nun die IP Nummer als internal net verwendet.
- Zugriffsrechte Bindery erweitert und korrigiert. - Zugriffsrechte Bindery erweitert und korrigiert.
- Volume option -r fuer readonly eingebaut. - Volume option -r fuer readonly eingebaut.
<----- ^^^^^^^^^^ pl4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

23
doc/CREDITS Normal file
View File

@ -0,0 +1,23 @@
Sorry, but this list will *never* be complete.
-----------------------------------------------
Michael Beddow <m.beddow@servelan.co.uk>
translated doc for PIPE-FS
Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
many testings+notes
Hardy Buchholz <hardy@kool.f.eunet.de>
wrote HOWTO.ger
Ales Dryak <A.Dryak@sh.cvut.cz>
his linware gives the kick
Volker Lendecke <lendecke@math.uni-goettingen.de>
helps distributing
James B. MacLean <macleajb@ednet.ns.ca>
many testings+notes
Winfried Truemper <truemper@MI.Uni-Koeln.DE>:
re-wrote `INSTALL' and added explanations to `nw.ini'

View File

@ -3,16 +3,57 @@ Dieses HowTo ist noch unfertig.
Aktuelle Version erhaeltlich bei: Aktuelle Version erhaeltlich bei:
Hardy Buchholz <hardy@kool.f.eunet.de> Hardy Buchholz <hardy@kool.f.eunet.de>
ALLGEMEINES ALLGEMEINES
^^^^^^^^^^^ ^^^^^^^^^^^
MARS_NWE ist ein frei erhaeltlicher Netware-Emulator fuer Linux.
(auch fuer Unixware)
IPX MARS_NWE (Martin Stovers Netware-Emulator) ist ein Netware-Emulator
^^^ fuer Linux (und auch fuer Unixware). Entstanden ist der MARS_NWE
zuerst 1993 auf einer USL1.1 und wurde spaeter (1994) nach Linux
portiert. Die Anregung MARS_NWE allgemein zugaenglich zu machen, kam
durch LINWARE (von A.Dryak). Problematisch bei der Entwicklung vom
MARS_NWE ist der Umstand, dass das NCP (Netware-Core-Protokoll) keine
oeffentliche Spezifikation hat, sondern zu den Novell-Interna gehoert.
Daher sind viele Funktionen eines "echten" Netware-Servers nur schwer
realisierbar, und vieles beruht auf Vermutungen und ausprobieren.
Was kann MARS_NWE?
Inzwischen realisiert der MARS_NWE die wichtigsten Services eines
echten Netware-Servers. Im Einzelnen heisst dies:
File-Services:
Natuerlich steht an erster Stelle das zur Verfuegung stellen von
Massenspeicher und Dateien fuer verschiedene Clients. Hier hat der
MARS_NWE gerade im heterogenen Netzwerk einiges zu bieten. Als Volumes
koennen saemtliche unter Linux mountbare Filesysteme freigegeben
werden. Interessant sind dabei natuerlich vor allem auch NFS-mounted
directorys, CDROMS, selbst mit Volker Lendeckes NCPFS gemountete
Netware-Volumes eines anderen Servers koennen wieder exportiert
werden, sowie selbverstaendlich alle auf dem Host lokal vorhandenen
File-system-varianten.
Print-Services:
sind im MARS_NWE ebenfalls realisiert, allerdings in anderer Form, als
bei Netware, d.h. es existieren keine Printqueues, die mit den
Netware-Tools verwaltet werden koennen, sondern der Druckauftrag wird
mittels Uebergabe-Vezeichnissen an den Linux-Spooler weitergereicht.
Routing:
Als Router ist der MARS_NWE besonders geeignet, da er weitesgehend
automatisch zwischen den verschiedensten Welten als Router vermittelt
(u.a. auch ueber ISDN).
PIPE-Volumes:
Eine Besonderheit des MARS_NWE sind die sogenannten PIPE-Volumes, die
im Detail weiter unten erklaert werden. Hiermit kann man z.B. von
einem Dos-Client auf Unix-Shellscripte lesend und schreibend
zugreifen.
Schwachstellen, Probleme und TODO's
QUICKINST (fuer alle Ungeduldigen und Wiederholungstaeter ;-) QUICKINST (fuer alle Ungeduldigen und Wiederholungstaeter ;-)
@ -34,17 +75,19 @@ INSTALLATION
Kernel Kernel
^^^^^^ ^^^^^^
Voraussetzung um MARS_NWE laufen zu lassen ist ein Kernel mit Voraussetzung um MARS_NWE laufen zu lassen ist ein Kernel mit
IPX-Option. Grundsaetzlich sollte der MARS_NWE unter allen neueren IPX-Option. Grundsaetzlich sollte der MARS_NWE unter allen neueren
Kernelversionen nutzbar sein. Die Kernelpatches aus dem Verzeichniss (<=1.3.60) Kernelversionen nutzbar sein. 1.3.57 und 1.2.13 ist
"mars_mwe/examples" sind keine Vorraussetzung, steigern die ebenfalls eine fuer MARS_NWE geeignete Kernelversion, aeltere (1.3.x)
Performance des Servers aber ganz erheblich (ca. 30-40%). Weiter wird sind zum Teil problematisch, wegen Bug's im IPX-Code. Die
dringend empfohlen, die Option FULL_INTERNAL_NET in der Kernelpatches aus dem Verzeichniss "mars_mwe/examples" sind keine
Kernel-Konfiguration auf NEIN zu setzen. Sind die genannten Vorraussetzung, steigern die Performance des Servers aber ganz
Bedingungen erfuellt, steht der Installation vom MARS_NWE von der erheblich (ca. 30-40%). Weiter wird dringend empfohlen, die Option
Linux-Seite nichts mehr im Weg, andernfalls sollte zuerst ein neuer FULL_INTERNAL_NET in der Kernel-Konfiguration auf NEIN zu setzen. Sind
Kernel erzeugt (IPX = Y, FULL_INTERNAL_NET = N, Patch eingespielt?) die genannten Bedingungen erfuellt, steht der Installation vom
und Linux neu gebootet werden. MARS_NWE von der Linux-Seite nichts mehr im Weg, andernfalls sollte
zuerst ein neuer Kernel erzeugt (IPX = Y, FULL_INTERNAL_NET = N, Patch
eingespielt?) und Linux neu gebootet werden (mehr dazu im
KERNEL-HOWTO).
Novell Novell
^^^^^^ ^^^^^^
@ -329,11 +372,11 @@ Netware-Netzen ist meist 802.3, 802.2 ist bei einigen neueren (Netware
3.12 ..) zu finden. 3.12 ..) zu finden.
Neuerdings kann in der "nwserv.conf" auch ein Autodetect der Neuerdings kann in der "nwserv.conf" auch ein Autodetect der
Net-Devices eingestellt werden. Dies kann natuerlich nur Net-Devices eingestellt werden. Dies kann natuerlich nur
funktionieren, wenn an diesem Device mindestens ein anderer funktionieren, wenn an diesem Device mindestens ein anderer
Netware-Server haengt, der korrekt eingerichtet ist, damit vom Netware-Server haengt, der korrekt eingerichtet ist, damit vom
MARS_NWE die externe Netzwerknummer und der Frame-Typ vom laufenden MARS_NWE die externe Netzwerknummer und der Frame-Typ vom laufenden
Datenverkehr abgeleitet werden kann. Datenverkehr abgeleitet werden kann.
Eintraege 7 - 13 legen die Securety- und Login-Details fest. Als Eintraege 7 - 13 legen die Security- und Login-Details fest. Als
Besonderheit bei Eintrag 7 gilt: auch wenn die 8 (allow empty passwds) Besonderheit bei Eintrag 7 gilt: auch wenn die 8 (allow empty passwds)
eingetragen ist, muss der Supervisor ein Passwort haben (zumindest, eingetragen ist, muss der Supervisor ein Passwort haben (zumindest,
wenn der Root auf dem Linux-Rechner eines hat). Die Optionen fuer wenn der Root auf dem Linux-Rechner eines hat). Die Optionen fuer
@ -366,6 +409,7 @@ FAQ's
TIPS UND LESESTOFF TIPS UND LESESTOFF
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
EMAIL-ADRESSEN EMAIL-ADRESSEN
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^

View File

@ -1,7 +1,7 @@
Begin3 Begin3
Title: mars_nwe Title: mars_nwe
Version: 0.97.pl4 Version: 0.97.pl5
Entered-date: 11-May-96 Entered-date: 17-May-96
Description: Full netware-emulator (src), beta. Description: Full netware-emulator (src), beta.
Supports file-services, bindery-services, Supports file-services, bindery-services,
printing-services, routing-services. printing-services, routing-services.
@ -9,7 +9,7 @@ Keywords: novell, netware, server, ipx, ncp, tli
Author: mstover@freeway.de (Martin Stover) Author: mstover@freeway.de (Martin Stover)
Maintained-by: mstover@freeway.de (Martin Stover) Maintained-by: mstover@freeway.de (Martin Stover)
Primary-site: ftp.gwdg.de:/pub/linux/misc/ncpfs Primary-site: ftp.gwdg.de:/pub/linux/misc/ncpfs
140kB mars_nwe-0.97.pl4.tgz 140kB mars_nwe-0.97.pl5.tgz
Alternate-site: ftp.uni-duisburg.de /pub/linux/ipxware Alternate-site: ftp.uni-duisburg.de /pub/linux/ipxware
Platforms: Linux (1.2.xx, 1.3.xx), UnixWare 2.0x Platforms: Linux (1.2.xx, 1.3.xx), UnixWare 2.0x
Copying-policy: GNU Copying-policy: GNU

View File

@ -1,30 +1,46 @@
# #
# This is the configuration-file for "mars_nwe", the free netware-emulator # This is the configuration-file for "mars_nwe", a free netware-emulator
# for Linux. # for Linux.
# #
# last change: 13-May-96 # last change: 16-May-96
#
# This file specifies which Linux-resources (printers, users, directories)
# should be accessible to the DOS-clients via "mars_nwe". Furthermore
# some general parameters are configured here.
# Some options of "mars_nwe" can only be altered by editing the the file
# `config.h' and re-compiling "mars_nwe", please see there for more
# information.
# Syntax of this config-file: # Syntax of this config-file:
# - everything after the "#" is ignored, so it is used to # - everything after a "#" is not treated as a comment (particularly
# make comment-lines # it does never belong to the values themselves)
# - entries _must_ begin with a number, indicating the section # - entries _must_ begin with a number, indicating the section
# they belong to # they belong to
# - hexadecimal values are prepended with "0x" # - hexadecimal values are prepended by "0x"
# #
# All examples are verbatim. # All examples are verbatim.
#
# The term "DOS-client" does not refer to the special operating-system
# "DOS" in _this_ file. "DOS-client" is only a synomym for all possible
# ipx-clients (it's choosen for the people who are confused by the
# meaning of "client" and "server").
# The "Linux-side" of the game is always the "mars_nwe"-server.
# =========================================================================
# Section 1: volumes (required) # Section 1: volumes (required)
# #
# In this section you list all directories accessible via "mars_nwe". # In this section you list all Linux-directories accessible via "mars_nwe".
# To be more specific: a mapping from Linux-directories to mars_nwe-volumes #
# To be more precise: a mapping from Linux-directories to mars_nwe-volumes
# is done. (Volumes are the beasts you can map to drive letters under DOS # is done. (Volumes are the beasts you can map to drive letters under DOS
# using "map.exe"). # using "map.exe").
# #
# Linux-directory mars_nwe-volume map.exe DOS-Drive # Linux-directory mars_nwe-volume map.exe DOS-Drive
# /var/local/nwe/SYS -------> SYS -------------> W: # /var/local/nwe/SYS -------> SYS -------------> W:
# #
# More than one entry is possible in this section. # More than one entry is allowed in this section.
# The maximum number of volumes is a compile-time option that must be # The maximum number of volumes is a compile-time option that must be
# specified in `config.h' before compiling mars_nwe. # specified in `config.h' before compiling mars_nwe.
# #
@ -32,33 +48,40 @@
# contain the following sub-directories: LOGIN, PUBLIC, SYSTEM, MAIL. # contain the following sub-directories: LOGIN, PUBLIC, SYSTEM, MAIL.
# See the installation-instructions in the doc-directory for more infos. # See the installation-instructions in the doc-directory for more infos.
# #
#
# -------------------------------------------------------------------------
# Syntax: # Syntax:
# 1 VOLUMENAME DIRECTORY OPTIONS # 1 VOLUMENAME DIRECTORY OPTIONS
# #
# VOLUMENAME: the name of the mars_nwe-volume (max. 8 characters) # VOLUMENAME: the name of the mars_nwe-volume (max. 8 characters)
# DIRECTORY: the directory on your Linux-system associated with that # DIRECTORY: the directory on your Linux-system associated with that
# volume; use the special name "~" to refer to the users # volume; use the special name "~" to refer to the users
# individual home-directory # individual home-directory
# #
# OPTIONS: none or some of the following characters (without a seperator) # OPTIONS: none or some of the following characters (without a seperator)
# k allow lowercase-filenames (if you don't set this, all # k allow lowercase-filenames (if you don't set this, all
# files _must_ be upper-case) # files _must_ be upper-case)
# m removable volume (e.g. cd-roms) # m removable volume (e.g. cd-roms)
# o volume has only one filesystem/device/namespace # r volume is read-only and always reports "0 byte free"
# this is for filesystems with high inode > 0xFFFFFFF. # (this is intended for copies of CD-ROMs on harddisks)
# because for namespace services mars_nwe normally use the # o volume has only one filesystem/device/namespace
# first 4 bit of 32 bit inode to distinguish # this is for filesystems with high inode > 0xFFFFFFF.
# between several devices/namespaces for one volume. # because for namespace services mars_nwe normally use the
# p "PIPE"-filesystem. All files are pipe commands. # first 4 bit of 32 bit inode for distinguish
# See `doc/PIPE-FS'. # between several devices/namespaces for one volume.
# r readonly volume. Free disk space will also return 0. # p "PIPE"-filesystem. All files are pipe commands.
# See `doc/PIPE-FS'.
# -------------------------------------------------------------------------
# #
# examples: # Examples:
1 SYS /u3/SYS/ # SYS upper-case filenames # 1 SYS /var/local/nwe/SYS k
1 CDROM /cdrom km # lowercase filenames, removable # 1 CDROM /cdrom kmr
1 HOME ~ k # users HOME directory, lowercase # 1 HOME ~ k
1 SYS /u3/SYS/ k
# =========================================================================
# Section 2: servername (optional) # Section 2: servername (optional)
# #
# The servername is the name under which this server will show up when # The servername is the name under which this server will show up when
@ -67,81 +90,147 @@
# If you don't supply an entry for this section, the hostname of your # If you don't supply an entry for this section, the hostname of your
# Linux-machine will be converted to all-uppercase and used as the servername. # Linux-machine will be converted to all-uppercase and used as the servername.
# #
# -------------------------------------------------------------------------
# Syntax: # Syntax:
# 2 SERVERNAME # 2 SERVERNAME
# #
# SERVERNAME: a name for this nw-server # SERVERNAME: a name for this nw-server
# -------------------------------------------------------------------------
# #
# Example: # Example:
# 2 MARS # 2 MARS # name of the server would be "MARS"
# Section 3: Number of the internal network # =========================================================================
# If you have mars_nwe V > 0.96pl5 and a kernel >= 1.3.60 # Section 3: Number of the internal network (required)
# or the small ipx-kpatch from the examples dir you should use
# internal net and routing.
# #
# NOTE: the internal net number must be _unique_ in your IPX-environment! # If have dealt with the TCP/IP-configuration of your Linux-Box, the term
# "ip-address" may be familiar to you. It's a numer that uniquely
# identifies your machine in the internet.
# As you might already expect, even the IPX-people use a unique number to
# identify each other. Addresses in the IPX-world always consist of a
# 4-byte "network-number" plus a 6-byte "node-number" (remember the
# ip-addresses also use 4-bytes).
# #
# The numbering-rule for ipx-clients is easy: their "address" is the
# external-network of the server they are connected to plus the
# hardware-address of their own ethernet-card (6 byte). As a result of this
# rule, the clients can determine their address automatically (by listening
# to the server and looking at their own ethernet-hardware) and no
# configuration-files on the clients-side have to be maintained. (It would
# really be a nasty thing if you think of very many DOS-clients [remember:
# DOS is an OS where ordinary users can screw up the configuration files].)
#
# For internal routing purposes, a netware-server has an "internal network"
#
# As there is no organisation which regulates the use of network-numbers
# in the IPX-world, you have to run "slist" (under DOS or Linux) to
# determine a number that isn't already used by another server on your
# net. You better double-check and ask the other network administrators
# before using a random value because not all servers might be on-line when
# you "listen" to the net.
#
# A reasonable choice for the internal net-number of your mars_nwe-server
# could be the ip-address of your Linux-Box. It is reasonable because
# ip-addresse are unique and if every nw-administrator uses only this uniqe
# value, potential conflicts will be minimized. Of course this choice is
# no guarantee.
#
# Please note that you have to specify the address of your "internal
# ipx-network" in hexadecimal format (the leading "0x" indicates it).
#
#
# -------------------------------------------------------------------------
# Syntax: # Syntax:
# 3 INTERNAL_NET [NODE] # 3 INTERNAL_NET [NODE]
# #
# INTERNAL_NET: AUTO or 0 for using the ip number as INTERNAL_NET # INTERNAL_NET: the hexadecimal value of your "internal ipx-network". Use
# "0x0" or "auto" to refer to your ip-addresse (it's a kind of
# automagically setup)
# NODE: use "1" if you don't know what this entry is for (optional)
# -------------------------------------------------------------------------
# #
# NODE: 1 (optional) # Example:
# 3 auto 1 # automatic setup
3 auto
# =========================================================================
# Section 4: IPX-devices (strongly recommended)
#
# This section contains information for the ipx-router built into mars_nwe
# and/or the external program "ipxrouted".
# Both processes exchange the ipx-packets between your machine and the rest
# of the world (in other words: their functionallity is essential). Of
# course, to use one of both is already sufficient.
#
# Note for people with other IPX/NCP servers on the net:
# - choose the same frame-type as the other servers use
# - make sure your network-number is not already in use by another
# server (see the output of "slist" under Linux or DOS)
#
# Under Linux, it is possible to let the kernel detect all values
# automatically for you. This is only possible (and only makes sense then)
# if there are other IXP/NCP servers on the same net which are setup
# correctly.
#
#
# -------------------------------------------------------------------------
# Syntax:
# 4 NET_NUMBER DEVICE FRAME TICKS
#
# NET_NUMBER: this number is determined by the router of the physical
# network you're attached to. Use "0x0" to let the
# linux-kernel determine your network number by listening
# on the local network
# DEVICE: the network-interface associated with the NET_NUMBER. Use
# a "*" (star) to automatically setup all devices at once.
# FRAME: the frame-type of the data-packets on your local network.
# Possible values are:
# ethernet_ii
# 802.2
# 802.3 (default)
# snap
# token
# auto automatic detection of the frame-type used
# in your ipx-environment
# TICKS: the time data-packets need to get delivered over a
# certain interface. If your connection goes through several
# routers, the shortest path can be determined by summing up
# all ticks for every route and compare the results.
# (1 tick = 1/18th second)
# -------------------------------------------------------------------------
# #
# Examples: # Examples:
# 3 0xABCDEF99 # use a unique number # 4 0x0 * AUTO 1 # automatic setup
3 AUTO # use ip number as INTERNAL_NET # 4 0x10 eth0 802.3 1 # manual setup
4 0x10 eth0 802.3 1
4 0x0 * AUTO 1
# Section 4: IPX-devices (optional) # =========================================================================
# # Section 5: Saving of ipx-routes (required)
# NOTE for people with other IPX/NCP servers on the net:
# Your network numbers, frames must be the same as at your
# other servers on the same net.
#
# Syntax:
# 4 NET_NUMBER DEVICE FRAME TICKS
#
# NET_NUMBER:
# DEVICE: the network-interface associated with the NET_NUMBER
# FRAME:
# ethernet_ii
# 802.2
# 802.3 (default)
# snap
# token
# auto
# TICKS: ethernet: 1, isdn: 7
#
# Examples:
4 0x10 eth0 802.3 1
# Automatic setup:
4 0x0 * AUTO 1
#
# NOTE: autosetup only works if there are other IXP/NCP servers on
# the same net which are setup correctly, that means: tells us the required
# information about netnumber and frame.
# Section 5: Saving of ipx-routes (optional)
# #
# This entry controls if the information regarding the ipx-routes should be # This entry controls if the information regarding the ipx-routes should be
# saved beyond the livetime of the server. # saved beyond the lifetime of the server.
# You can achieve a small speedup when starting mars_nwe by using this entry.
# #
# -------------------------------------------------------------------------
# Syntax: # Syntax:
# 5 SAVE_FLAG # 5 SAVE_FLAG
# #
# SAVE_FLAG: # SAVE_FLAG:
# 0 don't save routes (default) # 0 don't save routes (default)
# 1 do save routes # 1 do save routes
# Example: # -------------------------------------------------------------------------
5 0 #
5 0
# Section 6: version-spoofing # =========================================================================
# Section 6: version-"spoofing"
# #
# Some clients work better if the server tells that it is a 3.11 Server, # Some clients work better if the server tells that it is a 3.11 Server,
# although many calls (namespace services) of a real 3.11 Server are # although many calls (namespace services) of a real 3.11 Server are
@ -149,46 +238,59 @@
# To test the namespace calls, this entry must be set to > 0 and `config.h' # To test the namespace calls, this entry must be set to > 0 and `config.h'
# must be altered before compiling "mars_nwe". # must be altered before compiling "mars_nwe".
# #
# -------------------------------------------------------------------------
# Syntax: # Syntax:
# 6 SERVER_VERSION # 6 SERVER_VERSION
# #
# SERVER_VERSION: # SERVER_VERSION: the version-number reported to DOS-clients
# 0 Version 2.15 # 0 Version 2.15 (default)
# 1 Version 3.11 # 1 Version 3.11
# 2 Version 3.12 (not implemented yet) # 2 Version 3.12 (not implemented yet)
6 0 # -------------------------------------------------------------------------
#
6 0
# Section 7: password handling (required) # =========================================================================
# Section 7: password handling of DOS-clients (required)
#
# When changing your "mars_nwe"-password from a DOS-client, this client # When changing your "mars_nwe"-password from a DOS-client, this client
# (think of "LOGIN.EXE", "SYSCON.EXE" or "SETPASS.EXE") can encrypt your # (think of "LOGIN.EXE", "SYSCON.EXE" or "SETPASS.EXE") can encrypt your
# password before sending it to the "mars_nwe"-server (this improves # password before sending it to the "mars_nwe"-server (this improves
# security a little bit). # security a little bit).
# In this section you can enforce encryption of user-passwords or allow # In this section you can enforce encryption of user-passwords or allow
# not-encrypted sending of passwords over the net. # not-encrypted sending of passwords over the net.
#
#
# On the Linux-side, passwords will only be stored in encrypted format. # On the Linux-side, passwords will only be stored in encrypted format.
# #
#
# -------------------------------------------------------------------------
# Syntax: # Syntax:
# 7 FLAG # 7 FLAG
# #
# FLAG: # FLAG:
# 0 use only encrypted passwords stuff. # 0 enforce encryption of _all_ passwords by the DOS-client
# the encrypted change password call is not # (disables changing of password from the clients)
# implemented till now, so if you choose this option # 1 as "0", but allow the non-encrypted version of the
# you will not be able to change passwords from # "change password"-routine. (default)
# client size. # 7 allow all non-encrypted stuff but no empty nwe passwords.
# 1 allow the unencrypted change password routine (default). # 8 allow all non-encrypted stuff and also allow empty
# You can use mars_dosutils or an old 2.15 setpass program. # nwe-passwords.
# # 9 use all non-encryted calls + "get crypt key" will allways fail
# 7 allow all unencrypted stuff, no empty nwe passwords. # so the login program will use the old unencryted calls.
# 8 allow all unencrypted stuff, allow empty nwe passwords. # this will *not* work with all clients !! (OS2/client)
# 9 use all unencryted calls + get crypt key will allways fail # -------------------------------------------------------------------------
# so the login program will use the old unencryted calls.
# this will *not* work with all clients !! (OS2/client) 7 1
7 1
# Section 10 + 11 : UID and GID with minimal rights # Section 8: currently not used
# Section 9: currently not used
# Section 10: UID and GID with minimal rights
# =========================================================================
# #
# When loading the netware-drivers in the "autoexec.bat" of your # When loading the netware-drivers in the "autoexec.bat" of your
# DOS-client, you automatically "attach" to a netware-server. # DOS-client, you automatically "attach" to a netware-server.
@ -206,152 +308,238 @@
# `/etc/passwd' and `/etc/group'. Use the number of that user/group # `/etc/passwd' and `/etc/group'. Use the number of that user/group
# for the following entries. # for the following entries.
# #
# -------------------------------------------------------------------------
# Syntax: # Syntax:
# 10 GID # 10 GID
# 11 UID # 11 UID
# Example:
# 10 65534
# 11 65534
# #
# GID numeric number of the group # GID numeric number of the group
# UID numeric number of the user # UID numeric number of the user
10 65534 # -------------------------------------------------------------------------
11 65534 #
# Example:
# 10 65534
# 11 65534
10 65534
11 65534
# =========================================================================
# Section 12: supervisor-login (required) # Section 12: supervisor-login (required)
# #
# The "supervisor" of a nw-server is much like "root" on the Linux-side. # The "supervisor" of a nw-server is much like "root" on the Linux-side.
# #
# Syntax: # Specify a Linux-user that should be mapped to the supervisor of this
# 12 NW_LOGIN LINUX_LOGIN [PASSWORD] # mars_nwe-server.
# To improve security, don't use "root" for this purpose but create a
# seperate administrative account (under Linux) called "nw-adm" or similar.
# #
# NW_LOGIN: the login-name for the "mars_nwe"-server (traditionally, # The nw-user defined in this section will have the mars_nwe internal UID
# this is "SUPERVISOR") # "1" (remember even under Linux "root" must have the special UID "0"), so
# LINUX_LOGIN: the account on the Linux-side associated with the NW_LOGIN # it is not possible to define a supervisor in section 13 (the users
# (to improve security, don't use "root" here) # defined there will get random UIDs).
# PASSWORD: the password for the NW_LOGIN. It must be clear-text but # You _can_ define a user with name "SUPERVISOR" in section 13, but he
# will be encrypted and permanent stored in the # won't really be the "local god" on the "mars_nwe"-server.
# bindery-files, so it can be deleted after the first start # And of course you _can_ define a supervisor with name "GOD" or "ROOT"
# of "nwserv". # in _this_ section, which would only break the traditional naming-scheme
# of the netware-world.
#
#
# -------------------------------------------------------------------------
# Syntax:
# 12 NW_LOGIN LINUX_LOGIN [PASSWORD]
#
# NW_LOGIN: the login-name for the "mars_nwe"-server (traditionally,
# this is "SUPERVISOR")
# LINUX_LOGIN: the account on the Linux-side associated with the NW_LOGIN
# PASSWORD: the password for the NW_LOGIN. It must be clear-text but
# will be encrypted and permanent stored in the
# bindery-files, so it (the password or the whole section, at
# your option) can be deleted after the first start of
"nwserv".
#
# Make sure this file is not world-readable as long
# as the password stands here.
#
# If you leave this field blank when starting "mars_nwe" the
# first time, the supervisor-login will be completely
# disabled. In other words: there is no way to supply the
# supervisor with no password ("null-password").
# -------------------------------------------------------------------------
# #
# Example: # Example:
12 SUPERVISOR root top-secret # 12 SUPERVISOR nw-adm top-secret
12 SUPERVISOR root
# =========================================================================
# Section 13: user-logins (optional) # Section 13: user-logins (optional)
# #
# See section 12 for the syntax. # You can provide mappings from the regular login-names of your Linux-Box
# to "mars_nwe"-logins here.
# Every "mars_nwe"-user _must_ have a login-name on the Linux side (even
# if he can't log in into the account associated with the login-name,
# because you locked it with a "*") in order to "own" files.
# If you specify a Linux-login that doesn't exist (one could think of a
# typo), the user will only have the minimal rights defined in
# sections 10/11.
# #
# Examples: # See section 12 for a description of the syntax.
13 MAR mar mypw #
13 ALF mar - # no password # Unlike in section 12, you can define users with no password.
#
# Example:
# 13 MARTIN martin
# Section 15: read unix users automaticly from passwd into bindery # Section 14: currently not used
# =========================================================================
# Section 15: automatic mapping of logins (decision required)
# #
# If you have a large number of accounts on your Linux-machine, you may
# want to map all Linux-logins automatically to "mars_nwe"-logins.
#
# At this stage this section is only a quick hack to make life a bit
# easier for the administrator.
#
# WARNING: as there is no algorithm to convert the encrypted
# "Linux-passwords" into the encrypted format used by the DOS-clients (and
# therefore "mars_nwe"), you have to supply a common password for all
# automatically mapped users. This is a big security concern and you
# should never make this common password public (and, of course you
# should choose a sufficient "secure" (read: difficult) password).
# Type the common password to grant access to the users login and the
# command "setpass" instead of telling the password to the user.
#
# Only those Linux-logins will handled automatically that don't have a
# "x" or "*" as their encrypted password.
#
#
# -------------------------------------------------------------------------
# Syntax: # Syntax:
# 15 FLAG DEFAULT_PASSWORD # 15 FLAG DEFAULT_PASSWORD
# #
# FLAG: # FLAG:
# 0 off # 0 DON'T map the Linux-logins automatically to
# 1 on # "mars_nwe"-logins (default)
# 99 overwrite existing users. # 1 YES, DO the automatic mapping and provide every login
# # created this way with the common password given with
# DEFAULT_PASSWORD: password for every new inserted user. # "DEFAULT_PASSWORD"
# 99 re-read the logins from /etc/passwd and overwrite even the
# already existing logins from the bindery (this will also
# reset all the passwords to "DEFAULT_PASSWORD")
# #
# DEFAULT_PASSWORD: the common password for all automatically created
# logins (only needed if FLAG is not "0"); everything about
# password in section 12 applies to this.
# -------------------------------------------------------------------------
15 0 top-secret 15 0 top-secret
#
# !!! IMPORTANT !!!
# If you enable this feature you should chose a secure
# password for the users, because all not existent
# mars_nwe users will be inserted into bindery with this password.
# =========================================================================
# Section 16: Tests on startup # Section 16: Tests on startup
# #
16 1 # enable some bindery and sys dir tests/creats after starting. # If you want some sanity checks at startup, set this flag to 1.
# default = 1 # "mars_nwe" will try to create missing directories (with the "right"
# permissions, of course) if you enable this.
#
16 1
# Section 17-20: currently not used
# =========================================================================
# Section 21: print queues (optional) # Section 21: print queues (optional)
# #
# Make the printers connected to your Linux-box accessible from the # Which of the printers connected to your Linux-box should be accessible
# DOS-clients. # from the DOS-clients?
# Multiple entries are allowed. # Multiple entries are allowed.
# #
# -------------------------------------------------------------------------
# Syntax: # Syntax:
# 21 QUEUE_NAME QUEUE_DIR PRINT_COMMAND # 21 QUEUE_NAME QUEUE_DIR PRINT_COMMAND
# #
# QUEUE_NAME: the name of the print queue # QUEUE_NAME: the name of the print queue on client-side (to make it
# QUEUE_DIR: spooling directory for the print-jobs; this directory must # perfectly clear: _not_ the Linux-queue)
# exist before printing # QUEUE_DIR: spooling directory for the print-jobs; this directory must
# exist before printing (_not_ the spooling-directories of
# the Linux-lpd)
# PRINT_COMMAND: command used for serving the print-jobs under Linux # PRINT_COMMAND: command used for serving the print-jobs under Linux
# (see "man lpr" and "man magicfilter" for details) # (see "man lpr" and "man magicfilter" for details)
# #
# Examples: # Examples:
# 21 LASER SYS:/PRINT/L lpr -Plaser # 21 LASER SYS:/PRINT/L lpr -Plaser
# 21 OCTOPUSS SYS:/PRINT/O lpr -Php_deskjet # 21 OCTOPUSS SYS:/PRINT/O lpr -Php_deskjet
# -------------------------------------------------------------------------
# -------------------------------------------------------- # --------------------------------------------------------
# You usally don't want to change anything below this line # You usally don't want to change anything below this line
# -------------------------------------------------------- # --------------------------------------------------------
# Sections 100-106: amount of debug-information # Sections 100-106: amount of debug-information
# #
# FLAG: # FLAG:
# 0 no debug messages # 0 no debug messages
# 1 errors and notes are reported # 1 errors and notes are reported
# .. # 99 maximum debug levels
# 99 maximum debug level
100 0 # debug IPX KERNEL (0 | 1)
101 1 # debug NWSERV
102 0 # debug NCPSERV
103 0 # debug NWCONN
104 0 # debug (start) NWCLIENT
105 0 # debug NWBIND
106 1 # debug NWROUTED
100 0 # debug IPX KERNEL (0 | 1)
101 1 # debug NWSERV
102 0 # debug NCPSERV
103 0 # debug NWCONN
104 0 # debug (start) NWCLIENT
105 0 # debug NWBIND
106 1 # debug NWROUTED
# Sections 200-202: logging of "nwserv" # Sections 200-202: logging of "nwserv"
# #
200 1 # 0 = no logfile and dont daemonize nwserv/nwrouted 200 1 # 0 = no logfile and dont daemonize nwserv/nwrouted
# # 1 = daemonize nwserv/nwrouted and use logfile # 1 = daemonize nwserv/nwrouted and use logfile
201 /tmp/nw.log # filename of logfile 201 /tmp/nw.log # filename of logfile
202 1 # 1=creat new logfile, 0=append to logfile 202 1 # 1=creat new logfile, 0=append to logfile
# Sections 210,211: timing # Sections 210,211: timing
#
210 10 # 1 .. 600 (default 10) seconds after server 210 10 # 1 .. 600 (default 10) seconds after server
# # really goes down after a down command # really goes down after a down command
211 60 # 10 .. 600 (default 60) broadcasts every x seconds 211 60 # 10 .. 600 (default 60) broadcasts every x seconds
# Sections 300-302: loging of routing-information # Sections 300-302: loging of routing-information
#
300 1 # > 0 print routing info to file every x broadcasts. 300 1 # > 0 print routing info to file every x broadcasts.
# # ( normally minutes ) # ( normally minutes )
301 /tmp/nw.routes # filename of logfile 301 /tmp/nw.routes # filename of logfile
302 1 # 1 = creat new routing info file 302 1 # 1 = creat new routing info file
# # 0 = append to this file # 0 = append to this file
# Section 310: watchdogs # Section 310: watchdogs
#
310 7 # send wdog's only to device net < x ticks. 310 7 # send wdog's only to device net < x ticks.
# 0 = allways send wdogs. < 0 = never send wdogs # 0 = allways send wdogs. < 0 = never send wdogs
#
# Section 400: # Section 400:
# station file for special handling of stations. # station file for special handling of stations.
#
400 /etc/nwserv.stations # for syntax see file in the examples directory. 400 /etc/nwserv.stations # for syntax see file in the examples directory.
# Section 401: nearest server # Section 401: nearest server
# #
# for special handling of the 'get nearest server request'. # for special handling of the 'get nearest server request'.
401 0 # 0 = ignore entry 400, get nearest response ever enabled. 401 0 # 0 = ignore entry 400, get nearest response ever enabled.
# 1 = 400 are excludes, get nearest response normally enabled. # 1 = 400 are excludes, get nearest response normally enabled.
# 2 = 400 are includes, get nearest response normally disabled. # 2 = 400 are includes, get nearest response normally disabled.

357
examples/nw.ini.old Normal file
View File

@ -0,0 +1,357 @@
#
# This is the configuration-file for "mars_nwe", the free netware-emulator
# for Linux.
#
# last change: 13-May-96
#
# Syntax of this config-file:
# - everything after the "#" is ignored, so it is used to
# make comment-lines
# - entries _must_ begin with a number, indicating the section
# they belong to
# - hexadecimal values are prepended with "0x"
#
# All examples are verbatim.
# Section 1: volumes (required)
#
# In this section you list all directories accessible via "mars_nwe".
# To be more specific: a mapping from Linux-directories to mars_nwe-volumes
# is done. (Volumes are the beasts you can map to drive letters under DOS
# using "map.exe").
#
# Linux-directory mars_nwe-volume map.exe DOS-Drive
# /var/local/nwe/SYS -------> SYS -------------> W:
#
# More than one entry is possible in this section.
# The maximum number of volumes is a compile-time option that must be
# specified in `config.h' before compiling mars_nwe.
#
# Please note that at least the volume "SYS" must be defined and it must
# contain the following sub-directories: LOGIN, PUBLIC, SYSTEM, MAIL.
# See the installation-instructions in the doc-directory for more infos.
#
# Syntax:
# 1 VOLUMENAME DIRECTORY OPTIONS
#
# VOLUMENAME: the name of the mars_nwe-volume (max. 8 characters)
# DIRECTORY: the directory on your Linux-system associated with that
# volume; use the special name "~" to refer to the users
# individual home-directory
#
# OPTIONS: none or some of the following characters (without a seperator)
# k allow lowercase-filenames (if you don't set this, all
# files _must_ be upper-case)
# m removable volume (e.g. cd-roms)
# o volume has only one filesystem/device/namespace
# this is for filesystems with high inode > 0xFFFFFFF.
# because for namespace services mars_nwe normally use the
# first 4 bit of 32 bit inode to distinguish
# between several devices/namespaces for one volume.
# p "PIPE"-filesystem. All files are pipe commands.
# See `doc/PIPE-FS'.
# r readonly volume. Free disk space will also return 0.
#
# examples:
1 SYS /u3/SYS/ # SYS upper-case filenames
1 CDROM /cdrom km # lowercase filenames, removable
1 HOME ~ k # users HOME directory, lowercase
# Section 2: servername (optional)
#
# The servername is the name under which this server will show up when
# using tools like "slist" (server-list).
#
# If you don't supply an entry for this section, the hostname of your
# Linux-machine will be converted to all-uppercase and used as the servername.
#
# Syntax:
# 2 SERVERNAME
#
# SERVERNAME: a name for this nw-server
#
# Example:
# 2 MARS
# Section 3: Number of the internal network
# If you have mars_nwe V > 0.96pl5 and a kernel >= 1.3.60
# or the small ipx-kpatch from the examples dir you should use
# internal net and routing.
#
# NOTE: the internal net number must be _unique_ in your IPX-environment!
#
# Syntax:
# 3 INTERNAL_NET [NODE]
#
# INTERNAL_NET: AUTO or 0 for using the ip number as INTERNAL_NET
#
# NODE: 1 (optional)
#
# Examples:
# 3 0xABCDEF99 # use a unique number
3 AUTO # use ip number as INTERNAL_NET
# Section 4: IPX-devices (optional)
#
# NOTE for people with other IPX/NCP servers on the net:
# Your network numbers, frames must be the same as at your
# other servers on the same net.
#
# Syntax:
# 4 NET_NUMBER DEVICE FRAME TICKS
#
# NET_NUMBER:
# DEVICE: the network-interface associated with the NET_NUMBER
# FRAME:
# ethernet_ii
# 802.2
# 802.3 (default)
# snap
# token
# auto
# TICKS: ethernet: 1, isdn: 7
#
# Examples:
4 0x10 eth0 802.3 1
# Automatic setup:
4 0x0 * AUTO 1
#
# NOTE: autosetup only works if there are other IXP/NCP servers on
# the same net which are setup correctly, that means: tells us the required
# information about netnumber and frame.
# Section 5: Saving of ipx-routes (optional)
#
# This entry controls if the information regarding the ipx-routes should be
# saved beyond the livetime of the server.
# You can achieve a small speedup when starting mars_nwe by using this entry.
#
# Syntax:
# 5 SAVE_FLAG
#
# SAVE_FLAG:
# 0 don't save routes (default)
# 1 do save routes
# Example:
5 0
# Section 6: version-spoofing
#
# Some clients work better if the server tells that it is a 3.11 Server,
# although many calls (namespace services) of a real 3.11 Server are
# missing yet.
# To test the namespace calls, this entry must be set to > 0 and `config.h'
# must be altered before compiling "mars_nwe".
#
# Syntax:
# 6 SERVER_VERSION
#
# SERVER_VERSION:
# 0 Version 2.15
# 1 Version 3.11
# 2 Version 3.12 (not implemented yet)
6 0
# Section 7: password handling (required)
# When changing your "mars_nwe"-password from a DOS-client, this client
# (think of "LOGIN.EXE", "SYSCON.EXE" or "SETPASS.EXE") can encrypt your
# password before sending it to the "mars_nwe"-server (this improves
# security a little bit).
# In this section you can enforce encryption of user-passwords or allow
# not-encrypted sending of passwords over the net.
# On the Linux-side, passwords will only be stored in encrypted format.
#
# Syntax:
# 7 FLAG
#
# FLAG:
# 0 use only encrypted passwords stuff.
# the encrypted change password call is not
# implemented till now, so if you choose this option
# you will not be able to change passwords from
# client size.
# 1 allow the unencrypted change password routine (default).
# You can use mars_dosutils or an old 2.15 setpass program.
#
# 7 allow all unencrypted stuff, no empty nwe passwords.
# 8 allow all unencrypted stuff, allow empty nwe passwords.
# 9 use all unencryted calls + get crypt key will allways fail
# so the login program will use the old unencryted calls.
# this will *not* work with all clients !! (OS2/client)
7 1
# Section 10 + 11 : UID and GID with minimal rights
#
# When loading the netware-drivers in the "autoexec.bat" of your
# DOS-client, you automatically "attach" to a netware-server.
# As a result, a new drive-letter is accessible under DOS, usally
# containing the programs "login.exe" and "slist.exe".
# Because you haven't logged in, nothing else of the netware-server
# will be visible to you. All actions requested from the DOS-client
# will be done with the following UID and GID on the Linux-side in this
# case.
# To achieve some level of security, the user/group asscociated with
# the UID and GID should only have _read_ rights on the files visible,
# _nothing_ else.
#
# On most Linux-systems, there is a user and group "nobody" defined in
# `/etc/passwd' and `/etc/group'. Use the number of that user/group
# for the following entries.
#
# Syntax:
# 10 GID
# 11 UID
# Example:
# 10 65534
# 11 65534
#
# GID numeric number of the group
# UID numeric number of the user
10 65534
11 65534
# Section 12: supervisor-login (required)
#
# The "supervisor" of a nw-server is much like "root" on the Linux-side.
#
# Syntax:
# 12 NW_LOGIN LINUX_LOGIN [PASSWORD]
#
# NW_LOGIN: the login-name for the "mars_nwe"-server (traditionally,
# this is "SUPERVISOR")
# LINUX_LOGIN: the account on the Linux-side associated with the NW_LOGIN
# (to improve security, don't use "root" here)
# PASSWORD: the password for the NW_LOGIN. It must be clear-text but
# will be encrypted and permanent stored in the
# bindery-files, so it can be deleted after the first start
# of "nwserv".
#
# Example:
12 SUPERVISOR root top-secret
# Section 13: user-logins (optional)
#
# See section 12 for the syntax.
#
# Examples:
13 MAR mar mypw
13 ALF mar - # no password
# Section 15: read unix users automaticly from passwd into bindery
#
# Syntax:
# 15 FLAG DEFAULT_PASSWORD
#
# FLAG:
# 0 off
# 1 on
# 99 overwrite existing users.
#
# DEFAULT_PASSWORD: password for every new inserted user.
#
15 0 top-secret
#
# !!! IMPORTANT !!!
# If you enable this feature you should chose a secure
# password for the users, because all not existent
# mars_nwe users will be inserted into bindery with this password.
# Section 16: Tests on startup
#
16 1 # enable some bindery and sys dir tests/creats after starting.
# default = 1
# Section 21: print queues (optional)
#
# Make the printers connected to your Linux-box accessible from the
# DOS-clients.
# Multiple entries are allowed.
#
# Syntax:
# 21 QUEUE_NAME QUEUE_DIR PRINT_COMMAND
#
# QUEUE_NAME: the name of the print queue
# QUEUE_DIR: spooling directory for the print-jobs; this directory must
# exist before printing
# PRINT_COMMAND: command used for serving the print-jobs under Linux
# (see "man lpr" and "man magicfilter" for details)
#
# Examples:
# 21 LASER SYS:/PRINT/L lpr -Plaser
# 21 OCTOPUSS SYS:/PRINT/O lpr -Php_deskjet
# --------------------------------------------------------
# You usally don't want to change anything below this line
# --------------------------------------------------------
# Sections 100-106: amount of debug-information
#
# FLAG:
# 0 no debug messages
# 1 errors and notes are reported
# ..
# 99 maximum debug level
100 0 # debug IPX KERNEL (0 | 1)
101 1 # debug NWSERV
102 0 # debug NCPSERV
103 0 # debug NWCONN
104 0 # debug (start) NWCLIENT
105 0 # debug NWBIND
106 1 # debug NWROUTED
# Sections 200-202: logging of "nwserv"
#
200 1 # 0 = no logfile and dont daemonize nwserv/nwrouted
# # 1 = daemonize nwserv/nwrouted and use logfile
201 /tmp/nw.log # filename of logfile
202 1 # 1=creat new logfile, 0=append to logfile
# Sections 210,211: timing
#
210 10 # 1 .. 600 (default 10) seconds after server
# # really goes down after a down command
211 60 # 10 .. 600 (default 60) broadcasts every x seconds
# Sections 300-302: loging of routing-information
#
300 1 # > 0 print routing info to file every x broadcasts.
# # ( normally minutes )
301 /tmp/nw.routes # filename of logfile
302 1 # 1 = creat new routing info file
# # 0 = append to this file
# Section 310: watchdogs
#
310 7 # send wdog's only to device net < x ticks.
# 0 = allways send wdogs. < 0 = never send wdogs
#
# Section 400:
# station file for special handling of stations.
#
400 /etc/nwserv.stations # for syntax see file in the examples directory.
# Section 401: nearest server
#
# for special handling of the 'get nearest server request'.
401 0 # 0 = ignore entry 400, get nearest response ever enabled.
# 1 = 400 are excludes, get nearest response normally enabled.
# 2 = 400 are includes, get nearest response normally disabled.

View File

@ -1,5 +1,5 @@
#if 0 #if 0
#makefile.unx 22-Mar-96 #makefile.unx 16-May-96
#endif #endif
VPATH=$(V_VPATH) VPATH=$(V_VPATH)
@ -9,7 +9,7 @@ C=.c
V_H=0 V_H=0
V_L=97 V_L=97
P_L=4 P_L=5
#define D_P_L 1 #define D_P_L 1
DISTRIB=mars_nwe DISTRIB=mars_nwe

View File

@ -460,9 +460,11 @@ void send_server_response(int respond_typ,
int ticks=99; int ticks=99;
int hops=15; int hops=15;
int entry = -1; int entry = -1;
int to_internal = (!no_internal) int to_internal = (!no_internal)
&& (GET_BE32(to_addr->net) == internal_net) && (GET_BE32(to_addr->net) == internal_net)
&& (GET_BE16(to_addr->sock) != SOCK_SAP); && (GET_BE16(to_addr->sock) != SOCK_SAP);
while (++j < anz_servers) { while (++j < anz_servers) {
NW_SERVERS *nw=nw_servers[j]; NW_SERVERS *nw=nw_servers[j];
if (nw->typ == styp && nw->name && *(nw->name)) { if (nw->typ == styp && nw->name && *(nw->name)) {
@ -480,7 +482,9 @@ void send_server_response(int respond_typ,
} }
} }
} }
#if 0 /* removed: 16-May-96 */
if (!to_internal) if (!to_internal)
#endif
send_sap_to_addr(entry, hops+1, ticks, respond_typ, to_addr); send_sap_to_addr(entry, hops+1, ticks, respond_typ, to_addr);
} }

26
tools.c
View File

@ -164,14 +164,22 @@ int get_ini_entry(FILE *f, int entry, uint8 *str, int strsize)
int do_open = ((FILE*) NULL == f); int do_open = ((FILE*) NULL == f);
if (do_open) f = open_nw_ini(); if (do_open) f = open_nw_ini();
if ((FILE*) NULL != f) { if ((FILE*) NULL != f) {
while (fgets((char*)buff, sizeof(buff), f) != NULL){ while (fgets(buff, sizeof(buff), f) != NULL){
int len = strlen(buff); int len = strlen(buff);
char *ppi = NULL; char *ppi = NULL;
char *ppe = NULL; char *ppe = NULL;
int se = 0; char *p_buff = buff;
int j = -1; int se = 0;
int j = -1;
char *pp;
while (len && (*p_buff == '\t' || *p_buff == 32)) {
--len;
p_buff++;
}
pp = p_buff;
while (++j < len){ while (++j < len){
char *pp=(buff+j);
if (*pp == '#' || *pp == '\r' || *pp == '\n') { if (*pp == '#' || *pp == '\r' || *pp == '\n') {
*pp = '\0'; *pp = '\0';
len = j; len = j;
@ -182,11 +190,13 @@ int get_ini_entry(FILE *f, int entry, uint8 *str, int strsize)
if ((!ppi) && se) ppi = pp; if ((!ppi) && se) ppi = pp;
ppe=pp; ppe=pp;
} }
pp++;
} }
if (len > se+1 && se > 0 && se < 4 && ppi){ if (len > se+1 && se > 0 && se < 4 && ppi){
char sx[10]; char sx[10];
int fentry; int fentry;
strmaxcpy((uint8*)sx, (uint8*)buff, se); strmaxcpy((uint8*)sx, (uint8*)p_buff, se);
fentry = atoi(sx); fentry = atoi(sx);
if (fentry > 0 && ((!entry) || entry == fentry)) { if (fentry > 0 && ((!entry) || entry == fentry)) {
if (ppe) *(ppe+1) = '\0'; if (ppe) *(ppe+1) = '\0';