Annotation of coherent/g/usr/lib/uucp/tay104/TODO, revision 1.1.1.1

1.1       root        1: This is a list of things to do for the Taylor UUCP package.  Please
                      2: feel free to work on any of them.  You may want to check with me first
                      3: to make sure that nobody else is working on them as well.
                      4: 
                      5: Some of these are my thoughts, but most are suggestions from other
                      6: people; I have tried to give credit.  They are in the order I received
                      7: them; the missing numbers have already been implemented.
                      8: 
                      9: Just because something is on the list doesn't mean that I necessarily
                     10: think it is a good idea.  It does mean that I think it's worth
                     11: thinking about.
                     12: 
                     13: 2.
                     14: 
                     15: John Cowan <[email protected]> says:
                     16: 
                     17: >I think you should accept a broader range of time specifications.
                     18: >Consider using getdate() (from your handy Usenet news source code)
                     19: >with its high-powered yacc parser.
                     20: 
                     21: Of course, getdate() accepts a single date, but we want a range.  A
                     22: better syntax would be certainly be nice.
                     23: 
                     24: 9.
                     25: 
                     26: Gordon Burditt <[email protected]> warns about modifications
                     27: to the TZ environment variable, to fool uucico into dialing out at an
                     28: inappropriate time.
                     29: 
                     30: 10.
                     31: 
                     32: Gordon Burditt <[email protected]> says:
                     33: 
                     34: >(4) Less important, because few people will have this problem, is a 
                     35: >port-specific dialcodes file.  Why?  Well, one system I had was connected
                     36: >to 2 inside lines "dial 9 for outside line", and one outside line (which
                     37: >doesn't want the 9).  A number of the systems called were "inside", so
                     38: >you didn't add the 9 on those lines dialing from inside, but you did add 
                     39: >"390" to the 4-digit number if you dialed it via "outside".  Also not 
                     40: >unheard of are systems with 2 outside lines that are local to different 
                     41: >area codes, or one local outside line and one WATS line (which MUST
                     42: >have an area code).
                     43: >Example:
                     44: >      inside-line Dialcodes           outside-line Dialcodes
                     45: >      pbx     ""                      pbx     "390"
                     46: >      local   "9"                     local   ""
                     47: >      nyc     "9-1212"                nyc     "1212"
                     48: 
                     49: 12.
                     50: 
                     51: Ralf E. Stranzenbach <[email protected]> says:
                     52: 
                     53: >It would be nice to also have the option of running a shell script each time  
                     54: >uucico connects/disconnects a systen. I do not mean shell scripts for dial/in.  
                     55: >I would like to do some accounting and batching when the connection  
                     56: >establishes.
                     57: 
                     58: 13.
                     59: 
                     60: [email protected] (Leslie Mikesell) writes:
                     61: 
                     62: >>local-send /usr/spool/uucppublic !/usr/spool/uucpublic/private
                     63: >>
                     64: >>The directories are searched from left to right, and the last one to
                     65: >>match determines whether the file may be sent or not.  This is
                     66: >>slightly more general than NOWRITE, since it permits a public
                     67: >>directory within a private directory within a public directory,
                     68: >>although probably nobody will ever want that.
                     69: >
                     70: >Interesting... The obvious enhancement is to generalize to shell-like
                     71: >wild cards for the READ/WRITE/COMMANDS entries.
                     72: 
                     73: 14.
                     74: 
                     75: Should there be a way for chat scripts to specify the parity to
                     76: generate?  I don't think there's much point to specifying what parity
                     77: to accept.
                     78: 
                     79: 17.
                     80: 
                     81: The -b and -s switches to uux are not implemented by uuxqt.
                     82: 
                     83: 18.
                     84: 
                     85: If we are supposed to call a system back, we should do it immediately
                     86: rather than merely queuing up an empty command file.
                     87: 
                     88: 22.
                     89: 
                     90: Add an ftp port type which uses anonymous ftp rather than any of the
                     91: UUCP protocols to do file transfers.  This would allow ftp work to be
                     92: done late at night, and allow neighbors of cooperative Internet sites
                     93: to use UUCP forwarding for anonymous FTP.
                     94: 
                     95: 31.
                     96: 
                     97: David Nugent: add a -C option to uucico to only call the system if
                     98: there is work to do.
                     99: 
                    100: 32.
                    101: 
                    102: It would be nice if uucico could sleep until a line was available.
                    103: This is complicated by the possibility of wanting to wait for any of
                    104: several different lines, and one would really want some sort of
                    105: semaphore function to do it right.  If the available lines could be
                    106: sorted, then each could be assigned to a byte in a line lock file.
                    107: Looking for a line could be done by sleeping on a read lock on all
                    108: possible lines.  Once it came through, write locks would be attempted.
                    109: If they all failed, somebody else snuck in, so you would sleep on a
                    110: read lock again.  This isn't great because a process could be starved,
                    111: but it might be better than nothing.
                    112: 
                    113: This could be tied in to uucp and uux, such that they wouldn't
                    114: actually fire up uucico unless a line was known to be available; an
                    115: additional switch would be used to fire up uucico anyhow (or one could
                    116: switch the default behaviour and the switch).
                    117: 
                    118: So how do you sort the lines?  You could just use the index in the
                    119: port (or Devices) file, but what if multiple ports used the same
                    120: physical device?  Hmmm.
                    121: 
                    122: 43.
                    123: 
                    124: David Nugent: it would be nice to be able to set debugging, log, and
                    125: statistics files on a site by site basis.
                    126: Brian Murrell: heck, set those files on a port by port basis as well.
                    127: 
                    128: 74.
                    129: 
                    130: Yanek Martinson: allow each system to independently choose whether to
                    131: permit shell execution.
                    132: 
                    133: 81.
                    134: 
                    135: Marty Shannon: log reason for dial failure (chat-fail string) in
                    136: .Status file.
                    137: 
                    138: 83.
                    139: 
                    140: Switch between 'M' and 'S' correctly in the BNU log file output.
                    141: 
                    142: 86.
                    143: 
                    144: Les Mikesell: allow a separate program to be specified to handle the
                    145: communications with a particular system.
                    146: 
                    147: 105.
                    148: 
                    149: T. William Wells: close and open the Debug file after each file
                    150: transfer.  Alternatively, cycle through a series of Debug file names
                    151: every 1000 lines or so.
                    152: 
                    153: 106.
                    154: 
                    155: Marty Shannon: add a time command for ports, to specify when they may
                    156: be used.
                    157: 
                    158: 115.
                    159: 
                    160: T. William Wells: new options for uustat:
                    161:        -i display job ids only
                    162: Also, there should perhaps be a configuration option to request uustat
                    163: to only display jobs submitted by the user running uustat, except for
                    164: root and uucp.
                    165: 
                    166: 117.
                    167: 
                    168: Marc Unangst: provide some way to change the debugging level of a
                    169: running uucico.  T. William Wells suggests having it read a file to
                    170: change arbitrary configuration information, although obviously one has
                    171: to be careful of what gets changed while a connection is active.
                    172: 
                    173: 120.
                    174: 
                    175: Jarmo Raiha: new chat-fail commands: one to not update the status file
                    176: and require a retry wait, and one to permit the string to occur a few
                    177: times before reporting an error.
                    178: 
                    179: 124.
                    180: 
                    181: Peter da Silva: perhaps there should be a ``chat-end-program'' command
                    182: to let a program be run after the initial handshake has been completed
                    183: and the protocol has been selected and turned on.  This would let
                    184: people run stty to change their terminal parameters.
                    185: 
                    186: 128.
                    187: 
                    188: Richard Stallman: have an interactive program to set up a chat script.
                    189: It would let you type directly to the port, recording what you type as
                    190: send strings and recording what comes back from the other side as
                    191: expect strings.
                    192: 
                    193: 129.
                    194: 
                    195: Use POSIX fcntl locks when possible instead of creating a lock file.
                    196: 
                    197: 130.
                    198: 
                    199: Chip Salzenberg: BSD lets you override the timeout for a particular
                    200: expect string by using a trailing ~.
                    201: 
                    202: 138.
                    203: 
                    204: T. William Wells: BNU apparently uses a file named A.whatever to hold
                    205: the line number reached in current C. file processing.  This is a
                    206: hack, and won't work right with size control anyhow, but
                    207: fsysdep_did_work could, for example, clobber the first byte in the
                    208: line to a # or something to mark that it had been finished.  Still a
                    209: hack, but a better one.
                    210: 
                    211: 139.
                    212: 
                    213: Patrick Smith: incorporate patches to generate full debugging traces
                    214: with less debugging file overhead.  The debugging file repeats too
                    215: much information at great length right now--not good.
                    216: 
                    217: 141.
                    218: 
                    219: Franc,ois Pinard: batch up pauses and delays in chat scripts and do
                    220: them all at once in a single system call.  This is particularly useful
                    221: for pauses on systems which don't support subsecond sleeps.  For
                    222: everything else it's a fairly minor optimization.
                    223: 
                    224: 142.
                    225: 
                    226: Franc,ois Pinard: give uustat an option to requeue jobs to another
                    227: system.  This only makes a lot of sense for rmail executions, but it's
                    228: fairly easy to do for any type of command.  I think uucico does all
                    229: the file checking needed to ensure that this doesn't break security,
                    230: but that should be double-checked.
                    231: 
                    232: 144.
                    233: 
                    234: T. William Wells: add a -g option to uucico to permit specifying the
                    235: maximum grade to be transferred at that time.  This could restrict the
                    236: timegrade command further, but should not be permitted to override it.
                    237: 
                    238: 145.
                    239: 
                    240: T. William Wells: if uucico or uuxqt get started with bad arguments,
                    241: put an indication in the log file since stderr may be /dev/null.
                    242: 
                    243: 146.
                    244: 
                    245: Richard Todd: it would be nice to sometimes be able to request the
                    246: other side to turn on debugging.
                    247: 
                    248: 147.
                    249: 
                    250: Bart Schaefer: some more possible options for uucico:
                    251:     -R reverse roles (hangup immediately).  Not too exciting.
                    252:     some method to restrict calling to particular systems.
                    253: 
                    254: 148.
                    255: 
                    256: Jarmo Raiha: some method to control the work queue at the remote end.
                    257: This could get awfully general, though.
                    258: 
                    259: 149.
                    260: 
                    261: The interaction of the time command and defaults can be confusing,
                    262: since any time command in the actual system entry, even a fairly
                    263: specific one, will wipe out the default entry.  Not sure what can be
                    264: done about this.
                    265: 
                    266: 150.
                    267: 
                    268: Jarmo Raiha: should there be some way to specify modem initialization
                    269: strings when uucico is hanging on a port with -l or -e?  This would
                    270: presumably require a new type of chat script associated with a dialer.
                    271: 
                    272: 151.
                    273: 
                    274: Petri Helenius: log complete CONNECT string reported by modem, so that
                    275: the baud rate is recorded in the log file.
                    276: 
                    277: 152.
                    278: 
                    279: Marc Evans: let the protocol selection be based on the CONNECT string,
                    280: so that different protocols could be selected based on what type of
                    281: connection was made.
                    282: 
                    283: 153.
                    284: 
                    285: Chris Lewis: provide a signal to get a core dump even on systems which
                    286: won't do core dumps if the uid is not the euid.  One could catch a
                    287: signal, call setuid (getuid ()), and then raise the signal again.
                    288: Unfortunately the core dump has to wind up in a directory which is
                    289: world writable, so that the process is able to create the core file,
                    290: but is not world readable, since that would permit anybody to read the
                    291: core dump file and extract private information from it.
                    292: 
                    293: 154.
                    294: 
                    295: Les Mikesell: write a new version of dial.o, with provisions for
                    296: running a chat script.
                    297: 
                    298: 155.
                    299: 
                    300: Scott Blachowicz: perhaps there should be some way to telling uucico
                    301: to not log certain errors.  This could get fairly complex, though.
                    302: 
                    303: 156.
                    304: 
                    305: Franc,ois Pinard: have uustat -m report the time of the last
                    306: successful conversation when reporting a failure.
                    307: 
                    308: 158.
                    309: 
                    310: Thomas Fischer: should there be a way to completely disable an entry
                    311: in the sys, port or dial file?  Such as a ``disable'' command?
                    312: 
                    313: 159.
                    314: 
                    315: Petri Helenius: when uuxqt -s is invoked, lock uuxqt for the system so
                    316: that only one uuxqt is invoked per system.  If the -c option is used,
                    317: don't lock on a per system basis, and ignore any per system locks
                    318: (regardless of -s).  If neither option is used, respect existing
                    319: system and command locks, and do any other type of file.
                    320: 
                    321: 161.
                    322: 
                    323: Scott Blachowicz: provide some sort of include mechanism for the
                    324: configuration files.
                    325: 
                    326: 162.
                    327: 
                    328: Chris Lewis: add uuxqtpolicy command, probably in config, supporting
                    329: the following values which determine when uuxqt should be run:
                    330:        - never (let cron or something else worry about it)
                    331:        - perinvocation (when uucico exits for good - current behaviour)
                    332:        - persite (when uucico terminates a conversation - HDBish)
                    333:        - periodic (per 5 or 10 incoming X. files - BSDish)
                    334:        - perturnaround?
                    335: 
                    336: 163.
                    337: 
                    338: Sort jobs in the send queue by size.  Pretty easy.
                    339: 
                    340: 164.
                    341: 
                    342: Ed Carp: preserve files if uuxqt execution fails.
                    343: 
                    344: 165.
                    345: 
                    346: Marc Sheldon: use exit codes from <sysexits.h> in uux and uucp.
                    347: 
                    348: 166.
                    349: 
                    350: Chip Salzenberg: allow chat failure strings to specify a retry time.
                    351: 
                    352: 167.
                    353: 
                    354: Gregory Bond: allow a dialer sequence for a TCP port, so you can make
                    355: a TCP connection to a modem and then dial out.
                    356: 
                    357: 168.
                    358: 
                    359: Jose A. Manas: allow a maximum connect time, after which we try to
                    360: hang up the connection.  This requires a protocol extension, since
                    361: there's no way to force the other side to hang up.  The best we can do
                    362: without an extension is refuse to send any new jobs ourselves.  Of
                    363: course, we could just drop the connection.
                    364: 
                    365: 169.
                    366: 
                    367: Franc,ois Pinard: when given uustat -k00FC, check each possible job ID
                    368: and use it if there is an unambiguous one.
                    369: 
                    370: 170.
                    371: 
                    372: T. William Wells: if ! HAVE_SETREUID && ! HAVE_SAVED_SETUID, fork a
                    373: subprocesses to revoke setuid and read the file over a pipe.
                    374: 
                    375: 171.
                    376: 
                    377: Provide some option to have the internal uuconf functions not start
                    378: with an underscore.
                    379: 
                    380: 172.
                    381: 
                    382: T. William Wells: have some way to configure the parity for cu.
                    383: 
                    384: 173.
                    385: 
                    386: Gert Doering: uuchk should display unknown system information.
                    387: 
                    388: 175.
                    389: 
                    390: T. William Wells:
                    391: Cu will not let itself be interrupted before the connection is
                    392: established. If the chat script doesn't write something, cu does
                    393: something odd, I've forgotten exactly what. Cu takes an
                    394: inordinate amount of time after the line drops to exit. Somebody,
                    395: cu, I think, but maybe uucico, drops dtr twice sometimes. Again,
                    396: somebody will attempt to write after a hangup signal has been
                    397: received. Once a hangup has been received, I/O should not be
                    398: attempted. Among other things this will save the bacon of those
                    399: who have brain damaged serial drivers (FAS, sigh, is among them)
                    400: that don't handle output properly on a dropped line.
                    401: 
                    402: Me:
                    403: Note that sometimes you do want to write to a line after receiving a
                    404: hangup signal.  For example, you might want to use ATZ to reset a
                    405: modem.
                    406: 
                    407: 176.
                    408: 
                    409: Hans-Dieter Doll: provide some way (another escape sequence) to pass
                    410: the protocol to a chat-program.  Or, allow the protocol as an argument
                    411: to the chat script command, which is more general, but maybe a bit too
                    412: fancy.
                    413: 
                    414: 177.
                    415: 
                    416: Nickolay Saukh: use a default port for cu, you can just do ``cu
                    417: number''.
                    418: 
                    419: 178.
                    420: 
                    421: Don Phillips: should there be some way to restrict of grade of
                    422: transfers even when the other system places the call?
                    423: 
                    424: 179.
                    425: 
                    426: Nickolay Saukh: add something to chat scripts to specify the timeout
                    427: for an expect string, e.g. AT\c OK\W3 to wait for 3 seconds.  Except
                    428: that perhaps the unit should not be seconds.  Berkeley apparently uses
                    429: ~number, not \W number, but I don't see any reason to prevent use of
                    430: the ~ character in an expect string.
                    431: 
                    432: 180.
                    433: 
                    434: Nickolay Saukh: if we have received a partial file, request the remote
                    435: system to start sending from that point.  We currently accept SVR4
                    436: style remote file positioning requests, but we do not generate them.
                    437: 
                    438: 181.
                    439: 
                    440: Mark Powell: provide some way to restrict file transfer by size as
                    441: well as grade?  One way would be to let uux select the grade based on
                    442: the file size.
                    443: 
                    444: 182.
                    445: 
                    446: Mark Powell: permit using multiple timetables in a single time
                    447: statement.
                    448: 
                    449: 183.
                    450: 
                    451: Optionally check for interrupts in fcopy_file, since it can take a
                    452: long time to copy a file named in a uucp request.
                    453: 
                    454: 184.
                    455: 
                    456: Ian Moran: if an attempt is made to a copy a file to a directory which
                    457: denies write permission, perhaps the file should be saved somewhere.
                    458: It must be saved in a private location, though.
                    459: 
                    460: 185.
                    461: 
                    462: A syntax error in a command received from the remote system should not
                    463: hold up the queue.  Unfortunately, I don't know what can be done
                    464: except deny the command and report it.  Reporting a garbled command
                    465: error should report the command correctly, rather than just the first
                    466: character.
                    467: 
                    468: 186.
                    469: 
                    470: Franc,ois Pinard: have an option to control nostop vs. stop on the cu
                    471: command line.
                    472: 
                    473: 187.
                    474: 
                    475: Fix the notion of %nostop to be SVID compatible.
                    476: 
                    477: 188.
                    478: 
                    479: Frank Conrad: provide a means to set the strip mode for a port, to
                    480: make it easy to use it from cu.
                    481: 
                    482: 189.
                    483: 
                    484: Marc Unangst: there should be a way to specify that a system should
                    485: only be called if there are jobs of a certain grade, but if the system
                    486: is called then jobs of any grade should be transferred.  This
                    487: basically means splitting the ``timegrade'' command into two commands:
                    488: ``place-call-timegrade'' and ``transfer-timegrade''.  Or maybe another
                    489: optional argument to ``timegrade'':
                    490:     timegrade grade time-string [retry] [transfer-any]
                    491: not to mention
                    492:     time time-string [retry] [transfer-any]
                    493: Or maybe a separate command for a system or port like
                    494:     transfer-any BOOL
                    495: 
                    496: 190.
                    497: 
                    498: Chip Salzenberg: it would be really nice if uucico could automatically
                    499: figure out when it could use an E command, so that uux didn't have to
                    500: generate it and so that uucico could use with other versions of uux.
                    501: Unfortunately, it would require uucico to read the execution file to
                    502: see if it were suitable; this would be complex, but it would probably
                    503: be worth it since normally the execution file would wind up not being
                    504: sent.  Of course, the current method works too; it's just harder to
                    505: combine with other versions of UUCP.
                    506: 
                    507: 191.
                    508: 
                    509: Brian J. Murrell: should there be a way to cu a specific alternate?
                    510: 
                    511: 192.
                    512: 
                    513: Andrew A. Chernov: Perhaps cu -pport system should be able to try
                    514: different alternates for the system, because there might be different
                    515: phone numbers to try.
                    516: 
                    517: 193.
                    518: 
                    519: Brian J. Murrell: it would be nice to be able to ^C a cu chat script
                    520: if you know it's going to fail.  Right now you have to use ^\.
                    521: 
                    522: 194.
                    523: 
                    524: Steven S. Dick: have some way to force uucico off the phone at a
                    525: certain time.  If that is done, it might be cool to have some way to
                    526: predict how long a file transfer will take, and not do it if it will
                    527: take too long.  But, if doing file restart, you can just quit and then
                    528: pick it up later.
                    529: 
                    530: 195.
                    531: 
                    532: Franc,ois Pinard: if the disk fills up, or some other error occurs,
                    533: while receiving a file, perhaps it would make sense to turn the
                    534: connection around immediately and see if the other side had anything
                    535: to do, and then try again later.  This would require a protocol
                    536: extension.  I don't know if it's worth it.  The code should be checked
                    537: to see how well it handles a disk full situation.
                    538: 
                    539: 196.
                    540: 
                    541: For real adjustability, provide some mechanism for picking the lead
                    542: characters to use for the shell scripts, between : and #!.
                    543: 
                    544: 197.
                    545: 
                    546: Try alternate IP addresses if there are any.
                    547: 
                    548: 198.
                    549: 
                    550: Lele Gaifax: mention the device in Stats, and provide some way to
                    551: associate the entry in Log with the entry in Stats.
                    552: 
                    553: 199.
                    554: 
                    555: Michael Richardson: provide some way to turn on parity for the login
                    556: chat, since some systems apparently require it.  Provide some way for
                    557: cu to control parity after connecting.
                    558: 
                    559: 200.
                    560: 
                    561: Chip Salzenberg: add max-remote-debug to config.
                    562: 
                    563: 201.
                    564: 
                    565: Gert Doering: change the timeout message in chat scripts to reflect
                    566: which chat script timed out (dialer or login).
                    567: 
                    568: 202.
                    569: 
                    570: Bill Foote: have uuchk check whether a system is defined more than
                    571: once.
                    572: 
                    573: 203.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.