home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / nwnet / root / usr / lib / netcfg / bin / ipxBE / ipxBE~
Text File  |  1998-08-19  |  16KB  |  617 lines

  1. #!/bin/tcl
  2. #    
  3. #   Copyright (C) 1997, The Santa Cruz Operation, Inc.
  4. #   All Rights Reserved.
  5. #   The information in this file is provided for the exclusive use of
  6. #   the licensees of The Santa Cruz Operation, Inc.  Such users have the
  7. #   right to use, modify, and incorporate this code into other products  
  8. #   for purposes authorized by the license agreement provided they include
  9. #   this notice and the associated copyright notice with any such product.
  10. #   The information in this file is provided "AS IS" without warranty.
  11. #
  12. #ident "@(#)ipxBE    1.6"
  13. #
  14.  
  15. # This is the netconfig prompter "back-end" for SCO IPX/SPX.
  16. #
  17.  
  18. #cmdtrace on [ open /tmp/ipxBE.log a+ ]
  19.  
  20. set NCFG_DIR        /usr/lib/netcfg
  21.  
  22. set IPX_TMPDIR    /usr/lib/ipxrt/tmp
  23. set IPX_NEWCFG    $IPX_TMPDIR/config
  24. set NWIP off
  25. set AUTO_DISCO_OK 0
  26. set TCP tcp
  27.  
  28. source $NCFG_DIR/bin/ipx.fn
  29.  
  30. loadlibindex /usr/lib/sysadm.tlib
  31.  
  32. # main MAIN Main
  33. #
  34. # NOTE: arguments are:
  35. #    <script name> <netconfig state> <adapter> <framing type list> <interface>
  36.  
  37. global ncfgState NETWORK_MEDIA configList adapter interfaceType \
  38.     dbgInit dbgParse dbgFile
  39.  
  40. set configList {}
  41.  
  42. set dbgInit 1
  43. set dbgParse 0
  44. set dbgFile "/tmp/ipxBE.dbg"
  45.  
  46. # Set up the debugging output (if required).
  47. #
  48. if {$dbgInit || $dbgParse} then {
  49.     if {[set dbgfd [open $dbgFile w]] == -1} then {
  50.         # Open failed, turn off debugging.
  51.         #
  52.         set dbgInit 0
  53.         set dbgParse 0
  54.     }
  55. }
  56.  
  57. # Determine and record the "netconfig state", as indicated by the invoking
  58. # netconfig script.
  59. #
  60. set ncfgState [lindex $argv 0]
  61.  
  62. # Record the adapter being configured over.
  63. #
  64. set adapter [lindex $argv 1]
  65. if [ cequal $adapter "/dev/${TCP}" ] {
  66.     set adapter /dev/nwip
  67. }
  68.  
  69. # Set the framing type variable.  This is expected to be a
  70. # list of valid framing types or UNKNOWN.
  71. #
  72. set NETWORK_MEDIA [lindex $argv 2]
  73.  
  74. # Set the interface type variable.  This is expected to be one of: LLI, DLPI,
  75. # or UNKNOWN.
  76. #
  77. set interfaceType [lindex $argv 3]
  78.  
  79. fcntl $dbgfd NOBUF 1
  80.  
  81. if {$dbgInit} {
  82.     puts $dbgfd "netconfig state: '$ncfgState', Media type: '$NETWORK_MEDIA', adapter: '$adapter', interface: '$interfaceType'"
  83. }
  84.  
  85. # Ensure all replies to the prompter are flushed immediately.
  86. #
  87. fcntl stdout NOBUF 1
  88.  
  89. switch $ncfgState {
  90.     INITIAL_INIT -
  91.     INIT {
  92.         set lanNumber [ GetFreeLanNumber ]
  93.     }
  94.     LIST -
  95.     RECONF {
  96.         # 
  97.         # if more than one lan is configured over a 
  98.         # NIC this will select the one with the lowest
  99.         # lanNumber
  100.         #
  101.         set lanNumber [ FindIpxLanNumber adapter $adapter ]
  102.         if { $lanNumber == 0 } {
  103. #                    echo \
  104. #            "ipxBE: Attempting to access ipx configuration over adapter $adapter. This is not configured " >&3
  105.                     exit 3
  106.         }
  107.     }
  108. }
  109.  
  110. set LAN_NETWORK        [GetNwcmParam lan_${lanNumber}_network]
  111. set RIP_AGE_INT        [GetNwcmParam lan_${lanNumber}_rip_ageout_intervals]
  112. set FRAME_TYPE        [GetNwcmParam lan_${lanNumber}_frame_type]
  113. set SERVER_NAME        [GetNwcmParam server_name]
  114. set AUTO_DISCOVERY    [GetNwcmParam ipx_auto_discovery] 
  115. set INTERNAL_NN        [GetNwcmParam ipx_internal_network]
  116. set ROUTER_TYPE        [GetNwcmParam router_type]
  117. set MAX_SPX_CON        [GetNwcmParam spx_max_connections]
  118. set MAX_SPX_SOC        [GetNwcmParam spx_max_sockets]
  119. set IPX_START        [GetNwcmParam ipx_start_at_boot]
  120. set SPX_START        [GetNwcmParam spx]
  121.  
  122. if [ cequal $adapter /dev/nwip ] {
  123.     set NWIP on
  124.     set  NWIP_DOMAIN    [GetNwcmParam nwip_domain]
  125.     set  NWIP_SYNC        [GetNwcmParam nwip_db_sync_interval]
  126.     set  NWIP_PORT        [GetNwcmParam nwip_port]
  127.     set  NSQ_BC        [GetNwcmParam nwip_nsq_broadcast]
  128.     set  NWIP_DSS        [GetNwcmParam nwip_preferred_dss]
  129.     set  NWIP_SVR        [GetNwcmParam nwip_nearest_server]
  130. }
  131.  
  132. #
  133. # Depending upon state, set parameters to sensible values
  134. #
  135. switch $ncfgState {
  136.     INITIAL_INIT -
  137.     INIT {
  138.         #
  139.         # try and ensure a sensible server name gets set
  140.         #
  141.  
  142.         if { [ cequal $SERVER_NAME "" ] } {
  143.             set SERVER_NAME    [exec uname -n ]
  144.         }
  145.  
  146.         #
  147.         # verify that a suitable packet type has been 
  148.         # provided - the default provided by nwcm is 
  149.         # ethernet which is not reasonable for an fddi or
  150.         # token-ring card
  151.         #
  152.  
  153.         set fr $FRAME_TYPE 
  154.         set media [ ctoken fr _ ]
  155.         switch $NETWORK_MEDIA {
  156.             ETHER {
  157.                 if { ! [ cequal $media "ETHERNET" ] }  {
  158.                     set FRAME_TYPE  ETHERNET_802.2
  159.                 }
  160.             }
  161.             TOKEN {
  162.                 if { ! [ cequal $media "TOKEN-RING" ] }  {
  163.                     set FRAME_TYPE TOKEN-RING
  164.                 }
  165.             }
  166.             FDDI {
  167.                 if { ! [ cequal $media "FDDI" ] }  {
  168.                     set FRAME_TYPE FDDI
  169.                 }
  170.             }
  171.         }
  172.         
  173.         #
  174.         # now try and figure out an external number 
  175.         # and frame type via nwdiscover.
  176.         # XXX
  177.         # This can only be done if the device node 
  178.         # has been added and idbuild -M performed on the
  179.         # device.
  180.         #
  181.         AutoDiscover $adapter
  182.     }
  183.     LIST {
  184.     }
  185.     RECONF {
  186.         # 
  187.         # if more than one lan is configured over a 
  188.         # NIC this will select the one with the lowest
  189.         # lanNumber
  190.         #
  191.  
  192.         # if you're modifying and the network address is still 0
  193.         # then run nwdiscover as you could be running over a nic 
  194.         # which required a reboot before it could be accessed
  195.         #
  196.         if [ cequal $LAN_NETWORK "0x0" ] {
  197.             AutoDiscover $adapter
  198.         }
  199.  
  200.     }
  201. }
  202.  
  203.  
  204.  
  205. switch $ncfgState {
  206.     INIT {
  207.         # set an internal number if 
  208.         # 1: its not the first ipx lan (its obligatory then)
  209.         # 2: its the first lan and the user wants one - you can't
  210.         #    figure that bit out until you get to the questions
  211.         #
  212.         if [ cequal  $INTERNAL_NN "0x0" ] {
  213.             random seed [ getclock ]
  214.             set INTERNAL_NN [ format "0x%8.8X" [ random 2147483647 ] ]
  215.         }
  216.         # Auto discovery with 2 lans is not a good idea.
  217.         set AUTO_DISCO_OK 0
  218.         set AUTO_DISCOVERY off
  219.     }
  220.     INITIAL_INIT {
  221.         set AUTO_DISCO_OK 1
  222.     }
  223.     RECONF {
  224.         if { [ IpxNumLan ]  == 1 } {
  225.             set AUTO_DISCO_OK 1
  226.         } else {
  227.             set AUTO_DISCO_OK 0
  228.             set AUTO_DISCOVERY off
  229.         }
  230.     }
  231.     LIST {
  232.         set AUTO_DISCO_OK 1
  233.     }
  234. }
  235.  
  236.  
  237. # Parse the commands from the prompter; perform appropriate actions for each
  238. # command.
  239. #
  240. # Assumptions:
  241. #  - all commands are actually upper case
  242. #  - all commands follow the established syntax
  243. #
  244.  
  245. while { [ gets stdin line ] != -1 } {
  246.  
  247.     set REQUEST [ lindex $line 0 ]
  248.     set ARG1 [ lindex $line 1 ]
  249.     set ARG2 [ lindex $line 2 ]
  250.     switch $REQUEST {
  251.         LIST {
  252.             switch $ARG1 {
  253.                 BASIC {
  254.            if [ cequal $NWIP on ] {
  255.            echo "\
  256.             { LAN_NETWORK \"External network number\" LABEL \"Enter the external IPX network number for this network\" } \
  257.             { FRAME_TYPE \"Frame type\" LIST \"Select the frame type for this network\" } \
  258.             { ADVANCED_INTF \"Advanced interface options\" NEWSCREEN \"\" } \
  259.             { GLOBAL_IPX \"Global IPX/SPX options\" NEWSCREEN \"\" } \
  260.             { NWIP \"NetWare/IP options\" NEWSCREEN \"\" } \
  261.             "
  262.            } else {
  263.            echo "\
  264.             { LAN_NETWORK \"External network number\" LABEL \"Enter the external IPX network number for this network\" } \
  265.             { FRAME_TYPE \"Frame type\" LIST \"Select the frame type for this network\" } \
  266.             { ADVANCED_INTF \"Advanced interface options\" NEWSCREEN \"\" } \
  267.             { GLOBAL_IPX \"Global IPX/SPX options\" NEWSCREEN \"\" } \
  268.              "
  269.            }
  270.         }
  271.                 ADVANCED_INTF {
  272.             echo "\
  273.             { RIP_AGE_INT \"rip ageout interval\" LABEL \"Enter the rip ageout interval in seconds\"} \
  274.             "
  275.         }
  276.                 GLOBAL_IPX {
  277.             echo "\
  278.             { INTERNAL_NN \"Internal network number\" LABEL \"Enter the internal IPX number for this machine\" } \
  279.             { SERVER_NAME \"Server name\" LABEL \"Enter the netware server name\" } \
  280.             { MAX_SPX_CON \"Maximum SPX connections\" LABEL \"Enter the maximum number of SPX connections allowed on this machine\" } \
  281.             { MAX_SPX_SOC \"Maximum SPX sockets\" LABEL \"Enter the maximum number of SPX sockets allowed on this machine\" } \
  282.             { ROUTER_TYPE \"Router type\" RADIO \"Enter the router type for this machine\" } \
  283.             { AUTO_DISCOVERY \"Auto discovery \" RADIO \"IPX automatic network discovery at boot\" } \
  284.             { IPX_START \"IPX start at boot ?\" RADIO \"Do you want IPX to start at boot ?\" } \
  285.             { SPX_START \"SPX start with ipx?\" RADIO \"Do you want SPX to start when ipx starts ?\" } \
  286.             "
  287.         }
  288.                 NWIP {
  289.             echo "\
  290.             { NWIP_DOMAIN \"NetWare/IP domain\" LABEL \"The NWIP domain which this machine belongs to\" } \
  291.             { NWIP_SYNC \"NWIP database sync interval\" LABEL \"Time in seconds for the synchronisation of the SAP/RIP database with the DSS\" } \
  292.             { NWIP_PORT \"NWIP UDP port\" LABEL \"The UDP port NWIP will use for communicating with the DSS\" } \
  293.             { NSQ_BC \"NWIP broadcasts to find DSS\" RADIO \"If on, the system will broadcast to the local subnet to find the nearest DSS\" } \
  294.             { NWIP_DSS \"NWIP preferred DSS list\" LABEL \"Comma separated list of IP address for preferred DSS servers\" } \
  295.             { NWIP_SVR \"NetWare/IP server list\" LABEL \"Comma separated list of IP addresses of nearest NetWare/IP servers\" } \
  296.             "
  297.         }
  298.                 default {
  299.                     echo "ipxBE: Unknown argument to LIST" >&3
  300.                     exit 1
  301.         }
  302.             }
  303.     }
  304.         CURRENT {
  305.             switch $ARG1 {
  306.                 BASIC {
  307.             echo "\
  308.             { LAN_NETWORK 1 \"$LAN_NETWORK\" } \
  309.             { FRAME_TYPE 1 \"$FRAME_TYPE\" } \
  310.             "
  311.         }
  312.                 ADVANCED_INTF {
  313.             echo " \
  314.             { RIP_AGE_INT 1 \"$RIP_AGE_INT\" } \
  315.             "
  316.         }
  317.                 GLOBAL_IPX {
  318.             if { $AUTO_DISCO_OK } {
  319.                 echo " \
  320.                 { SERVER_NAME 1 \"$SERVER_NAME\" } \
  321.                 { INTERNAL_NN 1 \"$INTERNAL_NN\" } \
  322.                 { MAX_SPX_CON 1 \"$MAX_SPX_CON\" } \
  323.                 { MAX_SPX_SOC 1 \"$MAX_SPX_SOC\" } \
  324.                 { IPX_START 1 \"$IPX_START\" } \
  325.                 { SPX_START 1 \"$SPX_START\" } \
  326.                 { ROUTER_TYPE 1 \"$ROUTER_TYPE\" } \
  327.                 { AUTO_DISCOVERY 1 \"$AUTO_DISCOVERY\" } \
  328.                 "
  329.             } else {
  330.                 echo " \
  331.                 { SERVER_NAME 1 \"$SERVER_NAME\" } \
  332.                 { INTERNAL_NN 1 \"$INTERNAL_NN\" } \
  333.                 { MAX_SPX_CON 1 \"$MAX_SPX_CON\" } \
  334.                 { MAX_SPX_SOC 1 \"$MAX_SPX_SOC\" } \
  335.                 { IPX_START 1 \"$IPX_START\" } \
  336.                 { SPX_START 1 \"$SPX_START\" } \
  337.                 { ROUTER_TYPE 1 \"$ROUTER_TYPE\" } \
  338.                 { AUTO_DISCOVERY 0 \"$AUTO_DISCOVERY\" } \
  339.                 "
  340.             }
  341.         }
  342.         NWIP {
  343.             echo " \
  344.                 { NWIP_DOMAIN 1 \"$NWIP_DOMAIN\" } \
  345.                 { NWIP_SYNC   1 \"$NWIP_SYNC\" } \
  346.                 { NWIP_PORT   1 \"$NWIP_PORT\" } \
  347.                 { NSQ_BC      1 \"$NSQ_BC\" } \
  348.                 { NWIP_DSS    1 \"$NWIP_DSS\" } \
  349.                 { NWIP_SVR    1 \"$NWIP_SVR\" } \
  350.                  "
  351.         }
  352.                 default {
  353.                     echo "BE: Unknown argument to CURRENT" >&3
  354.                     exit 1
  355.         }
  356.             }
  357.     }
  358.         VALUES {
  359.             switch $ARG1 {
  360.         IPX_START -
  361.         SPX_START -
  362.         NSQ_BC -
  363.                 AUTO_DISCOVERY {
  364.                     echo "on off"
  365.         }
  366.         FRAME_TYPE {
  367.             switch $NETWORK_MEDIA {
  368.                 ETHER {
  369.                     echo     "ETHERNET_802.2 \
  370.                          ETHERNET_II \
  371.                          ETHERNET_802.3  \
  372.                          ETHERNET_SNAP"
  373.                 }
  374.                 TOKEN {
  375.                     echo    "TOKEN-RING \
  376.                          TOKEN-RING_SNAP"
  377.                 }
  378.                 FDDI {
  379.                     echo     "FDDI \
  380.                          FDDI_SNAP"
  381.                 }
  382.                 default {
  383.                     echo     "ETHERNET_II \
  384.                          ETHERNET_802.2 \
  385.                          ETHERNET_802.3  \
  386.                          ETHERNET_SNAP    \
  387.                          FDDI \
  388.                          FDDI_SNAP \
  389.                          TOKEN-RING \
  390.                          TOKEN-RING_SNAP"
  391.                 }
  392.             }
  393.         }
  394.         ROUTER_TYPE {
  395.             echo "FULL CLIENT"
  396.         }
  397.                 default {
  398.                     echo "BE: Unknown argument to VALUES" >&3
  399.                     exit 1
  400.         }
  401.             }
  402.     }
  403.         SET {
  404.             switch $ARG1 {
  405.         LAN_NETWORK {
  406.             if [IsValidNwcmParam lan_${lanNumber}_network $ARG2] {
  407.                 set LAN_NETWORK $ARG2
  408.                 echo "OK"
  409.             } else {
  410.                 #
  411.                 # don't try and check for == 0x0
  412.                 # it may fail if the number is too large
  413.                 #
  414.                 if { [ cequal $ARG2 "0x0" ] } {
  415.                     set LAN_NETWORK $ARG2
  416.                     echo "OK internal network turned off"
  417.                 } else {
  418.                     echo "ERROR invalid external network number"
  419.                 }
  420.             }
  421.         }
  422.         FRAME_TYPE {
  423.             if [IsValidNwcmParam lan_${lanNumber}_frame_type $ARG2 ]  {
  424.                 set FRAME_TYPE $ARG2
  425.                 echo "OK"
  426.             } else {
  427.                 echo "ERROR invalid frame type"
  428.             }
  429.         }
  430.         SERVER_NAME {
  431.             if [IsValidNwcmParam server_name $ARG2 ] {
  432.                 set SERVER_NAME $ARG2
  433.                 echo "OK"
  434.             } else {
  435.                 echo "ERROR invalid server name"
  436.             }
  437.         }
  438.         AUTO_DISCOVERY {
  439.             set AUTO_DISCOVERY $ARG2
  440.             echo "OK"
  441.         }
  442.         INTERNAL_NN {
  443.             if [IsValidNwcmParam ipx_internal_network $ARG2 ] {
  444.                 set INTERNAL_NN $ARG2
  445.                 echo "OK"
  446.             } else {
  447.                 echo "ERROR invalid internal network number"
  448.             }
  449.         }
  450.         ROUTER_TYPE {
  451.             set ROUTER_TYPE $ARG2
  452.             echo "OK"
  453.         }
  454.         MAX_SPX_CON {
  455.             if [IsValidNwcmParam spx_max_connections $ARG2 ] {
  456.                 set MAX_SPX_CON $ARG2
  457.                 echo "OK"
  458.             } else {
  459.                 echo "ERROR maximum number of SPX connections"
  460.             }
  461.         }
  462.         MAX_SPX_SOC {
  463.             if [IsValidNwcmParam spx_max_sockets $ARG2 ] {
  464.                 set MAX_SPX_SOC $ARG2
  465.                 echo "OK"
  466.             } else {
  467.                 echo "ERROR maximum number of SPX sockets" 
  468.             }
  469.         }
  470.         IPX_START {
  471.             set IPX_START $ARG2
  472.             echo "OK"
  473.         }
  474.         SPX_START {
  475.             set SPX_START $ARG2
  476.             echo "OK"
  477.         }
  478.         RIP_AGE_INT {
  479.             if [IsValidNwcmParam \
  480.                lan_${lanNumber}_rip_ageout_intervals $ARG2 ] {
  481.                 set RIP_AGE_INT $ARG2
  482.                 echo "OK"
  483.             } else {
  484.                 echo "ERROR invalid RIP ageout interval"
  485.             }
  486.         }
  487.         NWIP_DOMAIN {
  488.             if [IsValidNwcmParam nwip_domain $ARG2 ] {
  489.                 set NWIP_DOMAIN $ARG2
  490.                 echo "OK"
  491.             } else {
  492.                 echo "ERROR illegal nwip domain name" 
  493.             }
  494.         }
  495.         NWIP_SYNC  {
  496.             if [IsValidNwcmParam nwip_db_sync_interval $ARG2 ] {
  497.                 set NWIP_SYNC $ARG2
  498.                 echo "OK"
  499.             } else {
  500.                 echo "ERROR invalid nwip database sync interval" 
  501.             }
  502.         }
  503.         NWIP_PORT {
  504.             if [IsValidNwcmParam nwip_port $ARG2 ] {
  505.                 set NWIP_PORT $ARG2
  506.                 echo "OK"
  507.             } else {
  508.                 echo "ERROR illegal nwip port number" 
  509.             }
  510.         }
  511.         NSQ_BC {
  512.             set NSQ_BC $ARG2
  513.             echo "OK"
  514.         }
  515.         NWIP_DSS {
  516.             if [IsValidNwcmParam nwip_preferred_dss $ARG2 ] {
  517.                 set NWIP_DSS $ARG2
  518.                 echo "OK"
  519.             } else {
  520.                 echo "ERROR illegal DSS IP address list" 
  521.             }
  522.         }
  523.         NWIP_SVR {
  524.             if [IsValidNwcmParam nwip_nearest_server $ARG2 ] {
  525.                 set NWIP_SVR $ARG2
  526.                 echo "OK"
  527.             } else {
  528.                 echo "ERROR illegal server IP address list" 
  529.             }
  530.         }
  531.                 default {
  532.                     echo "ipxBE: Unknown argument to SET" >&3
  533.                     exit 1
  534.         }
  535.         }
  536.     }
  537.     PAGEINIT {
  538.         switch $ARG1 {
  539.         BASIC {
  540.             echo "{IPX/SPX Protocol Configuration} {} {NET_ipxspx} {ipxN.config.html} {OK}"
  541.         }
  542.         ADVANCED_INTF {
  543.             echo "{Advanced IPX/SPX Interface Configuration} {} {NET_ipxspx} {ipxN.advconfig.html} {OK}"
  544.         }
  545.         GLOBAL_IPX {
  546.             echo "{Global IPX/SPX Configuration} {} {NET_ipxspx} {ipxN.glconfig.html} {OK}"
  547.         }
  548.         NWIP {
  549.             echo "{NetWare/IP Configuration} {} {NET_ipxspx} {ipxN.nwip.html} {OK}"
  550.         }
  551.             default {
  552.             echo "ipxBE: Unknown argument to PAGEINIT" >&3
  553.             exit 1
  554.         }
  555.         }
  556.     }
  557.         USER_DONE {
  558.         # user is done
  559.         # save all information for main netcfg script
  560.  
  561.         if { [set config_fd [open $IPX_NEWCFG w]] == -1} {
  562.             echo "ERROR cannot open file $IPX_NEWCFG for writing"
  563.             exit 1
  564.         }
  565.  
  566.         puts $config_fd lan_${lanNumber}_network=$LAN_NETWORK
  567.         puts $config_fd lan_${lanNumber}_rip_ageout_intervals=$RIP_AGE_INT
  568.         puts $config_fd lan_${lanNumber}_frame_type=$FRAME_TYPE
  569.         puts $config_fd server_name=$SERVER_NAME
  570.         puts $config_fd ipx_auto_discovery=$AUTO_DISCOVERY
  571.         puts $config_fd ipx_internal_network=$INTERNAL_NN
  572.         puts $config_fd router_type=$ROUTER_TYPE
  573.         puts $config_fd spx_max_connections=$MAX_SPX_CON
  574.         puts $config_fd spx_max_sockets=$MAX_SPX_SOC
  575.         puts $config_fd ipx_start_at_boot=$IPX_START
  576.         puts $config_fd spx=$SPX_START
  577.  
  578.         if [ cequal $NWIP on ] {
  579.             puts $config_fd lan_${lanNumber}_adapter=/dev/nwip
  580.             puts $config_fd nwip_domain=$NWIP_DOMAIN
  581.             puts $config_fd nwip_db_sync_interval=$NWIP_SYNC
  582.             puts $config_fd    nwip_port=$NWIP_PORT
  583.             puts $config_fd    nwip_nsq_broadcast=$NSQ_BC
  584.             puts $config_fd nwip_preferred_dss=$NWIP_DSS
  585.             puts $config_fd nwip_nearest_server=$NWIP_SVR
  586.         } else {
  587.             puts $config_fd lan_${lanNumber}_adapter=$adapter
  588.         }
  589.  
  590.         switch $NETWORK_MEDIA {
  591.             ETHER {
  592.                 puts $config_fd \
  593.                     lan_${lanNumber}_adapter_type=ETHERNET_DLPI
  594.             }
  595.             TOKEN-RING {
  596.                 puts $config_fd \
  597.                     lan_${lanNumber}_adapter_type=TOKEN-RING_DLPI
  598.             }
  599.             FDDI {
  600.                 puts $config_fd \
  601.                     lan_${lanNumber}_adapter_type=FDDI_DLPI
  602.             }
  603.         }
  604.             
  605.  
  606.         close $config_fd
  607.  
  608.         echo "OK"
  609.     }
  610.         default {
  611.             echo "ipxBE: Unknown request <$line>" >&3
  612.             exit 1
  613.     }
  614.     }
  615. }
  616.