home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / uucp / uupoll068.lha / uupoll.man < prev   
Text File  |  1992-08-03  |  34KB  |  714 lines

  1.               __
  2.      /  //  //__)_  / /
  3.     (__/(__//   (_)(_(_
  4.  
  5.     the UUCP polling server                        R0.68 92/08/03
  6.  
  7.     (c)Copyright 1991,92 Ralf S. Engelschall, All Rights Reserved.
  8.     (c)Copyright 1991,92 Cyvaned Systems,     All Rights Reserved.
  9.  
  10.  
  11.     0 - DISTRIBUTION
  12.  
  13.       This  material  is  neither  freeware nor shareware nor public domain.
  14.     It's  copyrighted because it was developed for own usage only but may be
  15.     freely destributed to help the Amiga community as long as no changes are
  16.     made  in  the  whole material and no charge is made for the distribution
  17.     except for magnetic media, mailing materials and postage.
  18.  
  19.       Using  this  program  implies  that  you  have  accepted  all  licence
  20.     statements and/or conditions specified within this document.
  21.  
  22.  
  23.     1 - DISCLAIMER
  24.  
  25.       THE  AUTHOR  MAKES  NO  WARRANTIES,  EITHER EXPRESSED OR IMPLIED, WITH
  26.     RESPECT  TO  THE  MATERIAL  DESCRIBED  HEREIN, ITS QUALITY, PERFORMANCE,
  27.     MERCHANTABILITY,  OR  FITNESS FOR ANY PARTICULAR PURPOSE.  THIS MATERIAL
  28.     IS  PROVIDED  "AS  IS"  AND  THE  ENTIRE  RISK  AS  TO  ITS  QUALITY AND
  29.     PERFORMANCE IS WITH THE USER.  IN NO EVENT WILL THE AUTHOR BE LIABLE FOR
  30.     ANY  GENERAL  OR SPECIAL DAMAGES, INCLUDING DIRECT, INDIRECT, INCIDENTAL
  31.     OR  CONSEQUENTIAL  DAMAGES  RESULTING  FROM  THE  USE  OF  THIS  PROGRAM
  32.     (INCLUDING  BUT  NOT  LIMITED  TO  LOSS  OF  DATA OR DATA BEING RENDERED
  33.     INACCURATE  OR  LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
  34.     THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS).
  35.  
  36.  
  37.     2 - RIGHTS RESERVED
  38.  
  39.       The  author  reserves  the right to make changes in the whole material
  40.     identified  in  this  puplication without notice and to distribute other
  41.     revisions under different licence statements and/or conditions.
  42.  
  43.  
  44.     3 - NOTE
  45.  
  46.       Please  excuse my uneven english, because it's not my nativeálanguage.
  47.     But  writing  this  documentation in german would decrease the number of
  48.     people  who  can  understand  the  function  of UUPOLL and I hate german
  49.     descriptions   of   international   spreaded  material  because  of  the
  50.     non-technical character of the german language.  Thanks in advance!
  51.  
  52.  
  53.     4 - ABOUT
  54.  
  55.     4.1 SHORT OVERVIEW
  56.  
  57.     -  controls the execution of a UUCICO child as the parent part
  58.     -  checks for correct hostname and polling-time violation
  59.     -  controls abortion of UUCICO due to a precalculated restriction time
  60.     -  operates dependendly on status of last session
  61.     -  operates dependendly on (specific) pending work
  62.     -  controls dialup retries due to busy line or other UUCICO failures
  63.     -  controls abortions due to user interupts
  64.     -  can be disabled through a job control feature for crontab interventions
  65.     -  can abort a startup due to or break an already running UUCICO process
  66.     -  can give information about polling times and host status
  67.     -  can setup your modem before start of a polling session
  68.     -  can spawn UUCICO with additional options
  69.     -  can spawn own user command after a (successful) session
  70.     -  full UUCP logfile support similar to UUCICO
  71.     -  can run under full runtime debugging with variable debug level
  72.  
  73.  
  74.     4.2 DETAILED DESCRIPTION
  75.  
  76.       UUPOLL  is a polling server written for the UUCICO from the Amiga UUCP
  77.     package  (V1.15  or  later).  If you don't know anything about UUCP this
  78.     utility  won't  be  for you and you should stop reading here and discard
  79.     it.   If  you  have already installed and configured an UUCP package (at
  80.     least  the  transport  layer  and the main configuration from Amiga UUCP
  81.     V1.15D  or  later  is  needed)  on your system you should be able to use
  82.     UUPOLL  directly  without  setups.  If not, stop here and configure your
  83.     UUCP system first, really!
  84.  
  85.       You  will  probably  ask, why we need a polling server?  UUCP's UUCICO
  86.     command  handles  all  we  need  when polling a host, i.e.  all transfer
  87.     operations  in  detail.  So if you are polling your NewsFeed once a week
  88.     (which  is actually ok for a leafsite only!), calling UUCICO manually is
  89.     simple  and  works.   But  if you have many polling operations a day the
  90.     handling of UUCICO will actually require nerves of steel because it is a
  91.     simple  transfer  command  for UUCP connections only and doesn't provide
  92.     great comfort.
  93.  
  94.       Another boring thing to us was that we often need many polling retries
  95.     before  successfully  connecting  to  heavily loaded hosts with few idle
  96.     telco  lines.   At  this  situation we had to reenter the UUCICO command
  97.     manually for each retry operation while waiting in front of our machines
  98.     observing  the  polling  processes.  At first we had used a AmigaDOS(tm)
  99.     batch  script  distributed  with  AmigaUUCP  1.13D to automate the retry
  100.     procedure.   This  worked fine but not very elegant, because it used bad
  101.     things  like  a  dummy transfer file to check if UUCICO's last retry was
  102.     actually successful.
  103.  
  104.       Another  big  problem  (also not handled by UUCICO or the batch script
  105.     mentioned) is that UUCICO doesn't stop when the polling time is over due
  106.     to  a  given  time  restriction,  i.e.  the polling time is reserved but
  107.     limited  by  the  remote  system.  One of our remote systems for example
  108.     reserves  us  a  polling time of one half hour from four o'clock to half
  109.     past  four  every  morning to do all daily transfers.  No other host had
  110.     the  right  to  poll at this time interval.  This has the advantage that
  111.     there  aren't  any  retries  when  connecting  because the telco line is
  112.     explicitly  reserved  for  us.  The "disadvantage" is, that at half past
  113.     four another reserved polling time (of another host) starts, which means
  114.     that  we  have  actually  only the right to use the phoneline up to half
  115.     past four and no longer.
  116.  
  117.       At  half  past  four the phoneline have to be given free, otherwise we
  118.     will  become  a  great deal of flames from the sysop of the host polling
  119.     after us because we had used his reserved time interval.  Usually we had
  120.     a  connection  time  between 15 and 25 minutes on this polling sequence.
  121.     But  sometimes  there is so many traffic inside our requested newsgroups
  122.     that we still transferring data at half past four.  At this situation we
  123.     had to interrupt UUCICO because our polling time is over.  To solve this
  124.     problem  we  had  stopped  UUCICO  via  'break'  command  started by our
  125.     'crontab'  at  half  past  four.   This worked also fine but only little
  126.     elegant.
  127.  
  128.       The  next  big  problem  was  the fact, that after breaking UUCICO the
  129.     remote  host will hold not already transferred data until we poll again.
  130.     That's ok so no data will be lost.  But the really problem is that a lot
  131.     of data is waiting for us if we break the next polling session again and
  132.     then the next one also and the next one...  To solve this we had started
  133.     UUCICO at a second time (some hours later) where all host can poll which
  134.     don't  have  a  reserved polling-time.  So we had the ability to receive
  135.     all  remaining  data from this remote host at this session but we had to
  136.     do  this  manually  because  if  the first connection wasn't breaked the
  137.     second  one  would be redundant and cost phone units only.  The only way
  138.     to  solve  this correct and elegant is to know, whether the last polling
  139.     session was successful.
  140.  
  141.       You  see,  these  are  all  problems  which can be solved by writing a
  142.     intelligent   server   program  for  UUCICO  which  handles  _all_  this
  143.     situations  _automatically  without us_.  So UUPOLL mushroomed out of my
  144.     brian...
  145.  
  146.  
  147.     5 - REQUIREMENTS
  148.  
  149.       As  mentioned  above you have to install a UUCP package like AmigaUUCP
  150.     from Matt Dillon (V1.15 or later) or compatible.  For detail have a look
  151.     at  the  manual  pages of _your_ UUCP software.  UUPOLL relies on UUCICO
  152.     and UUXQT of V1.15D or later only, but you should have a correct package
  153.     at all.
  154.  
  155.  
  156.     6 - INSTALLATION
  157.  
  158.       If  you  have a already configured UUCP system, installing UUPOLL will
  159.     be  quite  simple:   Just  copy  UUPOLL to the same directory where your
  160.     UUCICO stays.  Thats important because otherwise UUPOLL wouldn't be able
  161.     to  fork  the  UUCICO command.  Usually UUPOLL and UUCICO are staying at
  162.     UUBIN:   or UUCP:C/ where all other UUCP command are.  Of course you can
  163.     (but  why should you?) give UUPOLL another name by renaming it.  It acts
  164.     in all situations with its AmigaDOS(tm) name.
  165.  
  166.       But  be  sure  that the following things are already configured before
  167.     you try to run UUPOLL successful.  Otherwise do it now!
  168.  
  169.       You  need  a  correct  UULIB:l.sys  file,  where  UUPOLL  can  extract
  170.     informations  about  the  host  you  want  to  poll (i.e.  if it exists,
  171.     baudrate,  allowed  polling  times).   This  should  already  exist  and
  172.     configured  correctly  because this is also used by SENDMAIL and UUCICO.
  173.     For  example,  have  a  look  at  a  part of UULIB:l.sys of site CyvaNT2
  174.     (angle.muc.sub.org):
  175.  
  176.       :
  177.       | # CyvaNT1 (cyvaned.sub.org)
  178.      !| cyvaned Any SER: 9600 ATS7=060DP97990 ogin: Uangle sword: XXXXXX
  179.       |
  180.       | # Alcolix (brumuc.muc.sub.org)
  181.      !| brumuc 04:00-04:30,08:00-10:00,12:15-12:45,13:15-15:00,
  182.     ... 16:15-18:30,19:00-20:30 SER: 9600 ATDP0893544971 in: Uangle rd: XX
  183.      !| brumuc 04:15-04:50 SER: 9600 ATDP0893544023 in: Uangle rd: XX
  184.       :
  185.  
  186.       As  you can see, `angle' has direct connections to hosts `cyvaned' and
  187.     `brumuc'.   At  `cyvaned'  there is one phoneline only, `brumuc' has two
  188.     phonelines.   Notice  that  UUPOLL supports such multiline entries, too.
  189.     Both  have  many  reserved times, so `angle' have to know all these time
  190.     intervals  where it is allowed to poll each host (these times are given,
  191.     not  the reserved ones!).  UUPOLL checks for these time intervals, so be
  192.     careful:   Take  them  up to date!  Notice, a bad time-field (the second
  193.     field) will produce a bad `host status' ("-i").
  194.  
  195.       If  you want to use the `automatic hostname' feature (which is useful,
  196.     if  you  poll only one host or one host the most of the time), i.e.  not
  197.     specifying  one  of  the  "-s" or "-S" option, make sure that UUPOLL can
  198.     open  a  file  called  UULIB:config  where  it  can  find  a field named
  199.     "DefaultHost".  For example, `angle's config-file looks like this:
  200.  
  201.       :
  202.       | NodeName       angle
  203.       | UserName       rse
  204.       | RealName       Ralf S. Engelschall
  205.       | Organization   Cyvaned Systems
  206.       | DomainName     .muc.sub.org
  207.      !| DefaultNode    brumuc.muc.sub.org
  208.       | TimeZone       CET
  209.       | LockDir        uuspool:
  210.       | MungeCase      N
  211.       | Debug          0
  212.       | Filter         ed -sticky
  213.       | RFilter        ed -sticky
  214.       | MailEditor     ed -sticky
  215.       | NewsEditor     ed -sticky
  216.       :
  217.  
  218.       UUPOLL  strips off domains automatically when extracting the hostname,
  219.     setting  this  field  to "brumuc", "brumuc.uucp" or "brumuc.muc.sub.org"
  220.     results always in a default hostname of "brumuc".
  221.  
  222.       If  you  want  to  use the modem setup function ('-m') make sure, that
  223.     UUPOLL  can  find  a  correct  setup  file called UULIB:modemsetup.  For
  224.     details  about the layout of this file see the paragraph below where the
  225.     '-m' option is explained.
  226.  
  227.       The  only  thing which UUPOLL uses and which you need not configure is
  228.     the  UUCP  logfile,  called  UUSPOOL:logfile.   Here, UUPOLL appends (as
  229.     UUCICO,  UUXQT,  etc.   do)  his  logbook-messages.  Notice, that UUPOLL
  230.     defaults  to  do no console output.  The only way to check what was done
  231.     or  went  wrong  is  to  look  at this file (unless the runtime debug is
  232.     enabled).
  233.  
  234.  
  235.     7 - USAGE
  236.  
  237.     7.1 SHORT OVERVIEW
  238.  
  239.     uupoll [-s [System]] [-S [System]] [-r Num] [-d Sec] [-t Min]
  240.            [-u Arg] [-m] [-n [UserName]] [-e [Cmnd]] [-E [Cmnd]]
  241.            [-p [[+|-]Files]] [-P [[+|-]Bytes]] [-a] [-c [Mode]] [-j [Status]]
  242.            [-i] [-I] [-x Num] [-v] [-?]
  243.  
  244.     s  poll the specified system             u  additional uucico arguments
  245.     S  as 's' but ignore time restriction    m  setup modem before startup
  246.     r  number of retries before giving up    n  notify user if session fails
  247.     d  seconds of retry delay time           e  execute after polling session
  248.     t  minutes of restriction time           E  as 'e' but execute always
  249.  
  250.     p  poll only if pending files            i  short host status information
  251.     P  poll only if pending (k)bytes         I  long host status information
  252.     a  always poll - ignore success status   x  number of debuglevel
  253.     c  check for already spawned uucico      v  version info
  254.     j  switch/set job control status         ?  usage info
  255.  
  256.  
  257.     7.2 DETAILED DESCRIPTION
  258.  
  259.     [-s [System]]  "poll the specified system"
  260.  
  261.       This  specifies  the  system  which  UUPOLL should poll.  Use the UUCP
  262.     name,  not the logic one, i.e.  at `angle' I have to set it to `cyvaned'
  263.     instead  of `CyvaNT1' and `brumuc' instead of `Alcolix'.  If this option
  264.     isn't  used,  UUPOLL extracts the hostname of the field "DefaultHost" in
  265.     UULIB:config.
  266.  
  267.  
  268.     [-S [System]]  "as 's' but ignore time restriction"
  269.  
  270.       This  specifies also the system which UUPOLL should poll, but with the
  271.     addition  that  this  "profanes"  the holy situation of restriction time
  272.     violation.  This is similar to UUCICO's -S option.
  273.  
  274.       The advantage of this option would be that you can use a polling trick
  275.     introduced by T.Lotterer (joedust@cyvaned.cyvaned.sub.org).  Think about
  276.     his  situation:   He wanted to poll one of his NewsFeeds and waits until
  277.     no  reserved  time  is  active because he didn't want to steal someone's
  278.     reserved  time.   Now  he starts to dialup his NewsFeed but the line was
  279.     busy, busy, busy...
  280.  
  281.       The  reason  why this happens was clear:  All other hosts act similar.
  282.     The  only  solution  to avoid this situation would be to start polling a
  283.     few  minutes  before  all  other  would  do, i.e.  starting _before_ the
  284.     reserved time would be over.  Oh, you think thats not ok, because now we
  285.     use  someones  reserved  time?   That's right, but no one would disagree
  286.     because  if  someone is still polling at his reserved time, he could not
  287.     be  interrupted  and  if he has already finished he has no reason why he
  288.     should disagree with us.
  289.  
  290.       So  if  T.Lotterer  wanted  to poll his NewsFeed he waits until 30% or
  291.     more  of  the currently active reserved time is over and then started to
  292.     dialup his NewsFeed.
  293.  
  294.       This  feature is also useful for debugging without having to alter the
  295.     l.sys file.
  296.  
  297.  
  298.     [-r Num]  "number of retries before giving up"
  299.  
  300.       This  indicates the total number of re(!)tries.  Remember that retries
  301.     means  that  the  first  retry  is trial number 2!  A retry of zero (the
  302.     default) forces UUPOLL to try only once and then give up.
  303.  
  304.  
  305.     [-d Sec]  "seconds of retry delay time"
  306.  
  307.       This  indicates  the number of seconds which UUPOLL will wait until it
  308.     starts  a  new  dial retry.  Default is no delay time (0 seconds).  This
  309.     was originally introduced for special situations to avoid too many dials
  310.     which  result  in  a  lot  of  unused telephone units due to a telephone
  311.     number change without notice by one of our NewsFeeds.
  312.  
  313.       It  also  keeps  the  line a bit idle between retries, allowing remote
  314.     sites to log into your local system.
  315.  
  316.  
  317.     [-t Min]  "minutes of restriction time"
  318.  
  319.       If  specified  with  a  number  not equal zero this sets the number of
  320.     minutes  after  which UUPOLL should terminate UUCICO.  This timer starts
  321.     immediately after you have started UUPOLL.  I call this the 'restriction
  322.     time'  for  the  polling  session.   If  this  option  is  left,  UUPOLL
  323.     calculated  the  minutes  out  of  the  given  time  intervals  found in
  324.     UULIB:l.sys.
  325.  
  326.  
  327.     [-u Arg]  "additional UUCICO arguments"
  328.  
  329.       This  specifies  the  additional(!)  arguments  for  the  UUCICO call.
  330.     UUPOLL   starts  UUCICO  always  with  "UUCICO  -S{hostname}"  and  will
  331.     optionally add this string to the end of that `calling command'.  If you
  332.     wish  no  addidtionl args you have to specify `-u' only.  The default is
  333.     "-7" which indicates that UUCICO should use a 7-Wire-Handshake.
  334.  
  335.       But  notice,  you  have  to  specify  the  option argument string in a
  336.     special  form  if  you use a seperation blank between UUPOLLs option and
  337.     the option argument.  You have to write `-u " -X -Y -Z ..."' (notice the
  338.     blank  character  after the first quotation mark!) instead of `-u "-X -Y
  339.     -Z  ..."'.   This  is  no  bug  in  UUPOLL, its a special case in option
  340.     parsing.
  341.  
  342.  
  343.     [-m]  "setup modem before startup"
  344.  
  345.       If  specified  this  indicates UUPOLL to setup your modem according to
  346.     the commands found in UULIB:modemsetup before it starts the first UUCICO
  347.     process.
  348.  
  349.       This  configuration file is the only introduction of UUPOLL, all other
  350.     configuration  files  should  already exist.  The layout of this file is
  351.     similar   to  NEWSCTL:sys  of  CNEWS,  which  specifies  the  newsgroups
  352.     interchanged  with each host.  Instead of explaining this, please have a
  353.     exact look at 'angle' ones.
  354.  
  355.       :
  356.      !| default:\
  357.       | ATZ,ATE1,ATH0,ATK1,ATL3,ATM2,ATQ0,ATV1,ATX4,\
  358.       | ATS0=000,ATS2=043,ATS3=013,ATS4=010,ATS5=008,ATS6=002,ATS7=060,ATS8=002,ATS9=010,\
  359.       | ATS10=015,ATS12=050,ATS18=000,ATS25=000,ATS26=000,\
  360.       | AT&B0,AT&C1,AT&D2,AT&H1,AT&L0,AT&M0,AT&R2,\
  361.       | AT*A0,AT*D0,AT*E1,AT*F3,AT*P0,AT*Q0,AT*S1,AT*E1,AT*U0,\
  362.       | AT&W
  363.       |
  364.      !| cyvaned:\
  365.       | AT*E1,AT&W
  366.       |
  367.      !| brumuc:\
  368.       | AT*E0,AT&W
  369.       :
  370.  
  371.       ATTENTION!  Don't forget the "AT&W" (or your modem equivalent) command
  372.     at  the  end  of your AT command sequence.  If you forget this, no setup
  373.     effect  will  happen  because when UUPOLL closes the serial.device after
  374.     its modemsetup the serial.device will drop the DTR (Data Terminal Ready)
  375.     signal  which  has  the  result that your modem will reset itself to its
  376.     last  configuration  which  had exist before the last AT&W command.  Use
  377.     the  third field of UULIB:l.sys for setups which should not remain after
  378.     the  polling  session  and  use  UUPOLL's UULIB:modemsetup for permanent
  379.     setups only.
  380.  
  381.       Notice,   if   no   entry  for  the  current  host  can  be  found  in
  382.     UULIB:modemsetup, the modemsetup function uses the commands given at the
  383.     fake-hostentry named "default".
  384.  
  385.       BE CAREFUL!  Use the ModemSetup with care.  No, it has no serious bugs
  386.     in  code,  but has a lot of problems with the other commands of the UUCP
  387.     package, i.e.  UUCICO and GETTY.  The first problem occurs if you try to
  388.     poll   with   modemsetup  while  GETTY  is  running.   GETTY  locks  the
  389.     serial.device  explicitly,  so  UUPOLL  wouldn't  be  able  to  open the
  390.     serial.device.   The  second  problem comes up, if you try to run UUPOLL
  391.     with  the  LOCKSERIAL command.  This works fine for UUPOLL, i.e.  it now
  392.     could setup your modem, but UUCICO will hang forever because it tries to
  393.     lock the serial.device too and comes never back...  The only solution is
  394.     either  to kill GETTY when using the modemsetup function of UUPOLL or to
  395.     leave this feature unused.
  396.  
  397.  
  398.     [-n [UserName]]  "notify user if session fails"
  399.  
  400.       If  you  specify  this  option  and the polling session fails due to a
  401.     restriction  timeout or maximal number of retries the given user (or per
  402.     default  `postmaster')  will  be  notified  about  this.   The user will
  403.     receive a message like the following:
  404.  
  405.     | From UUPOLL-DAEMON Fri, 12 Jun 1992 22:23:40 +0200
  406.     | Return-Path: <UUPOLL-DAEMON>
  407.     | Received: by angle.muc.sub.org (\/<>\/ SmailAmiga 1.02j21)
  408.     |       id <m0lwK20-00002Qc>; Fri, 12 Jun 1992 22:23:40 +0200
  409.     | Message-Id: <m0lwK20-00002Qc@angle.muc.sub.org>
  410.     | Date: Fri, 12 Jun 1992 22:23:40 +0200
  411.     | From: UUPOLL-DAEMON@angle.muc.sub.org (UUCP Admin Subsystem)
  412.     | To: postmaster
  413.     | Subject: brumuc: polling failed
  414.     | X-Status: OR
  415.     |
  416.     | [autogenerated message]
  417.     |
  418.     | Local Time  : Fri Jun 12 22:23:36 1992
  419.     | Remote Host : brumuc
  420.     | Status      : polling failed
  421.     |
  422.     | --
  423.     | UUPOLL-DAEMON
  424.  
  425.  
  426.     [-e [Cmnd]]  "execute after polling session"
  427.  
  428.       This specifies the user command which will be executed by UUPOLL after
  429.     a  polling  session.   The  default  is  the  UUXQT command.  It will be
  430.     executed after..
  431.      .. a successful UUCICO session
  432.      .. UUPOLL was aborted due to a restriction timeout
  433.      .. UUPOLL was aborted by the user or by a UUCICO break/software error
  434.     To disable the execution of a user command specify `-e' only.
  435.  
  436.  
  437.     [-E [Cmnd]]  "as 'e' but execute always"
  438.  
  439.       This  is  the  same as 'e' but with the only difference that this will
  440.     force UUPOLL to execute the user command _always_, even if it terminates
  441.     due  to  a internal error or any other conditions.  To force the default
  442.     user  command  to be executed always, specify `-E' - not `-E ""' because
  443.     this will indicate `no user command'.
  444.  
  445.  
  446.     [-p [[+|-]Files]]  "poll only if pending files"
  447.  
  448.       This  option  indicates  UUPOLL to poll only if there is pending work,
  449.     i.e.   number  of  spooled  files, for the host.  Per default (or if the
  450.     option  `-p0'  is  given)  UUPOLL  does  no  such  check.  If `-p{N}' is
  451.     specified UUPOLL polls according to the following rules:
  452.  
  453.         N>0 : poll only if more or equal to N pending files
  454.         N=0 : poll independend of any pending files (same as not specifing
  455.               this option)
  456.         N<0 : poll only if less or equal to N pending files
  457.  
  458.       The  default (if '-p' is specified without an argument) is one or more
  459.     pending  files (so, '-p' is equal to '-p1').  This option was introduced
  460.     for `DEMAND' pollings.
  461.  
  462.  
  463.     [-P [[+|-]Bytes]] poll only if pending (k)bytes
  464.  
  465.       This  option  indicates  UUPOLL to poll only if there is pending work,
  466.     i.e.   number  of  spooled kilo bytes, for the host.  Per default (or if
  467.     the  option  `-P0'  is  given) UUPOLL does no such check.  If `-P{N}' is
  468.     specified UUPOLL polls according to the following rules:
  469.  
  470.         N>0 : poll only if more or equal to N KBytes data
  471.         N=0 : poll independend of any pending data (same as not specifing
  472.               this option)
  473.         N<0 : poll only if less or equal to N KBytes data
  474.  
  475.       The  default (if '-P' is specified without an argument) is one or more
  476.     pending files (so, '-P' is equal to '-P10').  This option was introduced
  477.     for `DEMAND' pollings.  Notice, this option has higher priority as '-p'!
  478.  
  479.  
  480.     [-a]  "always poll - ignore last status"
  481.  
  482.       This  forces  UUPOLL to start the polling procedure independend of its
  483.     status  of  the  last  session,  i.e.   whether  the  last  session  was
  484.     successful or not.
  485.  
  486.       UUPOLL  sets a enviroment variable (`UUPOLL.STAT.{hostname}') for each
  487.     host  automatically  after a polling session to `SUCCESSFUL' or `FAILED'
  488.     according  to  the  results of the polling procedure.  At startup UUPOLL
  489.     checks  for  this  variable  and  does  nothing if its status is already
  490.     `SUCCESSFUL'.  But if you specify this option UUPOLL treats it always as
  491.     `FAILED'  and  starts  the  polling  procedure  even if the last one was
  492.     already successful.  This should be used in the following context with a
  493.     `crontab', e.g.  here is `angle's crontab:
  494.  
  495.       :
  496.       | 05  03  *   *   *       trimsys
  497.       | 10  03  28  *   *       autoinpaths angle mailto
  498.     ... pathsurvey@stasys.sta.sub.org
  499.       | 10  03  *   *   *       uppub
  500.       | 15  03  *   *   *       bms batch
  501.       | 20  03  *   *   *       batchsite cyvaned
  502.       | 25  03  *   *   *       gettyctl run on
  503.       | 40  03  *   *   *       uupoll -p -c0 -d120 -r3 -t20 -Scyvaned
  504.     ... -u " -7 -p3"
  505.       | 45  03  *   *   *       gettyctl off shut
  506.       | 50  03  *   *   *       batchsite brumuc
  507.      !| 00  04  *   *   *       uupoll -a -c1 -d120 -r6 -t30 -Sbrumuc
  508.     ... -u " -7 -p3" -e poll.workup
  509.       | 55  04  *   *   *       uumsg.daily
  510.       | 59  04  *   *   *       shutdown
  511.       :
  512.  
  513.       :
  514.      !| 00  08  *   *   *       uupoll -c1 -d120 -r6 -t60 -Sbrumuc
  515.       | 59  08  *   *   *       shutdown
  516.       :
  517.  
  518.       As you can see, the cron-daemon starts a polling session every morning
  519.     at  four  o'clock  to  connect  to  host  `brumuc'.  As mentioned above,
  520.     `angle'  has  a reserved polling time at host `brumuc' from four to half
  521.     past  four.   So UUPOLL is started with a restriction time of 30 minutes
  522.     (of  course  this could be left, then UUPOLL calculates these 30 minutes
  523.     out of the UULIB:l.sys entry for host `brumuc).
  524.  
  525.       UUPOLL  now  connects  to  `brumuc'  with a maximum of 30 minutes.  If
  526.     there  would  be more data than `angle' could get in this time interval,
  527.     UUPOLL  breaks  at  half  past  four.   Then  the status of this polling
  528.     session  is  set  to  `FAILED'  which lets the second UUPOLL (started at
  529.     eight  o'clock)  to  go on with the transmission.  If the first sesssion
  530.     would be successful the second UUPOLL does nothing!
  531.  
  532.  
  533.  
  534.     [-c [Mode]]  "check for already spawned UUCICO"
  535.  
  536.       This option was introduced for special situations.  It tells UUPOLL to
  537.     check  for a running UUCICO process at startup.  Have a look again at my
  538.     crontab:
  539.  
  540.       :
  541.       | 25  03  *   *   *       gettyctl run on
  542.       | 40  03  *   *   *       uupoll -p -c0 -d120 -r3 -t20 -Scyvaned
  543.     ... -u " -7 -p3"
  544.       | 45  03  *   *   *       gettyctl off shut
  545.       :
  546.  
  547.       First,  the  background:   the  connection  `angle' <-> `cyvaned' is a
  548.     daily  DEMAND connection, i.e.  if one of these hosts have pending work,
  549.     it  polls  the  other.   To  implement  this  connection  we  could give
  550.     `cyvaned'  a  time  from  03:00-03:30  to  poll  `angle' and a time from
  551.     03:30-04:00  for `angle' to poll `cyvaned'.  Then at each host UUPOLL is
  552.     started  with  the `-p' option (see above) to poll only if pending work.
  553.     This  would  work  fine,  because  if  `cyvaned' had work it polls angle
  554.     first,  then  `angle'  will  not poll back even if there _was_ work, but
  555.     will poll if `cyvaned' hadn't polled.
  556.  
  557.       The  only  "problem"  is, that we had to reserve two(!) polling times!
  558.     To solve this "problem", we can use the `-c0' option from UUPOLL:
  559.  
  560.       We  reserve  only  one  polling  time  from  03:30  for  both  polling
  561.     directions.   As  you can see from 03:25-03:45 the GETTY command runs to
  562.     observe  the  phoneline  and  to  answer  incoming  calls.  This is done
  563.     because  `cyvaned'  tries  always  to  start  a  connection  first.   So
  564.     `cyvaned'  has  15  (actually 20 but it start dialing `angle' at 03:30!)
  565.     minutes  to  dial  `angle'.  If `cyvaned' didn't poll `angle' (due to no
  566.     pending  work) and `angle' has pending work, `angle' polls `cyvaned' ten
  567.     minutes  after  the  polling  time  interval  starts  (i.e.  03:40).  If
  568.     `cyvaned' polls `angle', `angle' (i.e.  UUPOLL on `angle') had to now at
  569.     03:40 if it should poll back or not.
  570.  
  571.       The `-p' option does a goof work only, if the connection would be less
  572.     than  10  minutes  (i.e.   the connection is finished at 03:40).  If the
  573.     connection  still  in  process, this doesn't work.  But the '-c0' option
  574.     tells  UUPOLL  to  abort  immediately  after startup if there is still a
  575.     connection active (i.e.  a still running UUCICO process).
  576.  
  577.       Another feature is `-c1':  This tells UUPOLL to break a UUCICO process
  578.     which  is  still active at UUPOLL startup.  This is useful when you want
  579.     your system to poll out even if there is still a active incoming polling
  580.     process (i.e.  a host is still polling your system).
  581.  
  582.  
  583.     [-j [Status]]  "switch/set job control status"
  584.  
  585.       UUPOLL can be disabled via this option, i.e.  you can forbid UUPOLL to
  586.     do  anything  (except  host  status)  until  you  permit it again.  `-j'
  587.     switches  the  status from `disabled' to `enabled' or vice versa.  `-j0'
  588.     disables,  `-j1'  enables  UUPOLL.   UUPOLL uses the enviroment variable
  589.     UUPOLL.JOBCTL to store the status of this flag.
  590.  
  591.     This option was introduced for crontab interventions.
  592.  
  593.  
  594.     [-i [Mode]]  "current host status information"
  595.  
  596.       This  option  tells  UUPOLL  not  to poll actually but to give you the
  597.     current host status.  This function can be used in conjunction with `-s'
  598.     to  display  a  particular  host status.  You can specify an argument to
  599.     this  option:  "0" for short host status (without the 72 hour chart) and
  600.     "1" for long hoststatus.  Specifing no argument to `-i' acts like `-i0',
  601.     i.e.  the short hoststatus is displayed.
  602.  
  603.     The short host status will look like the following:
  604.  
  605.       | UUPoll Host Status on angle          Sat Jun 06 20:24:28 1992
  606.       |
  607.       | remote host  : brumuc
  608.       | last polling : failed
  609.       |
  610.       | ACTIVE polling time intervall [#]    NEXT polling time intervall
  611.       | from Sat/19:00 to Sat/20:30          from Sun/04:00 to Sun/04:50
  612.       | total time 01:30, remaining 00:06    total time 00:50, in 07:36
  613.  
  614.     The long host status will look like the following:
  615.  
  616.       | UUPoll Host Status on angle                        Sat Jun 0 ...
  617.       |
  618.       | remote host  : brumuc                                   [|]  ...
  619.       | last polling : failed                                   [.]
  620.       |                                                              ...
  621.       | 55 ||...||.||.#............||...||.||.|............||...||.|
  622.       | 50 ||...||.||.#............||...||.||.|............||...||.| ...
  623.       | 45 ||...||.||.#........|...||...||.||.|........|...||...||.|
  624.       | 40 ||..|||.||.#........|...||..|||.||.|........|...||..|||.| ...
  625.       | 35 ||..|||.||.#........|...||..|||.||.|........|...||..|||.|
  626.       | 30 ||..|||.||.#........|...||..|||.||.|........|...||..|||.| ...
  627.       | 25 ||..|||.|||#X.......|...||..|||.|||||.......|...||..|||.|
  628.       | 20 ||..|||.|||##.......|...||..|||.|||||.......|...||..|||.| ...
  629.       | 15 ||..|||.|||##.......|...||..|||.|||||.......|...||..|||.|
  630.       | 10 ||....|..||##.......|...||....|..||||.......|...||....|.. ...
  631.       | 05 ||....|..||##.......|...||....|..||||.......|...||....|..
  632.       | 00 ||....|..||##.......|...||....|..||||.......|...||....|.. ...
  633.       |                ^
  634.       |    890123456789012301234567890123456789012301234567890123456 ...
  635.       |      1         2   Sun       1         2   Mon       1
  636.       |                                                              ...
  637.       | ACTIVE polling time intervall [#]    NEXT polling time inter
  638.       | from Sat/19:00 to Sat/20:30          from Sun/04:00 to Sun/0 ...
  639.       | total time 01:30, remaining 00:05    total time 00:50, in 07
  640.  
  641.       As  you  can  see  this will give you a full overview of all essential
  642.     polling information.  You will get
  643.  
  644.         - the local time (upper right hand corner)
  645.         - the remote host and its last polling status
  646.         - a 72 hour polling time chart (hours on x-axis, minutes on y-axis)
  647.         - information about the time interval which is currently active
  648.         - information about the next permitted time interval
  649.  
  650.     Look a while at this output to understand it and you will love it!
  651.  
  652.  
  653.     [-x Num]  "number of debuglevel"
  654.  
  655.       Because  UUPOLL  does no console output (except polling time violation
  656.     message  or  host  status)  until  you set the Runtime-Debugging you can
  657.     specify the debuglevel (0-9) with this option.  A level of zero means no
  658.     debugging info, a level of nine means full debug output to the console.
  659.  
  660.  
  661.     [-v]  "version info"
  662.     [-?]  "usage info"
  663.  
  664.       Specify  one of these options to let UUPOLL display either the version
  665.     page or the usage page to the console.
  666.  
  667.  
  668.  
  669.     8 - EXAMPLES
  670.  
  671.     $ uupoll
  672.  
  673.       This  is the simplest way to use UUPOLL.  It will extract the hostname
  674.     of  UULIB:config, does no retries and delays, calculates its restriction
  675.     timeout  to the current active time situation, spawns UUCICO via 'UUCICO
  676.     -s{defaulthost} -7', does no modem setup, polls only if the last polling
  677.     has failed and gives no console output.
  678.  
  679.     $ uupoll -i -scyvaned
  680.  
  681.       This  will  display  the  host  status  for  `cyvaned'.  No polling is
  682.     actually done.
  683.  
  684.     $ uupoll -a -r10 -scyvaned
  685.  
  686.       This  will  poll host `cyvaned', ignore the current host status to and
  687.     do a maximum of 10 retries if it couldn't connect.
  688.  
  689.     $ uupoll -a -p -Sbrumuc
  690.  
  691.       Now  UUPOLL  would  always  poll  host  `brumuc',  even  if there is a
  692.     reserved  time  currently  active  (`-S')  or  if  the  last  status was
  693.     successful (`-a'), but not if there is no pending work for this site.
  694.  
  695.     $ uupoll -a -r10 -p3 -d120 -t30 -scyvaned -e poll.workup
  696.  
  697.       Now UUPOLL would poll host `cyvaned' idependently of the last session,
  698.     but  only  if  at least three command files are waiting for `cyvaned' in
  699.     the  spool directory.  UUPOLL has thirty minutes to operate, should do a
  700.     maxium  of  ten retries and waits two minutes between each retry.  After
  701.     completing  the  polling  session  successful  UUPOLL should execute the
  702.     script file `poll.workup' (script bit set!).
  703.  
  704.  
  705.     9 - REPORTS
  706.  
  707.       If  you  have  any questions, incitements, comments, criticisms or bug
  708.     reports, please contact me via email and let me know about it!
  709.  
  710.  
  711.                                            Ralf S. Engelschall
  712.                                            rse@angle.sub.org
  713.  
  714.