home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / base / root.15 / usr / lib / hpnp / cfg / option2 / option2~
Text File  |  1998-08-19  |  22KB  |  775 lines

  1. #!/bin/ksh
  2. #ident    "@(#)option2    1.3"
  3. #        copyright    "%c%"
  4. #
  5. # (c)Copyright Hewlett-Packard Company 1991.  All Rights Reserved.
  6. # (c)Copyright 1983 Regents of the University of California
  7. # (c)Copyright 1988, 1989 by Carnegie Mellon University
  8. #                          RESTRICTED RIGHTS LEGEND
  9. # Use, duplication, or disclosure by the U.S. Government is subject to
  10. # restrictions as set forth in sub-paragraph (c)(1)(ii) of the Rights in
  11. # Technical Data and Computer Software clause in DFARS 252.227-7013.
  12. #
  13. #                          Hewlett-Packard Company
  14. #                          3000 Hanover Street
  15. #                          Palo Alto, CA 94304 U.S.A.
  16. #
  17.  
  18. export ALLOWLIST1 ALLOWLIST2 ALLOWLIST3 ALLOWLIST4 ALLOWLIST5 ALLOWLIST6
  19. export ALLOWLIST7 ALLOWLIST8 ALLOWLIST9 ALLOWLIST10
  20. export CONTACT
  21. export DT144TAG
  22. export GETCOMNAM
  23. export HATAG
  24. export IDLETO
  25. export IPADDR
  26. export LOCATE
  27. export NAME
  28. export RNAME
  29. export SETCFG
  30. export SNGATEWAY
  31. export SNMASK
  32. export SNMP
  33. export STCOMNAM
  34. export SNMPTRAP
  35. export SNMPTRPAUTH
  36. export SYSLOGIP SYSLOGFAC
  37. export TRAPLIST1 TRAPLIST2 TRAPLIST3 TRAPLIST4
  38. export TRPCOMNAM
  39.  
  40. if [ -z "$INETDCONF" ]
  41. then
  42.     INETDCONF="/etc/inetd.conf"
  43. fi
  44.  
  45. if grep "^bootps" "$INETDCONF" > /dev/null 2>&1
  46. then
  47.   :
  48. else
  49.   echo "\n\"bootps\" service not found in $INETDCONF"
  50.   echo "\nConfigure inetd to support the bootps service if /etc/bootpd"
  51.   echo "exists or install the HP Network Printer Interface software again"
  52.   echo "to acquire the BOOTP software."
  53.   echo "\nPress the return key to return to the main menu ... $NL"
  54.   read -r RESP
  55.   exit 1
  56. fi
  57.  
  58. grep "^tftp" "$INETDCONF" > /dev/null 2>&1
  59. if [ $? -ne 0 ]
  60. then
  61.   echo "\nThe tftp service is not configured on this system.  Add the tftp"
  62.   echo "service to /etc/inetd.conf and create the tftp home directory"
  63.   echo "if it does not exist.  Signal inetd to read the /etc/inetd.conf"
  64.   echo "change. See the tftpd(1M) and inetd.conf(4) man pages for"
  65.   echo "details."
  66.   echo "\nPress the return key to return to the main menu ... $NL"
  67.   read -r RESP
  68.   exit 1
  69. elif [ ! -d "$TFTPDIR" ]
  70. then
  71.   echo "\nThe tftp directory $TFTPDIR does not exist.  Create the tftp home"
  72.   echo "and run hpnpcfg again."
  73.   echo "\nPress the return key to return to the main menu ... $NL"
  74.   read -r RESP
  75.   exit 1
  76. fi
  77.   
  78. USEIPADDR=0
  79. SETCFG=NO
  80.  
  81. ADDZIP=NO
  82.  
  83. echo "\nYou will be asked a series of questions.  After all of the questions have"
  84. echo "been answered, the answers are used to create an $BOOTPTABLE entry.  If"
  85. echo "necessary, a configuration file is created for configurable parameters "
  86. echo "not provided by BOOTP.  This configuration file is retrieved by the"
  87. echo "network printer with TFTP after receiving the BOOTP response."
  88. echo ""
  89. echo "IP addresses are stored in both $BOOTPTABLE and the configuration file."
  90. echo "You can supply a hostname as an answer to certain questions and the"
  91. echo "IP address will be looked up for you.  You will be asked to confirm the"
  92. echo "the address found or to choose one of a list of addresses found."
  93. echo ""
  94. echo "These responses apply to all questions:"
  95. echo "    \"q\"      - returns you to the main menu"
  96. echo "    \"?\"      - prints help text"
  97. echo "    <return> - skips optional parameters or selects default value"
  98. echo ""
  99. echo "If you make a mistake on one of the questions, complete the configuration"
  100. echo "and manually edit $BOOTPTABLE or the configuration file (to be named"
  101. echo "at the end of the configuration) to correct the mistake.  Entering \"q\""
  102. echo "quits the configuration and causes all of your answers to be lost."
  103. echo ""
  104. echo "Press the return key to continue ... $NL"
  105. read -r RESP
  106.  
  107. gethatag
  108. if [ $? -ne 0 ]
  109. then
  110.   exit 1
  111. else
  112.   HATAG="`cat $TMP/UHATAG`"
  113.   rm -f -- "$TMP/UHATAG"
  114.   echo $HATAG > "$TMP/ACTIVEHWADDR"
  115. fi
  116.  
  117. # Ask the user to select a name for the peripheral
  118.  
  119. while [ -z "$NAME" ]
  120. do
  121.   getname "option2" ""
  122.   if [ $? -ne 0 ]
  123.   then
  124.     # q was entered
  125.     exit 1
  126.   fi
  127.   NAME="`cat $TMP/NAME`"
  128.  
  129.   SHORTNAME="`echo $NAME | awk -F. '{print $1}'`"
  130.   if grep "^$SHORTNAME:" $BOOTPTABLE > /dev/null 2>&1
  131.   then
  132.       echo "\nAn $BOOTPTABLE entry already exists for $SHORTNAME.  Completing"
  133.       echo "this configuration process will replace this $BOOTPTABLE entry."
  134.       if [ -f "$CONFIGDIR/$SHORTNAME.cfg" ]
  135.       then
  136.         echo "The network interface configuration file $CONFIGDIR/$SHORTNAME.cfg"
  137.         echo "will be overwritten."
  138.       fi
  139.       while [ 0 ]
  140.       do
  141.         echo "\nDo you want to choose a different name? (y/n/q default=n) $NL"
  142.         read -r RESP
  143.         if [ "$RESP" = "?" ]
  144.         then
  145.       echo "\nEnter \"n\" to continue with the configuration process.  After"
  146.       echo "all the questions have been answered, the existing $BOOTPTAB entry"
  147.       echo "for $SHORTNAME will be removed and a new entry is created."
  148.       echo "If a configuration file exists, that will be replaced also."
  149.       echo ""
  150.       echo "Enter \"y\" to choose a different name"
  151.       echo ""
  152.       $QUITHELP
  153.       continue
  154.         fi
  155.         if [ "$RESP" = "q" ]
  156.         then
  157.           exit 1
  158.         fi
  159.         if [ "$RESP" = "y" ]
  160.     then
  161.           NAME=""
  162.         fi
  163.     break
  164.     done
  165.   fi
  166. done
  167.  
  168. #
  169. # Remember for later use
  170. #
  171. mv "$TMP/NAME" "$TMP/SAVENAME"
  172.  
  173. #  Ask user to enter IP address for the peripheral
  174.  
  175. LOOKUPADDR="`gethostaddr $NAME`"
  176. getipaddr "$LOOKUPADDR"
  177. if [ $? -ne 0 ]
  178. then
  179.   exit 1
  180. else
  181.   IPADDR="`cat -- $TMP/IPADDR`"
  182. fi
  183.  
  184. SEL=""
  185. if [ "$LOOKUPADDR" = "$IPADDR" ]
  186. then
  187.   SEL="n"
  188. fi
  189.  
  190. until [ "$SEL" = "y" -o "$SEL" = "n" ]
  191. do
  192.   echo "\nAdd $NAME to $HOSTTABLE? (y/n/q default=y): $NL"
  193.   read -r SEL
  194.   if [ -z "$SEL" ]
  195.   then
  196.     SEL="y"
  197.   fi
  198.   if [ "$SEL" = "q" ]
  199.   then
  200.     exit 1
  201.   fi
  202.   if [ "$SEL" = "?" ]
  203.   then
  204.     echo "\nThere must be a way to map the name to an IP address so network"
  205.     echo "services can refer to the printer by name.  The host table,"
  206.     echo "/etc/hosts, is one way to provide this mapping.  NIS (Network"
  207.     echo "Information Service) and DNS (Domain Name System) are the other"
  208.     echo "ways. "
  209.     echo ""
  210.     echo "Enter \"y\" if you are using the host table--an entry will be "
  211.     echo "added to $HOSTTABLE for you.  The printer configuration will"
  212.     echo "continue after the entry is made.  If your $HOSTTABLE file"
  213.     echo "is updated automatically from a master source, add the name and"
  214.     echo "IP address to your master source after the configuration is"
  215.     echo "complete."
  216.     echo ""
  217.     echo "Enter \"n\" to go on with the configuration anyway."
  218.     echo ""
  219.     $QUITHELP
  220.   fi
  221.   if [ "$SEL" = "n" ]
  222.   then
  223.     USEIPADDR=1
  224.     mv -- "$TMP/IPADDR" "$TMP/SAVEIPADDR"
  225.     echo ""
  226.     echo "********************************************************************"
  227.     echo "Peripheral name and IP address were not added to the host table."
  228.     echo "You may complete the BOOTP/TFTP configuration without problem.  The"
  229.     echo "verification tests (menu choices 4 and 5) must use the IP address"
  230.     echo "instead of the name.  The spooler configuration (menu choice 6) will"
  231.     echo "complete, but give you a warning that the name can not be looked up."
  232.     echo ""
  233.     echo "After completing the configuration and verifications, add the name"
  234.     echo "and IP address to your master host table source, NIS (Network"
  235.     echo "Information Service,) or DNS (Domain Name System.)"
  236.     echo "********************************************************************"
  237.     break
  238.   fi
  239.   if [ "$SEL" = "y" ]
  240.   then
  241.     #  name and IP address in /etc/hosts
  242.     putpnameinhost $IPADDR $NAME
  243.     if [ $? -ne 0 ]
  244.     then
  245.       echo "\nERROR: failed to add $NAME to $HOSTTABLE."
  246.       exit 1
  247.     else
  248.       echo "\nPeripheral name and IP address have been added to $HOSTTABLE."
  249.       echo "If your $HOSTTABLE file is updated automatically from a master"
  250.       echo "source, add the name and IP address to your master source after"
  251.       echo "the configuration is complete."
  252.     fi
  253.   fi
  254. done
  255.  
  256. if [ -f "$TMP/IPADDR" ]
  257. then
  258.   rm -f -- "$TMP/IPADDR"
  259. fi
  260.  
  261. # ******************************
  262. #  START BOOTP PORTION RIGHT HERE
  263. #
  264. # Start collecting information for BOOTP
  265.  
  266. #  Obtain the Subnet mask
  267.  
  268. getsubnetmask
  269. if [ $? -ne 0 ]
  270. then
  271.   exit 1
  272. else
  273.   SNMASK="`cat -- $TMP/SNMASK`"
  274.   rm -f -- "$TMP/SNMASK"
  275. fi
  276.  
  277. #  Obtain the default gateway
  278.  
  279. getdefgateway
  280. if [ $? -ne 0 ]
  281. then
  282.   #  A q was entered so return to main menu"
  283.   exit 1
  284. else
  285.   SNGATEWAY="`cat -- $TMP/GATEWY`"
  286.   rm -f -- "$TMP/GATEWY"
  287. fi
  288.  
  289. #  Get syslog server
  290.  
  291. getsyslog
  292. if [ $? -ne 0 ]
  293. then
  294.   #  A q was entered so return to main menu"
  295.   exit 1
  296. else
  297.   SYSLOGIP="`cat -- $TMP/SYSLOGIP`"
  298.   rm -f -- "$TMP/SYSLOGIP"
  299.   SYSLOGFAC=""
  300.   if [ -f "$TMP/SYSLOGFAC" ]
  301.   then
  302.     SYSLOGFAC="`cat -- $TMP/SYSLOGFAC`"
  303.   fi
  304.   rm -f -- "$TMP/SYSLOGFAC"
  305.   if [ -n "$SYSLOGFAC" ]
  306.   then
  307.     SETCFG="YES"
  308.   fi
  309. fi
  310.  
  311.   #  Get idle time out value
  312.  
  313.   getidleto
  314.   if [ $? -ne 0 ]
  315.   then
  316.     #  A q was entered so return to main menu"
  317.     exit 1
  318.   else
  319.     IDLETO="`cat -- $TMP/IDLETO`"
  320.     rm -f -- "$TMP/IDLETO"
  321.   fi
  322.  
  323.   if [ -n "$IDLETO" ]
  324.   then
  325.     SETCFG="YES"
  326.   fi
  327.  
  328.  
  329.   #  Get access list
  330.  
  331.   SEL=""
  332.   until [ "$SEL" = "y" -o "$SEL" = "n" ]
  333.   do
  334.     echo "\nDo you want to limit printer access to certain hosts or"
  335.     echo "networks of hosts with an access list? (y/n/q default=n): $NL"
  336.     read -r SEL
  337.     if [ -z "$SEL" ]
  338.     then
  339.       SEL="n"
  340.     fi
  341.     if [ "$SEL" = "?" ]
  342.     then
  343.       echo "\nAn access list specifies which host or networks of hosts the"
  344.       echo "printer will accept print data connections from.  If the access"
  345.       echo "list is empty, the printer will accept connections from all"
  346.       echo "hosts.  The access list is limited to 10 entries.  The default is"
  347.       echo "an empty list.\n"
  348.       echo "A network access list entry is comprised of a network number and an"
  349.       echo "address mask.  (The address mask is your network or subnet mask.)"
  350.       echo "A host access list entry is comprised of a host address and an"
  351.       echo "address mask of 255.255.255.255.  The address mask may be omitted"
  352.       echo "for a host entry.  An address mask of 0.0.0.0 is not allowed."
  353.       echo ""
  354.       $QUITHELP
  355.     else
  356.       if [ "$SEL" = "q" ]
  357.       then
  358.         exit 1
  359.       fi
  360.     fi
  361.   done
  362.   
  363.   if [ "$SEL" = "y" ]
  364.   then
  365.     ALLOWLISTCNT=1
  366.     while [ 0 ]
  367.     do
  368.       getaccesslist
  369.       RETCODE=$?
  370.       if [ $RETCODE -eq 1 ]
  371.       then
  372.     exit 1
  373.       fi
  374.       if [ $RETCODE -eq 2 ]
  375.       then
  376.         :
  377.       else
  378.         case $ALLOWLISTCNT in
  379.       1) ALLOWLIST1=`cat -- $TMP/ALLOWLIST`;;
  380.           2) ALLOWLIST2=`cat -- $TMP/ALLOWLIST`;;
  381.           3) ALLOWLIST3=`cat -- $TMP/ALLOWLIST`;;
  382.           4) ALLOWLIST4=`cat -- $TMP/ALLOWLIST`;;
  383.           5) ALLOWLIST5=`cat -- $TMP/ALLOWLIST`;;
  384.           6) ALLOWLIST6=`cat -- $TMP/ALLOWLIST`;;
  385.           7) ALLOWLIST7=`cat -- $TMP/ALLOWLIST`;;
  386.           8) ALLOWLIST8=`cat -- $TMP/ALLOWLIST`;;
  387.           9) ALLOWLIST9=`cat -- $TMP/ALLOWLIST`;;
  388.           10) ALLOWLIST10=`cat -- $TMP/ALLOWLIST`;;
  389.         esac
  390.         rm -f -- "$TMP/ALLOWLIST"
  391.         ALLOWLISTCNT=`expr $ALLOWLISTCNT + 1`
  392.       fi
  393.       if [ $ALLOWLISTCNT -gt 10 ]
  394.       then
  395.         echo "\nAccess list is limited to 10 entries.  Continuing with the"
  396.     echo "rest of the configuration."
  397.         break
  398.       else
  399.         SEL=""
  400.         until [ "$SEL" = "y" -o "$SEL" = "n" ]
  401.         do
  402.         echo "\nDo you want to add another access list entry? (y/n/q default=n): $NL"
  403.         read -r SEL
  404.     if [ -z "$SEL" ]
  405.     then
  406.       SEL="n"
  407.     fi
  408.         if [ "$SEL" = "?" ]
  409.         then
  410.           echo ""
  411.           TEMP=`expr $ALLOWLISTCNT - 1`
  412.           echo "$TEMP entries have been made into the access list."
  413.           echo "A maximum of ten entries can be made."
  414.       echo ""
  415.       $QUITHELP
  416.         else
  417.           if [ "$SEL" = "q" ]
  418.           then
  419.             exit 1
  420.           fi
  421.         fi
  422.         done
  423.         if [ "$SEL" = "n" ]
  424.         then
  425.           break
  426.         fi
  427.       fi
  428.     done
  429.   fi
  430.  
  431.   if [ -n "$ALLOWLIST1" ]
  432.   then
  433.     SETCFG="YES"
  434.   fi
  435.  
  436.   #  Determine if user wants to set up SNMP information
  437.  
  438.   SEL=""
  439.   until [ "$SEL" = "y" -o "$SEL" = "n" ]
  440.   do
  441.     echo "\nDo you want to configure SNMP related parameters? (y/n/q default=n): $NL"
  442.     read -r SEL
  443.     if [ -z "$SEL" ]
  444.     then
  445.       SEL="n"
  446.     fi
  447.     if [ "$SEL" = "q" ]
  448.     then
  449.       exit 1
  450.     fi
  451.     if [ "$SEL" = "?" ]
  452.     then
  453.       echo "\nBy default, requests to read the value of certain variables with "
  454.       echo "SNMP (Simple Network Management Protocol) are permitted.  This"
  455.       echo "allows the proper operation of SNMP-based programs, such as hpnpstat"
  456.       echo "and hpnpadmin, which read these variables."
  457.       echo ""
  458.       echo "By default, the requests to set variables with SNMP are not permitted."
  459.       echo "To turn on the SNMP set capability, configure a \"set\" community name."
  460.       echo "The SNMP set capability can be used by hpnpadmin.  For example,"
  461.       echo "the -r option to hpnpadmin can be used to set a variable with SNMP"
  462.       echo "to cause the printer to redo its bootup sequence."
  463.       echo ""
  464.       echo "We recommend that you at least configure the \"Location\" and"
  465.       echo "\"Contact\" entries.  The location helps administrators track where"
  466.       echo "the printer is and the contact helps users find out whom to"
  467.       echo "contact for problems.  These can be obtained from the printer's"
  468.       echo "status page or with \"hpnpadmin -l <printer>\"."
  469.       echo ""
  470.       $QUITHELP
  471.     fi
  472.   done
  473.   
  474.   SNMP="NO"
  475.   if [ "$SEL" = "y" ]
  476.   then
  477.     SETCFG="YES"
  478.     SNMP="YES"
  479.     while [ 0 ]
  480.     do
  481.       echo "\nEnter printer location (optional): $NL"
  482.       read -r LOCATE
  483.       if [ "$LOCATE" = "?" ]
  484.       then
  485.         echo ""
  486.         echo "The location is a description of the physical location of the"
  487.         echo "network printer.  The description can contain blanks and is"
  488.     echo "limited to 64 characters.  An example of a location is: equipment"
  489.     echo "room near post p3."
  490.         echo ""
  491.     $QUITHELP
  492.     continue
  493.       fi
  494.       if [ "$LOCATE" = "q" ]
  495.       then
  496.         exit 1
  497.       fi
  498.       break
  499.     done
  500.     while [ 0 ]
  501.     do
  502.       echo "\nEnter printer contact (optional): $NL"
  503.       read -r CONTACT
  504.       if [ "$CONTACT" = "?" ]
  505.       then
  506.         echo "\nThe contact is the name of the network printer's administrative"
  507.         echo "contact, plus information on how to contact the person. The"
  508.     echo "description can contain blanks and is limited to 64 characters."
  509.     echo "An example of a contact is: John Doe x3456."
  510.         echo ""
  511.     $QUITHELP
  512.     continue
  513.       fi
  514.       if [ "$CONTACT" = "q" ]
  515.       then
  516.         exit 1
  517.       fi
  518.       break
  519.     done
  520.     echo ""
  521.     echo "********************************************************************"
  522.     echo "The following two questions ask you to input SNMP \"get\" and \"set\""
  523.     echo "community names.  These names are going to be stored in a file that"
  524.     echo "is retrieved by the network printer with TFTP.   Files available"
  525.     echo "from TFTP can be accessed by any host on the network and so the community"
  526.     echo "names are not secure."
  527.     echo ""
  528.     echo "If you specify community names, we suggest the community names you "
  529.     echo "choose for your printer be different from those used for other "
  530.     echo "systems within your administrative domain."
  531.     echo "********************************************************************"
  532.     while [ 0 ]
  533.     do
  534.       echo "\nEnter SNMP \"get\" community name (optional): $NL"
  535.       read -r GETCOMNAM
  536.       if [ "$GETCOMNAM" = "?" ]
  537.       then
  538.         echo "\nA community name is a password that enables SNMP access to MIB"
  539.         echo "values on the network printer.  Community names are not highly"
  540.         echo "secure; they go unencrypted across the network.  The \"get\" community"
  541.         echo "name limits which SNMP GetRequests are responded to.  By default,"
  542.         echo "the network printer responds to all GetRequests.  The \"get\""
  543.         echo "community name is limited to 32 characters."
  544.         echo ""
  545.         echo "Keep in mind that the \"get\" community name is kept in a file that"
  546.         echo "the network printer retrieves with TFTP.  While steps can be"
  547.         echo "taken to reduce the likelihood of others being able to retrieve"
  548.         echo "this file, the \"get\" community name will never be completely protected."
  549.         echo ""
  550.     $QUITHELP
  551.     continue
  552.       fi
  553.       if [ "$GETCOMNAM" = "q" ]
  554.       then
  555.         exit 1
  556.       fi
  557.       break
  558.     done
  559.     if [ -n "$GETCOMNAM" ]
  560.     then
  561.       echo $GETCOMNAM > "$TMP/GETCOMNAM"
  562.       echo ""
  563.       echo "Note: To avoid supplying the get community name every time"
  564.       echo "      you run hpnpadmin or hpnpstat, you can add an entry in "
  565.       echo "      /usr/lib/hpnp/hpnpsnmp like: $NAME $GETCOMNAM"
  566.     fi
  567.     while [ 0 ]
  568.     do
  569.       echo "\nEnter SNMP \"set\" community name (optional): $NL"
  570.       read -r STCOMNAM
  571.       if [ "$STCOMNAM" = "?" ]
  572.       then
  573.         echo "\nA community name is a password that enables SNMP access to MIB"
  574.         echo "values on the network printer.  Community names are not highly"
  575.         echo "secure; they go unencrypted across the network.  The \"set\" community"
  576.         echo "name limits which SNMP SetRequests are responded to.  In addition,"
  577.         echo "SetRequests are only honored if the sending host is on the access"
  578.         echo "list.  By default, the network printer does not respond to"
  579.         echo "any SetRequests.  The \"set\" community name is limited to 32 characters."
  580.         echo ""
  581.         echo "Keep in mind that the \"set\" community name is kept in a file that"
  582.         echo "the network printer retrieves with TFTP.  While steps can be"
  583.         echo "taken to reduce the likelihood of others being able to retrieve"
  584.         echo "this file, the \"set\" community name will never be completely protected."
  585.         echo ""
  586.     $QUITHELP
  587.     continue
  588.       fi
  589.       if [ "$STCOMNAM" = "q" ]
  590.       then
  591.         exit 1
  592.       fi
  593.       break
  594.     done
  595.   
  596.     SEL=""
  597.     until [ "$SEL" = "y" -o "$SEL" = "n" ]
  598.     do
  599.       echo "\nDo you want SNMP traps sent? (y/n/q default=n): $NL"
  600.       read -r SEL
  601.       if [ -z "$SEL" ]
  602.       then
  603.     SEL=n
  604.       fi
  605.       if [ "$SEL" = "?" ]
  606.       then
  607.     echo "\nSNMP traps are asynchronous notifications of some event that"
  608.     echo "has happened.  SNMP traps are useful only with network management"
  609.     echo "software.  The network printer will send cold start traps,"
  610.     echo "authentication failure traps, and enterprise specific traps."
  611.     echo "The enterprise specific traps include status changes and error"
  612.     echo "conditions.  Traps are sent to specific hosts and include a \"trap\""
  613.     echo "community name.  Up to 4 hosts can be sent SNMP traps."
  614.     echo ""
  615.     echo "Enter \"y\" and you will be asked what hosts to send the traps to."
  616.     echo ""
  617.     echo "Enter \"n\" to continue the configuration process."
  618.         echo ""
  619.     $QUITHELP
  620.       fi
  621.       if [ "$SEL" = "q" ]
  622.       then
  623.         exit 1
  624.       fi
  625.     done
  626.     SNMPTRAP="NO"
  627.     if [ "$SEL" = "y" ]
  628.     then
  629.       SNMPTRAP="YES"
  630.       TRAPLIST1=""
  631.       TRAPLIST2=""
  632.       TRAPLIST3=""
  633.       TRAPLIST4=""
  634.       TRPDSTCNT=0
  635.       if [ "$SEL" = "y" ]
  636.       then
  637.         while [ $TRPDSTCNT -lt 4 ]
  638.         do
  639.            gettrapdest
  640.        RETCODE=$?
  641.        if [ $RETCODE -eq 1 ]
  642.        then
  643.          exit 1
  644.        fi
  645.            if [ $RETCODE -eq 0 ]
  646.        then
  647.              TRPDSTCNT=`expr $TRPDSTCNT + 1`
  648.             if [ $TRPDSTCNT -eq 1 ]
  649.             then
  650.                TRAPLIST1=`cat $TMP/TRPLST`
  651.              elif [ $TRPDSTCNT -eq 2 ]
  652.             then
  653.                TRAPLIST2=`cat $TMP/TRPLST`
  654.              elif [ $TRPDSTCNT -eq 3 ]
  655.             then
  656.                TRAPLIST3=`cat $TMP/TRPLST`
  657.              elif [ $TRPDSTCNT -eq 4 ]
  658.            then
  659.                TRAPLIST4=`cat $TMP/TRPLST`
  660.            echo "\nAll 4 trap destinations have been specified.  Continuing"
  661.          echo "with the configuration."
  662.            break
  663.              fi
  664.              rm -f -- "$TMP/TRPLST"
  665.            fi
  666.           SEL=""
  667.           until [ "$SEL" = "y" -o "$SEL" = "n" ]
  668.           do
  669.             echo "\nEnter another SNMP trap destination? (y/n/q default=n): $NL"
  670.             read -r SEL
  671.         if [ -z "$SEL" ]
  672.         then
  673.           SEL="n"
  674.         fi
  675.               if [ "$SEL" = "?" ]
  676.               then
  677.           echo "\nUp to 4 trap destinations can be specified.  $TRPDSTCNT trap"
  678.           echo "destinations have been specified so far."
  679.                 echo ""
  680.                 echo "Enter \"n\" to complete the trap destination configuration."
  681.           $QUITHELP
  682.             fi
  683.             if [ "$SEL" = "q" ]
  684.             then
  685.                 break
  686.             fi
  687.           done
  688.           if [ "$SEL" = "n" -o "$SEL" = "q" ]
  689.           then
  690.             break
  691.           fi
  692.         done
  693.       fi
  694.  
  695.       while [ 0 ]
  696.       do
  697.         echo "\nEnter SNMP \"trap\" community name (optional): $NL"
  698.         read -r TRPCOMNAM
  699.           if [ "$TRPCOMNAM" = "?" ]
  700.           then
  701.             echo "\nThe SNMP \"trap\" community name is sent with SNMP traps."
  702.       echo "The \"trap\" community name is limited to 32 characters."
  703.           echo ""
  704.       $QUITHELP
  705.       continue
  706.     fi
  707.         if [ "$TRPCOMNAM" = "q" ]
  708.         then
  709.           exit 1
  710.         fi
  711.     break
  712.       done
  713.       
  714.       SEL=""
  715.       until [ "$SEL" = "y" -o "$SEL" = "n" ]
  716.       do
  717.         echo "\nDo you want SNMP authentication traps sent? (y/n/q default=n): $NL "
  718.         read -r SEL
  719.     if [ -z "$SEL" ]
  720.     then
  721.       SEL="n"
  722.     fi
  723.           if [ "$SEL" = "?" ]
  724.           then
  725.       echo "\nAuthentication traps indicate that an SNMP request was received"
  726.       echo "and the community name check failed.\n"
  727.       $QUITHELP
  728.     fi
  729.         if [ "$SEL" = "q" ]
  730.         then
  731.       exit 1;
  732.         fi
  733.       done
  734.       SNMPTRPAUTH="NO"
  735.       if [ "$SEL" = "y" ]
  736.       then
  737.         SNMPTRPAUTH="YES"
  738.       fi
  739.     fi
  740.   fi
  741.  
  742. DEBUG=OFF
  743. if [ "$DEBUG" = "ON" ]
  744. then
  745.   echo "HATAG is $HATAG"
  746.   echo "NAME is $NAME"
  747.   echo "IPADDR is $IPADDR"
  748.   echo "SNMPTRAP is $SNMPTRAP"
  749.   echo "LOCATE is $LOCATE"
  750.   echo "CONTACT is $CONTACT"
  751.   echo "GETCOMNAM is $GETCOMNAM"
  752.   echo "STCOMNAM is $STCOMNAM"
  753.   echo "SNMPTRAP is $SNMPTRAP"
  754.   echo "TRPDSTCNT is $TRPDSTCNT"
  755.   echo "TRAPLIST1 is $TRAPLIST1"
  756.   echo "TRAPLIST2 is $TRAPLIST2"
  757.   echo "TRAPLIST3 is $TRAPLIST3"
  758.   echo "TRAPLIST4 is $TRAPLIST4"
  759.   echo "SNMASK is $SNMASK"
  760.   echo "SNGATEWAY is $SNGATEWAY"
  761.   echo "TRPCOMNAM is $TRPCOMNAM"
  762.   echo "SNMPTRPAUTH is $SNMPTRPAUTH"
  763. fi
  764.  
  765.  
  766. bootptabadd
  767.  
  768. echo "\nThe printer BOOTP/TFTP configuration is complete.  Complete menu"
  769. echo "item 3 to test the BOOTP/TFTP configuration before powering on your"
  770. echo "printer.\n"
  771. echo "Press the return key to continue ... $NL"
  772. read -r RESP
  773. echo ""
  774.