|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.