|
|
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.