NOTE::: much of this stuff is just a transcription of ideas rather than a list of things that need to be done. Many of them are things that might have been done, but were deliberately not for some reason or another, but the idea kept around just in case it spurs something else. Naturally the distinction is neither specified nor obvious. --KLH Stuff about special-proc requests: (see comments in listing at SPRQTB for more stuff) Various pssible types of requests: List a msg - msgid Delete-msg - msgid (only allow sender to flus, unless magic command is known in which case can flush any msg?) Delete-rcpt - msgid, rcpt name/site (defult hacks) add-rcpt? had? list-QML - need nice fmt List-RML List-MASTER [and msgs?] LIST-MASTER-MSGS LIST-MSG --- Read a LSE? Write out a LSE? Redirect a message. REPLACE specified rctp by another. Eqv or not? check existing or not? ---- Possible rtns needed: (some already exist) 1] given msgid, delete from MASTER. a) del from QML also b) del from RML also 2] given msgid, make it current msg-lse 3] given current lst, lis out to given channel. 4] given current msg-lse, lis out to a SLN 5] given msgid, list tha message. send to rcpt if one given, else to sender. 6] given msgid and rcpt, del rcpt from given msg. if on qml, flush entry also. rcpt must be name/host pair tha is NOT eqv'd; ca have version to eqv given rcpt if really want it? ------------------------------------------------------------------- ------------------------------------------------------------------- Stuff written in notebook, perhaps not in MAIL BUGS pdl, some not seriously intended to be on PDL anyway: Try to hack XRCP sending... routine calling SNDMSG must call special rtn when no more RCP's for site and ready to send msg. Needs flag to indicate whether host in question is known to grok XRCP or not. Partial list of bug types to consider: 1) sys call that should never fail (fixed args) 2) sys call that can fail only if (variable) args garbage. 3) sys call error not provided for 4) disk errors: temporary, permanent, non-provided-for. Macro for doing CONSTA/VARIAB which defines the syms CONST0, CONST1, etc. at start of each constants area, so if you see DDT type out something like MOVE A,CONST1+23 you know it's something defined as a literal and approximately where in the sequence it lives. Must cons up a reminder-time-calculations tester. Given a list of time specs, produce list of times it sould be sent and when it ends. Move stupid insufficiency error-check out of SPCFND!!!!!!! Self-reference EQV'ing should check LSR for additional opts?? Macro to reverse skip instructions? NOT SLNE A,B => SLNE A,B ? CAIA Idea for witing into areas: use PUSH AC's, and have PDL OV increase area. Set up with a type of UAROPN. General byte PTSKIP uuo? Just for completeness of UUO package. At UOPN0, the block after "called with SETZ bit on" might be made a routine in the main UAR routine collection. At UQUSTR perhaps the LP's could be checked with the usual CAMGE, CAML, JSR AUTPSY. But ditto for many other places. eg at ULUSTR, do a CAML LLLEN. Flush the comment "extrnally called" at LNDEL. Have some conditional code in CORSER which would collect statistics when turned on? Might be interesting to see how well schemes work. Change OPTxxx defs to new symbols? Use TMPLOC for locs 41-44, eg put JSR UUOH in UUO routines, 42 in intbl sectin, 43-44 in locks section. Put err check at SNDRTB to ensure same # slots as RTYPTB. Macro to allow defining a std, new, exper variable all at once? at INTBLK, use fmt like CRTSTY for intvec entries. use .ELSE in DEFINE DISMISS. at IOC for dsk full, do something better. for RLT, ave macro to set exit vector? (check to be sure not clobbering active one) Can improve AUTPSY reporting, eg return las ERR string. Realign code, get var locs together, etc Make sure code for 3 dead comsats works? CALERR must handle "any other error" case, and do CALL cleaner. what if don't want to retry, or want to count # tims retried? Write MSTFIX code. Are EQVBIN,EQVGET necessary? Fix NAMED ERRnnn scheme so that filsdon't clutter up directory. Make compilation a specific request tha gets replied to? Document what RCPBGA does. difference betwen GBA, GOB. Document ALL of EQRCPL. Document use of DEBLSE etc rtns in debugging, and add more. (dont take ths seriously) crunch LSR stuff with LREADR, APRCPT. Self-ref in EQV should check LSR - if (KLH (EQV (KLH)) then check LSR for further stuffs. Self ref in LSR should be ignored. //// This allows use of INQUIR for updating rcpt options, eqv lsts, etc. good or bad? Routine needs to fix up misunderstandings of entries like @MC and MC. this is deterministic however? Mail which goes nowhere (0 rcpts) should send to mail-maintainers with description of expansion of names? ATTR line chomper should trim trailing/leading blanks! (only if a line) REmove SPCF20 thru just before SPCF40, to IRQGET or someplace. Allow using different ATRTAB table so can use parser for other stuff like net headers! Check for null sender string -------------------------------------------------------------------- AUTPSY program to dump dead things and save mysterious evidence so hacker can determine cause of death and identify fatal virus. Given job index and filename somehow, dumps out as much info as possible. With JCL: :AUTPSY , If no comma, DDT can furnish "current job" pointer upon request? = octal/dec job idx, single word meaning JNAME (given UNAME of autpsy job), double word, U/JNAME pair. = file to dump stuff into. With no JCL, superior must furnish info. and each single words someplace. Want to avoid .BREAK'ing etc since superior might be dying fast. = - job idx. -1 - use superior. -1,,addr - ASCIZ string at addr, just like JCL spec. ,,addr - ASCNT pointer -2,,addr - AOBJN to U/JNAME in sixbit = -1,,addr - ASCIZ string ptr ,,addr - ASCNT ptr 0,,addr - address of 4 wd file block (dsk, dir etc in 6bit) Use defaults of DSK:;AUTPSY DMPnnn and AUTPSY TXTnnn. Need 2 files, one for PDUMP and one for text info about user vars. Superior ca specify args in various ways: 1) vary entry point (start+1, etc) to indicate modes 2) deposit in AUTPSY, or read from superior. Specific locs (0-77), start+n, etc can have data or pointer to block for data. Must be as easy as possible for superior so that self-dumps are simple and destroy as little info as possible. PDUMP, then record complete user var block. track down channel statuses, for each type record appropriate params. eg NET, DSK, TTY want different things. Try to record som of buffer for channel. Whole buffer? (regardless of ptrs)... Record few general things like system version, machine, date/time, # users and load, whatever. ---------------- QMAIL stuff ERRX, ERRT, ERRQ macros? ERRT => pushj p, errbeg ? type [string] ? pushj p,errend ERRQ => pushj p, aeert ? type [stri ERRX => pushj p,errfls ? type [string] Reinstall GTRF SCAN rtns worth re-doing?