aboutsummaryrefslogtreecommitdiff
path: root/gnu/libexec/uucp/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/libexec/uucp/TODO')
-rw-r--r--gnu/libexec/uucp/TODO573
1 files changed, 573 insertions, 0 deletions
diff --git a/gnu/libexec/uucp/TODO b/gnu/libexec/uucp/TODO
new file mode 100644
index 000000000000..a1cc643ab52f
--- /dev/null
+++ b/gnu/libexec/uucp/TODO
@@ -0,0 +1,573 @@
+This is a list of things to do for the Taylor UUCP package. Please
+feel free to work on any of them. You may want to check with me first
+to make sure that nobody else is working on them as well.
+
+Some of these are my thoughts, but most are suggestions from other
+people; I have tried to give credit. They are in the order I received
+them; the missing numbers have already been implemented.
+
+Just because something is on the list doesn't mean that I necessarily
+think it is a good idea. It does mean that I think it's worth
+thinking about.
+
+2.
+
+John Cowan <cowan@snark.thyrsus.com> says:
+
+>I think you should accept a broader range of time specifications.
+>Consider using getdate() (from your handy Usenet news source code)
+>with its high-powered yacc parser.
+
+Of course, getdate() accepts a single date, but we want a range. A
+better syntax would be certainly be nice.
+
+9.
+
+Gordon Burditt <gordon@sneaky.lonestar.org> warns about modifications
+to the TZ environment variable, to fool uucico into dialing out at an
+inappropriate time.
+
+10.
+
+Gordon Burditt <gordon@sneaky.lonestar.org> says:
+
+>(4) Less important, because few people will have this problem, is a
+>port-specific dialcodes file. Why? Well, one system I had was connected
+>to 2 inside lines "dial 9 for outside line", and one outside line (which
+>doesn't want the 9). A number of the systems called were "inside", so
+>you didn't add the 9 on those lines dialing from inside, but you did add
+>"390" to the 4-digit number if you dialed it via "outside". Also not
+>unheard of are systems with 2 outside lines that are local to different
+>area codes, or one local outside line and one WATS line (which MUST
+>have an area code).
+>Example:
+> inside-line Dialcodes outside-line Dialcodes
+> pbx "" pbx "390"
+> local "9" local ""
+> nyc "9-1212" nyc "1212"
+
+12.
+
+Ralf E. Stranzenbach <ralf@reswi.ruhr.de> says:
+
+>It would be nice to also have the option of running a shell script each time
+>uucico connects/disconnects a systen. I do not mean shell scripts for dial/in.
+>I would like to do some accounting and batching when the connection
+>establishes.
+
+13.
+
+les@chinet.chi.il.us (Leslie Mikesell) writes:
+
+>>local-send /usr/spool/uucppublic !/usr/spool/uucpublic/private
+>>
+>>The directories are searched from left to right, and the last one to
+>>match determines whether the file may be sent or not. This is
+>>slightly more general than NOWRITE, since it permits a public
+>>directory within a private directory within a public directory,
+>>although probably nobody will ever want that.
+>
+>Interesting... The obvious enhancement is to generalize to shell-like
+>wild cards for the READ/WRITE/COMMANDS entries.
+
+14.
+
+Should there be a way for chat scripts to specify the parity to
+generate? I don't think there's much point to specifying what parity
+to accept.
+
+17.
+
+The -b and -s switches to uux are not implemented by uuxqt.
+
+18.
+
+If we are supposed to call a system back, we should do it immediately
+rather than merely queuing up an empty command file.
+
+22.
+
+Add an ftp port type which uses anonymous ftp rather than any of the
+UUCP protocols to do file transfers. This would allow ftp work to be
+done late at night, and allow neighbors of cooperative Internet sites
+to use UUCP forwarding for anonymous FTP.
+
+31.
+
+David Nugent: add a -C option to uucico to only call the system if
+there is work to do.
+
+32.
+
+It would be nice if uucico could sleep until a line was available.
+This is complicated by the possibility of wanting to wait for any of
+several different lines, and one would really want some sort of
+semaphore function to do it right. If the available lines could be
+sorted, then each could be assigned to a byte in a line lock file.
+Looking for a line could be done by sleeping on a read lock on all
+possible lines. Once it came through, write locks would be attempted.
+If they all failed, somebody else snuck in, so you would sleep on a
+read lock again. This isn't great because a process could be starved,
+but it might be better than nothing.
+
+This could be tied in to uucp and uux, such that they wouldn't
+actually fire up uucico unless a line was known to be available; an
+additional switch would be used to fire up uucico anyhow (or one could
+switch the default behaviour and the switch).
+
+So how do you sort the lines? You could just use the index in the
+port (or Devices) file, but what if multiple ports used the same
+physical device? Hmmm.
+
+43.
+
+David Nugent: it would be nice to be able to set debugging, log, and
+statistics files on a site by site basis.
+Brian Murrell: heck, set those files on a port by port basis as well.
+
+74.
+
+Yanek Martinson: allow each system to independently choose whether to
+permit shell execution.
+
+81.
+
+Marty Shannon: log reason for dial failure (chat-fail string) in
+.Status file.
+
+83.
+
+Switch between 'M' and 'S' correctly in the BNU log file output.
+
+86.
+
+Les Mikesell: allow a separate program to be specified to handle the
+communications with a particular system.
+
+105.
+
+T. William Wells: close and open the Debug file after each file
+transfer. Alternatively, cycle through a series of Debug file names
+every 1000 lines or so.
+
+106.
+
+Marty Shannon: add a time command for ports, to specify when they may
+be used.
+
+115.
+
+T. William Wells: new options for uustat:
+ -i display job ids only
+Also, there should perhaps be a configuration option to request uustat
+to only display jobs submitted by the user running uustat, except for
+root and uucp.
+
+117.
+
+Marc Unangst: provide some way to change the debugging level of a
+running uucico. T. William Wells suggests having it read a file to
+change arbitrary configuration information, although obviously one has
+to be careful of what gets changed while a connection is active.
+
+120.
+
+Jarmo Raiha: new chat-fail commands: one to not update the status file
+and require a retry wait, and one to permit the string to occur a few
+times before reporting an error.
+
+124.
+
+Peter da Silva: perhaps there should be a ``chat-end-program'' command
+to let a program be run after the initial handshake has been completed
+and the protocol has been selected and turned on. This would let
+people run stty to change their terminal parameters.
+
+128.
+
+Richard Stallman: have an interactive program to set up a chat script.
+It would let you type directly to the port, recording what you type as
+send strings and recording what comes back from the other side as
+expect strings.
+
+129.
+
+Use POSIX fcntl locks when possible instead of creating a lock file.
+
+130.
+
+Chip Salzenberg: BSD lets you override the timeout for a particular
+expect string by using a trailing ~.
+
+138.
+
+T. William Wells: BNU apparently uses a file named A.whatever to hold
+the line number reached in current C. file processing. This is a
+hack, and won't work right with size control anyhow, but
+fsysdep_did_work could, for example, clobber the first byte in the
+line to a # or something to mark that it had been finished. Still a
+hack, but a better one.
+
+139.
+
+Patrick Smith: incorporate patches to generate full debugging traces
+with less debugging file overhead. The debugging file repeats too
+much information at great length right now--not good.
+
+141.
+
+Franc,ois Pinard: batch up pauses and delays in chat scripts and do
+them all at once in a single system call. This is particularly useful
+for pauses on systems which don't support subsecond sleeps. For
+everything else it's a fairly minor optimization.
+
+142.
+
+Franc,ois Pinard: give uustat an option to requeue jobs to another
+system. This only makes a lot of sense for rmail executions, but it's
+fairly easy to do for any type of command. I think uucico does all
+the file checking needed to ensure that this doesn't break security,
+but that should be double-checked.
+
+144.
+
+T. William Wells: add a -g option to uucico to permit specifying the
+maximum grade to be transferred at that time. This could restrict the
+timegrade command further, but should not be permitted to override it.
+
+145.
+
+T. William Wells: if uucico or uuxqt get started with bad arguments,
+put an indication in the log file since stderr may be /dev/null.
+
+146.
+
+Richard Todd: it would be nice to sometimes be able to request the
+other side to turn on debugging.
+
+147.
+
+Bart Schaefer: some more possible options for uucico:
+ -R reverse roles (hangup immediately). Not too exciting.
+ some method to restrict calling to particular systems.
+
+148.
+
+Jarmo Raiha: some method to control the work queue at the remote end.
+This could get awfully general, though.
+
+149.
+
+The interaction of the time command and defaults can be confusing,
+since any time command in the actual system entry, even a fairly
+specific one, will wipe out the default entry. Not sure what can be
+done about this.
+
+150.
+
+Jarmo Raiha: should there be some way to specify modem initialization
+strings when uucico is hanging on a port with -l or -e? This would
+presumably require a new type of chat script associated with a dialer.
+
+151.
+
+Petri Helenius: log complete CONNECT string reported by modem, so that
+the baud rate is recorded in the log file.
+
+152.
+
+Marc Evans: let the protocol selection be based on the CONNECT string,
+so that different protocols could be selected based on what type of
+connection was made.
+
+153.
+
+Chris Lewis: provide a signal to get a core dump even on systems which
+won't do core dumps if the uid is not the euid. One could catch a
+signal, call setuid (getuid ()), and then raise the signal again.
+Unfortunately the core dump has to wind up in a directory which is
+world writable, so that the process is able to create the core file,
+but is not world readable, since that would permit anybody to read the
+core dump file and extract private information from it.
+
+154.
+
+Les Mikesell: write a new version of dial.o, with provisions for
+running a chat script.
+
+155.
+
+Scott Blachowicz: perhaps there should be some way to telling uucico
+to not log certain errors. This could get fairly complex, though.
+
+156.
+
+Franc,ois Pinard: have uustat -m report the time of the last
+successful conversation when reporting a failure.
+
+158.
+
+Thomas Fischer: should there be a way to completely disable an entry
+in the sys, port or dial file? Such as a ``disable'' command?
+
+159.
+
+Petri Helenius: when uuxqt -s is invoked, lock uuxqt for the system so
+that only one uuxqt is invoked per system. If the -c option is used,
+don't lock on a per system basis, and ignore any per system locks
+(regardless of -s). If neither option is used, respect existing
+system and command locks, and do any other type of file.
+
+161.
+
+Scott Blachowicz: provide some sort of include mechanism for the
+configuration files.
+
+162.
+
+Chris Lewis: add uuxqtpolicy command, probably in config, supporting
+the following values which determine when uuxqt should be run:
+ - never (let cron or something else worry about it)
+ - perinvocation (when uucico exits for good - current behaviour)
+ - persite (when uucico terminates a conversation - HDBish)
+ - periodic (per 5 or 10 incoming X. files - BSDish)
+ - perturnaround?
+
+163.
+
+Sort jobs in the send queue by size. Pretty easy.
+
+164.
+
+Ed Carp: preserve files if uuxqt execution fails.
+
+165.
+
+Marc Sheldon: use exit codes from <sysexits.h> in uux and uucp.
+
+166.
+
+Chip Salzenberg: allow chat failure strings to specify a retry time.
+
+167.
+
+Gregory Bond: allow a dialer sequence for a TCP port, so you can make
+a TCP connection to a modem and then dial out.
+
+168.
+
+Jose A. Manas: allow a maximum connect time, after which we try to
+hang up the connection. This requires a protocol extension, since
+there's no way to force the other side to hang up. The best we can do
+without an extension is refuse to send any new jobs ourselves. Of
+course, we could just drop the connection.
+
+169.
+
+Franc,ois Pinard: when given uustat -k00FC, check each possible job ID
+and use it if there is an unambiguous one.
+
+170.
+
+T. William Wells: if ! HAVE_SETREUID && ! HAVE_SAVED_SETUID, fork a
+subprocesses to revoke setuid and read the file over a pipe.
+
+171.
+
+Provide some option to have the internal uuconf functions not start
+with an underscore.
+
+172.
+
+T. William Wells: have some way to configure the parity for cu.
+
+173.
+
+Gert Doering: uuchk should display unknown system information.
+
+175.
+
+T. William Wells:
+Cu will not let itself be interrupted before the connection is
+established. If the chat script doesn't write something, cu does
+something odd, I've forgotten exactly what. Cu takes an
+inordinate amount of time after the line drops to exit. Somebody,
+cu, I think, but maybe uucico, drops dtr twice sometimes. Again,
+somebody will attempt to write after a hangup signal has been
+received. Once a hangup has been received, I/O should not be
+attempted. Among other things this will save the bacon of those
+who have brain damaged serial drivers (FAS, sigh, is among them)
+that don't handle output properly on a dropped line.
+
+Me:
+Note that sometimes you do want to write to a line after receiving a
+hangup signal. For example, you might want to use ATZ to reset a
+modem.
+
+176.
+
+Hans-Dieter Doll: provide some way (another escape sequence) to pass
+the protocol to a chat-program. Or, allow the protocol as an argument
+to the chat script command, which is more general, but maybe a bit too
+fancy.
+
+177.
+
+Nickolay Saukh: use a default port for cu, you can just do ``cu
+number''.
+
+178.
+
+Don Phillips: should there be some way to restrict of grade of
+transfers even when the other system places the call?
+
+179.
+
+Nickolay Saukh: add something to chat scripts to specify the timeout
+for an expect string, e.g. AT\c OK\W3 to wait for 3 seconds. Except
+that perhaps the unit should not be seconds. Berkeley apparently uses
+~number, not \W number, but I don't see any reason to prevent use of
+the ~ character in an expect string.
+
+180.
+
+Nickolay Saukh: if we have received a partial file, request the remote
+system to start sending from that point. We currently accept SVR4
+style remote file positioning requests, but we do not generate them.
+
+181.
+
+Mark Powell: provide some way to restrict file transfer by size as
+well as grade? One way would be to let uux select the grade based on
+the file size.
+
+182.
+
+Mark Powell: permit using multiple timetables in a single time
+statement.
+
+183.
+
+Optionally check for interrupts in fcopy_file, since it can take a
+long time to copy a file named in a uucp request.
+
+184.
+
+Ian Moran: if an attempt is made to a copy a file to a directory which
+denies write permission, perhaps the file should be saved somewhere.
+It must be saved in a private location, though.
+
+185.
+
+A syntax error in a command received from the remote system should not
+hold up the queue. Unfortunately, I don't know what can be done
+except deny the command and report it. Reporting a garbled command
+error should report the command correctly, rather than just the first
+character.
+
+186.
+
+Franc,ois Pinard: have an option to control nostop vs. stop on the cu
+command line.
+
+187.
+
+Fix the notion of %nostop to be SVID compatible.
+
+188.
+
+Frank Conrad: provide a means to set the strip mode for a port, to
+make it easy to use it from cu.
+
+189.
+
+Marc Unangst: there should be a way to specify that a system should
+only be called if there are jobs of a certain grade, but if the system
+is called then jobs of any grade should be transferred. This
+basically means splitting the ``timegrade'' command into two commands:
+``place-call-timegrade'' and ``transfer-timegrade''. Or maybe another
+optional argument to ``timegrade'':
+ timegrade grade time-string [retry] [transfer-any]
+not to mention
+ time time-string [retry] [transfer-any]
+Or maybe a separate command for a system or port like
+ transfer-any BOOL
+
+190.
+
+Chip Salzenberg: it would be really nice if uucico could automatically
+figure out when it could use an E command, so that uux didn't have to
+generate it and so that uucico could use with other versions of uux.
+Unfortunately, it would require uucico to read the execution file to
+see if it were suitable; this would be complex, but it would probably
+be worth it since normally the execution file would wind up not being
+sent. Of course, the current method works too; it's just harder to
+combine with other versions of UUCP.
+
+191.
+
+Brian J. Murrell: should there be a way to cu a specific alternate?
+
+192.
+
+Andrew A. Chernov: Perhaps cu -pport system should be able to try
+different alternates for the system, because there might be different
+phone numbers to try.
+
+193.
+
+Brian J. Murrell: it would be nice to be able to ^C a cu chat script
+if you know it's going to fail. Right now you have to use ^\.
+
+194.
+
+Steven S. Dick: have some way to force uucico off the phone at a
+certain time. If that is done, it might be cool to have some way to
+predict how long a file transfer will take, and not do it if it will
+take too long. But, if doing file restart, you can just quit and then
+pick it up later.
+
+195.
+
+Franc,ois Pinard: if the disk fills up, or some other error occurs,
+while receiving a file, perhaps it would make sense to turn the
+connection around immediately and see if the other side had anything
+to do, and then try again later. This would require a protocol
+extension. I don't know if it's worth it. The code should be checked
+to see how well it handles a disk full situation.
+
+196.
+
+For real adjustability, provide some mechanism for picking the lead
+characters to use for the shell scripts, between : and #!.
+
+197.
+
+Try alternate IP addresses if there are any.
+
+198.
+
+Lele Gaifax: mention the device in Stats, and provide some way to
+associate the entry in Log with the entry in Stats.
+
+199.
+
+Michael Richardson: provide some way to turn on parity for the login
+chat, since some systems apparently require it. Provide some way for
+cu to control parity after connecting.
+
+200.
+
+Chip Salzenberg: add max-remote-debug to config.
+
+201.
+
+Gert Doering: change the timeout message in chat scripts to reflect
+which chat script timed out (dialer or login).
+
+202.
+
+Bill Foote: have uuchk check whether a system is defined more than
+once.
+
+203.