Remove support for the IPX and NCP protocols, and for NWFS.
authorSascha Wildner <saw@online.de>
Sun, 20 Apr 2014 14:38:10 +0000 (16:38 +0200)
committerSascha Wildner <saw@online.de>
Sun, 20 Apr 2014 14:52:21 +0000 (16:52 +0200)
This was on the list for a longer time now. FreeBSD removed it
recently, too. Their commit msg has some more info:

"IPX was a network transport protocol in Novell's NetWare network
 operating system from late 80s and then 90s. The NetWare itself
 switched to TCP/IP as default transport in 1998. Later, in this
 century the Novell Open Enterprise Server became successor of
 Novell NetWare. The last release that claimed to still support
 IPX was OES 2 in 2007. Routing equipment vendors (e.g. Cisco)
 discontinued support for IPX in 2011."

The commit removes support for NCP (NetWare Core Protocol) and
NWFS (NetWare File System) along with it (both gone from FreeBSD
too since a while).

212 files changed:
Makefile_upgrade.inc
UPDATING
etc/defaults/rc.conf
etc/mtree/BSD.include.dist
etc/mtree/BSD.usr.dist
etc/network.subr
etc/pccard_ether
etc/rc.d/Makefile
etc/rc.d/ipxrouted [deleted file]
etc/rc.d/netif
etc/rc.d/routing
gnu/usr.bin/groff/tmac/fr.ISO8859-1
gnu/usr.bin/groff/tmac/mdoc.local
gnu/usr.bin/groff/tmac/ru.KOI8-R
include/Makefile
lib/Makefile
lib/compat/i386/Makefile
lib/compat/i386/libipx.so.2.20050501.REL1_2 [deleted file]
lib/compat/i386/libncp.so.1.20050501.REL1_2 [deleted file]
lib/libipx/Makefile [deleted file]
lib/libipx/ipx.3 [deleted file]
lib/libipx/ipx_addr.c [deleted file]
lib/libipx/ipx_ntoa.c [deleted file]
lib/libncp/CREDITS [deleted file]
lib/libncp/Makefile [deleted file]
lib/libncp/ipx.c [deleted file]
lib/libncp/ipxsap.h [deleted file]
lib/libncp/ncp_mod.h [deleted file]
lib/libncp/ncpl_bind.c [deleted file]
lib/libncp/ncpl_conn.c [deleted file]
lib/libncp/ncpl_crypt.c [deleted file]
lib/libncp/ncpl_file.c [deleted file]
lib/libncp/ncpl_misc.c [deleted file]
lib/libncp/ncpl_msg.c [deleted file]
lib/libncp/ncpl_net.c [deleted file]
lib/libncp/ncpl_nls.c [deleted file]
lib/libncp/ncpl_queue.c [deleted file]
lib/libncp/ncpl_rcfile.c [deleted file]
lib/libncp/ncpl_rpc.c [deleted file]
lib/libncp/ncpl_subr.c [deleted file]
lib/libncp/sap.c [deleted file]
lib/libposix1e/acl.3
sbin/Makefile
sbin/ifconfig/Makefile
sbin/ifconfig/af_ipx.c [deleted file]
sbin/ifconfig/ifconfig.8
sbin/ifconfig/ifconfig.c
sbin/ifconfig/ifconfig.h
sbin/mount/mount.8
sbin/mount_nwfs/Makefile [deleted file]
sbin/mount_nwfs/mount_nwfs.8 [deleted file]
sbin/mount_nwfs/mount_nwfs.c [deleted file]
sbin/mount_ufs/mount_ufs.8
sbin/route/route.8
sbin/route/show.c
share/examples/nwclient/dot.nwfsrc [deleted file]
share/examples/nwclient/nwfs.sh.sample [deleted file]
share/initrd/sbin/Makefile
share/man/man4/Makefile
share/man/man4/ef.4 [deleted file]
share/man/man4/netgraph.4
share/man/man4/ng_iface.4
share/man/man5/rc.conf.5
share/man/man7/hier.7
share/man/man9/acl.9
share/mk/bsd.libnames.mk
sys/boot/dloader/loader-bootp.conf
sys/boot/dloader/loader.conf
sys/conf/files
sys/conf/options
sys/config/LINT
sys/config/LINT64
sys/dev/netif/de/if_de.c
sys/dev/netif/fe/if_fe.c
sys/dev/netif/fe/if_fe_pccard.c
sys/emulation/linux/linux_stats.c
sys/kern/subr_diskiocom.c
sys/net/Makefile
sys/net/ef/Makefile [deleted file]
sys/net/ef/if_ef.c [deleted file]
sys/net/if_ethersubr.c
sys/net/if_loop.c
sys/net/netisr.h
sys/net/ppp/if_ppp.c
sys/net/ppp_layer/Makefile
sys/net/rtsock.c
sys/net/sppp/Makefile
sys/net/sppp/if_spppsubr.c
sys/net/tun/Makefile
sys/net/tun/if_tun.c
sys/netgraph/cisco/ng_cisco.c
sys/netgraph/iface/Makefile
sys/netgraph/iface/ng_iface.c
sys/netgraph/iface/ng_iface.h
sys/netgraph/ksocket/ng_ksocket.c
sys/netgraph7/cisco/ng_cisco.c
sys/netgraph7/iface/Makefile
sys/netgraph7/iface/ng_iface.c
sys/netgraph7/iface/ng_iface.h
sys/netgraph7/ksocket/ng_ksocket.c
sys/netinet/in_proto.c
sys/netproto/802_11/wlan/Makefile
sys/netproto/802_11/wlan/ieee80211_ioctl.c
sys/netproto/Makefile
sys/netproto/ipx/README [deleted file]
sys/netproto/ipx/ipx.c [deleted file]
sys/netproto/ipx/ipx.h [deleted file]
sys/netproto/ipx/ipx_cksum.c [deleted file]
sys/netproto/ipx/ipx_if.h [deleted file]
sys/netproto/ipx/ipx_input.c [deleted file]
sys/netproto/ipx/ipx_ip.c [deleted file]
sys/netproto/ipx/ipx_ip.h [deleted file]
sys/netproto/ipx/ipx_outputfl.c [deleted file]
sys/netproto/ipx/ipx_pcb.c [deleted file]
sys/netproto/ipx/ipx_pcb.h [deleted file]
sys/netproto/ipx/ipx_proto.c [deleted file]
sys/netproto/ipx/ipx_tun.c [deleted file]
sys/netproto/ipx/ipx_usrreq.c [deleted file]
sys/netproto/ipx/ipx_var.h [deleted file]
sys/netproto/ipx/spx.h [deleted file]
sys/netproto/ipx/spx_debug.c [deleted file]
sys/netproto/ipx/spx_debug.h [deleted file]
sys/netproto/ipx/spx_timer.h [deleted file]
sys/netproto/ipx/spx_usrreq.c [deleted file]
sys/netproto/ipx/spx_var.h [deleted file]
sys/netproto/ncp/Makefile [deleted file]
sys/netproto/ncp/ncp.h [deleted file]
sys/netproto/ncp/ncp_cfg.h [deleted file]
sys/netproto/ncp/ncp_conn.c [deleted file]
sys/netproto/ncp/ncp_conn.h [deleted file]
sys/netproto/ncp/ncp_crypt.c [deleted file]
sys/netproto/ncp/ncp_file.h [deleted file]
sys/netproto/ncp/ncp_lib.h [deleted file]
sys/netproto/ncp/ncp_login.c [deleted file]
sys/netproto/ncp/ncp_mod.c [deleted file]
sys/netproto/ncp/ncp_ncp.c [deleted file]
sys/netproto/ncp/ncp_ncp.h [deleted file]
sys/netproto/ncp/ncp_nls.c [deleted file]
sys/netproto/ncp/ncp_nls.h [deleted file]
sys/netproto/ncp/ncp_rcfile.h [deleted file]
sys/netproto/ncp/ncp_rq.c [deleted file]
sys/netproto/ncp/ncp_rq.h [deleted file]
sys/netproto/ncp/ncp_sock.c [deleted file]
sys/netproto/ncp/ncp_sock.h [deleted file]
sys/netproto/ncp/ncp_subr.c [deleted file]
sys/netproto/ncp/ncp_subr.h [deleted file]
sys/netproto/ncp/ncp_user.h [deleted file]
sys/netproto/ncp/nwerror.h [deleted file]
sys/netproto/smb/netbios.h
sys/platform/pc32/i386/machdep.c
sys/platform/pc64/x86_64/machdep.c
sys/platform/vkernel/i386/cpu_regs.c
sys/platform/vkernel64/x86_64/cpu_regs.c
sys/sys/acl.h
sys/sys/param.h
sys/sys/priv.h
sys/sys/vfscache.h
sys/vfs/Makefile
sys/vfs/nwfs/Makefile [deleted file]
sys/vfs/nwfs/nwfs.h [deleted file]
sys/vfs/nwfs/nwfs_io.c [deleted file]
sys/vfs/nwfs/nwfs_ioctl.c [deleted file]
sys/vfs/nwfs/nwfs_mount.h [deleted file]
sys/vfs/nwfs/nwfs_node.c [deleted file]
sys/vfs/nwfs/nwfs_node.h [deleted file]
sys/vfs/nwfs/nwfs_subr.c [deleted file]
sys/vfs/nwfs/nwfs_subr.h [deleted file]
sys/vfs/nwfs/nwfs_vfsops.c [deleted file]
sys/vfs/nwfs/nwfs_vnops.c [deleted file]
sys/vfs/smbfs/Makefile
usr.bin/Makefile
usr.bin/kdump/mkioctls
usr.bin/ncplist/Makefile [deleted file]
usr.bin/ncplist/ncplist.1 [deleted file]
usr.bin/ncplist/ncplist.c [deleted file]
usr.bin/ncplogin/Makefile [deleted file]
usr.bin/ncplogin/ncplogin.1 [deleted file]
usr.bin/ncplogin/ncplogin.c [deleted file]
usr.bin/ncplogin/ncplogout.1 [deleted file]
usr.bin/netstat/Makefile
usr.bin/netstat/if.c
usr.bin/netstat/ipx.c [deleted file]
usr.bin/netstat/main.c
usr.bin/netstat/netstat.1
usr.bin/netstat/netstat.h
usr.bin/netstat/route.c
usr.sbin/IPXrouted/IPXrouted.8 [deleted file]
usr.sbin/IPXrouted/Makefile [deleted file]
usr.sbin/IPXrouted/af.c [deleted file]
usr.sbin/IPXrouted/af.h [deleted file]
usr.sbin/IPXrouted/defs.h [deleted file]
usr.sbin/IPXrouted/if.c [deleted file]
usr.sbin/IPXrouted/input.c [deleted file]
usr.sbin/IPXrouted/interface.h [deleted file]
usr.sbin/IPXrouted/main.c [deleted file]
usr.sbin/IPXrouted/output.c [deleted file]
usr.sbin/IPXrouted/protocol.h [deleted file]
usr.sbin/IPXrouted/sap.h [deleted file]
usr.sbin/IPXrouted/sap_input.c [deleted file]
usr.sbin/IPXrouted/sap_output.c [deleted file]
usr.sbin/IPXrouted/sap_tables.c [deleted file]
usr.sbin/IPXrouted/startup.c [deleted file]
usr.sbin/IPXrouted/table.h [deleted file]
usr.sbin/IPXrouted/tables.c [deleted file]
usr.sbin/IPXrouted/timer.c [deleted file]
usr.sbin/IPXrouted/trace.c [deleted file]
usr.sbin/IPXrouted/trace.h [deleted file]
usr.sbin/Makefile
usr.sbin/pppd/Makefile
usr.sbin/pppd/ipxcp.c [deleted file]
usr.sbin/pppd/ipxcp.h [deleted file]
usr.sbin/pppd/sys-bsd.c

index 8bf32b1..8673642 100644 (file)
@@ -2554,6 +2554,52 @@ TO_REMOVE+=/usr/lib/libprop.so.3
 TO_REMOVE+=/usr/lib/libsbuf.so.3
 TO_REMOVE+=/usr/lib/libutil.so.4
 TO_REMOVE+=/usr/lib/libz.so.3
+TO_REMOVE+=/boot/kernel/if_ef.ko
+TO_REMOVE+=/boot/kernel/ncp.ko
+TO_REMOVE+=/boot/kernel/nwfs.ko
+TO_REMOVE+=/etc/rc.d/ipxrouted
+TO_REMOVE+=/lib/libipx.so.3
+TO_REMOVE+=/lib/libncp.so.2
+TO_REMOVE+=/sbin/mount_nwfs
+TO_REMOVE+=/usr/bin/ncplist
+TO_REMOVE+=/usr/bin/ncplogin
+TO_REMOVE+=/usr/bin/ncplogout
+TO_REMOVE+=/usr/include/netipx
+TO_REMOVE+=/usr/include/netncp
+TO_REMOVE+=/usr/include/netproto/ipx
+TO_REMOVE+=/usr/include/netproto/ncp
+TO_REMOVE+=/usr/include/nwfs
+TO_REMOVE+=/usr/include/vfs/nwfs
+TO_REMOVE+=/usr/lib/compat/libipx.so.2
+TO_REMOVE+=/usr/lib/compat/libncp.so.1
+TO_REMOVE+=/usr/lib/libipx.a
+TO_REMOVE+=/usr/lib/libipx.so
+TO_REMOVE+=/usr/lib/libncp.a
+TO_REMOVE+=/usr/lib/libncp.so
+TO_REMOVE+=/usr/lib/profile/libipx.a
+TO_REMOVE+=/usr/lib/profile/libncp.a
+TO_REMOVE+=/usr/sbin/IPXrouted
+TO_REMOVE+=/usr/share/examples/nwclient
+TO_REMOVE+=/usr/share/man/cat1/ncplist.1.gz
+TO_REMOVE+=/usr/share/man/man1/ncplist.1.gz
+TO_REMOVE+=/usr/share/man/cat1/ncplogin.1.gz
+TO_REMOVE+=/usr/share/man/man1/ncplogin.1.gz
+TO_REMOVE+=/usr/share/man/cat1/ncplogout.1.gz
+TO_REMOVE+=/usr/share/man/man1/ncplogout.1.gz
+TO_REMOVE+=/usr/share/man/cat3/ipx.3.gz
+TO_REMOVE+=/usr/share/man/man3/ipx.3.gz
+TO_REMOVE+=/usr/share/man/cat3/ipx_addr.3.gz
+TO_REMOVE+=/usr/share/man/man3/ipx_addr.3.gz
+TO_REMOVE+=/usr/share/man/cat3/ipx_ntoa.3.gz
+TO_REMOVE+=/usr/share/man/man3/ipx_ntoa.3.gz
+TO_REMOVE+=/usr/share/man/cat4/ef.4.gz
+TO_REMOVE+=/usr/share/man/man4/ef.4.gz
+TO_REMOVE+=/usr/share/man/cat4/if_ef.4.gz
+TO_REMOVE+=/usr/share/man/man4/if_ef.4.gz
+TO_REMOVE+=/usr/share/man/cat8/IPXrouted.8.gz
+TO_REMOVE+=/usr/share/man/man8/IPXrouted.8.gz
+TO_REMOVE+=/usr/share/man/cat8/mount_nwfs.8.gz
+TO_REMOVE+=/usr/share/man/man8/mount_nwfs.8.gz
 
 .if ${MACHINE_ARCH} == "x86_64"
 TO_REMOVE+=/usr/sbin/stlstats
index 36d813a..9e98e49 100644 (file)
--- a/UPDATING
+++ b/UPDATING
 +         UPGRADING DRAGONFLY FROM 3.6 TO LATER VERSIONS                +
 +-----------------------------------------------------------------------+
 
+IPX, NCP AND NWFS SUPPORT DROPPED
+---------------------------------
+
+Support for the IPX and NCP network protocols and for mouting NetWare
+file systems has been dropped.
+
+INITRD IMAGES NOW INSTALLED BY DEFAULT
+--------------------------------------
+
+An initial ramdisk image is now installed in /boot/kernel/initrd.img.gz
+
+Older images installed under the file name of initrd.img will be removed
+automatically by the make upgrade process.
+
 USB4BSD IS NOW THE DEFAULT USB STACK
 ------------------------------------
 
@@ -25,14 +39,6 @@ ISA support has been dropped from the following drivers: adv(4), an(4),
 ar(4), cs(4), digi(4), ed(4), ep(4), ex(4), fe(4), lnc(4), sbni(4),
 si(4), sn(4), and stg(4).
 
-INITRD IMAGES NOW INSTALLED BY DEFAULT
---------------------------------------
-
-An initial ramdisk image is now installed in /boot/kernel/initrd.img.gz
-
-Older images installed under the file name of initrd.img will be removed
-automatically by the make upgrade process.
-
 +-----------------------------------------------------------------------+
 +         UPGRADING DRAGONFLY FROM 3.4 TO LATER VERSIONS                +
 +-----------------------------------------------------------------------+
index 80dc52d..e4f8bf7 100644 (file)
@@ -41,7 +41,7 @@ local_startup="/usr/local/etc/rc.d /usr/pkg/etc/rc.d"
 script_name_sep=" "    # Change if your startup scripts' names contain spaces
 rc_conf_files="/etc/rc.conf /etc/rc.conf.local"
 fsck_y_enable="NO"     # Set to YES to do fsck -y if the initial preen fails.
-netfs_types="nfs:NFS smbfs:SMB portalfs:PORTAL nwfs:NWFS" # Net filesystems.
+netfs_types="nfs:NFS smbfs:SMB portalfs:PORTAL" # Net filesystems.
 extra_netfs_types="NO" # List of network extra filesystem types for delayed
                        # mount at startup (or NO).
 devfs_config_files="/etc/defaults/devfs.conf /etc/devfs.conf"
@@ -100,7 +100,6 @@ cloned_interfaces=""                # List of cloned network interfaces to create.
 #cloned_interfaces="gif0 gif1 gif2 gif3" # Pre-cloning GENERIC config.
 ifconfig_lo0="inet 127.0.0.1"  # default loopback device configuration.
 #ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry.
-#ifconfig_ed0_ipx="ipx 0x00010010"     # Sample IPX address family entry.
 #ifconfig_fxp0_name="net0"     # Change interface name from fxp0 to net0.
 #
 # If you have any sppp(4) interfaces above, you might also want to set
@@ -218,9 +217,6 @@ router_program="/sbin/routed"               # Name of routing daemon to use if enabled.
 router_flags="-q"              # Flags for routing daemon.
 mrouted_enable="NO"            # Do multicast routing (see /etc/mrouted.conf).
 mrouted_flags=""               # Flags for multicast routing daemon.
-ipxgateway_enable="NO"         # Set to YES to enable IPX routing.
-ipxrouted_enable="NO"          # Set to YES to run the IPX routing daemon.
-ipxrouted_flags=""             # Flags for IPX routing daemon.
 arpproxy_all="NO"              # replaces obsolete kernel option ARP_PROXYALL.
 forward_sourceroute="NO"       # do source routing (only if gateway_enable is set to "YES")
 accept_sourceroute="NO"                # accept source routed packets to us
index 49dca75..7c51d23 100644 (file)
         ..
         ipsec
         ..
-        ipx
-        ..
         key
         ..
         mpls
         ..
         natm
         ..
-        ncp
-        ..
         smb
         ..
     ..
         ..
         ntfs
         ..
-        nwfs
-        ..
         puffs
         ..
         udf
index ba91f72..e56450a 100644 (file)
             ..
             netgraph
             ..
-            nwclient
-            ..
             perfmon
             ..
             pf
index 4d4261c..1f603aa 100644 (file)
@@ -23,7 +23,6 @@
 # SUCH DAMAGE.
 #
 # $FreeBSD: src/etc/network.subr,v 1.163 2005/06/30 04:52:47 brooks Exp $
-# $DragonFly: src/etc/network.subr,v 1.7 2008/03/15 10:13:37 hasso Exp $
 #
 
 #
@@ -327,52 +326,6 @@ gif_up() {
        esac
 }
 
-#
-# ipx_up ifn
-# Configure any IPX addresses for interface $ifn. Returns 0 if IPX
-# arguments were found and configured; returns 1 otherwise.
-#
-ipx_up()
-{
-       ifn="$1"
-       eval ifconfig_args=\$ifconfig_${ifn}_ipx
-       if [ -n "${ifconfig_args}" ]; then
-               ifconfig ${ifn} ${ifconfig_args}
-               return 0
-       fi
-       return 1
-}
-
-# ipx_down ifn
-#      Remove IPX addresses for interface $ifn. Returns 0 if IPX
-#      addresses were found and unconfigured. It returns 1, otherwise.
-#
-ipx_down()
-{
-       [ -z "$1" ] && return 1
-       _ifs="^"
-       _ret=1
-
-       ipxList="`ifconfig $1 | grep 'ipx ' | tr "\n" "$_ifs"`"
-
-       oldifs="$IFS"
-       IFS="$_ifs"
-       for _ipx in $ipxList ; do
-               # get rid of extraneous line
-               [ -z "$_ipx" ] && break
-
-               _ipx=`expr "$_ipx" : '.*\(ipx [0-9a-h]\{1,8\}H*\.[0-9a-h]\{1,12\}\).*'`
-
-               IFS="$oldifs"
-               ifconfig $1 ${_ipx} delete
-               IFS="$_ifs"
-               _ret=0
-       done
-       IFS="$oldifs"
-
-       return $_ret
-}
-
 # ifnet_rename
 #      Rename all requested interfaces.
 #
index 0fe975c..03db4c3 100644 (file)
@@ -1,7 +1,6 @@
 #!/bin/sh -
 #
 # $FreeBSD: src/etc/pccard_ether,v 1.15.2.10 2001/09/14 17:28:11 imp Exp $
-# $DragonFly: src/etc/pccard_ether,v 1.4 2003/10/09 15:39:36 dillon Exp $
 #
 # pccard_ether interfacename [start|stop] [ifconfig option]
 #
@@ -102,12 +101,6 @@ case ${startstop} in
                        fi
                done
 
-               # Do ipx address if specified
-               eval ifx_args=\$ifconfig_${interface}_ipx
-               if [ -n "${ifx_args}" ]; then
-                       ifconfig ${interface} ${ifx_args}
-               fi
-
                # Add default route into $static_routes
                case ${defaultrouter} in
                [Nn][Oo] | '')
index 27df6ac..a50320d 100644 (file)
@@ -10,7 +10,7 @@ FILES=        DAEMON LOGIN NETWORKING SERVERS abi accounting addswap adjkerntz \
        battd bootconf bootparams btconfig bthcid ccd cleanvar cryptdisks \
        cleartmp cron cryptdisks devd devfs dhclient diskless dmesg dumpon \
        fixbootfile fsck ftpd hostapd hostname hotplugd \
-       inetd initdiskless initrandom ip6fw ipfw ipsec ipxrouted \
+       inetd initdiskless initrandom ip6fw ipfw ipsec \
        jail keyserv \
        ldconfig local localdaemons lockd lpd lvm \
        mixer motd mountcritlocal mountcritremote \
diff --git a/etc/rc.d/ipxrouted b/etc/rc.d/ipxrouted
deleted file mode 100644 (file)
index ca73d70..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD: src/etc/rc.d/ipxrouted,v 1.1 2002/06/13 22:14:36 gordon Exp $
-# $DragonFly: src/etc/rc.d/ipxrouted,v 1.3 2005/11/19 21:47:32 swildner Exp $
-#
-
-# PROVIDE: ipxrouted
-# REQUIRE: SERVERS
-# BEFORE: DAEMON
-
-. /etc/rc.subr
-
-name="ipxrouted"
-rcvar=`set_rcvar`
-command="/usr/sbin/IPXrouted"
-command_args="> /dev/null 2>&1"
-
-load_rc_config $name
-run_rc_command "$1"
index 1aae6f9..02b5a0d 100644 (file)
@@ -153,7 +153,6 @@ ifn_start()
        ifscript_up ${ifn} && cfg=0
        ifconfig_up ${ifn} && cfg=0
        ifalias_up ${ifn} && cfg=0
-       ipx_up ${ifn} && cfg=0
        childif_create ${ifn} && cfg=0
 
        return $cfg
@@ -167,7 +166,6 @@ ifn_stop()
 
        [ -z "$ifn" ] && return 1
 
-       ipx_down ${ifn} && cfg=0
        ifalias_down ${ifn} && cfg=0
        ifconfig_down ${ifn} && cfg=0
        ifscript_down ${ifn} && cfg=0
index 79de961..82b4d9d 100644 (file)
@@ -3,7 +3,6 @@
 # Configure routing and miscellaneous network tunables
 #
 # $FreeBSD: src/etc/rc.d/routing,v 1.138 2003/06/29 17:59:09 mtm Exp $
-# $DragonFly: src/etc/rc.d/routing,v 1.3 2005/11/19 21:47:32 swildner Exp $
 #
 
 # PROVIDE: routing
@@ -132,13 +131,6 @@ options_start()
                ;;
        esac
 
-       case ${ipxgateway_enable} in
-       [Yy][Ee][Ss])
-               echo -n ' IPX gateway=YES'
-               sysctl net.ipx.ipx.ipxforwarding=1 >/dev/null
-               ;;
-       esac
-
        case ${arpproxy_all} in
        [Yy][Ee][Ss])
                echo -n ' ARP proxyall=YES'
index 3409796..898e2e4 100644 (file)
@@ -23,7 +23,6 @@
 .\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/gnu/usr.bin/groff/tmac/fr.ISO8859-1,v 1.4 2003/09/20 21:23:53 ru Exp $
-.\" $DragonFly: src/gnu/usr.bin/groff/tmac/fr.ISO8859-1,v 1.1 2005/08/28 18:36:14 asmodai Exp $
 .\"
 .\"     %beginstrip%
 .
@@ -87,7 +86,6 @@
 .\" XXX ds doc-str-Lb-libgeom     Userland API Library for kernel GEOM subsystem (libgeom, \-lgeom)
 .ds doc-str-Lb-libi386     Bibliothèque de l'architecture i386 (libi386, \-li386)
 .ds doc-str-Lb-libipsec    Bibliothèque de contrôle de politique IPsec (libipsec, \-lipsec)
-.ds doc-str-Lb-libipx      Bibliothèque de support des conversions des adresses IPX (libipx, \-lipx)
 .ds doc-str-Lb-libkvm      Bibliothèque d'accès aux données du noyau (libkvm, \-lkvm)
 .ds doc-str-Lb-libm        Bibliothèque mathématique (libm, \-lm)
 .ds doc-str-Lb-libmd       Bibliothèque de support des signatures (MD4, MD5, etc.) (libmd, \-lmd)
index 3417da7..60664f5 100644 (file)
@@ -47,7 +47,6 @@
 .ds doc-str-Lb-libfsid          Filesystem Identification Library (libfsid, \-lfsid)
 .ds doc-str-Lb-libftpio         FTP Connection Management Library (libftpio, \-lftpio)
 .ds doc-str-Lb-libhammer        HAMMER Filesystem Userland Library (libhammer, \-lhammer)
-.ds doc-str-Lb-libipx           IPX Address Conversion Support Library (libipx, \-lipx)
 .ds doc-str-Lb-libkcore         Kernel Memory Core Access Library (libkcore, \-lkcore)
 .ds doc-str-Lb-libkiconv        Kernel side iconv library (libkiconv, \-lkiconv)
 .ds doc-str-Lb-libkinfo         Kernel Information Access Library (libkinfo, \-lkinfo)
index 388bf28..2513ef7 100644 (file)
@@ -23,7 +23,6 @@
 .\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/gnu/usr.bin/groff/tmac/ru.KOI8-R,v 1.14 2003/09/20 21:30:33 ru Exp $
-.\" $DragonFly: src/gnu/usr.bin/groff/tmac/ru.KOI8-R,v 1.3 2005/09/01 20:47:14 asmodai Exp $
 .\"
 .\"     %beginstrip%
 .
@@ -87,7 +86,6 @@
 .ds doc-str-Lb-libgeom     ðÏÌØÚÏ×ÁÔÅÌØÓËÁÑ API ÂÉÂÌÉÏÔÅËÁ ÐÏÄÓÉÓÔÅÍÙ ÑÄÒÁ GEOM (libgeom, \-lgeom)
 .ds doc-str-Lb-libi386     âÉÂÌÉÏÔÅËÁ ÁÒÈÉÔÅËÔÕÒÙ i386 (libi386, \-li386)
 .ds doc-str-Lb-libipsec    âÉÂÌÉÏÔÅËÁ ÕÐÒÁ×ÌÅÎÉÑ IPsec Policy (libipsec, \-lipsec)
-.ds doc-str-Lb-libipx      âÉÂÌÉÏÔÅËÁ ÐÏÄÄÅÒÖËÉ ËÏÎ×ÅÒÓÉÉ ÁÄÒÅÓÏ× IPX (libipx, \-lipx)
 .ds doc-str-Lb-libkvm      âÉÂÌÉÏÔÅËÁ ÄÏÓÔÕÐÁ Ë ÄÁÎÎÙÍ ÑÄÒÁ (libkvm, \-lkvm)
 .ds doc-str-Lb-libm        âÉÂÌÉÏÔÅËÁ ÍÁÔÅÍÁÔÉÞÅÓËÉÈ ÆÕÎËÃÉÊ (libm, \-lm)
 .\" XXX ds doc-str-Lb-libmd       Message Digest (MD4, MD5, É Ô.Ä.) Support Library (libmd, \-lmd)
index f1f5b23..4d7701a 100644 (file)
@@ -85,12 +85,12 @@ LSUBDIRS= \
        netgraph7/mppc netgraph7/one2many netgraph7/ppp netgraph7/pppoe \
        netgraph7/pptpgre netgraph7/rfc1490 netgraph7/socket \
        netgraph7/tcpmss netgraph7/tee netgraph7/tty netgraph7/vjc \
-       netproto/atm netproto/ipsec netproto/ipx \
+       netproto/atm netproto/ipsec \
        netproto/atm/ipatm netproto/atm/sigpvc netproto/atm/spans \
        netproto/atm/uni netproto/802_11 netproto/mpls \
-       netproto/key netproto/natm netproto/ncp netproto/smb \
+       netproto/key netproto/natm netproto/smb \
        vfs/isofs/cd9660 vfs/puffs \
-       vfs/msdosfs vfs/nfs vfs/ntfs vfs/nwfs \
+       vfs/msdosfs vfs/nfs vfs/ntfs \
        vfs/smbfs vfs/udf vfs/ufs vfs/hammer vfs/hammer2
 
 .if !defined(WANT_OLDUSB)
@@ -140,7 +140,6 @@ INCSLINKS+= vfs/isofs ${INCLUDEDIR}/isofs
 INCSLINKS+=    vfs/mfs ${INCLUDEDIR}/mfs
 INCSLINKS+=    vfs/nfs ${INCLUDEDIR}/nfs
 INCSLINKS+=    vfs/ntfs ${INCLUDEDIR}/ntfs
-INCSLINKS+=    vfs/nwfs ${INCLUDEDIR}/nwfs
 INCSLINKS+=    vfs ${INCLUDEDIR}/fs
 # this is for <ufs/ufs/...> and <ufs/ffs/...> paths used by ports
 # It is hopefully a temporary hack until we have environments working.
@@ -149,10 +148,8 @@ INCSLINKS+=        ufs ${INCLUDEDIR}/vfs/ffs
 INCSLINKS+=    emulation ${INCLUDEDIR}/compat
 INCSLINKS+=    netproto/atm ${INCLUDEDIR}/netatm
 INCSLINKS+=    netproto/ipsec ${INCLUDEDIR}/netipsec
-INCSLINKS+=    netproto/ipx ${INCLUDEDIR}/netipx
 INCSLINKS+=    netproto/key ${INCLUDEDIR}/netkey
 INCSLINKS+=    netproto/natm ${INCLUDEDIR}/netnatm
-INCSLINKS+=    netproto/ncp ${INCLUDEDIR}/netncp
 INCSLINKS+=    netproto/smb ${INCLUDEDIR}/netsmb
 INCSLINKS+=    bus/pccard ${INCLUDEDIR}/pccard
 # Some 3rd party software looks for <floatingpoint.h>
index 2b5fa6f..7bbd20f 100644 (file)
@@ -56,7 +56,6 @@ SUBDIR=       ${SUBDIR_ORDERED} \
        libftpio \
        libhammer \
        libipsec \
-       libipx \
        libkcore \
        libkiconv \
        libkinfo \
@@ -67,7 +66,6 @@ SUBDIR=       ${SUBDIR_ORDERED} \
        libmagic \
        libmandoc \
        ${_libmilter} \
-       libncp \
        ${_libnetgraph} \
        libopie \
        libpam \
index 74f4d55..f792bc0 100644 (file)
@@ -1,16 +1,13 @@
-# $DragonFly: src/lib/compat/i386/Makefile,v 1.5 2005/09/25 12:52:44 asmodai Exp $
-#
-
 FILESDIR=    ${LIBCOMPATDIR}
 COMPAT_LIBS= libalias.so.4 libarchive.so.1 libatm.so.2 libbz2.so.1 \
             libc.so.4 libc_r.so.4 libcalendar.so.2 libcam.so.2 \
             libcipher.so.2 libcom_err.so.2 libcrypt.so.2 libcrypto.so.3 \
             libdevstat.so.2 libdialog.so.4 libedit.so.3 libfetch.so.3 \
             libform.so.5 libftpio.so.5 libg2c.so.1 libgnuregex.so.2 \
-            libhistory.so.5 libipsec.so.1 libipx.so.2 libisc.so.1 \
+            libhistory.so.5 libipsec.so.1 libisc.so.1 \
             libkcore.so.1 libkinfo.so.1 libkvm.so.2 libm.so.2 \
             libmagic.so.1 libmd.so.2 libmenu.so.5 libmilter.so.2 \
-            libncp.so.1 libncurses.so.5 libnetgraph.so.1 libopie.so.2 \
+            libncurses.so.5 libnetgraph.so.1 libopie.so.2 \
             libpam.so.1 libpanel.so.5 libpcap.so.2 libposix1e.so.2 \
             libradius.so.1 libreadline.so.5 librpcsvc.so.2 libsbuf.so.2 \
             libskey.so.2 libsmb.so.1 libssh.so.2 libssl.so.3 \
diff --git a/lib/compat/i386/libipx.so.2.20050501.REL1_2 b/lib/compat/i386/libipx.so.2.20050501.REL1_2
deleted file mode 100644 (file)
index 74cd6fe..0000000
Binary files a/lib/compat/i386/libipx.so.2.20050501.REL1_2 and /dev/null differ
diff --git a/lib/compat/i386/libncp.so.1.20050501.REL1_2 b/lib/compat/i386/libncp.so.1.20050501.REL1_2
deleted file mode 100644 (file)
index deae00d..0000000
Binary files a/lib/compat/i386/libncp.so.1.20050501.REL1_2 and /dev/null differ
diff --git a/lib/libipx/Makefile b/lib/libipx/Makefile
deleted file mode 100644 (file)
index 31827fe..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD: src/lib/libipx/Makefile,v 1.3.6.1 2001/04/25 10:04:31 ru Exp $
-# $DragonFly: src/lib/libipx/Makefile,v 1.3 2008/10/28 17:23:45 swildner Exp $
-
-LIB=   ipx
-SHLIBDIR?= /lib
-#CFLAGS+=-I${.CURDIR}/../../sys
-SRCS=  ipx_addr.c ipx_ntoa.c
-WARNS?=        2
-
-MAN=   ipx.3
-
-MLINKS+=ipx.3 ipx_addr.3 ipx.3 ipx_ntoa.3
-
-.include <bsd.lib.mk>
diff --git a/lib/libipx/ipx.3 b/lib/libipx/ipx.3
deleted file mode 100644 (file)
index 07690d6..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-.\" Copyright (c) 1986, 1991, 1993
-.\"    The Regents of the University of California.  All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" $FreeBSD: src/lib/libipx/ipx.3,v 1.7.2.6 2003/06/10 21:04:14 ceri Exp $
-.\" $DragonFly: src/lib/libipx/ipx.3,v 1.3 2007/12/23 15:31:28 swildner Exp $
-.\"
-.Dd June 4, 1993
-.Dt IPX 3
-.Os
-.Sh NAME
-.Nm ipx_addr ,
-.Nm ipx_ntoa
-.Nd IPX address conversion routines
-.Sh LIBRARY
-.Lb libipx
-.Sh SYNOPSIS
-.In sys/types.h
-.In netipx/ipx.h
-.Ft struct ipx_addr
-.Fn ipx_addr "const char *cp"
-.Ft char *
-.Fn ipx_ntoa "struct ipx_addr ipx"
-.Sh DESCRIPTION
-The routine
-.Fn ipx_addr
-interprets character strings representing
-.Tn IPX
-addresses, returning binary information suitable
-for use in system calls.
-The routine
-.Fn ipx_ntoa
-takes
-.Tn IPX
-addresses and returns
-.Tn ASCII
-strings representing the address in a
-notation in common use:
-.Bd -ragged -offset indent
-<network number>.<host number>.<port number>
-.Ed
-.Pp
-Trailing zero fields are suppressed, and each number is printed in hexadecimal,
-in a format suitable for input to
-.Fn ipx_addr .
-Any fields lacking super-decimal digits will have a
-trailing
-.Ql H
-appended.
-.Pp
-An effort has been made to insure that
-.Fn ipx_addr
-be compatible with most formats in common use.
-It will first separate an address into 1 to 3 fields using a single delimiter
-chosen from
-period
-.Ql \&. ,
-colon
-.Ql \&:
-or pound-sign
-.Ql \&# .
-Each field is then examined for byte separators (colon or period).
-If there are byte separators, each subfield separated is taken to be
-a small hexadecimal number, and the entirety is taken as a network-byte-ordered
-quantity to be zero extended in the high-network-order bytes.
-Next, the field is inspected for hyphens, in which case
-the field is assumed to be a number in decimal notation
-with hyphens separating the millennia.
-Next, the field is assumed to be a number:
-It is interpreted
-as hexadecimal if there is a leading
-.Ql 0x
-(as in C),
-a trailing
-.Ql H
-(as in Mesa), or there are any super-decimal digits present.
-It is interpreted as octal if there is a leading
-.Ql 0
-and there are no super-octal digits.
-Otherwise, it is converted as a decimal number.
-.Sh RETURN VALUES
-None. (See
-.Sx BUGS . )
-.Sh SEE ALSO
-.\" .Xr ns 4 ,
-.Xr hosts 5 ,
-.Xr networks 5
-.Sh HISTORY
-The precursor
-.Fn ns_addr
-and
-.Fn ns_toa
-functions appeared in
-.Bx 4.3 .
-.Sh BUGS
-The string returned by
-.Fn ipx_ntoa
-resides in a static memory area.
-The function
-.Fn ipx_addr
-should diagnose improperly formed input, and there should be an unambiguous
-way to recognize this.
diff --git a/lib/libipx/ipx_addr.c b/lib/libipx/ipx_addr.c
deleted file mode 100644 (file)
index b2fc796..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (c) 1986, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * J.Q. Johnson.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libipx/ipx_addr.c,v 1.2.8.1 2001/03/05 06:21:40 kris Exp $
- *
- * @(#)ipx_addr.c
- */
-
-#include <sys/param.h>
-#include <netipx/ipx.h>
-#include <stdio.h>
-#include <string.h>
-
-static struct ipx_addr addr, zero_addr;
-
-static void Field(), cvtbase();
-
-struct ipx_addr 
-ipx_addr(const char *name)
-{
-       char separator;
-       char *hostname, *socketname, *cp;
-       char buf[50];
-
-       (void)strncpy(buf, name, sizeof(buf) - 1);
-       buf[sizeof(buf) - 1] = '\0';
-
-       /*
-        * First, figure out what he intends as a field separator.
-        * Despite the way this routine is written, the preferred
-        * form  2-272.AA001234H.01777, i.e. XDE standard.
-        * Great efforts are made to ensure backwards compatibility.
-        */
-       if ( (hostname = strchr(buf, '#')) )
-               separator = '#';
-       else {
-               hostname = strchr(buf, '.');
-               if ((cp = strchr(buf, ':')) &&
-                   ((hostname && cp < hostname) || (hostname == NULL))) {
-                       hostname = cp;
-                       separator = ':';
-               } else
-                       separator = '.';
-       }
-       if (hostname)
-               *hostname++ = 0;
-
-       addr = zero_addr;
-       Field(buf, addr.x_net.c_net, 4);
-       if (hostname == NULL)
-               return (addr);  /* No separator means net only */
-
-       socketname = strchr(hostname, separator);
-       if (socketname) {
-               *socketname++ = 0;
-               Field(socketname, (u_char *)&addr.x_port, 2);
-       }
-
-       Field(hostname, addr.x_host.c_host, 6);
-
-       return (addr);
-}
-
-static void
-Field(char *buf, u_char *out, int len)
-{
-       char *bp = buf;
-       int i, ibase, base16 = 0, base10 = 0, clen = 0;
-       int hb[6], *hp;
-       char *fmt;
-
-       /*
-        * first try 2-273#2-852-151-014#socket
-        */
-       if ((*buf != '-') &&
-           (1 < (i = sscanf(buf, "%d-%d-%d-%d-%d",
-                       &hb[0], &hb[1], &hb[2], &hb[3], &hb[4])))) {
-               cvtbase(1000L, 256, hb, i, out, len);
-               return;
-       }
-       /*
-        * try form 8E1#0.0.AA.0.5E.E6#socket
-        */
-       if (1 < (i = sscanf(buf,"%x.%x.%x.%x.%x.%x",
-                       &hb[0], &hb[1], &hb[2], &hb[3], &hb[4], &hb[5]))) {
-               cvtbase(256L, 256, hb, i, out, len);
-               return;
-       }
-       /*
-        * try form 8E1#0:0:AA:0:5E:E6#socket
-        */
-       if (1 < (i = sscanf(buf,"%x:%x:%x:%x:%x:%x",
-                       &hb[0], &hb[1], &hb[2], &hb[3], &hb[4], &hb[5]))) {
-               cvtbase(256L, 256, hb, i, out, len);
-               return;
-       }
-       /*
-        * This is REALLY stretching it but there was a
-        * comma notation separating shorts -- definitely non-standard
-        */
-       if (1 < (i = sscanf(buf,"%x,%x,%x",
-                       &hb[0], &hb[1], &hb[2]))) {
-               hb[0] = htons(hb[0]); hb[1] = htons(hb[1]);
-               hb[2] = htons(hb[2]);
-               cvtbase(65536L, 256, hb, i, out, len);
-               return;
-       }
-
-       /* Need to decide if base 10, 16 or 8 */
-       while (*bp) switch (*bp++) {
-
-       case '0': case '1': case '2': case '3': case '4': case '5':
-       case '6': case '7': case '-':
-               break;
-
-       case '8': case '9':
-               base10 = 1;
-               break;
-
-       case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-       case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-               base16 = 1;
-               break;
-       
-       case 'x': case 'X':
-               *--bp = '0';
-               base16 = 1;
-               break;
-
-       case 'h': case 'H':
-               base16 = 1;
-               /* fall into */
-
-       default:
-               *--bp = 0; /* Ends Loop */
-       }
-       if (base16) {
-               fmt = "%3x";
-               ibase = 4096;
-       } else if (base10 == 0 && *buf == '0') {
-               fmt = "%3o";
-               ibase = 512;
-       } else {
-               fmt = "%3d";
-               ibase = 1000;
-       }
-
-       for (bp = buf; *bp++; ) clen++;
-       if (clen == 0) clen++;
-       if (clen > 18) clen = 18;
-       i = ((clen - 1) / 3) + 1;
-       bp = clen + buf - 3;
-       hp = hb + i - 1;
-
-       while (hp > hb) {
-               (void)sscanf(bp, fmt, hp);
-               bp[0] = 0;
-               hp--;
-               bp -= 3;
-       }
-       (void)sscanf(buf, fmt, hp);
-       cvtbase((long)ibase, 256, hb, i, out, len);
-}
-
-static void
-cvtbase(long oldbase, int newbase, int input[], int inlen,
-       unsigned char result[], int reslen)
-{
-       int d, e;
-       long sum;
-
-       e = 1;
-       while (e > 0 && reslen > 0) {
-               d = 0; e = 0; sum = 0;
-               /* long division: input=input/newbase */
-               while (d < inlen) {
-                       sum = sum*oldbase + (long) input[d];
-                       e += (sum > 0);
-                       input[d++] = sum / newbase;
-                       sum %= newbase;
-               }
-               result[--reslen] = sum; /* accumulate remainder */
-       }
-       for (d=0; d < reslen; d++)
-               result[d] = 0;
-}
diff --git a/lib/libipx/ipx_ntoa.c b/lib/libipx/ipx_ntoa.c
deleted file mode 100644 (file)
index ab3ff66..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 1986, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)ipx_ntoa.c
- * $DragonFly: src/lib/libipx/ipx_ntoa.c,v 1.5 2005/08/04 17:27:09 drhodus Exp $
- */
-
-#include <sys/param.h>
-#include <netipx/ipx.h>
-#include <stdio.h>
-
-
-static char *spectHex(char *);
-
-char *
-ipx_ntoa(struct ipx_addr addr)
-{
-       static char obuf[40];
-       union { union ipx_net net_e; u_long long_e; } net;
-       u_short port = htons(addr.x_port);
-       char *cp;
-       char *cp2;
-       u_char *up = addr.x_host.c_host;
-       u_char *uplim = up + 6;
-
-       net.net_e = addr.x_net;
-       sprintf(obuf, "%lx", (u_long)ntohl(net.long_e));
-       cp = spectHex(obuf);
-       cp2 = cp + 1;
-       while (*up==0 && up < uplim) up++;
-       if (up == uplim) {
-               if (port) {
-                       sprintf(cp, ".0");
-                       cp += 2;
-               }
-       } else {
-               sprintf(cp, ".%x", *up++);
-               while (up < uplim) {
-                       while (*cp) cp++;
-                       sprintf(cp, "%02x", *up++);
-               }
-               cp = spectHex(cp2);
-       }
-       if (port) {
-               sprintf(cp, ".%x", port);
-               spectHex(cp + 1);
-       }
-       return (obuf);
-}
-
-static char *
-spectHex(char *p0)
-{
-       int ok = 0;
-       int nonzero = 0;
-       char *p = p0;
-       for (; *p; p++) switch (*p) {
-
-       case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-       case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-               ok = 1;
-       case '1': case '2': case '3': case '4': case '5':
-       case '6': case '7': case '8': case '9':
-               nonzero = 1;
-       }
-       if (nonzero && !ok) { *p++ = 'H'; *p = 0; }
-       return (p);
-}
diff --git a/lib/libncp/CREDITS b/lib/libncp/CREDITS
deleted file mode 100644 (file)
index 34611f3..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# $FreeBSD: src/lib/libncp/CREDITS,v 1.1 1999/10/12 11:56:37 bp Exp $
-# $DragonFly: src/lib/libncp/CREDITS,v 1.2 2003/06/17 04:26:50 dillon Exp $
-
-In the development of NetWare client for FreeBSD next sources was used:
-
-ncpfs for Linux - written by Volker Lendecke (lendecke@math.uni-goettingen.de),
-    thanks to him for giving a permission to publish his code under BSD-style
-    license.
-
-"Interrupt List" from Ralf Brown,
-
-Many files from the /sys directory.
-
-NDK documentation from Novell Inc.
-
-
-Also thanks to thouse who gets time to testing, reporting problems and give
-a good suggestions (in alphabet order):
-
-Anatoly A. Orehovsky
-Andrew Petrenko
-Jesus Rodriguez
-Matthew N. Dodd
-Mike Pitt
-Vadim Mikhailov
-
-
-Author - Boris Popov <bp@butya.kz>, <bp@freebsd.org>
diff --git a/lib/libncp/Makefile b/lib/libncp/Makefile
deleted file mode 100644 (file)
index 1896920..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-# $FreeBSD: src/lib/libncp/Makefile,v 1.3 1999/11/12 15:09:56 peter Exp $
-
-NCPLIB=${.CURDIR}
-
-LIB=           ncp
-SHLIBDIR?=     /lib
-
-SHLIB_MAJOR=   2
-
-NOMAN=
-
-WARNS?=                2
-
-SRCS=  ncpl_subr.c ncpl_bind.c ncpl_queue.c ncpl_file.c ncpl_misc.c \
-       ncpl_net.c ncpl_rcfile.c ncpl_conn.c ncpl_nls.c ncpl_msg.c \
-       ncpl_rpc.c ncpl_crypt.c ipx.c sap.c
-
-.include <bsd.lib.mk>
diff --git a/lib/libncp/ipx.c b/lib/libncp/ipx.c
deleted file mode 100644 (file)
index 4f29874..0000000
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ipx.c,v 1.1 1999/10/12 11:56:37 bp Exp $
- * $DragonFly: src/lib/libncp/ipx.c,v 1.4 2008/09/30 16:57:05 swildner Exp $
- */
-#include <sys/param.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <sys/sysctl.h>
-#include <sys/time.h>
-
-#include <net/if.h>
-#include <net/if_var.h>
-#include <net/if_dl.h>
-#include <net/if_types.h>
-#include <net/route.h>
-
-/* IPX */
-#include <netipx/ipx.h>
-#include <netipx/ipx_if.h>
-
-#include <ctype.h>
-#include <err.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <netncp/ncp_lib.h>
-
-#define        IPX_NODE_LEN    6
-
-typedef u_long         IPXNet;
-typedef u_short                IPXPort;
-typedef union ipx_host IPXNode;
-
-
-void
-ipx_fprint_node(FILE * file, IPXNode node){
-       fprintf(file, "%02X%02X%02X%02X%02X%02X",
-               (unsigned char) node.c_host[0],
-               (unsigned char) node.c_host[1],
-               (unsigned char) node.c_host[2],
-               (unsigned char) node.c_host[3],
-               (unsigned char) node.c_host[4],
-               (unsigned char) node.c_host[5]
-           );
-}
-
-void
-ipx_fprint_network(FILE * file, const IPXNet net){
-       fprintf(file, "%08X", (u_int32_t)ntohl(net));
-}
-
-void
-ipx_fprint_port(FILE * file, IPXPort port)
-{
-       fprintf(file, "%04X", ntohs(port));
-}
-
-void
-ipx_fprint_addr(FILE * file, struct ipx_addr *ipx)
-{
-       ipx_fprint_network(file, ipx_netlong(*ipx));
-       fprintf(file, ":");
-       ipx_fprint_node(file, ipx->x_host);
-       fprintf(file, ":");
-       ipx_fprint_port(file, ipx->x_port);
-}
-
-void
-ipx_print_node(IPXNode node)
-{
-       ipx_fprint_node(stdout, node);
-}
-
-void
-ipx_print_network(IPXNet net)
-{
-       ipx_fprint_network(stdout, net);
-}
-
-void
-ipx_print_port(IPXPort port)
-{
-       ipx_fprint_port(stdout, port);
-}
-
-void
-ipx_print_addr(struct ipx_addr *ipx)
-{
-       ipx_fprint_addr(stdout, ipx);
-}
-
-int
-ipx_sscanf_node(char *buf, unsigned char node[6])
-{
-       int i;
-       int n[6];
-
-       if ((i = sscanf(buf, "%2x%2x%2x%2x%2x%2x",
-                       &(n[0]), &(n[1]), &(n[2]),
-                       &(n[3]), &(n[4]), &(n[5]))) != 6)
-       {
-               return i;
-       }
-       for (i = 0; i < 6; i++)
-       {
-               node[i] = n[i];
-       }
-       return 6;
-}
-
-int
-ipx_sscanf_saddr(char *buf, struct sockaddr_ipx *target)
-{
-       char *p;
-       struct sockaddr_ipx addr;
-       unsigned long sipx_net;
-
-       addr.sipx_family = AF_IPX;
-/*!!   addr.sipx_type = NCP_PTYPE;*/
-
-       if (sscanf(buf, "%lx", &sipx_net) != 1)
-       {
-               return 1;
-       }
-       ((union ipx_net_u*)(&addr.sipx_addr.x_net))->long_e = htonl(sipx_net);
-       if ((p = strchr(buf, ':')) == NULL){
-               return 1;
-       }
-       p += 1;
-       if (ipx_sscanf_node(p, addr.sipx_node) != 6)
-       {
-               return 1;
-       }
-       if ((p = strchr(p, ':')) == NULL)
-       {
-               return 1;
-       }
-       p += 1;
-       if (sscanf(p, "%hx", &addr.sipx_port) != 1)
-       {
-               return 1;
-       }
-       addr.sipx_port = htons(addr.sipx_port);
-       *target = addr;
-       return 0;
-}
-
-
-void ipx_assign_node(IPXNode *dest, IPXNode *src) {
-       memcpy(dest, src, IPX_NODE_LEN);
-}
-
-
-static void    rt_xaddrs (caddr_t, caddr_t, struct rt_addrinfo *);
-static int     if_ipxscan (int addrcount, struct sockaddr_dl *sdl, struct if_msghdr *ifm,
-                   struct ifa_msghdr *ifam,struct ipx_addr *addr);
-
-/*
- * Find an IPX interface. 
- * ifname specifies interface name, if NULL search for all interfaces
- *        if ifname[0]='0', also all interfaces, but return its name
- * addr   on input preferred net address can be specified or 0 for any,
- *        on return contains full address (except port)
- * returns 0 if interface was found
- */
-int
-ipx_iffind(char *ifname,struct ipx_addr *addr){
-       char name[32];
-       int all=0, flags, foundit = 0, addrcount;
-       struct  if_msghdr *ifm, *nextifm;
-       struct  ifa_msghdr *ifam;
-       struct  sockaddr_dl *sdl;
-       char    *buf, *lim, *next;
-       size_t  needed;
-       int mib[6];
-       
-       if( ifname!=NULL ) {
-           strncpy(name,ifname,sizeof(name)-1);
-           if( name[0]==0 )
-               all=1;
-       } else
-           all = 1;
-
-       mib[0] = CTL_NET;
-       mib[1] = PF_ROUTE;
-       mib[2] = 0;
-       mib[3] = AF_IPX;
-       mib[4] = NET_RT_IFLIST;
-       mib[5] = 0;
-
-       if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0)
-               return(1);
-       if ((buf = malloc(needed)) == NULL)
-               return(1);
-       if (sysctl(mib, 6, buf, &needed, NULL, 0) < 0) {
-               free(buf);
-               return(1);
-       }
-       lim = buf + needed;
-
-       next = buf;
-       while (next < lim) {
-               ifm = (struct if_msghdr *)next;
-               if (ifm->ifm_type == RTM_IFINFO) {
-                       sdl = (struct sockaddr_dl *)(ifm + 1);
-                       flags = ifm->ifm_flags;
-               } else {
-                       fprintf(stderr, "if_ipxfind: out of sync parsing NET_RT_IFLIST\n");
-                       fprintf(stderr, "expected %d, got %d\n", RTM_IFINFO, ifm->ifm_type);
-                       fprintf(stderr, "msglen = %d\n", ifm->ifm_msglen);
-                       fprintf(stderr, "buf:%p, next:%p, lim:%p\n", buf, next, lim);
-                       free(buf);
-                       return(1);
-               }
-
-               next += ifm->ifm_msglen;
-               ifam = NULL;
-               addrcount = 0;
-               while (next < lim) {
-                       nextifm = (struct if_msghdr *)next;
-                       if (nextifm->ifm_type != RTM_NEWADDR)
-                               break;
-                       if (ifam == NULL)
-                               ifam = (struct ifa_msghdr *)nextifm;
-                       addrcount++;
-                       next += nextifm->ifm_msglen;
-               }
-
-               if (all) {
-                       if ((flags & IFF_UP) == 0)
-                               continue; /* not up */
-                       strncpy(name, sdl->sdl_data, sdl->sdl_nlen);
-                       name[sdl->sdl_nlen] = '\0';
-               } else {
-                       if (strlen(name) != sdl->sdl_nlen)
-                               continue; /* not same len */
-                       if (strncmp(name, sdl->sdl_data, sdl->sdl_nlen) != 0)
-                               continue; /* not same name */
-               }
-
-               foundit=if_ipxscan(addrcount, sdl, ifm, ifam, addr);
-               if( foundit ) {
-                       if( ifname!=NULL && ifname[0]==0) {
-                           strncpy(ifname,sdl->sdl_data, sdl->sdl_nlen);
-                           ifname[sdl->sdl_nlen]=0;
-                       }
-                       break;
-               }
-       }
-       free(buf);
-
-       return foundit ? 0:1;
-}
-
-
-int
-if_ipxscan(int addrcount, struct sockaddr_dl *sdl, struct if_msghdr *ifm,
-    struct ifa_msghdr *ifam, struct ipx_addr *addr)
-{
-       struct  rt_addrinfo info;
-       struct sockaddr_ipx *sipx;
-       int s;
-
-       if ((s = socket(AF_IPX, SOCK_DGRAM, 0)) < 0) {
-               perror("ifconfig: socket");
-               return 0;
-       }
-
-       while (addrcount > 0) {
-               info.rti_addrs = ifam->ifam_addrs;
-               /* Expand the compacted addresses */
-               rt_xaddrs((char *)(ifam + 1), ifam->ifam_msglen + (char *)ifam, &info);
-               addrcount--;
-               ifam = (struct ifa_msghdr *)((char *)ifam + ifam->ifam_msglen);
-               if (info.rti_info[RTAX_IFA]->sa_family == AF_IPX) {
-                       sipx = (struct sockaddr_ipx *)info.rti_info[RTAX_IFA];
-                       if( ipx_nullnet(sipx->sipx_addr) ) continue;
-                       if( ipx_nullnet(*addr) || 
-                           ipx_neteq(sipx->sipx_addr,*addr) ) {
-                           *addr=sipx->sipx_addr;
-                           close(s);
-                           return(1);
-                       }
-               }
-       }
-       close(s);
-       return(0);
-}
-/*
- * Expand the compacted form of addresses as returned via the
- * configuration read via sysctl().
- */
-
-#define ROUNDUP(a) \
-       ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
-#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len))
-
-static void
-rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo)
-{
-       struct sockaddr *sa;
-       int i;
-
-       memset(rtinfo->rti_info, 0, sizeof(rtinfo->rti_info));
-       for (i = 0; (i < RTAX_MAX) && (cp < cplim); i++) {
-               if ((rtinfo->rti_addrs & (1 << i)) == 0)
-                       continue;
-               rtinfo->rti_info[i] = sa = (struct sockaddr *)cp;
-               ADVANCE(cp, sa);
-       }
-}
-
diff --git a/lib/libncp/ipxsap.h b/lib/libncp/ipxsap.h
deleted file mode 100644 (file)
index f237a6b..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ipxsap.h,v 1.1 1999/10/12 11:56:37 bp Exp $
- * $DragonFly: src/lib/libncp/ipxsap.h,v 1.2 2003/06/17 04:26:50 dillon Exp $
- */
-#ifndef _IPXSAP_H_
-#define _IPXSAP_H_
-
-#define IPX_SAP_GENERAL_QUERY          1
-#define IPX_SAP_GENERAL_RESPONSE       2
-#define IPX_SAP_NEAREST_QUERY          3
-#define IPX_SAP_NEAREST_RESPONSE       4
-
-
-#define IPX_SAP_MAX_ENTRIES            7
-#define IPX_SAP_SERVER_DOWN            16
-#define IPX_SAP_SERVER_NAME_LEN                48
-#define IPX_SAP_REQUEST_LEN            4
-
-/* Values for server_type */
-#define IPX_SAP_FILE_SERVER            4
-
-struct sap_query {
-       u_short         query_type;     /* net order */
-       u_short         server_type;    /* net order */
-};
-
-struct sap_entry {
-       u_short         server_type;
-       u_char          server_name[IPX_SAP_SERVER_NAME_LEN];
-       struct ipx_addr ipx;
-       u_short         hops;
-};
-
-struct sap_packet {
-       u_short         operation;
-       struct sap_entry sap_entries[1];
-};
-
-struct sap_rq {
-       struct sockaddr_ipx dest_addr;
-       int             sock;
-       int             entries;
-       struct sap_packet* buffer;
-};
-/*
-#define        sap_name_equal(n1,n2)   (strncmp(n1,n2,IPX_SAP_SERVER_NAME_LEN) == 0);
-#define        sap_type_equal(t1,t2)   (t1==IPX_SAP_GENERAL_RQ || t2==IPX_SAP_GENERAL_RQ || t1==t2);
-*/
-void sap_copy_name(char *dest,char *src); 
-int  sap_getsock(int *rsock);
-
-
-int  sap_rq_init(struct sap_rq* out,int sock);
-int  sap_rq_flush(struct sap_rq* out);
-void sap_rq_general(struct sap_rq* out,u_short ser_type);
-void sap_rq_gns_request(struct sap_rq* out,u_short ser_type);
-void sap_rq_response(struct sap_rq* out,u_short type,char *name,struct sockaddr_ipx* addr,u_short hops,int down_allow);
-void sap_rq_gns_response(struct sap_rq* out,u_short type,char * name,struct sockaddr_ipx* addr,u_short hops);
-void sap_rq_set_destination(struct sap_rq* out,struct ipx_addr *dest);
-
-int  sap_find_nearest(int server_type, struct sockaddr_ipx *result,char *server_name);
-
-extern int (*sap_sendto_func)(void* buffer,int size,struct sockaddr_ipx* daddr,int sock);
-int  ipx_iffind(char *ifname, struct ipx_addr *addr);
-
-#endif /* !_IPXSAP_H_ */
diff --git a/lib/libncp/ncp_mod.h b/lib/libncp/ncp_mod.h
deleted file mode 100644 (file)
index ff3c574..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Describes all ncp_lib kernel functions
- *
- * $FreeBSD: src/lib/libncp/ncp_mod.h,v 1.1 1999/10/12 11:56:38 bp Exp $
- * $DragonFly: src/lib/libncp/ncp_mod.h,v 1.3 2003/11/12 20:21:31 eirikn Exp $
- */
-#ifndef _NCP_MOD_H_
-#define _NCP_MOD_H_
-
-/* order of calls in syscall table relative to offset in system table */
-#define        NCP_SE(callno)          (callno+sysentoffset)
-#define        NCP_CONNSCAN            NCP_SE(0)
-#define        NCP_CONNECT             NCP_SE(1)
-#define        NCP_INTFN               NCP_SE(2)
-#define        SNCP_REQUEST            NCP_SE(3)
-
-#endif /* !_NCP_MOD_H_ */
diff --git a/lib/libncp/ncpl_bind.c b/lib/libncp/ncpl_bind.c
deleted file mode 100644 (file)
index 66d06d0..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ncpl_bind.c,v 1.2 1999/10/31 03:39:03 bp Exp $
- * $DragonFly: src/lib/libncp/ncpl_bind.c,v 1.2 2003/06/17 04:26:50 dillon Exp $
- */
-#include <sys/types.h>
-#include <errno.h>
-#include <string.h>
-#include <netncp/ncp_lib.h>
-
-static void nw_passencrypt(char *old, char *new, char *out);
-
-int
-ncp_get_bindery_object_id(NWCONN_HANDLE connid, u_int16_t object_type,
-       const char *object_name, struct ncp_bindery_object *target)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 53);
-       ncp_add_word_hl(conn, object_type);
-       ncp_add_pstring(conn, object_name);
-
-       if ((error = ncp_request(connid, 23, conn)) != 0) {
-               return error;
-       }
-       if (conn->rpsize < 54) {
-               return EACCES;
-       }
-       target->object_id = ncp_reply_dword_hl(conn, 0);
-       target->object_type = ncp_reply_word_hl(conn, 4);
-       memcpy(target->object_name, ncp_reply_data(conn, 6), 48);
-       return 0;
-}
-
-int
-ncp_read_property_value(NWCONN_HANDLE connid, int object_type,
-       const char *object_name, int segment, const char *prop_name,
-       struct nw_property *target)
-{
-       int error;
-       struct ncp_buf conn;
-       ncp_init_request_s(&conn, 61);
-       ncp_add_word_hl(&conn, object_type);
-       ncp_add_pstring(&conn, object_name);
-       ncp_add_byte(&conn, segment);
-       ncp_add_pstring(&conn, prop_name);
-
-       if ((error = ncp_request(connid,23,&conn)) != 0) {
-               return error;
-       }
-       memcpy(&(target->value), ncp_reply_data(&conn, 0), 128);
-       target->more_flag = ncp_reply_byte(&conn, 128);
-       target->property_flag = ncp_reply_byte(&conn, 129);
-       return 0;
-}
-
-int
-ncp_scan_bindery_object(NWCONN_HANDLE connid, u_int32_t last_id,
-       u_int16_t object_type, char *search_string,
-       struct ncp_bindery_object *target)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 55);
-       ncp_add_dword_hl(conn, last_id);
-       ncp_add_word_hl(conn, object_type);
-       ncp_add_pstring(conn, search_string);
-       error = ncp_request(connid, 23, conn);
-       if (error) return error;
-       target->object_id = ncp_reply_dword_hl(conn, 0);
-       target->object_type = ncp_reply_word_hl(conn, 4);
-       memcpy(target->object_name, ncp_reply_data(conn, 6),NCP_BINDERY_NAME_LEN);
-       target->object_flags = ncp_reply_byte(conn, 54);
-       target->object_security = ncp_reply_byte(conn, 55);
-       target->object_has_prop = ncp_reply_byte(conn, 56);
-       return 0;
-}
-
-int
-ncp_get_bindery_object_name(NWCONN_HANDLE connid, u_int32_t object_id,
-       struct ncp_bindery_object *target)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 54);
-       ncp_add_dword_hl(conn, object_id);
-       if ((error = ncp_request(connid, 23, conn)) != 0)
-               return error;
-       target->object_id = ncp_reply_dword_hl(conn, 0);
-       target->object_type = ncp_reply_word_hl(conn, 4);
-       memcpy(target->object_name, ncp_reply_data(conn, 6), 48);
-       return 0;
-}
-
-int
-ncp_change_obj_passwd(NWCONN_HANDLE connid, 
-       const struct ncp_bindery_object *object,
-       const u_char *key,
-       const u_char *oldpasswd,
-       const u_char *newpasswd)
-{
-       long id = htonl(object->object_id);
-       u_char cryptkey[8];
-       u_char newpwd[16];      /* new passwd as stored by server */
-       u_char oldpwd[16];      /* old passwd as stored by server */
-       u_char len;
-       DECLARE_RQ;
-
-       memcpy(cryptkey, key, 8);
-       nw_keyhash((u_char *)&id, oldpasswd, strlen(oldpasswd), oldpwd);
-       nw_keyhash((u_char *)&id, newpasswd, strlen(newpasswd), newpwd);
-       nw_encrypt(cryptkey, oldpwd, cryptkey);
-       nw_passencrypt(oldpwd, newpwd, newpwd);
-       nw_passencrypt(oldpwd + 8, newpwd + 8, newpwd + 8);
-       if ((len = strlen(newpasswd)) > 63) {
-               len = 63;
-       }
-       len = ((len ^ oldpwd[0] ^ oldpwd[1]) & 0x7f) | 0x40;
-
-       ncp_init_request_s(conn, 75);
-       ncp_add_mem(conn, cryptkey, 8);
-       ncp_add_word_hl(conn, object->object_type);
-       ncp_add_pstring(conn, object->object_name);
-       ncp_add_byte(conn, len);
-       ncp_add_mem(conn, newpwd, 16);
-       return ncp_request(connid, 23, conn);
-}
-
-/*
- * target is a 8-byte buffer
- */
-int
-ncp_get_encryption_key(NWCONN_HANDLE cH, char *target) {
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 23);
-
-       error = ncp_request(cH, 23, conn);
-       if (error)
-               return error;
-       if (conn->rpsize < 8)
-               return EACCES;
-       memcpy(target, ncp_reply_data(conn, 0), 8);
-       return 0;
-}
-
-int
-ncp_keyed_verify_password(NWCONN_HANDLE cH, char *key, char *passwd,
-       struct ncp_bindery_object *objinfo)
-{
-       u_long id = htonl(objinfo->object_id);
-       u_char cryptkey[8];
-       u_char buf[128];
-       DECLARE_RQ;
-
-       nw_keyhash((u_char *)&id, passwd, strlen(passwd), buf);
-       nw_encrypt(key, buf, cryptkey);
-
-       ncp_init_request_s(conn, 74);
-       ncp_add_mem(conn, cryptkey, sizeof(cryptkey));
-       ncp_add_word_hl(conn, objinfo->object_type);
-       ncp_add_pstring(conn, objinfo->object_name);
-
-       return ncp_request(cH, 23, conn);
-}
-
-static char passkeys[256 + 16] = {
-       0x0f, 0x08, 0x05, 0x07, 0x0c, 0x02, 0x0e, 0x09,
-       0x00, 0x01, 0x06, 0x0d, 0x03, 0x04, 0x0b, 0x0a,
-       0x02, 0x0c, 0x0e, 0x06, 0x0f, 0x00, 0x01, 0x08,
-       0x0d, 0x03, 0x0a, 0x04, 0x09, 0x0b, 0x05, 0x07,
-       0x05, 0x02, 0x09, 0x0f, 0x0c, 0x04, 0x0d, 0x00,
-       0x0e, 0x0a, 0x06, 0x08, 0x0b, 0x01, 0x03, 0x07,
-       0x0f, 0x0d, 0x02, 0x06, 0x07, 0x08, 0x05, 0x09,
-       0x00, 0x04, 0x0c, 0x03, 0x01, 0x0a, 0x0b, 0x0e,
-       0x05, 0x0e, 0x02, 0x0b, 0x0d, 0x0a, 0x07, 0x00,
-       0x08, 0x06, 0x04, 0x01, 0x0f, 0x0c, 0x03, 0x09,
-       0x08, 0x02, 0x0f, 0x0a, 0x05, 0x09, 0x06, 0x0c,
-       0x00, 0x0b, 0x01, 0x0d, 0x07, 0x03, 0x04, 0x0e,
-       0x0e, 0x08, 0x00, 0x09, 0x04, 0x0b, 0x02, 0x07,
-       0x0c, 0x03, 0x0a, 0x05, 0x0d, 0x01, 0x06, 0x0f,
-       0x01, 0x04, 0x08, 0x0a, 0x0d, 0x0b, 0x07, 0x0e,
-       0x05, 0x0f, 0x03, 0x09, 0x00, 0x02, 0x06, 0x0c,
-       0x05, 0x03, 0x0c, 0x08, 0x0b, 0x02, 0x0e, 0x0a,
-       0x04, 0x01, 0x0d, 0x00, 0x06, 0x07, 0x0f, 0x09,
-       0x06, 0x00, 0x0b, 0x0e, 0x0d, 0x04, 0x0c, 0x0f,
-       0x07, 0x02, 0x08, 0x0a, 0x01, 0x05, 0x03, 0x09,
-       0x0b, 0x05, 0x0a, 0x0e, 0x0f, 0x01, 0x0c, 0x00,
-       0x06, 0x04, 0x02, 0x09, 0x03, 0x0d, 0x07, 0x08,
-       0x07, 0x02, 0x0a, 0x00, 0x0e, 0x08, 0x0f, 0x04,
-       0x0c, 0x0b, 0x09, 0x01, 0x05, 0x0d, 0x03, 0x06,
-       0x07, 0x04, 0x0f, 0x09, 0x05, 0x01, 0x0c, 0x0b,
-       0x00, 0x03, 0x08, 0x0e, 0x02, 0x0a, 0x06, 0x0d,
-       0x09, 0x04, 0x08, 0x00, 0x0a, 0x03, 0x01, 0x0c,
-       0x05, 0x0f, 0x07, 0x02, 0x0b, 0x0e, 0x06, 0x0d,
-       0x09, 0x05, 0x04, 0x07, 0x0e, 0x08, 0x03, 0x01,
-       0x0d, 0x0b, 0x0c, 0x02, 0x00, 0x0f, 0x06, 0x0a,
-       0x09, 0x0a, 0x0b, 0x0d, 0x05, 0x03, 0x0f, 0x00,
-       0x01, 0x0c, 0x08, 0x07, 0x06, 0x04, 0x0e, 0x02,
-       0x03, 0x0e, 0x0f, 0x02, 0x0d, 0x0c, 0x04, 0x05,
-       0x09, 0x06, 0x00, 0x01, 0x0b, 0x07, 0x0a, 0x08
-};
-
-static void
-nw_passencrypt(char *old, char *new, char *out)
-{
-       char *p, v;
-       char copy[8];
-       int i, di, ax;
-
-#define HIGH(x)        (((x) >> 4) & 0xf)
-#define LOW(x) ((x) & 0xf)
-       memcpy(copy, new, 8);
-
-       for (i = 0; i < 16; i++) {
-               for (di = 0, ax = 0, p = old; di < 8; di++, ax += 0x20, p++) {
-                       v = copy[di] ^ *p;
-                       copy[di] = (passkeys[HIGH(v) + ax + 0x10] << 4) |
-                                  passkeys[LOW(v) + ax];
-               }
-               v = old[7];
-               for (p = old + 7; p > old; p--) {
-                       *p = HIGH(p[-1]) | ((*p) << 4);
-               }
-               *old = HIGH(v) | (*old) << 4;
-               bzero(out, 8);
-
-               for (di = 0; di < 16; di++) {
-                       v = passkeys[di + 0x100];
-                       v = (v & 1) ? HIGH(copy[v / 2]) : LOW(copy[v / 2]);
-                       out[di / 2] |= ((di & 1) ? v << 4 : v);
-               }
-               memcpy(copy, out, 8);
-       }
-}
diff --git a/lib/libncp/ncpl_conn.c b/lib/libncp/ncpl_conn.c
deleted file mode 100644 (file)
index ec9d47e..0000000
+++ /dev/null
@@ -1,514 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *  $FreeBSD: src/lib/libncp/ncpl_conn.c,v 1.2 1999/10/29 12:59:59 bp Exp $
- *  $DragonFly: src/lib/libncp/ncpl_conn.c,v 1.4 2005/02/28 16:23:25 joerg Exp $
- */
-
-/*
- *
- * Current scheme to create/open connection:
- * 1. ncp_li_init() - lookup -S [-U] options in command line
- * 2. ncp_li_init() - try to find existing connection
- * 3. ncp_li_init() - if no server name and no accessible connections - bail out
- * 4. This is connection candidate, read .rc file, override with command line
- *    and go ahead
- * Note: connection referenced only via ncp_login() call. Although it is 
- * possible to get connection handle in other way, it will be unwise to use
- * it, since conn can be destroyed at any time.
- * 
- */
-#include <sys/param.h>
-#include <sys/sysctl.h>
-#include <sys/ioctl.h>
-#include <sys/time.h>
-#include <sys/mount.h>
-#include <fcntl.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <pwd.h>
-#include <grp.h>
-#include <unistd.h>
-
-#include <netncp/ncp_lib.h>
-#include <netncp/ncp_rcfile.h>
-#include <nwfs/nwfs.h>
-
-static char *server_name; /* need a better way ! */
-
-
-
-int
-ncp_li_setserver(struct ncp_conn_loginfo *li, const char *arg) {
-       if (strlen(arg) >= NCP_BINDERY_NAME_LEN) {
-               ncp_error("server name '%s' too long", 0, arg);
-               return ENAMETOOLONG;
-       }
-       ncp_str_upper(strcpy(li->server, arg));
-       return 0;
-}
-
-int
-ncp_li_setuser(struct ncp_conn_loginfo *li, char *arg) {
-       if (arg && strlen(arg) >= NCP_BINDERY_NAME_LEN) {
-               ncp_error("user name '%s' too long", 0, arg);
-               return ENAMETOOLONG;
-       }
-       if (li->user)
-               free(li->user);
-       if (arg) {
-               li->user = strdup(arg);
-               if (li->user == NULL)
-                       return ENOMEM;
-               ncp_str_upper(li->user);
-       } else
-               li->user = NULL;
-       return 0;
-}
-
-int
-ncp_li_setpassword(struct ncp_conn_loginfo *li, const char *passwd) {
-       if (passwd && strlen(passwd) >= 127) {
-               ncp_error("password too long", 0);
-               return ENAMETOOLONG;
-       }
-       if (li->password) {
-               bzero(li->password, strlen(li->password));
-               free(li->password);
-       }
-       if (passwd) {
-               li->password = strdup(passwd);
-               if (li->password == NULL)
-                       return ENOMEM;
-       } else
-               li->password = NULL;
-       return 0;
-}
-/*
- * Prescan command line for [-S server] [-U user] arguments
- * and fill li structure with defaults
- */
-int
-ncp_li_init(struct ncp_conn_loginfo *li, int argc, char *argv[]) {
-       int  opt, error = 0;
-       char *arg;
-
-       bzero(li,sizeof(*li));
-       li->timeout = 15;       /* these values should be large enough to handle */
-       li->retry_count = 4;    /* slow servers, even on ethernet */
-       li->access_mode = 0;
-       li->password = NULL;
-       li->sig_level = 1;
-       li->objtype = NCP_BINDERY_USER;
-       li->owner = NCP_DEFAULT_OWNER;
-       li->group = NCP_DEFAULT_GROUP;
-       server_name = NULL;
-       if (argv == NULL) return 0;
-       while (error == 0 && (opt = ncp_getopt(argc, argv, ":S:U:")) != -1) {
-               arg = ncp_optarg;
-               switch (opt) {
-                   case 'S':
-                       error = ncp_li_setserver(li, arg);
-                       break;
-                   case 'U':
-                       error = ncp_li_setuser(li, arg);
-                       break;
-               }
-       }
-       ncp_optind = ncp_optreset = 1;
-       return error;
-}
-
-void
-ncp_li_done(struct ncp_conn_loginfo *li) {
-       if (li->user)
-               free(li->user);
-       if (li->password)
-               free(li->password);
-}
-
-/*
- * Lookup existing connection based on li structure, if connection
- * found, it will be referenced. Otherwise full login sequence performed.
- */
-int
-ncp_li_login(struct ncp_conn_loginfo *li, int *aconnid) {
-       int connHandle, error;
-
-       if ((error = ncp_conn_scan(li, &connHandle)) == 0) {
-               *aconnid = connHandle;
-               return 0;
-       }
-       error = ncp_connect(li, &connHandle);
-       if (error) return errno;
-       error = ncp_login(connHandle, li->user, li->objtype, li->password);
-       if (error) {
-               ncp_disconnect(connHandle);
-       } else
-               *aconnid = connHandle;
-       return error;
-}
-
-/*
- * read rc file as follows:
- * 1. read [server] section
- * 2. override with [server:user] section
- * Since abcence of rcfile is not a bug, silently ignore that fact.
- * rcfile never closed to reduce number of open/close operations.
- */
-int
-ncp_li_readrc(struct ncp_conn_loginfo *li) {
-       int i, val, error;
-       char uname[NCP_BINDERY_NAME_LEN*2+1];
-       char *sect = NULL, *p;
-
-       /*
-        * if info from cmd line incomplete, try to find existing
-        * connection and fill server/user from it.
-        */
-       if (li->server[0] == 0 || li->user == NULL) {
-               int connHandle;
-               struct ncp_conn_stat cs;
-               
-               if ((error = ncp_conn_scan(li, &connHandle)) != 0) {
-                       ncp_error("no default connection found", errno);
-                       return error;
-               }
-               ncp_conn_getinfo(connHandle, &cs);
-               ncp_li_setserver(li, cs.li.server);
-               ncp_li_setuser(li, cs.user);
-               ncp_li_setpassword(li, "");
-               ncp_disconnect(connHandle);
-       }
-       if (ncp_open_rcfile())  return 0;
-       
-       for (i = 0; i < 2; i++) {
-               switch (i) {
-                   case 0:
-                       sect = li->server;
-                       break;
-                   case 1:
-                       strcat(strcat(strcpy(uname,li->server),":"),li->user ? li->user : "default");
-                       sect = uname;
-                       break;
-               }
-               rc_getstringptr(ncp_rc, sect, "password", &p);
-               if (p)
-                       ncp_li_setpassword(li, p);
-               rc_getint(ncp_rc,sect, "timeout", &li->timeout);
-               rc_getint(ncp_rc,sect, "retry_count", &li->retry_count);
-               rc_getint(ncp_rc,sect, "sig_level", &li->sig_level);
-               if (rc_getint(ncp_rc,sect,"access_mode",&val) == 0)
-                       li->access_mode = val;
-               if(rc_getbool(ncp_rc,sect,"bindery",&val) == 0 && val) {
-                       li->opt |= NCP_OPT_BIND;
-               }
-       }
-       return 0;
-}
-
-/*
- * check for all uncompleted fields
- */
-int
-ncp_li_check(struct ncp_conn_loginfo *li) {
-       int error = 0;
-       char *p;
-       
-       do {
-               if (li->server[0] == 0) {
-                       ncp_error("no server name specified", 0);
-                       error = 1;
-                       break;
-               }
-               error = ncp_find_fileserver(li,
-                   (server_name==NULL) ? AF_IPX : AF_INET, server_name);
-               if (error) {
-                       ncp_error("can't find server %s", error, li->server);
-                       break;
-               }
-               if (li->user == NULL || li->user[0] == 0) {
-                       ncp_error("no user name specified for server %s",
-                           0, li->server);
-                       error = 1;
-                       break;
-               }
-               if (li->password == NULL) {
-                       p = getpass("Netware password:");
-                       error = ncp_li_setpassword(li, p) ? 1 : 0;
-               }
-       } while (0);
-       return error;
-}
-
-int
-ncp_conn_cnt(void) {
-       int error, cnt = 0;
-       size_t len = sizeof(cnt);
-       
-       error = sysctlbyname("net.ncp.conn_cnt", &cnt, &len, NULL, 0);
-       if (error) cnt = 0;
-       return cnt;
-}
-
-/*
- * Find an existing connection and reference it
- */
-int
-ncp_conn_find(char *server,char *user) {
-       struct ncp_conn_args ca;
-       int connid, error;
-
-       if (server == NULL && user == NULL) {
-               error = ncp_conn_scan(NULL,&connid);
-               if (error) return -2;
-               return connid;
-       }
-       if (server == NULL)
-               return -2;
-       ncp_str_upper(server);
-       if (user) ncp_str_upper(user);
-       bzero(&ca, sizeof(ca));
-       ncp_li_setserver(&ca, server);
-       ncp_li_setuser(&ca, user);
-       error = ncp_conn_scan(&ca,&connid);
-       if (error)
-               connid = -1;
-       return connid;
-}
-
-int
-ncp_li_arg(struct ncp_conn_loginfo *li, int opt, char *arg) {
-       int error = 0, sig_level;
-       char *p, *cp;
-       struct group *gr;
-       struct passwd *pw;
-
-       switch(opt) {
-           case 'S': /* we already fill server/[user] pair */
-           case 'U':
-               break;
-           case 'A':
-               server_name = arg;
-               break;
-           case 'B':
-               li->opt |= NCP_OPT_BIND;
-               break;
-           case 'C':
-               li->opt |= NCP_OPT_NOUPCASEPASS;
-               break;
-           case 'I':
-               sig_level = atoi(arg);
-               if (sig_level < 0 || sig_level > 3) {
-                       ncp_error("invalid NCP signature level option `%s'\
-                           (must be a number between 0 and 3)", 0, arg);
-                       error = 1;
-               }
-               li->sig_level = sig_level;
-               if (sig_level > 1) li->opt |= NCP_OPT_SIGN;
-               break;
-           case 'M':
-               li->access_mode = strtol(arg, NULL, 8);
-               break;
-           case 'N':
-               ncp_li_setpassword(li, "");
-               break;
-           case 'O':
-               p = strdup(arg);
-               cp = strchr(p, ':');
-               if (cp) {
-                       *cp++ = '\0';
-                       if (*cp) {
-                               gr = getgrnam(cp);
-                               if (gr) {
-                                       li->group = gr->gr_gid;
-                               } else
-                                       ncp_error("Invalid group name %s, ignored",
-                                           0, cp);
-                       }
-               }
-               if (*p) {
-                       pw = getpwnam(p);
-                       if (pw) {
-                               li->owner = pw->pw_uid;
-                       } else
-                               ncp_error("Invalid user name %s, ignored", 0, p);
-               }
-               endpwent();
-               free(p);
-               break;
-           case 'P':
-               li->opt |= NCP_OPT_PERMANENT;
-               break;
-           case 'R':
-               li->retry_count = atoi(arg);
-               break;
-           case 'W':
-               li->timeout = atoi(arg);
-               break;
-       }
-       return error;
-}
-
-void *
-ncp_conn_list(void) {
-       int error, cnt = 0;
-       size_t len;
-       void *p;
-       
-       cnt = ncp_conn_cnt();
-       if (cnt == 0) return NULL;
-       len = cnt*(sizeof(struct ncp_conn_stat))+sizeof(int);
-       p = malloc(len);
-       if (p == NULL) return NULL;
-       error = sysctlbyname("net.ncp.conn_stat", p, &len, NULL, 0);
-       if (error) {
-               free(p);
-               p = NULL;
-       }
-       return p;
-}
-
-
-int
-ncp_conn_setflags(int connid, u_int16_t mask, u_int16_t flags) {
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, NCP_CONN_SETFLAGS);
-       ncp_add_word_lh(conn, mask);
-       ncp_add_word_lh(conn, flags);
-       if ((error = ncp_conn_request(connid, conn)) < 0) 
-               return -1;
-       return error;
-}
-
-int
-ncp_login(int connHandle, const char *user, int objtype, const char *password) {
-       int error;
-       struct ncp_conn_login *p;
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, NCP_CONN_LOGIN);
-       p = (struct ncp_conn_login *)&conn->packet[conn->rqsize];
-       p->username = user;
-       p->objtype = objtype;
-       p->password = password;
-       conn->rqsize += sizeof(*p);
-       if ((error = ncp_conn_request(connHandle, conn)) < 0) 
-               return -1;
-       return error;
-}
-
-int
-ncp_connect_addr(struct sockaddr *sa, NWCONN_HANDLE *chp) {
-       int error;
-       struct ncp_conn_args li;
-
-       bzero(&li, sizeof(li));
-       bcopy(sa, &li.addr, sa->sa_len);
-       /*
-        * XXX Temporary !!!. server will be filled in kernel !!!
-        */
-       strcpy(li.server,ipx_ntoa(li.addr.ipxaddr.sipx_addr));
-       error = ncp_connect(&li, chp);
-       return error;
-}
-
-int
-ncp_conn_getinfo(int connHandle, struct ncp_conn_stat *ps) {
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, NCP_CONN_GETINFO);
-       if ((error = ncp_conn_request(connHandle, conn)) < 0) 
-               return -1;
-       memcpy(ps, ncp_reply_data(conn,0), sizeof(*ps));
-       return error;
-}
-
-int
-ncp_conn_getuser(int connHandle, char **user) {
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, NCP_CONN_GETUSER);
-       if ((error = ncp_conn_request(connHandle, conn)) < 0) 
-               return -1;
-       *user = strdup(ncp_reply_data(conn,0));
-       return error;
-}
-
-int
-ncp_conn2ref(int connHandle, int *connRef) {
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, NCP_CONN_CONN2REF);
-       if ((error = ncp_conn_request(connHandle, conn)) < 0) 
-               return -1;
-       *connRef = *((int*)ncp_reply_data(conn,0));
-       return error;
-}
-
-int
-ncp_path2conn(char *path, int *connHandle) {
-       struct statfs st;
-       int d, error;
-
-       if ((error = statfs(path, &st)) != 0) return errno;
-       if (strcmp(st.f_fstypename,"nwfs") != 0) return EINVAL;
-       if ((d = open(path, O_RDONLY)) < 0) return errno;
-       if ((error = ioctl(d,NWFSIOC_GETCONN, connHandle)) != 0) return errno;
-       close(d);
-       return 0;
-}
-
-int
-ncp_conn_dup(NWCONN_HANDLE org, NWCONN_HANDLE *res) {
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, NCP_CONN_DUP);
-       if ((error = ncp_conn_request(org, conn)) < 0) 
-               return errno;
-       *res = *((int*)ncp_reply_data(conn, 0));
-       return 0;
-}
diff --git a/lib/libncp/ncpl_crypt.c b/lib/libncp/ncpl_crypt.c
deleted file mode 100644 (file)
index 3f4d8d5..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/* 
- *  Routines in this file based on the work of Volker Lendecke,
- *  Adapted for ncplib by Boris Popov
- *  Please note that ncpl_crypt.c file should be indentical to this one
- *
- * $FreeBSD: src/lib/libncp/ncpl_crypt.c,v 1.1 1999/10/12 11:56:39 bp Exp $
- * $DragonFly: src/lib/libncp/ncpl_crypt.c,v 1.2 2003/06/17 04:26:50 dillon Exp $
- */
-#include <sys/param.h>
-#include <sys/errno.h>
-#include <sys/malloc.h>
-#include <string.h>
-
-/*$*********************************************************
-   $*
-   $* This code has been taken from DDJ 11/93, from an 
-   $* article by Pawel Szczerbina.
-   $*
-   $* Password encryption routines follow.
-   $* Converted to C from Barry Nance's Pascal
-   $* prog published in the March -93 issue of Byte.
-   $*
-   $* Adapted to be useable for ncpfs by 
-   $* Volker Lendecke <lendecke@namu01.gwdg.de> in 
-   $* October 1995. 
-   $*
-   $********************************************************* */
-
-
-
-typedef unsigned char buf32[32];
-
-static unsigned char encrypttable[256] = {
-0x7, 0x8, 0x0, 0x8, 0x6, 0x4, 0xE, 0x4, 0x5, 0xC, 0x1, 0x7, 0xB, 0xF, 0xA, 0x8,
-0xF, 0x8, 0xC, 0xC, 0x9, 0x4, 0x1, 0xE, 0x4, 0x6, 0x2, 0x4, 0x0, 0xA, 0xB, 0x9,
-0x2, 0xF, 0xB, 0x1, 0xD, 0x2, 0x1, 0x9, 0x5, 0xE, 0x7, 0x0, 0x0, 0x2, 0x6, 0x6,
-0x0, 0x7, 0x3, 0x8, 0x2, 0x9, 0x3, 0xF, 0x7, 0xF, 0xC, 0xF, 0x6, 0x4, 0xA, 0x0,
-0x2, 0x3, 0xA, 0xB, 0xD, 0x8, 0x3, 0xA, 0x1, 0x7, 0xC, 0xF, 0x1, 0x8, 0x9, 0xD,
-0x9, 0x1, 0x9, 0x4, 0xE, 0x4, 0xC, 0x5, 0x5, 0xC, 0x8, 0xB, 0x2, 0x3, 0x9, 0xE,
-0x7, 0x7, 0x6, 0x9, 0xE, 0xF, 0xC, 0x8, 0xD, 0x1, 0xA, 0x6, 0xE, 0xD, 0x0, 0x7,
-0x7, 0xA, 0x0, 0x1, 0xF, 0x5, 0x4, 0xB, 0x7, 0xB, 0xE, 0xC, 0x9, 0x5, 0xD, 0x1,
-0xB, 0xD, 0x1, 0x3, 0x5, 0xD, 0xE, 0x6, 0x3, 0x0, 0xB, 0xB, 0xF, 0x3, 0x6, 0x4,
-0x9, 0xD, 0xA, 0x3, 0x1, 0x4, 0x9, 0x4, 0x8, 0x3, 0xB, 0xE, 0x5, 0x0, 0x5, 0x2,
-0xC, 0xB, 0xD, 0x5, 0xD, 0x5, 0xD, 0x2, 0xD, 0x9, 0xA, 0xC, 0xA, 0x0, 0xB, 0x3,
-0x5, 0x3, 0x6, 0x9, 0x5, 0x1, 0xE, 0xE, 0x0, 0xE, 0x8, 0x2, 0xD, 0x2, 0x2, 0x0,
-0x4, 0xF, 0x8, 0x5, 0x9, 0x6, 0x8, 0x6, 0xB, 0xA, 0xB, 0xF, 0x0, 0x7, 0x2, 0x8,
-0xC, 0x7, 0x3, 0xA, 0x1, 0x4, 0x2, 0x5, 0xF, 0x7, 0xA, 0xC, 0xE, 0x5, 0x9, 0x3,
-0xE, 0x7, 0x1, 0x2, 0xE, 0x1, 0xF, 0x4, 0xA, 0x6, 0xC, 0x6, 0xF, 0x4, 0x3, 0x0,
-0xC, 0x0, 0x3, 0x6, 0xF, 0x8, 0x7, 0xB, 0x2, 0xD, 0xC, 0x6, 0xA, 0xA, 0x8, 0xD
-};
-
-static buf32 encryptkeys = {
-    0x48, 0x93, 0x46, 0x67, 0x98, 0x3D, 0xE6, 0x8D,
-    0xB7, 0x10, 0x7A, 0x26, 0x5A, 0xB9, 0xB1, 0x35,
-    0x6B, 0x0F, 0xD5, 0x70, 0xAE, 0xFB, 0xAD, 0x11,
-    0xF4, 0x47, 0xDC, 0xA7, 0xEC, 0xCF, 0x50, 0xC0
-};
-
-/*
- * Create table-based 16-bytes hash from a 32-bytes array
- */
-static void
-nw_hash(buf32 temp, unsigned char *target) {
-       short sum;
-       unsigned char b3;
-       int s, b2, i;
-
-       sum = 0;
-
-       for (b2 = 0; b2 <= 1; ++b2) {
-               for (s = 0; s <= 31; ++s) {
-                       b3 = (temp[s] + sum) ^ (temp[(s + sum) & 31] - encryptkeys[s]);
-                       sum += b3;
-                       temp[s] = b3;
-               }
-       }
-
-       for (i = 0; i <= 15; ++i) {
-               target[i] = encrypttable[temp[2 * i]]
-                   | (encrypttable[temp[2 * i + 1]] << 4);
-       }
-}
-
-
-/*
- * Create a 16-bytes pattern from given buffer based on a four bytes key
- */
-void
-nw_keyhash(const u_char *key, const u_char *buf, int buflen, u_char *target) {
-       int b2, d, s;
-       buf32 temp;
-
-       while (buflen > 0 && buf[buflen - 1] == 0)
-               buflen--;
-
-       bzero(temp, sizeof(temp));
-
-       d = 0;
-       while (buflen >= 32) {
-               for (s = 0; s <= 31; ++s)
-                       temp[s] ^= buf[d++];
-               buflen -= 32;
-       }
-       b2 = d;
-       if (buflen > 0) {
-               for (s = 0; s <= 31; ++s) {
-                       if (d + buflen == b2) {
-                               temp[s] ^= encryptkeys[s];
-                               b2 = d;
-                       } else
-                               temp[s] ^= buf[b2++];
-               }
-       }
-       for (s = 0; s <= 31; ++s)
-               temp[s] ^= key[s & 3];
-
-       nw_hash(temp, target);
-}
-
-/*
- * Create an 8-bytes pattern from an 8-bytes key and 16-bytes of data
- */
-void
-nw_encrypt(const u_char *fra, const u_char *buf, u_char *target) {
-       buf32 k;
-       int s;
-
-       nw_keyhash(fra, buf, 16, k);
-       nw_keyhash(fra + 4, buf, 16, k + 16);
-
-       for (s = 0; s < 16; s++)
-               k[s] ^= k[31 - s];
-
-       for (s = 0; s < 8; s++)
-               *target++ = k[s] ^ k[15 - s];
-}
-
-
diff --git a/lib/libncp/ncpl_file.c b/lib/libncp/ncpl_file.c
deleted file mode 100644 (file)
index 067f334..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ncpl_file.c,v 1.2 1999/10/31 03:39:03 bp Exp $
- * $DragonFly: src/lib/libncp/ncpl_file.c,v 1.2 2003/06/17 04:26:50 dillon Exp $
- */
-#include <sys/param.h>
-#include <sys/ioctl.h>
-#include <errno.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-
-#include <netncp/ncp_lib.h>
-#include <netncp/ncp_file.h>
-#include <nwfs/nwfs.h>
-
-int
-ncp_read(NWCONN_HANDLE connid, ncp_fh *fh, off_t offset, size_t count, char *target) {
-       int result;
-       struct ncp_rw rwrq;
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, NCP_CONN_READ);
-       rwrq.nrw_fh = *fh;
-       rwrq.nrw_base = target;
-       rwrq.nrw_cnt = count;
-       rwrq.nrw_offset = offset;
-       ncp_add_mem(conn, &rwrq, sizeof(rwrq));
-       if ((result = ncp_conn_request(connid, conn)) < 0) 
-               return -1;
-       return result;
-}
-
-int
-ncp_write(NWCONN_HANDLE connid, ncp_fh *fh, off_t offset, size_t count, char *source)
-{
-       int result;
-       struct ncp_rw rwrq;
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, NCP_CONN_WRITE);
-       rwrq.nrw_fh = *fh;
-       rwrq.nrw_base = source;
-       rwrq.nrw_cnt = count;
-       rwrq.nrw_offset = offset;
-       ncp_add_mem(conn, &rwrq, sizeof(rwrq));
-
-       if ((result = ncp_conn_request(connid, conn)) < 0)
-               return -1;
-       return result;
-}
-
-int
-ncp_geteinfo(char *path, struct nw_entry_info *fi) {
-       int d, error;
-
-       if ((d = open(path, O_RDONLY)) < 0) return errno;
-       if ((error = ioctl(d, NWFSIOC_GETEINFO, fi)) != 0) return errno;
-       close(d);
-       return 0;
-}
-
-
-int
-ncp_AllocTempDirHandle(char *path, NWDIR_HANDLE *pdh) {
-       int d;
-
-       if ((d = open(path, O_RDONLY)) < 0) return errno;
-       *pdh = d;
-       return 0;
-}
-
-int
-ncp_DeallocateDirHandle(NWDIR_HANDLE dh) {
-       close(dh);
-       return 0;
-}
-
-int
-ncp_GetNSEntryInfo(NWDIR_HANDLE dh, struct nw_entry_info *fi, int *ns) {
-       int error;
-
-       if ((error = ioctl(dh, NWFSIOC_GETEINFO, fi)) != 0) return errno;
-       if ((error = ioctl(dh, NWFSIOC_GETNS, ns)) != 0) return errno;
-       return 0;
-}
-
-NWCCODE
-ncp_ScanForDeletedFiles(NWCONN_HANDLE cH, pnuint32 iterHandle, 
-       pnuint32 volNum, pnuint32 dirBase, nuint8 ns,
-       NWDELETED_INFO *entryInfo)
-{
-       int error;
-       struct nw_entry_info *pfi;
-       DECLARE_RQ;
-#define        UNITEDT(d,t)    (((d) << 16) | (t))
-
-       bzero(entryInfo, sizeof(NWDELETED_INFO));
-       ncp_init_request(conn);
-       ncp_add_byte(conn, 16);
-       ncp_add_byte(conn, ns);
-       ncp_add_byte(conn, 0);          /* data stream */
-       ncp_add_dword_lh(conn, IM_ALL & ~(IM_SPACE_ALLOCATED | IM_TOTAL_SIZE | IM_EA | IM_DIRECTORY));
-       ncp_add_dword_lh(conn, *iterHandle);
-
-       ncp_add_byte(conn, *volNum);
-       ncp_add_dword_lh(conn, *dirBase);
-       ncp_add_byte(conn, NCP_HF_DIRBASE);     /* dirBase */
-       ncp_add_byte(conn, 0);                  /* no component */
-       if ((error = ncp_request(cH, 87, conn)) != 0) {
-               return error;
-       }
-       if (conn->rpsize < 0x61) {
-               return EBADRPC; /* EACCES ? */
-       }
-       *iterHandle = entryInfo->sequence = ncp_reply_dword_lh(conn, 0x00);
-       entryInfo->deletedTime = ncp_reply_word_lh(conn, 0x04);
-       entryInfo->deletedDateAndTime = UNITEDT(ncp_reply_word_lh(conn, 0x06), entryInfo->deletedTime);
-       entryInfo->deletorID = ncp_reply_dword_hl(conn, 0x08);
-       *volNum = ncp_reply_dword_lh(conn, 0x0C);
-       *dirBase = ncp_reply_dword_lh(conn, 0x10);
-       entryInfo->parent = ncp_reply_dword_lh(conn, 0x10);
-       pfi = (struct nw_entry_info*) ncp_reply_data(conn, 0x14);
-       entryInfo->nameLength = pfi->nameLen;
-       memcpy(entryInfo->name, pfi->entryName, pfi->nameLen);
-       return error;
-}
-
-NWCCODE
-ncp_PurgeDeletedFile(NWCONN_HANDLE cH, nuint32 iterHandle, 
-       nuint32 volNum, nuint32 dirBase, nuint8 ns)
-{
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, 18);
-       ncp_add_byte(conn, ns);
-       ncp_add_byte(conn, 0);          /* reserved */
-       ncp_add_dword_lh(conn, iterHandle);
-       ncp_add_dword_lh(conn, volNum);
-       ncp_add_dword_lh(conn, dirBase);
-       return ncp_request(cH, 87, conn);
-}
-
-
-static void 
-ncp_extract_entryInfo(char *data, NW_ENTRY_INFO *entry) {
-       u_char l;
-       const int info_struct_size = sizeof(NW_ENTRY_INFO) - 257;
-
-       memcpy(entry, data, info_struct_size);
-       data += info_struct_size;
-       l = *data++;
-       entry->nameLen = l;
-       memcpy(entry->entryName, data, l);
-       entry->entryName[l] = '\0';
-       return;
-}
-
-NWCCODE
-ncp_ScanNSEntryInfo(NWCONN_HANDLE cH,
-       nuint8 namSpc, nuint16 attrs, SEARCH_SEQUENCE *seq,
-       pnstr8 searchPattern, nuint32 retInfoMask, NW_ENTRY_INFO *entryInfo) 
-{
-       int error, l;
-       DECLARE_RQ;
-
-       if (seq->searchDirNumber == -1) {
-               seq->searchDirNumber = 0;
-               ncp_init_request(conn);
-               ncp_add_byte(conn, 2);
-               ncp_add_byte(conn, namSpc);
-               ncp_add_byte(conn, 0);
-               ncp_add_handle_path(conn, seq->volNumber, seq->dirNumber, 
-                   NCP_HF_DIRBASE, NULL);
-               error = ncp_request(cH, 87, conn);
-               if (error) return error;
-               memcpy(seq, ncp_reply_data(conn, 0), 9);
-       }
-       ncp_init_request(conn);
-       ncp_add_byte(conn, 3);
-       ncp_add_byte(conn, namSpc);
-       ncp_add_byte(conn, 0);          /* dataStream */
-       ncp_add_word_lh(conn, attrs);   /* SearchAttributes */
-       ncp_add_dword_lh(conn, retInfoMask);
-       ncp_add_mem(conn, seq, sizeof(*seq));
-       l = strlen(searchPattern);
-       ncp_add_byte(conn, l);
-       ncp_add_mem(conn, searchPattern, l);
-       error = ncp_request(cH, 87, conn);
-       if (error) return error;
-       memcpy(seq, ncp_reply_data(conn, 0), sizeof(*seq));
-       ncp_extract_entryInfo(ncp_reply_data(conn, 10), entryInfo);
-       return 0;
-}
-
-int
-ncp_NSEntryInfo(NWCONN_HANDLE cH, nuint8 ns, nuint8 vol, nuint32 dirent,
-    NW_ENTRY_INFO *entryInfo)
-{
-       DECLARE_RQ;
-       int error;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, 6);
-       ncp_add_byte(conn, ns);
-       ncp_add_byte(conn, ns); /* DestNameSpace */
-       ncp_add_word_lh(conn, htons(0xff00));   /* get all */
-       ncp_add_dword_lh(conn, IM_ALL);
-       ncp_add_handle_path(conn, vol, dirent, NCP_HF_DIRBASE, NULL);
-       error = ncp_request(cH, 87, conn);
-       if (error) return error;
-       ncp_extract_entryInfo(ncp_reply_data(conn, 0), entryInfo);
-       return 0;
-}
-
-NWCCODE
-NWGetVolumeName(NWCONN_HANDLE cH, u_char volume, char *name) {
-       int error, len;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 44);
-       ncp_add_byte(conn, volume);
-       error = ncp_request(cH, 22, conn);
-       if (error) return error;
-       len = ncp_reply_byte(conn, 29);
-       if (len == 0)
-               return ENOENT;
-       bcopy(ncp_reply_data(conn, 30), name, len);
-       name[len] = 0;
-       return 0;
-}
diff --git a/lib/libncp/ncpl_misc.c b/lib/libncp/ncpl_misc.c
deleted file mode 100644 (file)
index 87609fa..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ncpl_misc.c,v 1.3 1999/10/31 03:39:03 bp Exp $
- * $DragonFly: src/lib/libncp/ncpl_misc.c,v 1.2 2003/06/17 04:26:50 dillon Exp $
- *
- * calls that don't fit to any other category
- *
- */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <netncp/ncp_lib.h>
-
-static time_t
-ncp_nw_to_ctime(struct nw_time_buffer *source) {
-       struct tm u_time;
-
-       bzero(&u_time,sizeof(struct tm));
-       /*
-        * XXX: NW 4.x tracks daylight automatically
-        */
-       u_time.tm_isdst = -1;
-       u_time.tm_sec = source->second;
-       u_time.tm_min = source->minute;
-       u_time.tm_hour = source->hour;
-       u_time.tm_mday = source->day;
-       u_time.tm_mon = source->month - 1;
-       u_time.tm_year = source->year;
-
-       if (u_time.tm_year < 80) {
-               u_time.tm_year += 100;
-       }
-       return mktime(&u_time);
-}
-
-int
-ncp_get_file_server_information(NWCONN_HANDLE connid,
-       struct ncp_file_server_info *target)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 17);
-       if ((error = ncp_request(connid, 23, conn)) != 0) 
-               return error;
-       memcpy(target, ncp_reply_data(conn, 0), sizeof(*target));
-       target->MaximumServiceConnections
-           = htons(target->MaximumServiceConnections);
-       target->ConnectionsInUse
-           = htons(target->ConnectionsInUse);
-       target->MaxConnectionsEverUsed
-           = htons(target->MaxConnectionsEverUsed);
-       target->NumberMountedVolumes
-           = htons(target->NumberMountedVolumes);
-       return 0;
-}
-
-int
-ncp_get_stations_logged_info(NWCONN_HANDLE connid, u_int32_t connection,
-       struct ncp_bindery_object *target, time_t *login_time)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 28);
-       ncp_add_dword_lh(conn, connection);
-
-       if ((error = ncp_request(connid, 23, conn)) != 0)
-               return error;
-       bzero(target, sizeof(*target));
-       target->object_id = ncp_reply_dword_hl(conn, 0);
-       target->object_type = ncp_reply_word_hl(conn, 4);
-       memcpy(target->object_name, ncp_reply_data(conn, 6),
-              sizeof(target->object_name));
-       *login_time = ncp_nw_to_ctime((struct nw_time_buffer *)ncp_reply_data(conn, 54));
-       return 0;
-}
-
-int
-ncp_get_internet_address(NWCONN_HANDLE connid, u_int32_t connection,
-       struct ipx_addr *target, u_int8_t * conn_type)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 26);
-       ncp_add_dword_lh(conn, connection);
-       error = ncp_request(connid, 23, conn);
-       if (error) return error;
-       bzero(target, sizeof(*target));
-       ipx_netlong(*target) = ncp_reply_dword_lh(conn, 0);
-       memcpy(&(target->x_host), ncp_reply_data(conn, 4), 6);
-       target->x_port = ncp_reply_word_lh(conn, 10);
-       *conn_type = ncp_reply_byte(conn, 12);
-       return 0;
-}
-
-NWCCODE
-NWGetObjectConnectionNumbers(NWCONN_HANDLE connHandle,
-               pnstr8 pObjName, nuint16 objType,
-               pnuint16 pNumConns, pnuint16 pConnHandleList,
-               nuint16 maxConns) 
-{
-       int error, i, n;
-       nuint32 lastconn;
-       DECLARE_RQ;
-
-       lastconn = 0;
-       ncp_init_request_s(conn, 27);
-       ncp_add_dword_lh(conn, lastconn);
-       ncp_add_word_hl(conn, objType);
-       ncp_add_pstring(conn, pObjName);
-       if ((error = ncp_request(connHandle, 23, conn)) != 0) return error;
-       n = min(ncp_reply_byte(conn, 0), maxConns);
-       *pNumConns = n;
-       for (i = 0; i < n ; i++) {
-               *pConnHandleList++ = ncp_reply_dword_lh(conn, i * 4 + 1);
-       }
-       return 0;
-}
-
-void
-NWUnpackDateTime(nuint32 dateTime, NW_DATE *sDate, NW_TIME *sTime) {
-       NWUnpackDate(dateTime >> 16, sDate);
-       NWUnpackTime(dateTime & 0xffff, sTime);
-}
-
-void
-NWUnpackDate(nuint16 date, NW_DATE *sDate) {
-       sDate->day = date & 0x1f;
-       sDate->month = (date >> 5) & 0xf;
-       sDate->year = ((date >> 9) & 0x7f) + 1980;
-}
-
-void
-NWUnpackTime(nuint16 time, NW_TIME *sTime) {
-       sTime->seconds = time & 0x1f;
-       sTime->minutes = (time >> 5) & 0x3f;
-       sTime->hours = (time >> 11) & 0x1f;
-}
-
-nuint32
-NWPackDateTime(NW_DATE *sDate, NW_TIME *sTime) {
-       return 0;
-}
-
-nuint16
-NWPackDate(NW_DATE *sDate) {
-       return 0;
-}
-
-nuint16
-NWPackTime(NW_TIME *sTime) {
-       return 0;
-}
-
-time_t
-ncp_UnpackDateTime(nuint32 dateTime) {
-       struct tm u_time;
-       NW_DATE d;
-       NW_TIME t;
-
-       NWUnpackDateTime(dateTime, &d, &t);
-       bzero(&u_time,sizeof(struct tm));
-       u_time.tm_isdst = -1;
-       u_time.tm_sec = t.seconds;
-       u_time.tm_min = t.minutes;
-       u_time.tm_hour = t.hours;
-       u_time.tm_mday = d.day;
-       u_time.tm_mon = d.month - 1;
-       u_time.tm_year = d.year - 1900;
-
-       return mktime(&u_time);
-}
-
-int
-ncp_GetFileServerDateAndTime(NWCONN_HANDLE cH, time_t *target) {
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       if ((error = ncp_request(cH, 20, conn)) != 0)
-               return error;
-       *target = ncp_nw_to_ctime((struct nw_time_buffer *) ncp_reply_data(conn, 0));
-       return 0;
-}
-
-int
-ncp_SetFileServerDateAndTime(NWCONN_HANDLE cH, time_t * source) {
-       int year;
-       struct tm *utime = localtime(source);
-       DECLARE_RQ;
-
-       year = utime->tm_year;
-       if (year > 99) {
-               year -= 100;
-       }
-       ncp_init_request_s(conn, 202);
-       ncp_add_byte(conn, year);
-       ncp_add_byte(conn, utime->tm_mon + 1);
-       ncp_add_byte(conn, utime->tm_mday);
-       ncp_add_byte(conn, utime->tm_hour);
-       ncp_add_byte(conn, utime->tm_min);
-       ncp_add_byte(conn, utime->tm_sec);
-       return ncp_request(cH, 23, conn);
-}
-
-NWCCODE
-NWDownFileServer(NWCONN_HANDLE cH, int force) {
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 211);
-       ncp_add_byte(conn, force ? 0 : 0xff);
-       return ncp_request(cH, 23, conn);
-}
-
-NWCCODE
-NWCloseBindery(NWCONN_HANDLE cH) {
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 68);
-       return ncp_request(cH, 23, conn);
-}
-
-NWCCODE
-NWOpenBindery(NWCONN_HANDLE cH) {
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 69);
-       return ncp_request(cH, 23, conn);
-}
-
-NWCCODE
-NWDisableTTS(NWCONN_HANDLE cH) {
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 207);
-       return ncp_request(cH, 23, conn);
-}
-
-NWCCODE
-NWEnableTTS(NWCONN_HANDLE cH) {
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 208);
-       return ncp_request(cH, 23, conn);
-}
-
-NWCCODE
-NWDisableFileServerLogin(NWCONN_HANDLE cH) {
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 203);
-       return ncp_request(cH, 23, conn);
-}
-
-NWCCODE
-NWEnableFileServerLogin(NWCONN_HANDLE cH) {
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 204);
-       return ncp_request(cH, 23, conn);
-}
diff --git a/lib/libncp/ncpl_msg.c b/lib/libncp/ncpl_msg.c
deleted file mode 100644 (file)
index d75c717..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ncpl_msg.c,v 1.1 1999/10/12 11:56:40 bp Exp $
- * $DragonFly: src/lib/libncp/ncpl_msg.c,v 1.2 2003/06/17 04:26:50 dillon Exp $
- */
-#include <sys/types.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <netncp/ncp_lib.h>
-#include <netncp/ncp_nls.h>
-
-NWCCODE
-NWDisableBroadcasts(NWCONN_HANDLE connHandle) {
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 2);
-       return ncp_request(connHandle, 21, conn);
-}
-
-NWCCODE
-NWEnableBroadcasts(NWCONN_HANDLE connHandle) {
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 3);
-       return ncp_request(connHandle, 21, conn);
-}
-
-NWCCODE
-NWBroadcastToConsole(NWCONN_HANDLE connHandle, pnstr8 message) {
-       int l, error;
-       DECLARE_RQ;
-
-       l = strlen(message);
-       if (l > 60) return EMSGSIZE;
-       ncp_init_request_s(conn, 9);
-       ncp_add_byte(conn, l);
-       ncp_add_mem_nls(conn, message, l);
-       error = ncp_request(connHandle, 21, conn);
-       return error;
-}
-
-NWCCODE 
-NWSendBroadcastMessage(NWCONN_HANDLE  connHandle, pnstr8 message,
-           nuint16 connCount, pnuint16 connList, pnuint8 resultList)
-{
-       int l, i, error;
-       DECLARE_RQ;
-
-       l = strlen(message);
-       if (l > 255) return EMSGSIZE;
-       if (connCount > 350) return EINVAL;
-               
-       ncp_init_request_s(conn, 0x0A);
-       ncp_add_word_lh(conn, connCount);
-       for (i = 0; i < connCount; i++)
-               ncp_add_dword_lh(conn, connList[i]);
-       ncp_add_byte(conn, l);
-       ncp_add_mem_nls(conn, message, l);
-       error = ncp_request(connHandle, 0x15, conn);
-       if (!error) {
-               l = ncp_reply_word_lh(conn, 0);
-               for (i = 0; i < l; i++)
-                       resultList[i] =  ncp_reply_dword_lh(conn, (i)*4 + 2);
-               return 0;
-       }
-       if (error != 0xfb) return error;
-       if (l > 58) return EMSGSIZE;
-       ncp_init_request_s(conn, 0);
-       ncp_add_byte(conn, connCount);
-       for (i = 0; i < connCount; i++)
-               ncp_add_byte(conn, connList[i]);
-       ncp_add_byte(conn, l);
-       ncp_add_mem_nls(conn, message, l);
-       error = ncp_request(connHandle, 0x15, conn);
-       if (error) return error;
-       i = ncp_reply_byte(conn, 0);
-       memcpy(resultList, ncp_reply_data(conn, 1), i);
-       return 0;
-}
-
-
-NWCCODE
-NWGetBroadcastMessage(NWCONN_HANDLE connHandle, pnstr8 message) {
-       int i, error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 0x0B);
-       error = ncp_request(connHandle, 0x15, conn);
-       if (error) {
-               if (error != 0x89fb) return error;
-               ncp_init_request_s(conn, 0x01);
-               if ((error = ncp_request(connHandle, 0x15, conn)) != 0) 
-                       return error;
-       }
-       i = ncp_reply_byte(conn, 0);
-       if (i == 0) return ENOENT;
-       memcpy(message, ncp_reply_data(conn, 1), i);
-       message[i] = 0;
-       ncp_nls_str_n2u(message, message);
-       return 0;
-}
diff --git a/lib/libncp/ncpl_net.c b/lib/libncp/ncpl_net.c
deleted file mode 100644 (file)
index b7a76e3..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ncpl_net.c,v 1.1 1999/10/12 11:56:40 bp Exp $
- * $DragonFly: src/lib/libncp/ncpl_net.c,v 1.2 2003/06/17 04:26:50 dillon Exp $
- */
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/errno.h>
-#include <sys/syscall.h>
-#include <ctype.h>
-#include <netinet/in.h>
-#include <netipx/ipx.h>
-#include <netdb.h>
-#include <string.h>
-#include <stdio.h>
-#include <unistd.h>
-
-#include "ipxsap.h"
-#include <netncp/ncp_lib.h>
-#include "ncp_mod.h"
-
-static int ncp_find_server_in(struct ncp_conn_loginfo *li, int type, char *server_name);
-
-static int
-ncp_find_server_ipx(struct ncp_conn_loginfo *li, int type) {
-       char server[NCP_BINDERY_NAME_LEN + 1];
-       int error;
-       char nearest[NCP_BINDERY_NAME_LEN + 1];
-       struct nw_property prop;
-       struct ipx_addr *n_addr = (struct ipx_addr *) &prop;
-/*     struct ncp_conn_loginfo ltmp;*/
-       int connid;
-
-       bzero(server, sizeof(server));
-       bzero(nearest, sizeof(nearest));
-
-       strcpy(server, li->server);
-       ncp_str_upper(server);
-
-       if ((error = sap_find_nearest(type, &li->addr.ipxaddr, nearest)) != 0) {
-               return error;
-       }
-       /* if no server specified return info about nearest */
-       if (!li->server[0]) {
-               strcpy(li->server, nearest);
-               return 0;
-       }
-/*     printf("%s\n",ipx_ntoa(li->addr.ipxaddr.sipx_addr));*/
-       if (strcmp(server, nearest) == 0) {
-               return 0;
-       }
-       /* We have to ask the nearest server for our wanted server */
-       li->opt=0;
-       if ((error = ncp_connect(li, &connid)) != 0) {
-               return error;
-       }
-       if (ncp_read_property_value(connid, type, server, 1, "NET_ADDRESS", &prop) != 0) {
-               ncp_disconnect(connid);
-               return EHOSTUNREACH;
-       }
-       if ((error = ncp_disconnect(connid)) != 0) {
-               return error;
-       }
-       li->addr.ipxaddr.sipx_family = AF_IPX;
-       li->addr.ipxaddr.sipx_addr.x_net = n_addr->x_net;
-       li->addr.ipxaddr.sipx_port = n_addr->x_port;
-       li->addr.ipxaddr.sipx_addr.x_host = n_addr->x_host;
-       return 0;
-}
-
-static int
-ncp_find_server_in(struct ncp_conn_loginfo *li, int type, char *server_name) {
-       struct hostent* h;
-       int l;
-
-       h = gethostbyname(server_name);
-       if (!h) {
-               fprintf(stderr, "Get host address `%s': ", server_name);
-               herror(NULL);
-               return 1;
-       }
-       if (h->h_addrtype != AF_INET) {
-               fprintf(stderr, "Get host address `%s': Not AF_INET\n", server_name);
-               return 1;
-       }
-       if (h->h_length != 4) {
-               fprintf(stderr, "Get host address `%s': Bad address length\n", server_name);
-               return 1;
-       }
-       l = sizeof(struct sockaddr_in);
-       bzero(&li->addr.inaddr, l);
-       li->addr.inaddr.sin_len = l;
-       li->addr.inaddr.sin_family = h->h_addrtype;
-       memcpy(&li->addr.inaddr.sin_addr.s_addr, h->h_addr, 4);
-       li->addr.inaddr.sin_port = htons(524); /* ncp */
-       return 0;
-}
-
-int 
-ncp_find_server(struct ncp_conn_loginfo *li, int type, int af, char *name) {
-       int error = EHOSTUNREACH;
-
-       switch(af) {
-           case AF_IPX:
-               error = ncp_find_server_ipx(li, type);
-               break;
-           case AF_INET:
-               if (name)
-                       error = ncp_find_server_in(li, type, name);
-               break;
-           default:
-               error = EPROTONOSUPPORT;
-       }
-       return error;
-}
-
-int
-ncp_find_fileserver(struct ncp_conn_loginfo *li, int af, char *name) {
-       return ncp_find_server(li, NCP_BINDERY_FSERVER, af, name);
-}
diff --git a/lib/libncp/ncpl_nls.c b/lib/libncp/ncpl_nls.c
deleted file mode 100644 (file)
index 5b75a1b..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- * Copyright (c) 1999-2002, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ncpl_nls.c,v 1.2.2.1 2002/04/30 08:18:24 bp Exp $
- * $DragonFly: src/lib/libncp/ncpl_nls.c,v 1.3 2008/06/05 18:06:30 swildner Exp $
- */
-
-/*
- * Languages support. Currently is very primitive.
- */
-#include <sys/types.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <locale.h>
-
-#include <netncp/ncp_lib.h>
-#include <netncp/ncp_cfg.h>
-#include <netncp/ncp_nls.h>
-
-#ifndef        NCP_NLS_DEFAULT
-#define        NCP_NLS_DEFAULT NCP_NLS_AS_IS
-#endif
-
-/*
- * TODO: Make all tables dynamically loadable.
- */
-#ifdef NCP_NLS_KOI2CP866
-/* Russian tables from easy-cyrillic:
- * Copyright (C) 1993-1994 by Andrey A. Chernov, Moscow, Russia
- */
-static u_int8_t alt2koi8[] = {
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, /* 0x00 */
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, /* 0x10 */
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
-       0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20 */
-       0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
-       0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30 */
-       0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x5f,
-       0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x40 */
-       0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
-       0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x50 */
-       0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
-       0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60 */
-       0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
-       0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70 */
-       0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
-       0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
-       0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
-       0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
-       0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
-       0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
-       0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
-       0x90, 0x91, 0x92, 0x81, 0x87, 0xb2, 0xb4, 0xa7,
-       0xa6, 0xb5, 0xa1, 0xa8, 0xae, 0xad, 0xac, 0x83,
-       0x84, 0x89, 0x88, 0x86, 0x80, 0x8a, 0xaf, 0xb0,
-       0xab, 0xa5, 0xbb, 0xb8, 0xb1, 0xa0, 0xbe, 0xb9,
-       0xba, 0xb6, 0xb7, 0xaa, 0xa9, 0xa2, 0xa4, 0xbd,
-       0xbc, 0x85, 0x82, 0x8d, 0x8c, 0x8e, 0x8f, 0x8b,
-       0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
-       0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1,
-       0xb3, 0xa3, 0x99, 0x98, 0x93, 0x9b, 0x9f, 0x97,
-       0x9c, 0x95, 0x9e, 0x96, 0xbf, 0x9d, 0x94, 0x9a
-};
-
-static u_int8_t koi82alt[] = {
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, /* 0x00 */
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, /* 0x10 */
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
-       0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20 */
-       0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
-       0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30 */
-       0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x5f,
-       0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x40 */
-       0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
-       0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x50 */
-       0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
-       0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60 */
-       0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
-       0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70 */
-       0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
-       0xc4, 0xb3, 0xda, 0xbf, 0xc0, 0xd9, 0xc3, 0xb4, /* 0x80 */
-       0xc2, 0xc1, 0xc5, 0xdf, 0xdc, 0xdb, 0xdd, 0xde,
-       0xb0, 0xb1, 0xb2, 0xf4, 0xfe, 0xf9, 0xfb, 0xf7,
-       0xf3, 0xf2, 0xff, 0xf5, 0xf8, 0xfd, 0xfa, 0xf6,
-       0xcd, 0xba, 0xd5, 0xf1, 0xd6, 0xc9, 0xb8, 0xb7,
-       0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6,
-       0xc7, 0xcc, 0xb5, 0xf0, 0xb6, 0xb9, 0xd1, 0xd2,
-       0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0xfc,
-       0xee, 0xa0, 0xa1, 0xe6, 0xa4, 0xa5, 0xe4, 0xa3,
-       0xe5, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae,
-       0xaf, 0xef, 0xe0, 0xe1, 0xe2, 0xe3, 0xa6, 0xa2,
-       0xec, 0xeb, 0xa7, 0xe8, 0xed, 0xe9, 0xe7, 0xea,
-       0x9e, 0x80, 0x81, 0x96, 0x84, 0x85, 0x94, 0x83,
-       0x95, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e,
-       0x8f, 0x9f, 0x90, 0x91, 0x92, 0x93, 0x86, 0x82, /* 0xf0 */ 
-       0x9c, 0x9b, 0x87, 0x98, 0x9d, 0x99, 0x97, 0x9a
-};
-
-#endif
-
-/*
- * Characters mapping for codepages used in Sweden.
- */
-static u_int8_t se_nw2unix[] = {
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, /* 0x00 */
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, /* 0x10 */
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
-       0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20 */
-       0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
-       0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30 */
-       0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x5f,
-       0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x40 */
-       0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
-       0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x50 */
-       0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
-       0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60 */
-       0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
-       0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70 */
-       0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
-       0xe1, 0xe2, 0xf7, 0xe7, 0xE4, 0xc4, 0xE5, 0xfa, /* 0x80 */
-       0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xC4, 0xC5,
-       0xf2, 0xf3, 0xf4, 0xf5, 0xF6, 0xe8, 0xe3, 0xfe, /* 0x90 */
-       0xfb, 0xD6, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
-       0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0xA0 */
-       0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
-       0x90, 0x91, 0x92, 0x81, 0x87, 0xb2, 0xb4, 0xa7, /* 0xB0 */
-       0xa6, 0xb5, 0xa1, 0xa8, 0xae, 0xad, 0xac, 0x83,
-       0x84, 0x89, 0x88, 0x86, 0x80, 0x8a, 0xaf, 0xb0, /* 0xC0 */
-       0xab, 0xa5, 0xbb, 0xb8, 0xb1, 0xa0, 0xbe, 0xb9,
-       0xba, 0xb6, 0xb7, 0xaa, 0xa9, 0xa2, 0xa4, 0xbd, /* 0xD0 */
-       0xbc, 0x85, 0x82, 0x8d, 0x8c, 0x8e, 0x8f, 0x8b,
-       0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0xE0 */
-       0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1,
-       0xb3, 0xa3, 0x99, 0x98, 0x93, 0x9b, 0x9f, 0x97, /* 0xF0 */
-       0x9c, 0x95, 0x9e, 0x96, 0xbf, 0x9d, 0x94, 0x9a
-};
-
-static u_int8_t se_unix2nw[] = {
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, /* 0x00 */
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, /* 0x10 */
-       0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
-       0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20 */
-       0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
-       0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30 */
-       0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x5f,
-       0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x40 */
-       0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
-       0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x50 */
-       0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
-       0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60 */
-       0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
-       0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70 */
-       0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
-       0xc4, 0xb3, 0xda, 0xbf, 0xc0, 0xd9, 0xc3, 0xb4, /* 0x80 */
-       0xc2, 0xc1, 0xc5, 0xdf, 0xdc, 0xdb, 0xdd, 0xde,
-       0xb0, 0xb1, 0xb2, 0xf4, 0xfe, 0xf9, 0xfb, 0xf7, /* 0x90 */
-       0xf3, 0xf2, 0xff, 0xf5, 0xf8, 0xfd, 0xfa, 0xf6,
-       0xcd, 0xba, 0xd5, 0xf1, 0xd6, 0xc9, 0xb8, 0xb7, /* 0xA0 */
-       0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6,
-       0xc7, 0xcc, 0xb5, 0xf0, 0xb6, 0xb9, 0xd1, 0xd2, /* 0xB0 */
-       0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0xfc,
-       0xee, 0xa0, 0xa1, 0xe6, 0x8E, 0x8F, 0xe4, 0xa3, /* 0xC0 */
-       0xe5, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae,
-       0xaf, 0xef, 0xe0, 0xe1, 0xe2, 0xe3, 0x99, 0xa2, /* 0xD0 */
-       0xec, 0xeb, 0xa7, 0xe8, 0xed, 0xe9, 0xe7, 0xea,
-       0x9e, 0x80, 0x81, 0x96, 0x84, 0x86, 0x94, 0x83, /* 0xE0 */
-       0x95, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e,
-       0x8f, 0x9f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x82, /* 0xf0 */ 
-       0x9c, 0x9b, 0x87, 0x98, 0x9d, 0x99, 0x97, 0x9a
-};
-
-
-static u_int8_t def2lower[256];
-static u_int8_t def2upper[256];
-
-/*
- * List of available charsets
- */
-struct ncp_nlsdesc {
-       int     scheme;
-       char    *name;
-       struct ncp_nlstables nls;
-};
-
-static struct ncp_nlsdesc ncp_nlslist[] = {
-       {NCP_NLS_AS_IS, NCP_NLS_AS_IS_NAME, 
-           {def2lower, def2upper, NULL, NULL, 0}
-       },
-#ifdef NCP_NLS_KOI2CP866
-       {NCP_NLS_KOI_866, NCP_NLS_KOI_866_NAME, 
-           {def2lower, def2upper, alt2koi8, koi82alt, 0}
-       },
-#endif
-       {NCP_NLS_SE, NCP_NLS_SE_NAME, 
-           {def2lower, def2upper, se_nw2unix, se_unix2nw, 0}
-       },
-       {0, NULL}
-};
-
-struct ncp_nlstables ncp_nls;
-
-int
-ncp_nls_setlocale(char *name) {
-       int i;
-
-       ncp_nls.to_lower = def2lower;
-       ncp_nls.to_upper = def2upper;
-       if (setlocale(LC_CTYPE, name) == NULL) {
-               fprintf(stderr, "Can't set locale '%s'\n", name);
-               return EINVAL;
-       }
-       for (i = 0; i < 256; i++) {
-               ncp_nls.to_lower[i] = tolower(i);
-               ncp_nls.to_upper[i] = toupper(i);
-       }
-       return 0;
-}
-
-int
-ncp_nls_setrecode(int scheme) {
-       struct ncp_nlsdesc *nd;
-
-       if (scheme == 0) {
-#if NCP_NLS_DEFAULT
-               scheme = NCP_NLS_DEFAULT;
-#else
-               scheme = NCP_NLS_AS_IS;
-#endif
-       }
-       for (nd = ncp_nlslist; nd->name; nd++) {
-               if (nd->scheme != scheme) continue;
-               ncp_nls.u2n = nd->nls.u2n;
-               ncp_nls.n2u = nd->nls.n2u;
-               return ncp_nls_setlocale("");
-       }
-       fprintf(stderr, "Character conversion scheme %d was not compiled in\n", scheme);
-       return EINVAL;
-}
-
-int
-ncp_nls_setrecodebyname(char *name) {
-       struct ncp_nlsdesc *nd;
-
-       for (nd = ncp_nlslist; nd->name; nd++) {
-               if (strcmp(nd->name, name) != 0) continue;
-               ncp_nls.u2n = nd->nls.u2n;
-               ncp_nls.n2u = nd->nls.n2u;
-               return 0;
-       }
-       fprintf(stderr, "Character conversion scheme %s was not compiled in\n", name);
-       return EINVAL;
-}
-
-char *
-ncp_nls_str_n2u(char *dst, const char *src) {
-       char *p;
-
-       if (ncp_nls.n2u == NULL) {
-               return strcpy(dst, src);
-       }
-       p = dst;
-       while (*src)
-               *p++ = ncp_nls.n2u[(u_char)*(src++)];
-       *p = 0;
-       return dst;
-}
-
-char *
-ncp_nls_str_u2n(char *dst, const char *src) {
-       char *p;
-
-       if (ncp_nls.u2n == NULL) {
-               return strcpy(dst, src);
-       }
-       p = dst;
-       while (*src)
-               *p++ = ncp_nls.u2n[(u_char)*(src++)];
-       *p = 0;
-       return dst;
-}
-
-char *
-ncp_nls_mem_n2u(char *dst, const char *src, int size) {
-       char *p;
-
-       if (size == 0) return NULL;
-       if (ncp_nls.n2u == NULL) {
-               return memcpy(dst, src, size);
-       }
-       for(p = dst; size; size--, p++)
-               *p = ncp_nls.n2u[(u_char)*(src++)];
-       return dst;
-}
-
-char *
-ncp_nls_mem_u2n(char *dst, const char *src, int size) {
-       char *p;
-
-       if (size == 0) return NULL;
-       if (ncp_nls.u2n == NULL) {
-               return strcpy(dst, src);
-       }
-       for(p = dst; size; size--, p++)
-               *p = ncp_nls.u2n[(u_char)*(src++)];
-       return dst;
-}
-
-char *
-ncp_str_upper(char *s) {
-       char *p = s;
-       while (*s) {
-               *s = toupper(*s);
-               s++;
-       }
-       return p;
-}
diff --git a/lib/libncp/ncpl_queue.c b/lib/libncp/ncpl_queue.c
deleted file mode 100644 (file)
index 067cc02..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ncpl_queue.c,v 1.2 1999/10/31 03:39:03 bp Exp $
- *
- * NetWare queue interface
- *
- */
-#include <sys/types.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <netncp/ncp_lib.h>
-
-int
-ncp_create_queue_job_and_file(NWCONN_HANDLE connid, u_int32_t queue_id, 
-       struct queue_job *job)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 121);
-       ncp_add_dword_hl(conn, queue_id);
-       ncp_add_mem(conn, &(job->j), sizeof(job->j));
-
-       if ((error = ncp_request(connid, 23, conn)) != 0)
-               return error;
-       memcpy(&(job->j), ncp_reply_data(conn, 0), 78);
-       ConvertToNWfromDWORD(job->j.JobFileHandle, &job->file_handle);
-       return 0;
-}
-
-int
-ncp_close_file_and_start_job(NWCONN_HANDLE connid, u_int32_t queue_id,
-       struct queue_job *job)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 127);
-       ncp_add_dword_hl(conn, queue_id);
-       ncp_add_dword_lh(conn, job->j.JobNumber);
-       error = ncp_request(connid, 23, conn);
-       return error;
-}
-
-int
-ncp_attach_to_queue(NWCONN_HANDLE connid, u_int32_t queue_id) {
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 111);
-       ncp_add_dword_hl(conn, queue_id);
-       error = ncp_request(connid, 23, conn);
-       return error;
-}
-
-int
-ncp_detach_from_queue(NWCONN_HANDLE connid, u_int32_t queue_id) {
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 112);
-       ncp_add_dword_hl(conn, queue_id);
-       error= ncp_request(connid, 23, conn);
-       return error;
-}
-
-int
-ncp_service_queue_job(NWCONN_HANDLE connid, u_int32_t queue_id,
-       u_int16_t job_type, struct queue_job *job)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 124);
-       ncp_add_dword_hl(conn, queue_id);
-       ncp_add_word_hl(conn, job_type);
-       if ((error = ncp_request(connid, 23, conn)) != 0) {
-               return error;
-       }
-       memcpy(&(job->j), ncp_reply_data(conn, 0), 78);
-       ConvertToNWfromDWORD(job->j.JobFileHandle, &job->file_handle);
-       return error;
-}
-
-int
-ncp_finish_servicing_job(NWCONN_HANDLE connid, u_int32_t queue_id,
-       u_int32_t job_number, u_int32_t charge_info)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 131);
-       ncp_add_dword_hl(conn, queue_id);
-       ncp_add_dword_lh(conn, job_number);
-       ncp_add_dword_hl(conn, charge_info);
-
-       error = ncp_request(connid, 23, conn);
-       return error;
-}
-
-int
-ncp_abort_servicing_job(NWCONN_HANDLE connid, u_int32_t queue_id,
-       u_int32_t job_number)
-{
-       int error;
-       DECLARE_RQ;
-
-       ncp_init_request_s(conn, 132);
-       ncp_add_dword_hl(conn, queue_id);
-       ncp_add_dword_lh(conn, job_number);
-       error = ncp_request(connid, 23, conn);
-       return error;
-}
-
-int
-ncp_get_queue_length(NWCONN_HANDLE connid, u_int32_t queue_id,
-       u_int32_t *queue_length)
-{
-       int error;
-       DECLARE_RQ;
-
-        ncp_init_request_s(conn, 125);
-        ncp_add_dword_hl(conn, queue_id);
-
-       if ((error = ncp_request(connid, 23, conn)) != 0) 
-               return error;
-       if (conn->rpsize < 12) {
-               ncp_printf("ncp_reply_size %d < 12\n", conn->rpsize);
-               return EINVAL;
-       }
-       if (ncp_reply_dword_hl(conn,0) != queue_id) {
-               printf("Ouch! Server didn't reply with same queue id in ncp_get_queue_length!\n");
-               return EINVAL;
-       }
-        *queue_length = ncp_reply_dword_lh(conn,8);
-        return error;
-}
-
-int 
-ncp_get_queue_job_ids(NWCONN_HANDLE connid, u_int32_t queue_id,
-       u_int32_t queue_section, u_int32_t *length1, u_int32_t *length2,
-       u_int32_t ids[])
-{
-       int error;
-       DECLARE_RQ;
-
-        ncp_init_request_s(conn,129);
-        ncp_add_dword_hl(conn, queue_id);
-        ncp_add_dword_lh(conn, queue_section);
-        
-        if ((error = ncp_request(connid, 23, conn)) != 0)
-                return error;
-        if (conn->rpsize < 8) {
-                ncp_printf("ncp_reply_size %d < 8\n", conn->rpsize);
-                return EINVAL;
-        }
-        *length2 = ncp_reply_dword_lh(conn,4);
-        if (conn->rpsize < 8 + 4*(*length2)) {
-                ncp_printf("ncp_reply_size %d < %d\n", conn->rpsize, 8+4*(*length2));
-                return EINVAL;
-        }
-        if (ids) {
-               int count = min(*length1, *length2)*sizeof(u_int32_t);
-               int pos;
-
-               for (pos=0; pos<count; pos+=sizeof(u_int32_t)) {
-                       *ids++ = ncp_reply_dword_lh(conn, 8+pos);
-               }
-       }
-        *length1 = ncp_reply_dword_lh(conn,0);
-        return error;
-}
-
-int
-ncp_get_queue_job_info(NWCONN_HANDLE connid, u_int32_t queue_id,
-       u_int32_t job_id, struct nw_queue_job_entry *jobdata)
-{
-        int error;
-       DECLARE_RQ;
-
-        ncp_init_request_s(conn,122);
-        ncp_add_dword_hl(conn, queue_id);
-        ncp_add_dword_lh(conn, job_id);
-
-        if ((error = ncp_request(connid, 23, conn)) != 0)
-                return error;
-
-        if (conn->rpsize < sizeof(struct nw_queue_job_entry)) {
-                ncp_printf("ncp_reply_size %d < %zu\n", conn->rpsize,sizeof(struct nw_queue_job_entry));
-                return EINVAL;
-        }    
-       memcpy(jobdata,ncp_reply_data(conn,0), sizeof(struct nw_queue_job_entry));
-       return error;
-}
diff --git a/lib/libncp/ncpl_rcfile.c b/lib/libncp/ncpl_rcfile.c
deleted file mode 100644 (file)
index 8cce510..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ncpl_rcfile.c,v 1.1 1999/10/12 11:56:40 bp Exp $
- */
-#include <sys/types.h>
-#include <sys/queue.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <pwd.h>
-#include <unistd.h>
-
-#include <netncp/ncp_lib.h>
-#include <netncp/ncp_rcfile.h>
-#include <netncp/ncp_cfg.h>
-
-#define NWFS_CFG_FILE  NCP_PREFIX"/etc/nwfs.conf"
-
-struct rcfile *ncp_rc = NULL;
-
-SLIST_HEAD(rcfile_head, rcfile);
-static struct rcfile_head pf_head = {NULL};
-
-int rc_merge(char *filename,struct rcfile **rcfile);
-static struct rcfile* rc_find(char *filename);
-static struct rcsection *rc_findsect(struct rcfile *rcp, char *sectname);
-static struct rcsection *rc_addsect(struct rcfile *rcp, char *sectname);
-static int rc_sect_free(struct rcsection *rsp);
-static struct rckey *rc_sect_findkey(struct rcsection *rsp, char *keyname);
-static struct rckey *rc_sect_addkey(struct rcsection *rsp, char *name, char *value);
-static void rc_key_free(struct rckey *p);
-static void rc_parse(struct rcfile *rcp);
-
-
-/*
- * open rcfile and load its content, if already open - return previous handle
- */
-int
-rc_open(char *filename,char *mode,struct rcfile **rcfile) {
-       struct rcfile *rcp;
-       FILE *f;
-       
-       rcp = rc_find(filename);
-       if( rcp ) {
-               *rcfile = rcp;
-               return 0;
-       }
-       f = fopen (filename, mode);
-       if (f==NULL)
-               return errno;
-       rcp = malloc(sizeof(struct rcfile));
-       if (rcp==NULL) {
-               fclose(f);
-               return ENOMEM;
-       }
-       bzero(rcp, sizeof(struct rcfile));
-       rcp->rf_name = strdup (filename);
-       rcp->rf_f = f;
-       SLIST_INSERT_HEAD(&pf_head, rcp, rf_next);
-       rc_parse(rcp);
-       *rcfile = rcp;
-       return 0;
-}
-
-int
-rc_merge(char *filename,struct rcfile **rcfile) {
-       struct rcfile *rcp = *rcfile;
-       FILE *f, *t;
-       
-       if (rcp == NULL) {
-               return rc_open(filename,"r",rcfile);
-       }
-       f = fopen (filename, "r");
-       if (f==NULL)
-               return errno;
-       t = rcp->rf_f;
-       rcp->rf_f = f;
-       rc_parse(rcp);
-       rcp->rf_f = t;
-       fclose(f);
-       return 0;
-}
-
-int
-rc_close(struct rcfile *rcp) {
-       struct rcsection *p,*n;
-
-       fclose(rcp->rf_f);
-       for(p = SLIST_FIRST(&rcp->rf_sect);p;) {
-               n = p;
-               p = SLIST_NEXT(p,rs_next);
-               rc_sect_free(n);
-       }
-       free(rcp->rf_name);
-       SLIST_REMOVE(&pf_head, rcp, rcfile, rf_next);
-       free(rcp);
-       return 0;
-}
-
-static struct rcfile*
-rc_find(char *filename) {
-       struct rcfile *p;
-
-       SLIST_FOREACH(p, &pf_head, rf_next)
-               if (strcmp (filename, p->rf_name)==0)
-                       return p;
-       return 0;
-}
-
-static struct rcsection *
-rc_findsect(struct rcfile *rcp, char *sectname) {
-       struct rcsection *p;
-
-       SLIST_FOREACH(p, &rcp->rf_sect, rs_next)
-               if (strcmp(p->rs_name, sectname)==0)
-                       return p;
-       return NULL;
-}
-
-static struct rcsection *
-rc_addsect(struct rcfile *rcp, char *sectname) {
-       struct rcsection *p;
-
-       p = rc_findsect(rcp, sectname);
-       if (p) return p;
-       p = malloc(sizeof(*p));
-       if (!p) return NULL;
-       p->rs_name = strdup(sectname);
-       SLIST_INIT(&p->rs_keys);
-       SLIST_INSERT_HEAD(&rcp->rf_sect, p, rs_next);
-       return p;
-}
-
-static int
-rc_sect_free(struct rcsection *rsp) {
-       struct rckey *p,*n;
-
-       for(p = SLIST_FIRST(&rsp->rs_keys);p;) {
-               n = p;
-               p = SLIST_NEXT(p,rk_next);
-               rc_key_free(n);
-       }
-       free(rsp->rs_name);
-       free(rsp);
-       return 0;
-}
-
-static struct rckey *
-rc_sect_findkey(struct rcsection *rsp, char *keyname) {
-       struct rckey *p;
-
-       SLIST_FOREACH(p, &rsp->rs_keys, rk_next)
-               if (strcmp(p->rk_name, keyname)==0)
-                       return p;
-       return NULL;
-}
-
-static struct rckey *
-rc_sect_addkey(struct rcsection *rsp, char *name, char *value) {
-       struct rckey *p;
-
-       p = rc_sect_findkey(rsp, name);
-       if (p) {
-               free(p->rk_value);
-       } else {
-               p = malloc(sizeof(*p));
-               if (!p) return NULL;
-               SLIST_INSERT_HEAD(&rsp->rs_keys, p, rk_next);
-               p->rk_name = strdup(name);
-       }
-       p->rk_value = value ? strdup(value) : strdup("");
-       return p;
-}
-
-void
-rc_sect_delkey(struct rcsection *rsp, struct rckey *p) {
-
-       SLIST_REMOVE(&rsp->rs_keys,p,rckey,rk_next);
-       rc_key_free(p);
-       return;
-}
-
-static void
-rc_key_free(struct rckey *p){
-       free(p->rk_value);
-       free(p->rk_name);
-       free(p);
-}
-
-enum { stNewLine, stHeader, stSkipToEOL, stGetKey, stGetValue};
-
-static void
-rc_parse(struct rcfile *rcp) {
-       FILE *f = rcp->rf_f;
-       int state = stNewLine, c;
-       struct rcsection *rsp = NULL;
-       struct rckey *rkp = NULL;
-       char buf[2048];
-       char *next = buf, *last = &buf[sizeof(buf)-1];
-
-       while ((c = getc (f)) != EOF) {
-               if (c == '\r')
-                       continue;
-               if (state == stNewLine) {
-                       next = buf;
-                       if (isspace(c))
-                               continue;       /* skip leading junk */
-                       if (c == '[') {
-                               state = stHeader;
-                               rsp = NULL;
-                               continue;
-                       }
-                       if (c == '#' || c == ';') {
-                               state = stSkipToEOL;
-                       } else {                /* something meaningfull */
-                               state = stGetKey;
-                       }
-               }
-               if (state == stSkipToEOL || next == last) {/* ignore long lines */
-                       if (c == '\n'){
-                               state = stNewLine;
-                               next = buf;
-                       }
-                       continue;
-               }
-               if (state == stHeader) {
-                       if (c == ']') {
-                               *next = 0;
-                               next = buf;
-                               rsp = rc_addsect(rcp, buf);
-                               state = stSkipToEOL;
-                       } else
-                               *next++ = c;
-                       continue;
-               }
-               if (state == stGetKey) {
-                       if (c == ' ' || c == '\t')/* side effect: 'key name='*/
-                               continue;         /* become 'keyname='       */
-                       if (c == '\n') {                /* silently ignore ... */
-                               state = stNewLine;
-                               continue;
-                       }
-                       if (c != '=') {
-                               *next++ = c;
-                               continue;
-                       }
-                       *next = 0;
-                       if (rsp == NULL) {
-                               fprintf(stderr, "Key '%s' defined before section\n", buf);
-                               state = stSkipToEOL;
-                               continue;
-                       }
-                       rkp = rc_sect_addkey(rsp, buf, NULL);
-                       next = buf;
-                       state = stGetValue;
-                       continue;
-               }
-               /* only stGetValue left */
-               if (state != stGetValue) {
-                       fprintf(stderr, "Well, I can't parse file '%s'\n",rcp->rf_name);
-                       state = stSkipToEOL;
-               }
-               if (c != '\n') {
-                       *next++ = c;
-                       continue;
-               }
-               *next = 0;
-               rkp->rk_value = strdup(buf);
-               state = stNewLine;
-               rkp = NULL;
-       }       /* while */
-       if (c == EOF && state == stGetValue) {
-               *next = 0;
-               rkp->rk_value = strdup(buf);
-       }
-       return;
-}
-
-int
-rc_getstringptr(struct rcfile *rcp,char *section, char *key,char **dest) {
-       struct rcsection *rsp;
-       struct rckey *rkp;
-       
-       *dest = NULL;
-       rsp = rc_findsect(rcp, section);
-       if (!rsp) return ENOENT;
-       rkp = rc_sect_findkey(rsp,key);
-       if (!rkp) return ENOENT;
-       *dest = rkp->rk_value;
-       return 0;
-}
-
-int
-rc_getstring(struct rcfile *rcp,char *section, char *key,int maxlen,char *dest) {
-       char *value;
-       int error;
-       
-       error = rc_getstringptr(rcp, section, key, &value);
-       if (error) return error;
-       if (strlen(value) >= maxlen) {
-               fprintf(stderr, "line too long for key '%s' in section '%s', max = %d\n",key, section, maxlen);
-               return EINVAL;
-       }
-       strcpy(dest,value);
-       return 0;
-}
-
-int
-rc_getint(struct rcfile *rcp,char *section, char *key,int *value) {
-       struct rcsection *rsp;
-       struct rckey *rkp;
-       
-       rsp = rc_findsect(rcp, section);
-       if (!rsp) return ENOENT;
-       rkp = rc_sect_findkey(rsp,key);
-       if (!rkp) return ENOENT;
-       errno = 0;
-       *value = strtol(rkp->rk_value,NULL,0);
-       if (errno) {
-               fprintf(stderr, "invalid int value '%s' for key '%s' in section '%s'\n",rkp->rk_value,key,section);
-               return errno;
-       }
-       return 0;
-}
-
-/*
- * 1,yes,true
- * 0,no,false
- */
-int
-rc_getbool(struct rcfile *rcp,char *section, char *key,int *value) {
-       struct rcsection *rsp;
-       struct rckey *rkp;
-       char *p;
-       
-       rsp = rc_findsect(rcp, section);
-       if (!rsp) return ENOENT;
-       rkp = rc_sect_findkey(rsp,key);
-       if (!rkp) return ENOENT;
-       p = rkp->rk_value;
-       while (*p && isspace(*p)) p++;
-       if (*p == '0' || strcasecmp(p,"no") == 0 || strcasecmp(p,"false") == 0) {
-               *value = 0;
-               return 0;
-       }
-       if (*p == '1' || strcasecmp(p,"yes") == 0 || strcasecmp(p,"true") == 0) {
-               *value = 1;
-               return 0;
-       }
-       fprintf(stderr, "invalid boolean value '%s' for key '%s' in section '%s' \n",p, key, section);
-       return EINVAL;
-}
-
-/*
- * first read ~/.nwfsrc, next try to merge NWFS_CFG_FILE
- */
-int
-ncp_open_rcfile(void) {
-       char *home, *fn;
-       int error;
-
-       home = getenv("HOME");
-       if (home) {
-               fn = malloc(strlen(home) + 20);
-               sprintf(fn, "%s/.nwfsrc", home);
-               error = rc_open(fn,"r",&ncp_rc);
-               free (fn);
-       }
-       error = rc_merge(NWFS_CFG_FILE, &ncp_rc);
-       if( ncp_rc == NULL ) {
-               printf("Warning: no cfg files found.\n");
-               return 1;
-       }
-       return 0;
-}
-
diff --git a/lib/libncp/ncpl_rpc.c b/lib/libncp/ncpl_rpc.c
deleted file mode 100644 (file)
index ce0f5e7..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * NetWare RPCs
- *
- * $FreeBSD: src/lib/libncp/ncpl_rpc.c,v 1.1 1999/10/12 11:56:41 bp Exp $
- * $DragonFly: src/lib/libncp/ncpl_rpc.c,v 1.2 2003/06/17 04:26:50 dillon Exp $
- */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <netncp/ncp_lib.h>
-
-struct ncp_rpc_rq {
-       nuint16         len;    /* HL */
-       nuint8          subfn;
-       nuint32         reserved[4];
-       nuint8          flags[4];
-} __attribute__ ((packed));
-
-struct ncp_rpc_rp {
-       nuint32         rpccode;
-       nuint32         reserved[4];
-       nuint32         rpcval;
-} __attribute__ ((packed));
-
-static NWCCODE
-ncp_rpc(NWCONN_HANDLE cH, int rpcfn, 
-       const nuint8* rpcarg, char* arg1, char *arg2, 
-       nuint32* rpcval) {
-       NWCCODE error;
-       NW_FRAGMENT rq[4], rp;
-       struct ncp_rpc_rq rqh;
-       struct ncp_rpc_rp rph;
-
-       rqh.subfn = rpcfn;
-       if (rpcarg) 
-               bcopy(rpcarg, rqh.reserved, 4 * 4 + 4); 
-       else
-               bzero(rqh.reserved, 4 * 4 + 4);
-       rq[0].fragAddress = (char*)&rqh;
-       rq[0].fragSize = sizeof(rqh);
-       rq[1].fragAddress = arg1;
-       rq[1].fragSize = strlen(arg1) + 1;
-       rq[2].fragAddress = arg2;
-       rq[2].fragSize = arg2 ? (strlen(arg2) + 1) : 0;
-       rqh.len = htons(rq[2].fragSize + rq[1].fragSize + sizeof(rqh) - 2);
-       rp.fragAddress = (char*)&rph;
-       rp.fragSize = sizeof(rph);
-       error = NWRequest(cH, 131, 3, rq, 1, &rp);
-       if (error) return error;
-       if (rp.fragSize < 4) return EBADRPC;
-       error = rph.rpccode;
-       if (error) return error;
-       if (rpcval) {
-               if (rp.fragSize < 24)
-                       return EBADRPC;
-               *rpcval = rph.rpcval;
-       }
-       return 0;
-}
-
-NWCCODE
-NWSMLoadNLM(NWCONN_HANDLE cH, pnstr8 cmd) {
-       return ncp_rpc(cH, 1, NULL, cmd, NULL, NULL);
-}
-
-NWCCODE
-NWSMUnloadNLM(NWCONN_HANDLE cH, pnstr8 cmd) {
-       return ncp_rpc(cH, 2, NULL, cmd, NULL, NULL);
-}
-
-NWCCODE
-NWSMMountVolume(NWCONN_HANDLE cH, pnstr8 volName, nuint32* volnum) {
-       return ncp_rpc(cH, 3, NULL, volName, NULL, volnum);
-}
-
-NWCCODE
-NWSMDismountVolumeByName(NWCONN_HANDLE cH, pnstr8 vol) {
-       return ncp_rpc(cH, 4, NULL, vol, NULL, NULL);
-}
-
-struct ncp_set_hdr {
-       nuint32 typeFlag;       /* 0 - str, 1 - value */
-       nuint32 value;
-       nuint32 pad[20 - 4 - 4];
-} __attribute__ ((packed));
-
-NWCCODE
-NWSMSetDynamicCmdIntValue(NWCONN_HANDLE cH, pnstr8 setCommandName, nuint32 cmdValue) {
-       struct ncp_set_hdr rq;
-
-       memset(&rq, 0, sizeof(rq));
-       rq.typeFlag = 1;
-       rq.value = cmdValue;
-       return ncp_rpc(cH, 6, (char*)&rq, setCommandName, NULL, NULL);
-}
-
-NWCCODE
-NWSMSetDynamicCmdStrValue(NWCONN_HANDLE cH, pnstr8 setCommandName,
-               pnstr8 cmdValue) {
-       return ncp_rpc(cH, 6, NULL, setCommandName, cmdValue, NULL);
-}
-
-NWCCODE
-NWSMExecuteNCFFile(NWCONN_HANDLE cH, pnstr8 NCFFileName) {
-       return ncp_rpc(cH, 7, NULL, NCFFileName, NULL, NULL);
-}
diff --git a/lib/libncp/ncpl_subr.c b/lib/libncp/ncpl_subr.c
deleted file mode 100644 (file)
index c81cf2f..0000000
+++ /dev/null
@@ -1,462 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/ncpl_subr.c,v 1.3 2000/01/01 14:21:31 bp Exp $
- */
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/sysctl.h>
-#include <sys/syscall.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-#include <netncp/ncp_lib.h>
-#include <netncp/ncp_rcfile.h>
-#include <netncp/ncp_nls.h>
-/*#include <netncp/ncp_cfg.h>*/
-#include "ncp_mod.h"
-
-extern char *__progname;
-
-int sysentoffset;
-
-void
-ncp_add_word_lh(struct ncp_buf *conn, u_int16_t x) {
-       setwle(conn->packet, conn->rqsize, x);
-       conn->rqsize += 2;
-       return;
-}
-
-void
-ncp_add_dword_lh(struct ncp_buf *conn, u_int32_t x) {
-       setdle(conn->packet, conn->rqsize, x);
-       conn->rqsize += 4;
-       return;
-}
-
-void
-ncp_add_word_hl(struct ncp_buf *conn, u_int16_t x){
-       setwbe(conn->packet, conn->rqsize, x);
-       conn->rqsize += 2;
-       return;
-}
-
-void
-ncp_add_dword_hl(struct ncp_buf *conn, u_int32_t x) {
-       setdbe(conn->packet, conn->rqsize, x);
-       conn->rqsize += 4;
-       return;
-}
-
-void
-ncp_add_mem(struct ncp_buf *conn, const void *source, int size) {
-       memcpy(conn->packet+conn->rqsize, source, size);
-       conn->rqsize += size;
-       return;
-}
-
-void
-ncp_add_mem_nls(struct ncp_buf *conn, const void *source, int size) {
-       ncp_nls_mem_u2n(conn->packet+conn->rqsize, source, size);
-       conn->rqsize += size;
-       return;
-}
-
-void
-ncp_add_pstring(struct ncp_buf *conn, const char *s) {
-       int len = strlen(s);
-       if (len > 255) {
-               ncp_printf("ncp_add_pstring: string too long: %s\n", s);
-               len = 255;
-       }
-       ncp_add_byte(conn, len);
-       ncp_add_mem(conn, s, len);
-       return;
-}
-
-void
-ncp_add_handle_path(struct ncp_buf *conn, nuint32 volNumber, nuint32 dirNumber,
-       int handleFlag, const char *path)
-{
-       ncp_add_byte(conn, volNumber);
-       ncp_add_dword_lh(conn, dirNumber);
-       ncp_add_byte(conn, handleFlag);
-       if (path) {
-               ncp_add_byte(conn, 1);          /* 1 component */
-               ncp_add_pstring(conn, path);
-       } else {
-               ncp_add_byte(conn, 0);
-       }
-}
-
-void
-ncp_init_request(struct ncp_buf *conn) {
-       conn->rqsize = 0;
-       conn->rpsize = 0;
-}
-
-void
-ncp_init_request_s(struct ncp_buf *conn, int subfn) {
-       ncp_init_request(conn);
-       ncp_add_word_lh(conn, 0);
-       ncp_add_byte(conn, subfn);
-}
-
-u_int16_t
-ncp_reply_word_hl(struct ncp_buf *conn, int offset) {
-       return getwbe(ncp_reply_data(conn, offset), 0);
-}
-
-u_int16_t
-ncp_reply_word_lh(struct ncp_buf *conn, int offset) {
-       return getwle(ncp_reply_data(conn, offset), 0);
-}
-
-u_int32_t
-ncp_reply_dword_hl(struct ncp_buf *conn, int offset) {
-       return getdbe(ncp_reply_data(conn, offset), 0);
-}
-
-u_int32_t
-ncp_reply_dword_lh(struct ncp_buf *conn, int offset) {
-       return getdle(ncp_reply_data(conn, offset), 0);
-}
-
-
-int
-ncp_connect(struct ncp_conn_args *li, int *connHandle) {
-       return syscall(NCP_CONNECT,li,connHandle);
-}
-
-int
-ncp_disconnect(int cH) {
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, NCP_CONN_CONNCLOSE);
-       return ncp_conn_request(cH, conn);
-}
-
-int
-ncp_request(int connHandle,int function, struct ncp_buf *ncpbuf){
-       int err = syscall(SNCP_REQUEST,connHandle,function,ncpbuf);
-       return (err<0) ? errno : 0;
-}
-
-int
-ncp_conn_request(int connHandle, struct ncp_buf *ncpbuf){
-       return syscall(SNCP_REQUEST, connHandle, NCP_CONN, ncpbuf);
-}
-
-int
-ncp_conn_scan(struct ncp_conn_loginfo *li, int *connid) {
-       return syscall(NCP_CONNSCAN,li, connid);
-}
-
-NWCCODE
-NWRequest(NWCONN_HANDLE cH, nuint16 fn,
-       nuint16 nrq, NW_FRAGMENT* rq, 
-       nuint16 nrp, NW_FRAGMENT* rp) 
-{
-       int error;
-       struct ncp_conn_frag nf;
-       DECLARE_RQ;
-
-       ncp_init_request(conn);
-       ncp_add_byte(conn, NCP_CONN_FRAG);
-       nf.fn = fn;
-       nf.rqfcnt = nrq;
-       nf.rqf = rq;
-       nf.rpf = rp;
-       nf.rpfcnt = nrp;
-       ncp_add_mem(conn, &nf, sizeof(nf));
-       error = ncp_conn_request(cH, conn);
-       return error;
-}
-
-
-int
-ncp_initlib(void){
-       int error;
-       size_t len = sizeof(sysentoffset);
-       int kv;
-       size_t kvlen = sizeof(kv);
-       static int ncp_initialized;
-
-       if (ncp_initialized)
-               return 0;
-       error = sysctlbyname("net.ncp.sysent", &sysentoffset, &len, NULL, 0);
-       if (error) {
-               fprintf(stderr, "%s: can't find kernel module\n", __func__);
-               return error;
-       }
-       error = sysctlbyname("net.ncp.version", &kv, &kvlen, NULL, 0);
-       if (error) {
-               fprintf(stderr, "%s: kernel module is old, please recompile it.\n", __func__);
-               return error;
-       }
-       if (NCP_VERSION != kv) {
-               fprintf(stderr, "%s: kernel module version(%d) don't match library(%d).\n", __func__, kv, NCP_VERSION);
-               return EINVAL;
-       }
-       if ((error = ncp_nls_setrecode(0)) != 0) {
-               fprintf(stderr, "%s: can't initialise recode\n", __func__);
-               return error;
-       }
-       if ((error = ncp_nls_setlocale("")) != 0) {
-               fprintf(stderr, "%s: can't initialise locale\n", __func__);
-               return error;
-       }
-       ncp_initialized++;
-       return 0;
-}
-
-
-/*
- */
-int    ncp_opterr = 1,         /* if error message should be printed */
-       ncp_optind = 1,         /* index into parent argv vector */
-       ncp_optopt,                     /* character checked for validity */
-       ncp_optreset;           /* reset getopt */
-char   *ncp_optarg;            /* argument associated with option */
-
-#define        BADCH   (int)'?'
-#define        BADARG  (int)':'
-#define        EMSG    ""
-
-int
-ncp_getopt(int nargc, char * const *nargv, const char *ostr)
-{
-       static char *place = EMSG;              /* option letter processing */
-       char *oli;                              /* option letter list index */
-       int tmpind;
-
-       if (ncp_optreset || !*place) {          /* update scanning pointer */
-               ncp_optreset = 0;
-               tmpind = ncp_optind;
-               while (1) {
-                       if (tmpind >= nargc) {
-                               place = EMSG;
-                               return (-1);
-                       }
-                       if (*(place = nargv[tmpind]) != '-') {
-                               tmpind++;
-                               continue;       /* lookup next option */
-                       }
-                       if (place[1] && *++place == '-') {      /* found "--" */
-                               ncp_optind = ++tmpind;
-                               place = EMSG;
-                               return (-1);
-                       }
-                       ncp_optind = tmpind;
-                       break;
-               }
-       }                                       /* option letter okay? */
-       if ((ncp_optopt = (int)*place++) == (int)':' ||
-           !(oli = strchr(ostr, ncp_optopt))) {
-               /*
-                * if the user didn't specify '-' as an option,
-                * assume it means -1.
-                */
-               if (ncp_optopt == (int)'-')
-                       return (-1);
-               if (!*place)
-                       ++ncp_optind;
-               if (ncp_opterr && *ostr != ':')
-                       (void)fprintf(stderr,
-                           "%s: illegal option -- %c\n", __progname, ncp_optopt);
-               return (BADCH);
-       }
-       if (*++oli != ':') {                    /* don't need argument */
-               ncp_optarg = NULL;
-               if (!*place)
-                       ++ncp_optind;
-       }
-       else {                                  /* need an argument */
-               if (*place)                     /* no white space */
-                       ncp_optarg = place;
-               else if (nargc <= ++ncp_optind) {       /* no arg */
-                       place = EMSG;
-                       if (*ostr == ':')
-                               return (BADARG);
-                       if (ncp_opterr)
-                               (void)fprintf(stderr,
-                                   "%s: option requires an argument -- %c\n",
-                                   __progname, ncp_optopt);
-                       return (BADCH);
-               }
-               else                            /* white space */
-                       ncp_optarg = nargv[ncp_optind];
-               place = EMSG;
-               ++ncp_optind;
-       }
-       return (ncp_optopt);                    /* dump back option letter */
-}
-/*
- * misc options parsing routines
- */
-int
-ncp_args_parserc(struct ncp_args *na, char *sect, ncp_setopt_t *set_callback) {
-       int len, error;
-
-       for (; na->opt; na++) {
-               switch (na->at) {
-                   case NCA_STR:
-                       if (rc_getstringptr(ncp_rc,sect,na->name,&na->str) == 0) {
-                               len = strlen(na->str);
-                               if (len > na->ival) {
-                                       fprintf(stderr,"rc: Argument for option '%c' (%s) too long\n",na->opt,na->name);
-                                       return EINVAL;
-                               }
-                               set_callback(na);
-                       }
-                       break;
-                   case NCA_BOOL:
-                       error = rc_getbool(ncp_rc,sect,na->name,&na->ival);
-                       if (error == ENOENT) break;
-                       if (error) return EINVAL;
-                       set_callback(na);
-                       break;
-                   case NCA_INT:
-                       if (rc_getint(ncp_rc,sect,na->name,&na->ival) == 0) {
-                               if (((na->flag & NAFL_HAVEMIN) && 
-                                    (na->ival < na->min)) || 
-                                   ((na->flag & NAFL_HAVEMAX) && 
-                                    (na->ival > na->max))) {
-                                       fprintf(stderr,"rc: Argument for option '%c' (%s) should be in [%d-%d] range\n",na->opt,na->name,na->min,na->max);
-                                       return EINVAL;
-                               }
-                               set_callback(na);
-                       }
-                       break;
-                   default:
-                       break;
-               }
-       }
-       return 0;
-}
-
-int
-ncp_args_parseopt(struct ncp_args *na, int opt, char *optarg, ncp_setopt_t *set_callback) {
-       int len;
-
-       for (; na->opt; na++) {
-               if (na->opt != opt) continue;
-               switch (na->at) {
-                   case NCA_STR:
-                       na->str = optarg;
-                       if (optarg) {
-                               len = strlen(na->str);
-                               if (len > na->ival) {
-                                       fprintf(stderr,"opt: Argument for option '%c' (%s) too long\n",na->opt,na->name);
-                                       return EINVAL;
-                               }
-                               set_callback(na);
-                       }
-                       break;
-                   case NCA_BOOL:
-                       na->ival = 0;
-                       set_callback(na);
-                       break;
-                   case NCA_INT:
-                       errno = 0;
-                       na->ival = strtol(optarg, NULL, 0);
-                       if (errno) {
-                               fprintf(stderr,"opt: Invalid integer value for option '%c' (%s).\n",na->opt,na->name);
-                               return EINVAL;
-                       }
-                       if (((na->flag & NAFL_HAVEMIN) && 
-                            (na->ival < na->min)) || 
-                           ((na->flag & NAFL_HAVEMAX) && 
-                            (na->ival > na->max))) {
-                               fprintf(stderr,"opt: Argument for option '%c' (%s) should be in [%d-%d] range\n",na->opt,na->name,na->min,na->max);
-                               return EINVAL;
-                       }
-                       set_callback(na);
-                       break;
-                   default:
-                       break;
-               }
-               break;
-       }
-       return 0;
-}
-
-/*
- * Print a (descriptive) error message
- * error values:
- *        0 - no specific error code available;
- *  -999..-1 - NDS error
- *  1..32767 - system error
- *  the rest - requester error;
- */
-void
-ncp_error(const char *fmt, int error,...) {
-       va_list ap;
-
-       fprintf(stderr, "%s: ", __progname);
-       va_start(ap, error);
-       vfprintf(stderr, fmt, ap);
-       va_end(ap);
-       if (error == -1)
-               error = errno;
-       if (error > -1000 && error < 0) {
-               fprintf(stderr, ": dserr = %d\n", error);
-       } else if (error & 0x8000) {
-               fprintf(stderr, ": nwerr = %04x\n", error);
-       } else if (error) {
-               fprintf(stderr, ": syserr = %s\n", strerror(error));
-       } else
-               fprintf(stderr, "\n");
-}
-
-char *
-ncp_printb(char *dest, int flags, const struct ncp_bitname *bnp) {
-       int first = 1;
-
-       strcpy(dest, "<");
-       for(; bnp->bn_bit; bnp++) {
-               if (flags & bnp->bn_bit) {
-                       strcat(dest, bnp->bn_name);
-                       first = 0;
-               }
-               if (!first && (flags & bnp[1].bn_bit))
-                       strcat(dest, "|");
-       }
-       strcat(dest, ">");
-       return dest;
-}
diff --git a/lib/libncp/sap.c b/lib/libncp/sap.c
deleted file mode 100644 (file)
index 9fdb980..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libncp/sap.c,v 1.2 1999/10/29 12:59:59 bp Exp $
- * $DragonFly: src/lib/libncp/sap.c,v 1.2 2003/06/17 04:26:50 dillon Exp $
- *
- */
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <netinet/in.h>
-#include <netipx/ipx.h>
-#include <errno.h>
-#include <unistd.h>
-#include "ipxsap.h"
-
-/*
- * TODO: These should go to ipx headers
- */
-#define ipx_set_net(x,y) ((x).x_net.s_net[0] = (y).x_net.s_net[0]); \
-                        ((x).x_net.s_net[1]=(y).x_net.s_net[1])
-#define ipx_set_nullnet(x) ((x).x_net.s_net[0]=0); ((x).x_net.s_net[1]=0)
-#define ipx_set_nullhost(x) ((x).x_host.s_host[0] = 0); \
-       ((x).x_host.s_host[1] = 0); ((x).x_host.s_host[2] = 0)
-#define ipx_set_wildnet(x)     ((x).x_net.s_net[0] = 0xFFFF); \
-                               ((x).x_net.s_net[1]=0xFFFF)
-#define ipx_set_wildhost(x) ((x).x_host.s_host[0] = 0xFFFF); \
-       ((x).x_host.s_host[1] = 0xFFFF); ((x).x_host.s_host[2] = 0xFFFF);
-
-
-static struct sap_packet* sap_packet_alloc(int entries);
-static int sap_size(int entries, u_short operation);
-int (*sap_sendto_func)(void*,int,struct sockaddr_ipx*,int sock)=NULL;
-
-static int
-sap_sendto(void* buffer, int size, struct sockaddr_ipx* daddr, int sock)
-{ 
-       if (sap_sendto_func)
-               return sap_sendto_func(buffer,size,daddr,sock);
-       return sendto(sock, (char*)buffer, size, 0,
-           (struct sockaddr*)daddr, sizeof(*daddr));
-}
-
-static struct sap_packet* 
-sap_packet_alloc(int entries)
-{
-       if (entries > IPX_SAP_MAX_ENTRIES)
-               return NULL;
-       return 
-           (struct sap_packet*)malloc(sap_size(entries, IPX_SAP_GENERAL_RESPONSE));
-}
-
-static int 
-sap_size(int entries, u_short operation)
-{
-       if (entries <= 0)
-               return 0;
-       switch (operation) {
-           case IPX_SAP_GENERAL_QUERY:
-               return entries == 1 ? IPX_SAP_REQUEST_LEN : 0;
-           case IPX_SAP_GENERAL_RESPONSE:
-               if (entries > IPX_SAP_MAX_ENTRIES)
-                       return 0;
-               return sizeof(struct sap_packet) + (entries - 1) * sizeof(struct sap_entry);
-           case IPX_SAP_NEAREST_QUERY:
-                return entries == 1 ? IPX_SAP_REQUEST_LEN : 0;
-           case IPX_SAP_NEAREST_RESPONSE:
-               return entries == 1 ? sizeof(struct sap_packet) : 0;
-           default:
-               return 0;       
-       }
-}
-
-void 
-sap_copyname(char *dest, const char *src)
-{
-       bzero(dest, IPX_SAP_SERVER_NAME_LEN);
-       strncpy(dest, src, IPX_SAP_SERVER_NAME_LEN - 1);
-}
-
-int
-sap_rq_init(struct sap_rq* rq, int sock)
-{
-       rq->buffer = sap_packet_alloc(IPX_SAP_MAX_ENTRIES);
-       if (rq->buffer == NULL)
-               return 0;
-       rq->entries = 0;
-       rq->buffer->operation = htons(IPX_SAP_GENERAL_QUERY);
-       rq->dest_addr.sipx_family = AF_IPX;
-       rq->dest_addr.sipx_len = sizeof(struct sockaddr_ipx);
-       rq->sock = sock;
-       return 1;
-}
-
-int
-sap_rq_flush(struct sap_rq* rq)
-{
-       int result;
-
-       if (rq->entries == 0)
-               return 0;
-       result = sap_sendto(rq->buffer, 
-               sap_size(rq->entries, ntohs(rq->buffer->operation)), 
-               &rq->dest_addr, rq->sock);
-       rq->entries = 0;
-       return result;
-}
-
-void
-sap_rq_general_query(struct sap_rq* rq, u_short ser_type)
-{
-       struct sap_entry* sep;
-
-       sap_rq_flush(rq);
-       rq->buffer->operation = htons(IPX_SAP_GENERAL_QUERY);
-       sep = rq->buffer->sap_entries + rq->entries++;
-       sep->server_type = htons(ser_type);
-}
-
-void
-sap_rq_gns_request(struct sap_rq* rq, u_short ser_type)
-{
-       struct sap_entry* sep;
-
-       sap_rq_flush(rq);
-       rq->buffer->operation = htons(IPX_SAP_NEAREST_QUERY);
-       sep = rq->buffer->sap_entries + rq->entries++;
-       sep->server_type = htons(ser_type);
-}
-
-void
-sap_rq_general_response(struct sap_rq* rq,u_short type,char *name,struct sockaddr_ipx* addr, u_short hops,int down_allow)
-{
-       struct sap_entry* sep;
-
-       if (hops >= IPX_SAP_SERVER_DOWN && !down_allow) return;
-       if (rq->entries >= IPX_SAP_MAX_ENTRIES)
-               sap_rq_flush(rq);
-       if (rq->buffer->operation != htons(IPX_SAP_GENERAL_RESPONSE)){
-               sap_rq_flush(rq);
-               rq->buffer->operation = htons(IPX_SAP_GENERAL_RESPONSE);
-       }
-       sep = rq->buffer->sap_entries + rq->entries;
-       sep->server_type = htons(type);
-       sap_copyname(sep->server_name, name);
-       memcpy(&sep->ipx, &addr->sipx_addr, sizeof(struct ipx_addr));
-       sep->hops = htons(hops);
-       rq->entries++;
-}
-
-void
-sap_rq_gns_response(struct sap_rq* rq,u_short type,char *name,struct sockaddr_ipx* addr,u_short hops)
-{
-       struct sap_entry* sep;
-
-       if (hops >= IPX_SAP_SERVER_DOWN) return;
-       sap_rq_flush(rq);
-       rq->buffer->operation = htons(IPX_SAP_NEAREST_RESPONSE);
-       sep = rq->buffer->sap_entries + rq->entries;
-       sep->server_type = htons(type);
-       sap_copyname(sep->server_name, name);
-       memcpy(&sep->ipx, &addr->sipx_addr, sizeof(struct ipx_addr));
-       sep->hops = htons(hops);
-       rq->entries++;
-}
-
-void
-sap_rq_set_destination(struct sap_rq* rq,struct ipx_addr *dest)
-{
-       sap_rq_flush(rq);
-       memcpy(&rq->dest_addr.sipx_addr,dest,sizeof(struct ipx_addr));
-}
-
-int
-sap_getsock(int *rsock) {
-       struct sockaddr_ipx sap_addr;
-       int opt, sock, slen;
-
-       sock = socket(AF_IPX, SOCK_DGRAM, 0);
-       if (sock < 0)
-               return (errno);
-       slen = sizeof(sap_addr);
-       bzero(&sap_addr, slen);
-       sap_addr.sipx_family = AF_IPX;
-       sap_addr.sipx_len = slen;
-       if (bind(sock, (struct sockaddr*)&sap_addr, slen) == -1) {
-               close(sock);
-               return(errno);
-       }
-       opt = 1;
-       if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &opt, sizeof(opt)) != 0){
-               close(sock);
-               return(errno);
-       }
-       *rsock = sock;
-       return(0);
-}
-
-static int
-sap_recv(int sock,void *buf,int len,int flags, int timeout){
-       fd_set rd, wr, ex;
-       struct timeval tv;
-       int result;
-
-       FD_ZERO(&rd);
-       FD_ZERO(&wr);
-       FD_ZERO(&ex);
-       FD_SET(sock, &rd);
-
-       tv.tv_sec = timeout;
-       tv.tv_usec = 0;
-
-       if ((result = select(sock + 1, &rd, &wr, &ex, &tv)) == -1) {
-               return result;
-       }
-       if (FD_ISSET(sock, &rd)) {
-               result = recv(sock, buf, len, flags);
-       } else {
-               errno = ETIMEDOUT;
-               result = -1;
-       }
-       return result;
-}
-
-int
-sap_find_nearest(int server_type, struct sockaddr_ipx *daddr, char *server_name)
-{
-       struct ipx_addr addr;
-       char data[1024];
-       int sock, error, packets, len;
-       struct sap_packet *reply = (struct sap_packet*)&data;
-       struct sap_rq sap_rq;
-       
-       error = sap_getsock(&sock);
-       if (error)
-               return error;
-       bzero(&addr, sizeof(addr));
-       /* BAD: we should enum all ifs (and nets ?) */
-       if (ipx_iffind(NULL, &addr) != 0) {
-               return (EPROTONOSUPPORT);
-       }
-       ipx_set_wildhost(addr);         
-       addr.x_port = htons(IPXPORT_SAP);
-
-       if (!sap_rq_init(&sap_rq, sock)) {
-               close(sock);
-               return(ENOMEM);
-       }
-       sap_rq_set_destination(&sap_rq, &addr);
-       sap_rq_gns_request(&sap_rq, server_type);
-       sap_rq_flush(&sap_rq);
-       packets = 5;
-       do {
-               len = sap_recv(sock, data, sizeof(data), 0, 1);
-               if (len >= 66 && 
-                   ntohs(reply->operation) == IPX_SAP_NEAREST_RESPONSE)
-                       break;
-               if (len < 0)
-                       packets--;
-       } while (packets > 0);
-
-       if (packets == 0) {
-               close(sock);
-               return ENETDOWN;
-       }
-
-       daddr->sipx_addr = reply->sap_entries[0].ipx;
-       daddr->sipx_family = AF_IPX;
-       daddr->sipx_len = sizeof(struct sockaddr_ipx);
-       sap_copyname(server_name, reply->sap_entries[0].server_name);
-       errno = 0;
-       close(sock);
-       return 0;
-}
index bb90142..ef2ffa8 100644 (file)
@@ -24,7 +24,6 @@
 .\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/lib/libposix1e/acl.3,v 1.2.2.5 2001/12/20 16:27:06 ru Exp $
-.\" $DragonFly: src/lib/libposix1e/acl.3,v 1.6 2006/08/19 01:36:39 swildner Exp $
 .\"
 .Dd January 28, 2000
 .Dt ACL 3
@@ -48,7 +47,7 @@ The library calls shipped with 4.0 include routines to allocate,
 duplicate, retrieve, set, and validate ACLs associated with file objects.
 As well as the POSIX.1e routines, there are a number of non-portable
 extensions defined that allow for alternative ACL semantics than the
-POSIX.1e semantics, such as AFS, NTFS, and NWFS semantics.  Where
+POSIX.1e semantics, such as AFS and NTFS semantics.  Where
 routines are non-standard, they are suffixed with _np to indicate that
 they are not portable.
 .Pp
index 0c52329..e1656c4 100644 (file)
@@ -104,8 +104,7 @@ SUBDIR=     adjkerntz \
 .if ${MACHINE_ARCH} == i386
 SUBDIR+=kget
 .endif
-SUBDIR+=mount_nwfs \
-       mount_smbfs \
+SUBDIR+=mount_smbfs \
        fdisk \
        nextboot
 .endif
index 85517ab..9e65730 100644 (file)
@@ -28,10 +28,8 @@ SRCS+=       ifcarp.c                # SIOC[GS]VH support
 
 SRCS+= ifbridge.c              # bridge support
 
-SRCS+= af_ipx.c                # IPX support
-
-DPADD= ${LIBIPX} ${LIBBSDXML} ${LIBSBUF}
-LDADD= -lipx -lbsdxml -lsbuf
+DPADD= ${LIBBSDXML} ${LIBSBUF}
+LDADD= -lbsdxml -lsbuf
 
 MAN=   ifconfig.8
 
diff --git a/sbin/ifconfig/af_ipx.c b/sbin/ifconfig/af_ipx.c
deleted file mode 100644 (file)
index 63a4cfd..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/sbin/ifconfig/af_ipx.c,v 1.1 2004/12/08 19:18:07 sam Exp $
- */
-
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <net/if.h>
-#include <net/route.h>
-
-#include <err.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <net/if_var.h>
-#define        IPXIP
-#define IPTUNNEL
-#include <netipx/ipx.h>
-#include <netipx/ipx_if.h>
-
-#include "ifconfig.h"
-
-static struct ifaliasreq ipx_addreq;
-static struct ifreq ipx_ridreq;
-
-static void
-ipx_status(int s __unused, const struct rt_addrinfo * info)
-{
-       struct sockaddr_ipx *sipx, null_sipx;
-
-       sipx = (struct sockaddr_ipx *)info->rti_info[RTAX_IFA];
-       if (sipx == NULL)
-               return;
-
-       printf("\tipx %s ", ipx_ntoa(sipx->sipx_addr));
-
-       if (flags & IFF_POINTOPOINT) {
-               sipx = (struct sockaddr_ipx *)info->rti_info[RTAX_BRD];
-               if (!sipx) {
-                       memset(&null_sipx, 0, sizeof(null_sipx));
-                       sipx = &null_sipx;
-               }
-               printf("--> %s ", ipx_ntoa(sipx->sipx_addr));
-       }
-       putchar('\n');
-}
-
-#define SIPX(x) ((struct sockaddr_ipx *) &(x))
-struct sockaddr_ipx *sipxtab[] = {
-       SIPX(ipx_ridreq.ifr_addr), SIPX(ipx_addreq.ifra_addr),
-       SIPX(ipx_addreq.ifra_mask), SIPX(ipx_addreq.ifra_broadaddr)
-};
-
-static void
-ipx_getaddr(const char *addr, int which)
-{
-       struct sockaddr_ipx *sipx = sipxtab[which];
-
-       sipx->sipx_family = AF_IPX;
-       sipx->sipx_len = sizeof(*sipx);
-       sipx->sipx_addr = ipx_addr(addr);
-       if (which == MASK)
-               printf("Attempt to set IPX netmask will be ineffectual\n");
-}
-
-static void
-ipx_postproc(int s, const struct afswtch *afp)
-{
-       if (setipdst) {
-               struct ipxip_req rq;
-               int size = sizeof(rq);
-
-               rq.rq_ipx = ipx_addreq.ifra_addr;
-               rq.rq_ip = ipx_addreq.ifra_dstaddr;
-
-               if (setsockopt(s, 0, SO_IPXIP_ROUTE, &rq, size) < 0)
-                       Perror("Encapsulation Routing");
-       }
-}
-
-static struct afswtch af_ipx = {
-       .af_name        = "ipx",
-       .af_af          = AF_IPX,
-       .af_status      = ipx_status,
-       .af_getaddr     = ipx_getaddr,
-       .af_postproc    = ipx_postproc,
-       .af_difaddr     = SIOCDIFADDR,
-       .af_aifaddr     = SIOCAIFADDR,
-       .af_ridreq      = &ipx_ridreq,
-       .af_addreq      = &ipx_addreq,
-};
-
-static __constructor(101) void
-ipx_ctor(void)
-{
-       af_register(&af_ipx);
-}
index c7be7b7..9e30b91 100644 (file)
@@ -156,12 +156,8 @@ supported are
 .Dq inet ,
 .Dq inet6 ,
 .Dq atalk ,
-.Dq ipx ,
-.\" .Dq iso ,
 and
 .Dq link .
-.\" and
-.\" .Dq ns .
 The default is
 .Dq inet .
 .Dq ether
@@ -267,12 +263,6 @@ This action does not automatically disable routes using the interface.
 Fill interface index
 (lowermost 64bit of an IPv6 address)
 automatically.
-.It Cm ipdst
-This is used to specify an Internet host who is willing to receive
-IP packets encapsulating IPX packets bound for a remote network.
-An apparent point to point link is constructed, and
-the address specified will be taken as the IPX address and network
-of the destination.
 .It Cm media Ar type
 If the driver supports the media selection system, set the media type
 of the interface to
index 0270110..5a37ae6 100644 (file)
@@ -84,7 +84,6 @@ struct        ifreq ifr;
 char   name[IFNAMSIZ];
 int    flags;
 int    setaddr;
-int    setipdst;
 int    setmask;
 int    doalias;
 int    clearaddr;
@@ -705,21 +704,6 @@ setifbroadaddr(const char *addr, int dummy __unused, int s,
                afp->af_getaddr(addr, DSTADDR);
 }
 
-static void
-setifipdst(const char *addr, int dummy __unused, int s,
-    const struct afswtch *afp)
-{
-       const struct afswtch *inet;
-
-       inet = af_getbyname("inet");
-       if (inet == NULL)
-               return;
-       inet->af_getaddr(addr, DSTADDR);
-       setipdst++;
-       clearaddr = 0;
-       newaddr = 0;
-}
-
 static void
 notealias(const char *addr, int param, int s, const struct afswtch *afp)
 {
@@ -1103,9 +1087,6 @@ static struct cmd basic_cmds[] = {
        DEF_CMD_ARG("netmask",                  setifnetmask),
        DEF_CMD_ARG("metric",                   setifmetric),
        DEF_CMD_ARG("broadcast",                setifbroadaddr),
-#ifndef NO_IPX
-       DEF_CMD_ARG("ipdst",                    setifipdst),
-#endif
        DEF_CMD_ARG2("tunnel",                  settunnel),
        DEF_CMD("-tunnel", 0,                   deletetunnel),
        DEF_CMD("deletetunnel", 0,              deletetunnel),
index 291e889..c5d3ff9 100644 (file)
@@ -139,7 +139,6 @@ extern      int printname;
 extern int flags;
 extern int newaddr;
 extern int verbose;
-extern int setipdst;
 
 void   setifcap(const char *, int value, int s, const struct afswtch *);
 
index 5294a4c..36b46df 100644 (file)
@@ -416,7 +416,6 @@ have permission to load the module.
 .Xr mount_nfs 8 ,
 .Xr mount_ntfs 8 ,
 .Xr mount_null 8 ,
-.Xr mount_nwfs 8 ,
 .Xr mount_portal 8 ,
 .Xr mount_procfs 8 ,
 .Xr mount_smbfs 8 ,
diff --git a/sbin/mount_nwfs/Makefile b/sbin/mount_nwfs/Makefile
deleted file mode 100644 (file)
index 6ddd8ea..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# $FreeBSD: src/sbin/mount_nwfs/Makefile,v 1.1.2.2 2001/04/25 10:58:39 ru Exp $
-
-PROG=  mount_nwfs
-MAN=   mount_nwfs.8
-
-CFLAGS+= -DNWFS
-
-DPADD= ${LIBNCP} ${LIBIPX} ${LIBUTIL}
-LDADD= -lncp -lipx -lutil
-
-.include <bsd.prog.mk>
diff --git a/sbin/mount_nwfs/mount_nwfs.8 b/sbin/mount_nwfs/mount_nwfs.8
deleted file mode 100644 (file)
index 45cdcb7..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-.\" $FreeBSD: src/sbin/mount_nwfs/mount_nwfs.8,v 1.7.2.8 2003/02/23 21:17:43 trhodes Exp $
-.Dd October 14, 1999
-.Dt MOUNT_NWFS 8
-.Os
-.Sh NAME
-.Nm mount_nwfs
-.Nd mount NetWare volume from a NetWare file server
-.Sh SYNOPSIS
-.Nm
-.Op Fl Chv
-.Fl S Ar server
-.Fl U Ar user
-.Op Fl connection\ options
-.Fl V Ar volume
-.Op Fl M Ar mode
-.Op Fl c Ar case
-.Op Fl d Ar mode
-.Op Fl f Ar mode
-.Op Fl g Ar gid
-.Op Fl l Ar locale
-.Op Fl n Ar os2
-.Op Fl u Ar uid
-.Op Fl w Ar scheme
-.Ar node
-.Nm
-.Op Fl options
-.Ar /server:user/volume[/path]
-.Ar node
-.Sh DESCRIPTION
-The
-.Nm
-utility allows to mount volume from a NetWare server.
-It may use either
-existing connection or create new: if no usable connection was found
-it will try to establish a new one.
-Connection has count of references to it,
-so when last mount will be dismounted connection will be closed.
-It is
-possible to create connection without any mounts (but use it for them) with
-.Xr ncplogin 1 .
-.Pp
-Note two forms of command line.
-In the first form, server and user specified
-via
-.Fl S
-and
-.Fl U
-options respectively.
-In the second form server and user specified in
-.Ar special
-part of
-.Xr mount 8
-command line arguments (the
-.Fl S ,
-.Fl U
-and
-.Fl V
-options aren't used in this case).
-This allows use of
-.Xr fstab 5
-file (see
-.Sx EXAMPLES
-below).
-.Pp
-The options are:
-.Bl -tag -width indent
-.It Fl S Ar server
-Name of NetWare server to connect.
-For native IP you will need also
-.Fl A
-option.
-.It Fl U Ar user
-Name of user used in login sequence.
-.It Fl connection\ options
-See
-.Xr ncplogin 1
-for details.
-.It Fl V Ar volume
-Volume name to mount.
-Volume name can also be specified after all options and
-before
-.Ar mount-point .
-.It Ar node
-Path to mount volume.
-.It Fl c Ar case
-Select a
-.Ar case
-option which affects on name representation.
-.Ar Case
-can be one of the following:
-.Bl -tag -width "ValueXX"
-.It Em Value
-.Em Meaning
-.It l
-All existing file names converted to lower case.
-Newly created file gets a lower case under OS2 name space.
-This is the default when mounting volumes with DOS name space.
-.It L
-Same as 'l' but file system tries to be case insensitive.
-May not work well.
-.It n
-No case conversion is performed.
-.Em Warning !
-Use this option with DOS name space only as a last resort,
-because creating a lower case name in the DOS name space
-can lead to unpredictable results.
-This is the default when mounting volumes with OS2 name space.
-.It u
-All existing file names converted to upper case.
-Newly created file gets an upper case under OS2 name space.
-.It U
-Same as 'u' but file system tries to be case insensitive.
-May not work well.
-.El
-.It Fl f Ar mode , Fl d Ar mode
-Specify permissions that should be assigned to files and directories.
-The values must be specified as octal numbers.
-Default value for the file mode
-is taken from mount point, default value for the dir mode adds execute
-permission where the file mode gives read permission.
-.Pp
-Note that these permissions can differ from the rights granted by NetWare
-server.
-.It Fl n Ar namespace
-Don't use
-.Ar namespace .
-Currently only
-.Ar OS2
-can be here.
-.It Fl v
-Print version number.
-.It Fl u Ar uid , Fl g Ar gid
-User id and group id assigned to files.
-The default is owner and group id from
-directory where volume is mounted.
-.It Fl l Ar locale
-Set the locale for case conversion.
-By default
-.Nm
-tries to use an environment variable
-.Ev LC_* .
-.It Fl w Ar scheme
-Select a
-.Ar scheme
-used to convert file names between NetWare and
-.Dx .
-Supported conversion schemes are:
-.Bl -tag -width ".Cm koi2cp866"
-.It Cm asis
-Characters passed as is without any alteration.
-.It Cm koi2cp866
-koi8-r <-> CP866
-.It Cm se
-Suits for setups used in Sweden.
-.El
-.It Fl M Ar mode
-See
-.Xr ncplogin 1
-for details.
-If this option is omitted, connection permissions
-assumed the same as directory mode
-.Pq Fl d
-option.
-.El
-.Sh FILES
-.Bl -tag -width /var/log/wtmp -compact
-.It Pa ~/.nwfsrc
-keeps static parameters for connections and other information.
-See
-.Pa /usr/share/examples/nwclient/dot.nwfsrc
-for details.
-.El
-.Sh NOTES
-Before any NCP connection can be established kernel must be configured
-for IPX support, IPXrouted and KLD nwfs.ko should be loaded.
-.Sh EXAMPLES
-Next examples illustrates how to connect to NetWare server
-.Em nwserv
-as user
-.Em GUEST
-and mount volumes
-.Em SYS
-and
-.Em VOL1 :
-.Bd -literal -offset indent
-mount_nwfs -S nwserv -U guest -V sys /nw/s1/sys
-mount_nwfs /nwserv:guest/sys /nw/s1/sys
-mount -t nwfs /nwserv:guest/vol1 /nw/s1/vol1
-mount -t nwfs /nwserv:boris/sys/home/boris /home/boris/nw/home
-.Ed
-.Pp
-The last example mounts only subdirectory on a volume and equivalent
-to NetWare 'map root' command.
-.Pp
-It is possible to use
-.Xr fstab 5
-for nwfs mounts:
-.Bd -literal -offset indent
-/nwserv:guest/sys       /nw/s1/sys     nwfs  rw,noauto 0   0
-/nwserv:guest/vol1      /nw/s1/vol2    nwfs  rw,noauto 0   0
-.Ed
-.Sh HISTORY
-The
-.Nm
-utility first appeared in
-.Fx 4.0 .
-.Sh CREDITS
-In development of NetWare client for
-.Fx ,
-the following sources were used:
-.Pp
-Documentation from NetWare NDK.
-.Pp
-Ncpfs for Linux - written by
-.An Volker Lendecke Aq Mt lendecke@math.uni-goettingen.de .
-He granted me permission to publish parts of his code under
-.Bx Ns -style
-license,
-.Pp
-"Interrupt List" from
-.An Ralf Brown ,
-.Pp
-Many files from
-.Pa /sys
-directory.
-.Sh AUTHORS
-.An -nosplit
-.An Boris Popov Aq Mt bp@butya.kz ,
-.Aq Mt rbp@chat.ru
-.Sh BUGS
-to number a few
diff --git a/sbin/mount_nwfs/mount_nwfs.c b/sbin/mount_nwfs/mount_nwfs.c
deleted file mode 100644 (file)
index 579ee84..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Copyright (c) 1999, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/sbin/mount_nwfs/mount_nwfs.c,v 1.4.2.1 2000/04/17 08:34:18 bp Exp $
- */
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/errno.h>
-#include <sys/mount.h>
-#include <sys/sysctl.h>
-#include <machine/cpu.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <pwd.h>
-#include <grp.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <err.h>
-#include <sysexits.h>
-#include <time.h>
-#include <mntopts.h>
-
-#include <netncp/ncp_lib.h>
-#include <netncp/ncp_rcfile.h>
-#include <vfs/nwfs/nwfs_mount.h>
-
-#define        NWFS_VFSNAME    "nwfs"
-
-static char mount_point[MAXPATHLEN + 1];
-static void usage(void);
-static int parsercfile(struct ncp_conn_loginfo *li, struct nwfs_args *mdata);
-
-static struct mntopt mopts[] = {
-       MOPT_STDOPTS,
-       { NULL , 0, 0, 0 }
-};
-
-static int 
-parsercfile(struct ncp_conn_loginfo *li __unused,
-    struct nwfs_args *mdata __unused)
-{
-       return 0;
-}
-
-int
-main(int argc, char *argv[]) {
-       NWCONN_HANDLE connHandle;
-       struct nwfs_args mdata;
-       struct ncp_conn_loginfo li;
-       struct stat st;
-       struct vfsconf vfc;
-       struct nw_entry_info einfo;
-       struct tm *tm;
-       time_t ltime;
-       int opt, error, mntflags, nlsopt, wall_clock;
-       size_t len;
-       int mib[2];
-       char *p, *p1, tmp[1024];
-       u_char *pv;
-
-       if (argc < 2)
-               usage();
-       if (argc == 2) {
-               if (strcmp(argv[1], "-h") == 0) {
-                       usage();
-               } else if (strcmp(argv[1], "-v") == 0) {
-                       errx(EX_OK, "version %d.%d.%d", NWFS_VERSION / 100000,
-                           (NWFS_VERSION % 10000) / 1000,
-                           (NWFS_VERSION % 1000) / 100);
-               }
-       }
-
-       error = getvfsbyname(NWFS_VFSNAME, &vfc);
-       if (error && vfsisloadable(NWFS_VFSNAME)) {
-               if(vfsload(NWFS_VFSNAME))
-                       err(EX_OSERR, "vfsload("NWFS_VFSNAME")");
-               endvfsent();
-               error = getvfsbyname(NWFS_VFSNAME, &vfc);
-       }
-       if (error)
-               errx(EX_OSERR, "NetWare filesystem is not available");
-
-       if(ncp_initlib()) exit(1);
-
-       mntflags = error = 0;
-       bzero(&mdata,sizeof(mdata));
-       mdata.uid = mdata.gid = -1;
-       nlsopt = 0;
-
-       if (ncp_li_init(&li, argc, argv)) return 1;
-       /*
-        * A little bit weird, but I should figure out which server/user to use
-        * _before_ reading .rc file
-        */
-       if (argc >= 3 && argv[argc-1][0] != '-' && argv[argc-2][0] != '-' &&
-           argv[argc-2][0] == '/') {
-               p = argv[argc-2];
-               error = 1;
-               do {
-                       if (*p++ != '/') break;
-                       p1 = tmp;
-                       while (*p != ':' && *p != 0) *p1++ = *p++;
-                       if (*p++ == 0) break;
-                       *p1 = 0;
-                       if (ncp_li_setserver(&li, tmp)) break;
-                       p1 = tmp;
-                       while (*p != '/' && *p != 0) *p1++ = *p++;
-                       if (*p++ == 0) break;
-                       *p1 = 0;
-                       if (ncp_li_setuser(&li, tmp)) break;
-                       p1 = tmp;
-                       while (*p != '/' && *p != 0) *p1++ = *p++;
-                       *p1 = 0;
-                       if (strlen(tmp) > NCP_VOLNAME_LEN) {
-                               warnx("volume name too long: %s", tmp);
-                               break;
-                       }
-                       ncp_str_upper(strcpy(mdata.mounted_vol,tmp));
-                       if (*p == '/')
-                               p++;
-                       p1 = mdata.root_path + 2;
-                       pv = mdata.root_path + 1;
-                       for(;*p;) {
-                               *pv = 0;
-                               while (*p != '/' && *p) {
-                                       *p1++ = *p++;
-                                       (*pv)++;
-                               }
-                               if (*pv) {
-                                       ncp_nls_mem_u2n(pv + 1, pv + 1, *pv);
-                                       pv += (*pv) + 1;
-                                       mdata.root_path[0]++;
-                               }
-                               if (*p++ == 0) break;
-                               p1++;
-                       }
-                       error = 0;
-               } while(0);
-               if (error)
-                       errx(EX_DATAERR, 
-                           "an error occurred while parsing '%s'",
-                           argv[argc - 2]);
-       }
-       if (ncp_li_readrc(&li)) return 1;
-       if (ncp_rc) {
-               parsercfile(&li,&mdata);
-               rc_close(ncp_rc);
-       }
-       while ((opt = getopt(argc, argv, STDPARAM_OPT"V:c:d:f:g:l:n:o:u:w:")) != -1) {
-               switch (opt) {
-                   case STDPARAM_ARGS:
-                       if (ncp_li_arg(&li, opt, optarg)) {     
-                               return 1;
-                       }
-                       break;
-                   case 'V':
-                       if (strlen(optarg) > NCP_VOLNAME_LEN)
-                               errx(EX_DATAERR, "volume too long: %s", optarg);
-                       ncp_str_upper(strcpy(mdata.mounted_vol,optarg));
-                       break;
-                   case 'u': {
-                       struct passwd *pwd;
-
-                       pwd = isdigit(optarg[0]) ?
-                           getpwuid(atoi(optarg)) : getpwnam(optarg);
-                       if (pwd == NULL)
-                               errx(EX_NOUSER, "unknown user '%s'", optarg);
-                       mdata.uid = pwd->pw_uid;
-                       break;
-                   }
-                   case 'g': {
-                       struct group *grp;
-
-                       grp = isdigit(optarg[0]) ?
-                           getgrgid(atoi(optarg)) : getgrnam(optarg);
-                       if (grp == NULL)
-                               errx(EX_NOUSER, "unknown group '%s'", optarg);
-                       mdata.gid = grp->gr_gid;
-                       break;
-                   }
-                   case 'd':
-                       errno = 0;
-                       mdata.dir_mode = strtol(optarg, &p, 8);
-                       if (errno || *p != 0)
-                               errx(EX_DATAERR, "invalid value for directory mode");
-                       break;
-                   case 'f':
-                       errno = 0;
-                       mdata.file_mode = strtol(optarg, &p, 8);
-                       if (errno || *p != 0)
-                               errx(EX_DATAERR, "invalid value for file mode");
-                       break;
-                   case '?':
-                       usage();
-                       /*NOTREACHED*/
-                   case 'n': {
-                       char *inp, *nsp;
-
-                       nsp = inp = optarg;
-                       while ((nsp = strsep(&inp, ",;:")) != NULL) {
-                               if (strcasecmp(nsp, "OS2") == 0)
-                                       mdata.flags |= NWFS_MOUNT_NO_OS2;
-                               else if (strcasecmp(nsp, "LONG") == 0)
-                                       mdata.flags |= NWFS_MOUNT_NO_LONG;
-                               else if (strcasecmp(nsp, "NFS") == 0)
-                                       mdata.flags |= NWFS_MOUNT_NO_NFS;
-                               else
-                                       errx(EX_DATAERR, "unknown namespace '%s'", nsp);
-                       }
-                       break;
-                   };
-                   case 'l':
-                       if (ncp_nls_setlocale(optarg) != 0) return 1;
-                       mdata.flags |= NWFS_MOUNT_HAVE_NLS;
-                       break;
-                   case 'o':
-                       getmntopts(optarg, mopts, &mntflags, 0);
-                       break;
-                   case 'c':
-                       switch (optarg[0]) {
-                           case 'l':
-                               nlsopt |= NWHP_LOWER;
-                               break;
-                           case 'u':
-                               nlsopt |= NWHP_UPPER;
-                               break;
-                           case 'n':
-                               nlsopt |= NWHP_LOWER | NWHP_UPPER;
-                               break;
-                           case 'L':
-                               nlsopt |= NWHP_LOWER | NWHP_NOSTRICT;
-                               break;
-                           case 'U':
-                               nlsopt |= NWHP_UPPER | NWHP_NOSTRICT;
-                               break;
-                           default:
-                               errx(EX_DATAERR, "invalid suboption '%c' for -c",
-                                   optarg[0]);
-                       }
-                       break;
-                   case 'w':
-                       if (ncp_nls_setrecodebyname(optarg) != 0)
-                               return 1;
-                       mdata.flags |= NWFS_MOUNT_HAVE_NLS;
-                       break;
-                   default:
-                       usage();
-               }
-       }
-
-       if (optind == argc - 2) {
-               optind++;
-       } else if (mdata.mounted_vol[0] == 0)
-               errx(EX_USAGE, "volume name should be specified");
-       
-       if (optind != argc - 1)
-               usage();
-       realpath(argv[optind], mount_point);
-
-       if (stat(mount_point, &st) == -1)
-               err(EX_OSERR, "could not find mount point %s", mount_point);
-       if (!S_ISDIR(st.st_mode)) {
-               errno = ENOTDIR;
-               err(EX_OSERR, "can't mount on %s", mount_point);
-       }
-       if (ncp_geteinfo(mount_point, &einfo) == 0)
-               errx(EX_OSERR, "can't mount on %s twice", mount_point);
-
-       if (mdata.uid == (uid_t)-1) {
-               mdata.uid = st.st_uid;
-       }
-       if (mdata.gid == (gid_t)-1) {
-               mdata.gid = st.st_gid;
-       }
-       if (mdata.file_mode == 0 ) {
-               mdata.file_mode = st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO);
-       }
-       if (mdata.dir_mode == 0) {
-               mdata.dir_mode = mdata.file_mode;
-               if ((mdata.dir_mode & S_IRUSR) != 0)
-                       mdata.dir_mode |= S_IXUSR;
-               if ((mdata.dir_mode & S_IRGRP) != 0)
-                       mdata.dir_mode |= S_IXGRP;
-               if ((mdata.dir_mode & S_IROTH) != 0)
-                       mdata.dir_mode |= S_IXOTH;
-       }
-       if (li.access_mode == 0) {
-               li.access_mode = mdata.dir_mode;
-       }
-/*     if (mdata.flags & NWFS_MOUNT_HAVE_NLS) {*/
-               mdata.nls = ncp_nls;
-/*     }*/
-       mdata.nls.opt = nlsopt;
-
-       mib[0] = CTL_MACHDEP;
-       mib[1] = CPU_WALLCLOCK;
-       len = sizeof(wall_clock);
-       if (sysctl(mib, 2, &wall_clock, &len, NULL, 0) == -1)
-               err(EX_OSERR, "get wall_clock");
-       if (wall_clock == 0) {
-               time(&ltime);
-               tm = localtime(&ltime);
-               mdata.tz = -(tm->tm_gmtoff / 60);
-       }
-
-       error = ncp_li_check(&li);
-       if (error)
-               return 1;
-       li.opt |= NCP_OPT_WDOG;
-       /* well, now we can try to login, or use already established connection */
-       error = ncp_li_login(&li, &connHandle);
-       if (error) {
-               ncp_error("cannot login to server %s", error, li.server);
-               exit(1);
-       }
-       error = ncp_conn2ref(connHandle, &mdata.connRef);
-       if (error) {
-               ncp_error("could not convert handle to reference", error);
-               ncp_disconnect(connHandle);
-               exit(1);
-       }
-       strcpy(mdata.mount_point,mount_point);
-       mdata.version = NWFS_VERSION;
-       error = mount(NWFS_VFSNAME, mdata.mount_point, mntflags, (void*)&mdata);
-       if (error) {
-               ncp_error("mount error: %s", error, mdata.mount_point);
-               ncp_disconnect(connHandle);
-               exit(1);
-       }
-       /*
-        * I'm leave along my handle, but kernel should keep own ...
-        */
-       ncp_disconnect(connHandle);
-       /* we are done ?, impossible ... */
-       return 0;
-}
-
-static void
-usage(void)
-{
-       fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n",
-       "usage: mount_nwfs [-Chv] -S server -U user [-connection options]",
-       "                  -V volume [-M mode] [-c case] [-d mode] [-f mode]",
-       "                  [-g gid] [-l locale] [-n os2] [-u uid] [-w scheme]",
-       "                  node",
-       "       mount_nwfs [-options] /server:user/volume[/path] node");
-
-       exit (1);
-}
index a45c2b1..f5a1ea2 100644 (file)
@@ -416,7 +416,6 @@ have permission to load the module.
 .Xr mount_nfs 8 ,
 .Xr mount_ntfs 8 ,
 .Xr mount_null 8 ,
-.Xr mount_nwfs 8 ,
 .Xr mount_portal 8 ,
 .Xr mount_procfs 8 ,
 .Xr mount_smbfs 8 ,
index e4beb22..7b23bf2 100644 (file)
@@ -461,7 +461,6 @@ The next-hop gateway should be reachable through a different route.
 .Xr netintro 4 ,
 .Xr route 4 ,
 .Xr arp 8 ,
-.Xr IPXrouted 8 ,
 .Xr routed 8
 .Sh HISTORY
 The
index 4cf438b..5844f03 100644 (file)
@@ -257,9 +257,6 @@ pr_family(int af)
                afname = "Internet6";
                break;
 #endif /* INET6 */
-       case AF_IPX:
-               afname = "IPX";
-               break;
        case AF_ISO:
                afname = "ISO";
                break;
diff --git a/share/examples/nwclient/dot.nwfsrc b/share/examples/nwclient/dot.nwfsrc
deleted file mode 100644 (file)
index 9ef1a96..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-# $FreeBSD: src/share/examples/nwclient/dot.nwfsrc,v 1.1.2.1 2002/04/30 08:23:56 bp Exp $
-# $DragonFly: src/share/examples/nwclient/dot.nwfsrc,v 1.2 2003/06/17 04:36:57 dillon Exp $
-#
-# Example for .nwfsrc file
-#
-# ncplib lookups configuration files in next order:
-#      1. ~/.nwfsrc
-#      2. /etc/nwfs.conf - if this file found it will
-#         override values with same keys from user files.
-#
-#
-# This file consist of a set of sections. Each section started by section name
-# surrounded by square brackets:
-# [section_name]
-#
-# End of the section marked either by new section or by the end of file.
-# Each section can contain zero or more parameters:
-# [section_name]
-# key=value
-#
-# where 'key' is a represents parameter name and 'value' a value assigned
-# to this parameter.
-#
-# NetWare library uses next forms of section names:
-# [SERVER]
-# [SERVER:USER]
-# [SERVER:QUEUE]
-# 
-# When user issues any ncp* command that requires create of new connection
-# to a NetWare server, library function lookups for parameters in the 
-# corresponding section. First it looks in the [SERVER] section and then in
-# the [SERVER:USER] section. Please note that server and user names should be
-# in the upper case.
-#
-
-# Following parameters are valid for [SERVER] or [SERVER:USER] section:
-[BHOME:SUPERVISOR]
-# if you don't use password leave value empty
-password=I_DONT_TELL_YOU
-
-# how many retries before error, default 10
-retry_count=10
-
-# timeout for request to complete
-timeout=5
-
-# access mode to connection, default 0700
-access_mode=0700
-
-# signature level, default 0 - no signatures
-sig_level=0
-
-# force bindery login, default no
-bindery=no
-
-# default print queue for user, default is none
-# print_queue=QE_BJ
-
-
-[ANOTHERSERVER:PLAINUSER]
-# in this case user have an empty password
-password=
-
-# Defaults for printer queues defined as [SERVER:QUEUE]
-# communication parameters taken from [SERVER:USER] section
-# see man ncprint(1) for queue parameters description
-# note: if any banner related option is specified, banner will be printed.
-[BHOME:QE_BJ]
-#path_name=/etc
-#file_name=passwd
-#banner_name=My Job
-#job_desc=Printing from FreeBSD
-
-#lines=66
-#rows=80
-copies=1
-tab_size=8
-no_form_feed=yes
-#form_number=0
diff --git a/share/examples/nwclient/nwfs.sh.sample b/share/examples/nwclient/nwfs.sh.sample
deleted file mode 100644 (file)
index afc3bcb..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD: src/share/examples/nwclient/nwfs.sh.sample,v 1.1 1999/11/03 12:06:13 bp Exp $
-# $DragonFly: src/share/examples/nwclient/nwfs.sh.sample,v 1.2 2003/06/17 04:36:57 dillon Exp $
-#
-# Location: /usr/local/etc/rc.d/nwfs.sh
-#
-# Simple script to mount NetWare volumes at startup.
-# It assumes that all mount points described in fstab file and password
-# entries listed in /root/.nwfsrc file. See mount_nwfs(8) for details.
-#
-
-mount=/sbin/mount
-umount=/sbin/umount
-HOME=/root; export HOME
-vols="/nw/sys /nw/vol1"
-
-if [ "x$1" = "x" -o "x$1" = "xstart" ]; then
-       echo -n "Mounting NetWare volumes: "
-       for vol in ${vols}; do
-               $mount $vol
-               echo -n "$vol "
-       done
-       echo "Done"
-elif [ "x$1" = "xstop" ]; then
-       echo -n "Unmounting NetWare mount points: "
-       for vol in ${vols}; do
-               $umount $vol
-               echo -n "$vol "
-       done
-       echo "Done"
-else
-       echo "Unknown command $1"
-fi
-
index ff76654..50ba6ef 100644 (file)
@@ -69,7 +69,7 @@ CRUNCH_ALIAS_swapon= swapoff swapctl
 
 CRUNCH_LIBS+= -lcam -lsbuf -lutil -lkvm -lm -lmd -lhammer -lkiconv -ledit
 CRUNCH_LIBS+= -ltermcap -ldevstat -lprop -lpthread
-CRUNCH_LIBS+= -lipx -lbsdxml -lipsec
+CRUNCH_LIBS+= -lbsdxml -lipsec
 
 CRUNCH_SRCDIRS+= usr.sbin
 CRUNCH_PROGS_usr.sbin= boot0cfg chroot
index 0dfd526..832423c 100644 (file)
@@ -88,7 +88,6 @@ MAN=  aac.4 \
        dummynet.4 \
        ecc.4 \
        ed.4 \
-       ef.4 \
        ehci.4 \
        em.4 \
        est.4 \
@@ -430,7 +429,6 @@ MLINKS+=drm.4 i915kms.4 \
 #      drm.4 viadrm.4
 MLINKS+=dsched.4 dsched_fq.4
 MLINKS+=ed.4 if_ed.4
-MLINKS+=ef.4 if_ef.4
 MLINKS+=em.4 emx.4 \
        em.4 if_em.4 \
        em.4 if_emx.4
diff --git a/share/man/man4/ef.4 b/share/man/man4/ef.4
deleted file mode 100644 (file)
index ae588bd..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-.\"
-.\" Copyright (c) 1999, Boris Popov
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" $FreeBSD: src/sys/modules/if_ef/ef.4,v 1.1.2.2 2001/12/20 17:23:13 ru Exp $
-.\"
-.Dd June 20, 1999
-.Dt EF 4
-.Os
-.Sh NAME
-.Nm ef
-.Nd "pseudo-device driver providing support for multiple ethernet frame types"
-.Sh SYNOPSIS
-.Cd "pseudo-device ef"
-.Sh DESCRIPTION
-The
-.Nm
-pseudo-device driver clones each ethernet type device with four
-additional interfaces. Each of them capable to send or receive only
-one predefined frame type.
-.Pp
-Names for the new interfaces created by adding
-.Ar fN
-suffix to an existing device name. Where
-.Ar N
-is a device unit which can have one of the following values:
-.Bd -literal -offset indent
-0     interface with an Ethernet_II frame
-1     interface with a Novell Ethernet_802.3 frame
-2     interface with an Ethernet_802.2 frame
-3     interface with an Ethernet_802.2/SNAP frame support.
-.Ed
-.Pp
-For example, device
-.Ar ed0
-will be populated with four devices:
-.Ar ed0f0 ,
-.Ar ed0f1 ,
-.Ar ed0f2
-and
-.Ar ed0f3 .
-.Pp
-After that, each device can be configured as usually:
-.Dl # ifconfig ed0f1 ipx 0x105
-This will configure IPX protocol with network number
-.Ar 0x105
-and
-.Ar Ethernet_802.3
-frame type.
-.Pp
-Please note that it is impossible to configure IPX protocol on the 'raw'
-.Ar ed0
-device after
-.Ar if_ef.ko
-driver loaded.
-.Sh EXAMPLES
-The
-.Nm
-driver can be loaded via
-.Xr loader.conf 5
-file:
-.Dl if_ef_load="YES"
-.Pp
-In this case an ordinary interface configuration commands can be used
-in the
-.Xr rc.conf 5
-file:
-.Dl network_interfaces="ed2 lo0 tun0 ed2f0 ed2f1"
-.Dl ifconfig_ed2f0_ipx="ipx 0x101"
-.Dl ifconfig_ed2f1_ipx="ipx 0x102"
-.Sh DIAGNOSTICS
-None.
-.Sh CAVEATS
-Avoid to configuring 'raw' ethernet device for IPX protocol after
-.Nm
-driver is loaded.
-.Sh SEE ALSO
-.Xr ipx 3 ,
-.Xr ifconfig 8
-.Sh AUTHORS
-.An Boris Popov Aq Mt bp@FreeBSD.org .
index 87e2627..c1fc824 100644 (file)
@@ -944,7 +944,7 @@ This is used in conjunction with the TTY node
 type for supporting PPP links over asynchronous serial lines.
 .It INTERFACE
 This node is also a system networking interface.
-It has hooks representing each protocol family (IP, AppleTalk, IPX, etc.)
+It has hooks representing each protocol family (IP, AppleTalk, etc.)
 and appears in the output of
 .Xr ifconfig 8 .
 The interfaces are named
index e242bf4..1942881 100644 (file)
@@ -69,7 +69,7 @@ Packets transmitted via the interface flow out the corresponding
 protocol-specific hook.
 Similarly, packets received on a hook appear on the interface as
 packets received into the corresponding protocol stack.
-The currently supported protocols are IP, IPv6, AppleTalk, IPX, ATM,
+The currently supported protocols are IP, IPv6, AppleTalk, ATM,
 NATM, and NS.
 .Pp
 An
@@ -89,8 +89,6 @@ Transmission and reception of IP packets.
 Transmission and reception of IPv6 packets.
 .It Dv atalk
 Transmission and reception of AppleTalk packets.
-.It Dv ipx
-Transmission and reception of IPX packets.
 .It Dv atm
 Transmission and reception of ATM packets.
 .It Dv natm
index 5a1fd4f..1d291ea 100644 (file)
@@ -1611,27 +1611,6 @@ is set to
 these are the flags to pass to the
 .Xr rtsold 8
 daemon.
-.It Va ipxgateway_enable
-.Pq Vt bool
-If set to
-.Dq Li YES ,
-enable the routing of IPX traffic.
-.It Va ipxrouted_enable
-.Pq Vt bool
-If set to
-.Dq Li YES ,
-run the
-.Xr IPXrouted 8
-daemon at system boot time.
-.It Va ipxrouted_flags
-.Pq Vt str
-If
-.Va ipxrouted_enable
-is set to
-.Dq Li YES ,
-these are the flags to pass to the
-.Xr IPXrouted 8
-daemon.
 .It Va arpproxy_all
 .Pq Vt bool
 If set to
index 89f329e..37d41b3 100644 (file)
@@ -220,8 +220,6 @@ see
 C include files for Internet protocol version 6;
 see
 .Xr inet6 4
-.It Pa netipx/
-IPX/SPX protocol stacks
 .It Pa netkey/
 kernel key-management service
 .It Pa netnatm/
index 8810446..dc3a5c6 100644 (file)
@@ -72,7 +72,6 @@ typedef struct acl      *acl_t;
 #define ACL_TYPE_AFS            0x00000002
 #define ACL_TYPE_CODA           0x00000003
 #define ACL_TYPE_NTFS           0x00000004
-#define ACL_TYPE_NWFS           0x00000005
 
 /*
  * Possible flags in a_perm field
index 2a75f96..113326c 100644 (file)
@@ -41,7 +41,6 @@ LIBFSID?=     ${DESTDIR}${LIBDIR}/libfsid.a
 LIBFTPIO?=     ${DESTDIR}${LIBDIR}/libftpio.a
 LIBHAMMER?=    ${DESTDIR}${LIBDIR}/libhammer.a
 LIBIPSEC?=     ${DESTDIR}${LIBDIR}/libipsec.a
-LIBIPX?=       ${DESTDIR}${LIBDIR}/libipx.a
 LIBKCORE?=     ${DESTDIR}${LIBDIR}/libkcore.a
 LIBKICONV?=    ${DESTDIR}${LIBDIR}/libkiconv.a
 LIBKINFO?=     ${DESTDIR}${LIBDIR}/libkinfo.a
@@ -61,7 +60,6 @@ LIBMENU?=     ${DESTDIR}${LIBDIR}/libmenu.a
 LIBMILTER?=    ${DESTDIR}${LIBDIR}/libmilter.a
 .endif
 LIBMYTINFO?=   "don't use LIBMYTINFO, use LIBNCURSES"
-LIBNCP?=       ${DESTDIR}${LIBDIR}/libncp.a
 LIBNCURSES?=   ${DESTDIR}${LIBDIR}/libncurses.a
 LIBNCURSESW?=  ${DESTDIR}${LIBDIR}/libncursesw.a
 LIBNETGRAPH?=  ${DESTDIR}${LIBDIR}/libnetgraph.a
index 23b434b..1be60c1 100644 (file)
@@ -114,7 +114,6 @@ msdos_load="NO"                     # FAT-12/16/32
 nfs_load="NO"                  # NFS
 ntfs_load="NO"                 # NTFS
 null_load="NO"                 # Null filesystem
-nwfs_load="NO"                 # NetWare volume
 portal_load="NO"               # Portal filesystem
 procfs_load="NO"               # Process filesystem
 smbfs_load="NO"                        # SMB/CIFS
index d402a1a..144a75d 100644 (file)
@@ -120,7 +120,6 @@ msdos_load="NO"                     # FAT-12/16/32
 nfs_load="NO"                  # NFS
 ntfs_load="NO"                 # NTFS
 null_load="NO"                 # Null filesystem
-nwfs_load="NO"                 # NetWare volume
 portal_load="NO"               # Portal filesystem
 procfs_load="NO"               # Process filesystem
 smbfs_load="NO"                        # SMB/CIFS
index 0c84cf9..6566e90 100644 (file)
@@ -1145,7 +1145,6 @@ net/if_clone.c                    standard
 net/if_atmsubr.c               optional atm
 net/if_poll.c                  optional ifpoll_enable
 net/disc/if_disc.c             optional disc
-net/ef/if_ef.c                 optional ef
 net/if_ethersubr.c             optional ether
 net/faith/if_faith.c           optional faith
 net/gif/if_gif.c               optional gif
@@ -1571,17 +1570,6 @@ netproto/ipsec/xform_ah.c        optional fast_ipsec
 netproto/ipsec/xform_esp.c     optional fast_ipsec
 netproto/ipsec/xform_ipcomp.c  optional fast_ipsec
 netproto/ipsec/xform_ipip.c    optional fast_ipsec
-netproto/ipx/ipx.c             optional ipx
-netproto/ipx/ipx_cksum.c       optional ipx
-netproto/ipx/ipx_input.c       optional ipx
-netproto/ipx/ipx_ip.c          optional ipx
-netproto/ipx/ipx_outputfl.c    optional ipx
-netproto/ipx/ipx_pcb.c         optional ipx
-netproto/ipx/ipx_proto.c       optional ipx
-netproto/ipx/ipx_tun.c         optional ipx
-netproto/ipx/ipx_usrreq.c      optional ipx
-netproto/ipx/spx_debug.c       optional ipx
-netproto/ipx/spx_usrreq.c      optional ipx
 netproto/key/key.c             optional ipsec
 netproto/key/key_debug.c       optional ipsec
 netproto/key/keydb.c           optional ipsec
@@ -1593,15 +1581,6 @@ netproto/mpls/mpls_proto.c       optional mpls
 netproto/natm/natm.c           optional natm
 netproto/natm/natm_pcb.c       optional natm
 netproto/natm/natm_proto.c     optional natm
-netproto/ncp/ncp_conn.c                optional ncp
-netproto/ncp/ncp_crypt.c       optional ncp
-netproto/ncp/ncp_login.c       optional ncp
-netproto/ncp/ncp_mod.c         optional ncp
-netproto/ncp/ncp_ncp.c         optional ncp
-netproto/ncp/ncp_nls.c         optional ncp
-netproto/ncp/ncp_rq.c          optional ncp
-netproto/ncp/ncp_sock.c                optional ncp
-netproto/ncp/ncp_subr.c                optional ncp
 kern/md4c.c                    optional netsmb
 netproto/smb/smb_conn.c                optional netsmb
 netproto/smb/smb_crypt.c       optional netsmb
@@ -1627,12 +1606,6 @@ vfs/nfs/nfsm_subs.c              optional nfs
 vfs/nfs/bootp_subr.c           optional bootp
 vfs/nfs/nfs_mountrpc.c         optional nfs
 vfs/nfs/krpc_subr.c            optional nfs
-vfs/nwfs/nwfs_io.c             optional nwfs
-vfs/nwfs/nwfs_ioctl.c          optional nwfs
-vfs/nwfs/nwfs_node.c           optional nwfs
-vfs/nwfs/nwfs_subr.c           optional nwfs
-vfs/nwfs/nwfs_vfsops.c         optional nwfs
-vfs/nwfs/nwfs_vnops.c          optional nwfs
 bus/pccard/card_if.m           standard
 pccarddevs.h                   optional pccard \
        dependency              "$S/tools/pccarddevs2h.awk $S/bus/pccard/pccarddevs" \
index 413efb2..f1fe492 100644 (file)
@@ -134,7 +134,6 @@ MFS         opt_dontuse.h
 MSDOSFS                opt_dontuse.h
 NTFS           opt_dontuse.h
 NULLFS         opt_dontuse.h
-NWFS           opt_dontuse.h
 PORTAL         opt_dontuse.h
 PROCFS         opt_dontuse.h
 PUFFS          opt_dontuse.h
@@ -296,12 +295,8 @@ IPV6FIREWALL_VERBOSE       opt_ip6fw.h
 IPV6FIREWALL_VERBOSE_LIMIT     opt_ip6fw.h
 IPV6FIREWALL_DEFAULT_TO_ACCEPT opt_ip6fw.h
 IPSTEALTH
-IPX                    opt_ipx.h
-IPXIP                  opt_ipx.h
-IPTUNNEL               opt_ipx.h
 LIBMCHAIN
 MPLS                   opt_mpls.h
-NCP                    opt_ncp.h
 PPP_BSDCOMP            opt_ppp.h
 PPP_DEFLATE            opt_ppp.h
 PPP_FILTER             opt_ppp.h
index 2b64a9c..a147add 100644 (file)
@@ -353,12 +353,6 @@ options    IPSEC_DEBUG             #debug for IP security
 #
 #options       FAST_IPSEC              #new IPsec
 
-options        IPX                     #IPX/SPX communications protocols
-options        IPXIP                   #IPX in IP encapsulation (not available)
-options        IPTUNNEL                #IP in IPX encapsulation (not available)
-
-options        NCP                     #NetWare Core protocol
-
 options        MPLS                    #Multi-Protocol Label Switching
 
 #
@@ -460,12 +454,6 @@ options    PPP_BSDCOMP             #PPP BSD-compress support
 options        PPP_DEFLATE             #PPP zlib/deflate/gzip support
 options        PPP_FILTER              #enable bpf filtering (needs bpf)
 
-pseudo-device  ef                      # Multiple ethernet frames support
-options        ETHER_II                # enable Ethernet_II frame
-options        ETHER_8023              # enable Ethernet_802.3 (Novell) frame
-options        ETHER_8022              # enable Ethernet_802.2 frame
-options        ETHER_SNAP              # enable Ethernet_802.2/SNAP frame
-
 # for IPv6
 pseudo-device  gif                     #IPv6 and IPv4 tunneling
 pseudo-device  faith   1               #for IPv6 and IPv4 translation
@@ -638,7 +626,6 @@ options     HPFS                    #OS/2 File system
 options        MSDOSFS                 #MS DOS filesystem
 options        NTFS                    #NT filesystem
 options        NULLFS                  #NULL filesystem
-options        NWFS                    #NetWare filesystem
 options        PORTAL                  #Portal filesystem
 options        PROCFS                  #Process filesystem
 options                PUFFS                   #Userspace file systems (e.g. ntfs-3g & sshfs)
index b4e0371..aeb569b 100644 (file)
@@ -273,12 +273,6 @@ options    IPSEC_DEBUG             #debug for IP security
 #
 #options       FAST_IPSEC              #new IPsec
 
-options        IPX                     #IPX/SPX communications protocols
-options        IPXIP                   #IPX in IP encapsulation (not available)
-options        IPTUNNEL                #IP in IPX encapsulation (not available)
-
-options        NCP                     #NetWare Core protocol
-
 options        MPLS                    #Multi-Protocol Label Switching
 
 #
@@ -380,12 +374,6 @@ options    PPP_BSDCOMP             #PPP BSD-compress support
 options        PPP_DEFLATE             #PPP zlib/deflate/gzip support
 options        PPP_FILTER              #enable bpf filtering (needs bpf)
 
-pseudo-device  ef                      # Multiple ethernet frames support
-options        ETHER_II                # enable Ethernet_II frame
-options        ETHER_8023              # enable Ethernet_802.3 (Novell) frame
-options        ETHER_8022              # enable Ethernet_802.2 frame
-options        ETHER_SNAP              # enable Ethernet_802.2/SNAP frame
-
 # for IPv6
 pseudo-device  gif                     #IPv6 and IPv4 tunneling
 pseudo-device  faith   1               #for IPv6 and IPv4 translation
@@ -558,7 +546,6 @@ options     HPFS                    #OS/2 File system
 options        MSDOSFS                 #MS DOS filesystem
 options        NTFS                    #NT filesystem
 options        NULLFS                  #NULL filesystem
-options        NWFS                    #NetWare filesystem
 options        PORTAL                  #Portal filesystem
 options        PROCFS                  #Process filesystem
 options                PUFFS                   #Userspace file systems (e.g. ntfs-3g & sshfs)
index 16dad51..c3ab8cc 100644 (file)
@@ -53,7 +53,6 @@
 #include <sys/interrupt.h>
 
 #include "opt_inet.h"
-#include "opt_ipx.h"
 
 #include <net/if.h>
 #include <net/if_media.h>
 #include <netinet/if_ether.h>
 #endif
 
-#ifdef IPX
-#include <netproto/ipx/ipx.h>
-#include <netproto/ipx/ipx_if.h>
-#endif
-
 #include <vm/vm.h>
 
 #include <net/if_var.h>
index 4a2dbed..9ad08dc 100644 (file)
  *  o   To reconsider transmission buffer usage, including
  *      transmission buffer size (currently 4KB x 2) and pros-and-
  *      cons of multiple frame transmission.
- *  o   To test IPX codes.
  *  o   To test new-bus frontend.
  */
 
 #include "opt_fe.h"
 #include "opt_inet.h"
-#include "opt_ipx.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
index eddd0ea..e5608a8 100644 (file)
@@ -24,7 +24,6 @@
 
 #include "opt_fe.h"
 #include "opt_inet.h"
-#include "opt_ipx.h"
 
 #include <sys/param.h>
 #include <sys/kernel.h>
index 4910497..58bc685 100644 (file)
@@ -26,7 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/compat/linux/linux_stats.c,v 1.22.2.3 2001/11/05 19:08:23 marcel Exp $
- * $DragonFly: src/sys/emulation/linux/linux_stats.c,v 1.27 2008/09/28 05:08:16 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -229,7 +228,6 @@ bsd_to_linux_ftype(const char *fstypename)
                {"procfs",  LINUX_PROC_SUPER_MAGIC},
                {"msdosfs", LINUX_MSDOS_SUPER_MAGIC},
                {"ntfs",    LINUX_NTFS_SUPER_MAGIC},
-               {"nwfs",    LINUX_NCP_SUPER_MAGIC},
                {"hpfs",    LINUX_HPFS_SUPER_MAGIC},
                {NULL,      0L}};
 
index e0acea0..26c565c 100644 (file)
@@ -61,6 +61,8 @@
 #include <sys/msgport2.h>
 #include <sys/thread2.h>
 
+#include <vfs/hammer2/hammer2_disk.h>
+
 struct dios_open {
        int     openrd;
        int     openwr;
index 63e673a..9794e24 100644 (file)
@@ -1,4 +1,4 @@
-SUBDIR=accf_data accf_http disc ef faith gif gre sl stf tap tun \
+SUBDIR=accf_data accf_http disc faith gif gre sl stf tap tun \
        vlan zlib bridge dummynet ipfw ip6fw ip_mroute \
        sppp ppp_layer pf
 
diff --git a/sys/net/ef/Makefile b/sys/net/ef/Makefile
deleted file mode 100644 (file)
index 361870c..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# $FreeBSD: src/sys/modules/if_ef/Makefile,v 1.16 2009/06/08 19:57:35 bz Exp $
-
-KMOD=  if_ef
-SRCS=  if_ef.c opt_ipx.h opt_inet.h opt_ef.h
-
-.if defined(EFDEBUG)
-CFLAGS+= -DEF_DEBUG
-.endif
-
-.if !defined(BUILDING_WITH_KERNEL)
-# If you need only a limited number of frames, uncomment the needed ones.
-# This will reduce the number of visible devices.  Note that the module
-# will support all frames by default, i.e., when all are commented here.
-#ETHER_II=
-#ETHER_8023=
-#ETHER_8022=
-#ETHER_SNAP=
-
-opt_inet.h:
-       echo "#define INET 1" > ${.TARGET}
-
-opt_ipx.h:
-       echo "#define IPX 1" > ${.TARGET}
-
-opt_ef.h:
-       :> ${.TARGET}
-.for frame in ETHER_II ETHER_8023 ETHER_8022 ETHER_SNAP
-.if defined(${frame})
-       echo "#define ${frame} 1" >> ${.TARGET}
-.endif
-.endfor
-.endif
-
-.include <bsd.kmod.mk>
diff --git a/sys/net/ef/if_ef.c b/sys/net/ef/if_ef.c
deleted file mode 100644 (file)
index fdd738b..0000000
+++ /dev/null
@@ -1,589 +0,0 @@
-/*-
- * Copyright (c) 1999, 2000 Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/net/if_ef.c,v 1.2.2.4 2001/02/22 09:27:04 bp Exp $
- */
-
-#include "opt_inet.h"
-#include "opt_ipx.h"
-#include "opt_ef.h"
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/sockio.h>
-#include <sys/malloc.h>
-#include <sys/mbuf.h>
-#include <sys/socket.h>
-#include <sys/syslog.h>
-#include <sys/kernel.h>
-#include <sys/module.h>
-#include <sys/thread2.h>
-
-#include <net/ethernet.h>
-#include <net/if_llc.h>
-#include <net/if.h>
-#include <net/if_arp.h>
-#include <net/if_dl.h>
-#include <net/if_types.h>
-#include <net/ifq_var.h>
-#include <net/netisr.h>
-#include <net/route.h>
-#include <net/bpf.h>
-
-#ifdef INET
-#include <netinet/in.h>
-#include <netinet/in_var.h>
-#include <netinet/if_ether.h>
-#endif
-
-#ifdef IPX
-#include <netproto/ipx/ipx.h>
-#include <netproto/ipx/ipx_if.h>
-#endif
-
-/* If none of the supported layers is enabled explicitly enable them all */
-#if !defined(ETHER_II) && !defined(ETHER_8023) && !defined(ETHER_8022) && \
-    !defined(ETHER_SNAP)
-#define        ETHER_II        1
-#define        ETHER_8023      1
-#define        ETHER_8022      1
-#define        ETHER_SNAP      1
-#endif
-
-/* internal frame types */
-#define ETHER_FT_EII           0       /* Ethernet_II - default */
-#define        ETHER_FT_8023           1       /* 802.3 (Novell) */
-#define        ETHER_FT_8022           2       /* 802.2 */
-#define        ETHER_FT_SNAP           3       /* SNAP */
-#define        EF_NFT                  4       /* total number of frame types */
-
-#ifdef EF_DEBUG
-#define EFDEBUG(format, args...) kprintf("%s: "format, __func__ ,## args)
-#else
-#define EFDEBUG(format, args...)
-#endif
-
-#define EFERROR(format, args...) kprintf("%s: "format, __func__ ,## args)
-
-struct efnet {
-       struct arpcom   ef_ac;
-       struct ifnet *  ef_ifp;
-       int             ef_frametype;
-};
-
-struct ef_link {
-       SLIST_ENTRY(ef_link) el_next;
-       struct ifnet    *el_ifp;                /* raw device for this clones */
-       struct efnet    *el_units[EF_NFT];      /* our clones */
-};
-
-static SLIST_HEAD(ef_link_head, ef_link) efdev = {NULL};
-static int efcount;
-
-extern int (*ef_inputp)(struct ifnet*, const struct ether_header *eh,
-               struct mbuf *m);
-extern int (*ef_outputp)(struct ifnet *ifp, struct mbuf **mp,
-               struct sockaddr *dst, short *tp, int *hlen);
-
-/*
-static void ef_reset (struct ifnet *);
-*/
-static int ef_attach(struct efnet *sc);
-static int ef_detach(struct efnet *sc);
-static void ef_init(void *);
-static int ef_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
-static void ef_start(struct ifnet *, struct ifaltq_subque *);
-static int ef_input(struct ifnet*, const struct ether_header *, struct mbuf *);
-static int ef_output(struct ifnet *ifp, struct mbuf **mp,
-               struct sockaddr *dst, short *tp, int *hlen);
-
-static int ef_load(void);
-static int ef_unload(void);
-
-/*
- * Install the interface, most of structure initialization done in ef_clone()
- */
-static int
-ef_attach(struct efnet *sc)
-{
-       struct ifnet *ifp = (struct ifnet*)&sc->ef_ac.ac_if;
-
-       ifp->if_start = ef_start;
-       ifp->if_watchdog = NULL;
-       ifp->if_init = ef_init;
-       ifq_set_maxlen(&ifp->if_snd, IFQ_MAXLEN);
-       ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
-       /*
-        * Attach the interface
-        */
-       ether_ifattach(ifp, IF_LLADDR(sc->ef_ifp), NULL);
-
-       ifp->if_resolvemulti = 0;
-       ifp->if_type = IFT_XETHER;
-       ifp->if_flags |= IFF_RUNNING;
-
-       EFDEBUG("%s: attached\n", ifp->if_xname);
-       return 1;
-}
-
-/*
- * This is for _testing_only_, just removes interface from interfaces list
- */
-static int
-ef_detach(struct efnet *sc)
-{
-       ether_ifdetach(&sc->ef_ac.ac_if);
-       return 0;
-}
-
-static void
-ef_init(void *foo __unused)
-{
-}
-
-static int
-ef_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr)
-{
-       struct efnet *sc = ifp->if_softc;
-       struct ifaddr *ifa = (struct ifaddr*)data;
-       int error;
-
-       EFDEBUG("IOCTL %ld for %s\n", cmd, ifp->if_xname);
-       error = 0;
-       crit_enter();
-       switch (cmd) {
-           case SIOCSIFADDR:
-               if (sc->ef_frametype == ETHER_FT_8023 && 
-                   ifa->ifa_addr->sa_family != AF_IPX) {
-                       error = EAFNOSUPPORT;
-                       break;
-               }
-               ifp->if_flags |= IFF_UP; 
-               /* FALL THROUGH */
-           case SIOCGIFADDR:
-           case SIOCSIFMTU:
-               error = ether_ioctl(ifp, cmd, data);
-               break;
-           case SIOCSIFFLAGS:
-               error = 0;
-               break;
-           default:
-               error = EINVAL;
-       }
-       crit_exit();
-       return error;
-}
-
-/*
- * Currently packet prepared in the ether_output(), but this can be a better
- * place.
- */
-static void
-ef_start(struct ifnet *ifp, struct ifaltq_subque *ifsq)
-{
-       struct efnet *sc = (struct efnet*)ifp->if_softc;
-       struct ifnet *p;
-       struct mbuf *m;
-       struct ifaltq_subque *p_ifsq;
-
-       ifsq_set_oactive(ifsq);
-       p = sc->ef_ifp;
-       p_ifsq = ifq_get_subq_default(&p->if_snd);
-
-       EFDEBUG("\n");
-       for (;;) {
-               m = ifsq_dequeue(ifsq);
-               if (m == NULL)
-                       break;
-
-               BPF_MTAP(ifp, m);
-
-               ifsq_enqueue(p_ifsq, m, NULL);
-               if (!ifsq_is_oactive(p_ifsq)) {
-                       p->if_start(p, p_ifsq);
-                       IFNET_STAT_INC(ifp, opackets, 1);
-               }
-       }
-       ifsq_clr_oactive(ifsq);
-       return;
-}
-
-/*
- * Inline functions do not put additional overhead to procedure call or
- * parameter passing but simplify the code
- */
-static __inline int
-ef_inputEII(struct mbuf *m, struct llc* l, u_short ether_type)
-{
-       int isr;
-
-       switch(ether_type) {
-#ifdef IPX
-       case ETHERTYPE_IPX:
-               isr = NETISR_IPX;
-               break;
-#endif
-#ifdef INET
-       case ETHERTYPE_IP:
-#ifdef notyet
-               if (ipflow_fastforward(m))
-                       return (0);
-#endif
-               isr = NETISR_IP;
-               break;
-       case ETHERTYPE_ARP:
-               isr = NETISR_ARP;
-               break;
-#endif
-       default:
-               return (EPROTONOSUPPORT);
-       }
-       netisr_queue(isr, m);
-       return (0);
-}
-
-static __inline int
-ef_inputSNAP(struct mbuf *m, struct llc* l, u_short ether_type)
-{
-       int isr;
-
-       switch(ether_type) {
-#ifdef IPX
-       case ETHERTYPE_IPX:
-               m_adj(m, 8);
-               isr = NETISR_IPX;
-               break;
-#endif
-       default:
-               return (EPROTONOSUPPORT);
-       }
-       netisr_queue(isr, m);
-       return (0);
-}
-
-static __inline int
-ef_input8022(struct mbuf *m, struct llc* l, u_short ether_type)
-{
-       int isr;
-
-       switch(ether_type) {
-#ifdef IPX
-       case 0xe0:
-               m_adj(m, 3);
-               isr = NETISR_IPX;
-               break;
-#endif
-       default:
-               return (EPROTONOSUPPORT);
-       }
-       netisr_queue(isr, m);
-       return (0);
-}
-
-/*
- * Called from ether_input()
- */
-static int
-ef_input(struct ifnet *ifp, const struct ether_header *eh, struct mbuf *m)
-{
-       u_short ether_type;
-       int ft = -1;
-       struct efnet *efp;
-       struct ifnet *eifp;
-       struct llc *l;
-       struct ef_link *efl;
-       int isr;
-
-       ether_type = ntohs(eh->ether_type);
-       if (ether_type < ETHERMTU) {
-               l = mtod(m, struct llc*);
-               if (l->llc_dsap == 0xff && l->llc_ssap == 0xff) {
-                       /* 
-                        * Novell's "802.3" frame
-                        */
-                       ft = ETHER_FT_8023;
-               } else if (l->llc_dsap == 0xaa && l->llc_ssap == 0xaa) {
-                       /*
-                        * 802.2/SNAP
-                        */
-                       ft = ETHER_FT_SNAP;
-                       ether_type = ntohs(l->llc_un.type_snap.ether_type);
-               } else if (l->llc_dsap == l->llc_ssap) {
-                       /*
-                        * 802.3/802.2
-                        */
-                       ft = ETHER_FT_8022;
-                       ether_type = l->llc_ssap;
-               }
-       } else
-               ft = ETHER_FT_EII;
-
-       if (ft == -1) {
-               EFDEBUG("Unrecognised ether_type %x\n", ether_type);
-               return EPROTONOSUPPORT;
-       }
-
-       /*
-        * Check if interface configured for the given frame
-        */
-       efp = NULL;
-       SLIST_FOREACH(efl, &efdev, el_next) {
-               if (efl->el_ifp == ifp) {
-                       efp = efl->el_units[ft];
-                       break;
-               }
-       }
-       if (efp == NULL) {
-               EFDEBUG("Can't find if for %d\n", ft);
-               return EPROTONOSUPPORT;
-       }
-       eifp = &efp->ef_ac.ac_if;
-       if ((eifp->if_flags & IFF_UP) == 0)
-               return EPROTONOSUPPORT;
-       IFNET_STAT_INC(eifp, ibytes, m->m_pkthdr.len + sizeof (*eh));
-       m->m_pkthdr.rcvif = eifp;
-
-       if (eifp->if_bpf) {
-               bpf_gettoken();
-               if (eifp->if_bpf)
-                       bpf_ptap(eifp->if_bpf, m, eh, ETHER_HDR_LEN);
-               bpf_reltoken();
-       }
-
-       /*
-        * Now we ready to adjust mbufs and pass them to protocol intr's
-        */
-       switch(ft) {
-       case ETHER_FT_EII:
-               return (ef_inputEII(m, l, ether_type));
-               break;
-#ifdef IPX
-       case ETHER_FT_8023:             /* only IPX can be here */
-               isr = NETISR_IPX;
-               break;
-#endif
-       case ETHER_FT_SNAP:
-               return (ef_inputSNAP(m, l, ether_type));
-               break;
-       case ETHER_FT_8022:
-               return (ef_input8022(m, l, ether_type));
-               break;
-       default:
-               EFDEBUG("No support for frame %d and proto %04x\n",
-                       ft, ether_type);
-               return (EPROTONOSUPPORT);
-       }
-       netisr_queue(isr, m);
-       return (0);
-}
-
-static int
-ef_output(struct ifnet *ifp, struct mbuf **mp, struct sockaddr *dst, short *tp,
-       int *hlen)
-{
-       struct efnet *sc = (struct efnet*)ifp->if_softc;
-       struct mbuf *m = *mp;
-       u_char *cp;
-       short type;
-
-       if (ifp->if_type != IFT_XETHER)
-               return ENETDOWN;
-       switch (sc->ef_frametype) {
-           case ETHER_FT_EII:
-#ifdef IPX
-               type = htons(ETHERTYPE_IPX);
-#else
-               return EPFNOSUPPORT;
-#endif
-               break;
-           case ETHER_FT_8023:
-               type = htons(m->m_pkthdr.len);
-               break;
-           case ETHER_FT_8022:
-               M_PREPEND(m, ETHER_HDR_LEN + 3, MB_WAIT);
-               if (m == NULL) {
-                       *mp = NULL;
-                       return ENOBUFS;
-               }
-               /*
-                * Ensure that ethernet header and next three bytes
-                * will fit into single mbuf
-                */
-               m = m_pullup(m, ETHER_HDR_LEN + 3);
-               if (m == NULL) {
-                       *mp = NULL;
-                       return ENOBUFS;
-               }
-               m_adj(m, ETHER_HDR_LEN);
-               type = htons(m->m_pkthdr.len);
-               cp = mtod(m, u_char *);
-               *cp++ = 0xE0;
-               *cp++ = 0xE0;
-               *cp++ = 0x03;
-               *hlen += 3;
-               break;
-           case ETHER_FT_SNAP:
-               M_PREPEND(m, 8, MB_WAIT);
-               if (m == NULL) {
-                       *mp = NULL;
-                       return ENOBUFS;
-               }
-               type = htons(m->m_pkthdr.len);
-               cp = mtod(m, u_char *);
-               bcopy("\xAA\xAA\x03\x00\x00\x00\x81\x37", cp, 8);
-               *hlen += 8;
-               break;
-           default:
-               return EPFNOSUPPORT;
-       }
-       *mp = m;
-       *tp = type;
-       return 0;
-}
-
-/*
- * Create clone from the given interface
- */
-static int
-ef_clone(struct ef_link *efl, int ft)
-{
-       struct efnet *efp;
-       struct ifnet *eifp;
-       struct ifnet *ifp = efl->el_ifp;
-
-       efp = (struct efnet*)kmalloc(sizeof(struct efnet), M_IFADDR,
-           M_WAITOK | M_ZERO);
-       efp->ef_ifp = ifp;
-       efp->ef_frametype = ft;
-       eifp = &efp->ef_ac.ac_if;
-       ksnprintf(eifp->if_xname, IFNAMSIZ,
-           "%sf%d", ifp->if_xname, efp->ef_frametype);
-       eifp->if_dname = "ef";
-       eifp->if_dunit = IF_DUNIT_NONE;
-       eifp->if_softc = efp;
-       if (ifp->if_ioctl)
-               eifp->if_ioctl = ef_ioctl;
-       efl->el_units[ft] = efp;
-       return 0;
-}
-
-static int
-ef_load(void)
-{
-       struct ifnet *ifp;
-       struct efnet *efp;
-       struct ef_link *efl = NULL;
-       int error = 0, d;
-
-       TAILQ_FOREACH(ifp, &ifnet, if_link) {
-               if (ifp->if_type != IFT_ETHER) continue;
-               EFDEBUG("Found interface %s\n", ifp->if_xname);
-               efl = (struct ef_link*)kmalloc(sizeof(struct ef_link), 
-                   M_IFADDR, M_WAITOK | M_ZERO);
-
-               efl->el_ifp = ifp;
-#ifdef ETHER_II
-               error = ef_clone(efl, ETHER_FT_EII);
-               if (error) break;
-#endif
-#ifdef ETHER_8023
-               error = ef_clone(efl, ETHER_FT_8023);
-               if (error) break;
-#endif
-#ifdef ETHER_8022
-               error = ef_clone(efl, ETHER_FT_8022);
-               if (error) break;
-#endif
-#ifdef ETHER_SNAP
-               error = ef_clone(efl, ETHER_FT_SNAP);
-               if (error) break;
-#endif
-               efcount++;
-               SLIST_INSERT_HEAD(&efdev, efl, el_next);
-       }
-       if (error) {
-               if (efl)
-                       SLIST_INSERT_HEAD(&efdev, efl, el_next);
-               SLIST_FOREACH(efl, &efdev, el_next) {
-                       for (d = 0; d < EF_NFT; d++)
-                               if (efl->el_units[d])
-                                       kfree(efl->el_units[d], M_IFADDR);
-                       kfree(efl, M_IFADDR);
-               }
-               return error;
-       }
-       SLIST_FOREACH(efl, &efdev, el_next) {
-               for (d = 0; d < EF_NFT; d++) {
-                       efp = efl->el_units[d];
-                       if (efp)
-                               ef_attach(efp);
-               }
-       }
-       ef_inputp = ef_input;
-       ef_outputp = ef_output;
-       EFDEBUG("Loaded\n");
-       return 0;
-}
-
-static int
-ef_unload(void)
-{
-       struct efnet *efp;
-       struct ef_link *efl;
-       int d;
-
-       ef_inputp = NULL;
-       ef_outputp = NULL;
-       SLIST_FOREACH(efl, &efdev, el_next) {
-               for (d = 0; d < EF_NFT; d++) {
-                       efp = efl->el_units[d];
-                       if (efp) {
-                               ef_detach(efp);
-                       }
-               }
-       }
-       EFDEBUG("Unloaded\n");
-       return 0;
-}
-
-static int 
-if_ef_modevent(module_t mod, int type, void *data)
-{
-       switch ((modeventtype_t)type) {
-           case MOD_LOAD:
-               return ef_load();
-           case MOD_UNLOAD:
-               return ef_unload();
-           default:
-               break;
-       }
-       return 0;
-}
-
-static moduledata_t if_ef_mod = {
-       "if_ef", if_ef_modevent, NULL
-};
-
-DECLARE_MODULE(if_ef, if_ef_mod, SI_SUB_PSEUDO, SI_ORDER_MIDDLE);
index 53648c0..d56834f 100644 (file)
@@ -32,7 +32,6 @@
 
 #include "opt_inet.h"
 #include "opt_inet6.h"
-#include "opt_ipx.h"
 #include "opt_mpls.h"
 #include "opt_netgraph.h"
 #include "opt_carp.h"
 #include <netinet/ip_carp.h>
 #endif
 
-#ifdef IPX
-#include <netproto/ipx/ipx.h>
-#include <netproto/ipx/ipx_if.h>
-int (*ef_inputp)(struct ifnet*, const struct ether_header *eh, struct mbuf *m);
-int (*ef_outputp)(struct ifnet *ifp, struct mbuf **mp, struct sockaddr *dst,
-                 short *tp, int *hlen);
-#endif
-
 #ifdef MPLS
 #include <netproto/mpls/mpls.h>
 #endif
@@ -258,29 +249,6 @@ ether_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
                        return (0);             /* Something bad happenned. */
                eh->ether_type = htons(ETHERTYPE_IPV6);
                break;
-#endif
-#ifdef IPX
-       case AF_IPX:
-               if (ef_outputp != NULL) {
-                       /*
-                        * Hold BGL and recheck ef_outputp
-                        */
-                       get_mplock();
-                       if (ef_outputp != NULL) {
-                               error = ef_outputp(ifp, &m, dst,
-                                                  &eh->ether_type, &hlen);
-                               rel_mplock();
-                               if (error)
-                                       goto bad;
-                               else
-                                       break;
-                       }
-                       rel_mplock();
-               }
-               eh->ether_type = htons(ETHERTYPE_IPX);
-               bcopy(&(((struct sockaddr_ipx *)dst)->sipx_addr.x_host),
-                     edst, ETHER_ADDR_LEN);
-               break;
 #endif
        case pseudo_AF_HDRCMPLT:
        case AF_UNSPEC:
@@ -665,25 +633,6 @@ do { \
                        IF_INIT(ifp);   /* before arpwhohas */
                        arp_ifinit(ifp, ifa);
                        break;
-#endif
-#ifdef IPX
-               /*
-                * XXX - This code is probably wrong
-                */
-               case AF_IPX:
-                       {
-                       struct ipx_addr *ina = &IA_SIPX(ifa)->sipx_addr;
-                       struct arpcom *ac = IFP2AC(ifp);
-
-                       if (ipx_nullhost(*ina))
-                               ina->x_host = *(union ipx_host *) ac->ac_enaddr;
-                       else
-                               bcopy(ina->x_host.c_host, ac->ac_enaddr,
-                                     sizeof ac->ac_enaddr);
-
-                       IF_INIT(ifp);   /* Set new address. */
-                       break;
-                       }
 #endif
                default:
                        IF_INIT(ifp);
@@ -1117,23 +1066,6 @@ post_stats:
                break;
 #endif
 
-#ifdef IPX
-       case ETHERTYPE_IPX:
-               if (ef_inputp) {
-                       /*
-                        * Hold BGL and recheck ef_inputp
-                        */
-                       get_mplock();
-                       if (ef_inputp && ef_inputp(ifp, eh, m) == 0) {
-                               rel_mplock();
-                               return;
-                       }
-                       rel_mplock();
-               }
-               isr = NETISR_IPX;
-               break;
-#endif
-
 #ifdef MPLS
        case ETHERTYPE_MPLS:
        case ETHERTYPE_MPLS_MCAST:
@@ -1149,19 +1081,6 @@ post_stats:
                 * we reach here, so recharacterize packet.
                 */
                m->m_flags &= ~M_HASH;
-#ifdef IPX
-               if (ef_inputp) {
-                       /*
-                        * Hold BGL and recheck ef_inputp
-                        */
-                       get_mplock();
-                       if (ef_inputp && ef_inputp(ifp, eh, m) == 0) {
-                               rel_mplock();
-                               return;
-                       }
-                       rel_mplock();
-               }
-#endif
                if (ng_ether_input_orphan_p != NULL) {
                        /*
                         * Put back the ethernet header so netgraph has a
@@ -1597,12 +1516,6 @@ ether_characterize(struct mbuf **m0)
                break;
 #endif
 
-#ifdef IPX
-       case ETHERTYPE_IPX:
-               isr = NETISR_IPX;
-               break;
-#endif
-
 #ifdef MPLS
        case ETHERTYPE_MPLS:
        case ETHERTYPE_MPLS_MCAST:
index a800217..62a17bc 100644 (file)
@@ -37,7 +37,6 @@
 
 #include "opt_inet.h"
 #include "opt_inet6.h"
-#include "opt_ipx.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <netinet/in_var.h>
 #endif
 
-#ifdef IPX
-#include <netproto/ipx/ipx.h>
-#include <netproto/ipx/ipx_if.h>
-#endif
-
 #ifdef INET6
 #ifndef INET
 #include <netinet/in.h>
@@ -142,7 +136,6 @@ looutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
        switch (dst->sa_family) {
        case AF_INET:
        case AF_INET6:
-       case AF_IPX:
                break;
        default:
                kprintf("looutput: af=%d unexpected\n", dst->sa_family);
@@ -252,11 +245,6 @@ rel:
                m->m_flags |= M_LOOP;
                isr = NETISR_IPV6;
                break;
-#endif
-#ifdef IPX
-       case AF_IPX:
-               isr = NETISR_IPX;
-               break;
 #endif
        default:
                kprintf("if_simloop: can't handle af=%d\n", af);
@@ -301,11 +289,6 @@ lo_altqstart(struct ifnet *ifp, struct ifaltq_subque *ifsq)
                        isr = NETISR_IPV6;
                        break;
 #endif
-#ifdef IPX
-               case AF_IPX:
-                       isr = NETISR_IPX;
-                       break;
-#endif
 #ifdef ISO
                case AF_ISO:
                        isr = NETISR_ISO;
index f636677..6612cd7 100644 (file)
@@ -89,7 +89,6 @@
 #define        NETISR_IP       2               /* same as AF_INET */
 #define        NETISR_ARP      18              /* same as AF_LINK */
 #define        NETISR_MPLS     21              /* MPLS */
-#define        NETISR_IPX      23              /* same as AF_IPX */
 #define        NETISR_USB      25              /* USB soft interrupt */
 #define        NETISR_PPP      27              /* PPP soft interrupt */
 #define        NETISR_IPV6     28              /* same as AF_INET6 */