home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / apps / bbs / led_127 / lesemich.txt < prev    next >
Text File  |  1995-02-16  |  15KB  |  383 lines

  1.  
  2. Dieses File beinhaltet wichtige Developer-Informationen und Änderungen,
  3. die ich gerne in den nächsten Versionen vornehmen möchte. Bitte teilt
  4. mir Eure Meinung über die geplanten Änderungen mit!
  5.  
  6. Dieses ist keine komplette ToDo-Liste, sondern gibt nur die Änderungen
  7. wieder, die ich nicht ohne positive Rückmeldung vornehmen möchte!
  8.  
  9.  
  10.  
  11.                     Teil I  - Geplante Änderungen
  12.                     Teil II - Developer Informationen
  13.  
  14.  
  15.  
  16. ========================================================================
  17.                             T E I L   I
  18. ========================================================================
  19.  
  20. Änderung 1)
  21.  
  22.   - Da es immer noch kein vernünftiges 5D-Header-Format
  23.     existiert, habe ich mich dazu entschlossen in den
  24.     nächsten LED-Versionen folgendermaßen vorzugehen:
  25.     In dem Feld "mailer[6]" werde ich die Nummer der
  26.     "Address"-Zeile abspeichern, die zu der angegebenen
  27.     Absenderadresse paßt. Steht dort eine "0", so konnte LED
  28.     die passende "Address"-Zeile nicht finden (ermitteln),
  29.     oder die "Address correction" wird vom User nicht
  30.     benutzt.
  31.     Dieses Feature ist bereits im LED 1.26 implementiert, nur
  32.     noch nicht "freigeschaltet", da JetMail leider abstürzt,
  33.     wenn in dem Feld etwas ungleich "0" steht.
  34.     Beispiel:
  35.       Address   2:2446/110.6@fidonet.org
  36.       Address   51:601/7.6@atarinet.ftn
  37.       Address   90:400/410@nest.ftn
  38.       Address   90:400/404.6@nest.ftn
  39.     Schreibe ich jetzt eine Msg unter 90:400/410, so wird
  40.     "mailer[6] = 3" gesetzt.
  41.     Zwar darf dann vor dem nächsten Export-Vorgang die Reihenfolge der
  42.     "Address"-Zeilen nicht verändert werden, aber IMHO kann man damit
  43.     ganz gut leben.
  44.  
  45. Änderung 2)
  46.  
  47.   - Wird ein gequoteter Text editiert, so werden die Quotes ggf.
  48.     fett dargestellt. Das ist im Prinzip auch OK. Wenn nun aber dieser
  49.     Text editiert wird, so wird wieder die normale Darstellung
  50.     verwendet. Da dieses nicht zu ändern ist, möchte ich, wenn man
  51.     sich im EditWindow befindet, grundsätzlich nur die normale
  52.     Darstellung verwenden und nur beim Lesen der Msg sollen Quotes
  53.     ggf. wieder Fett dargestellt werden.
  54.  
  55. Änderung 3)
  56.  
  57.   - Die Funktion "Skip Scanner" hindert mich daran, die Forward-Funktion,
  58.     sowie einige weitere Routinen, neu zu schreiben.
  59.     Ich habe vor diese Funktion ganz zu entfernen:
  60.     Konsequenz: - LED wird kleiner (ca. 20kb und nachdem einige Funktionen
  61.                   neu geschrieben worden sind: ca. 10kb mehr).
  62.                 - Alte Soft (BYE, EXPORT) funktionieren nicht mehr, da
  63.                   der LED eine in einer Echomail geschriebene Mail nicht
  64.                   mehr automatisch in die Netmail kopiert.
  65.                 - Neue Soft (JetMail, IOSmail, ECU/LLegada) sind davon
  66.                   nicht betroffen.
  67.  
  68. Änderung 4)
  69.  
  70.   - LED soll NUR noch das eigene Konfig-File lesen. Wenn es wirklich mal
  71.     ein allgemeines Konfig-File für mehrere Programme geben solle, dann
  72.     auch dieses.
  73.  
  74. Änderung 5)
  75.  
  76.   - Der LED solte auch Msg>64kb schreiben können. Dieses ist aufgrund des
  77.     alten MsgBase-Headers z.Zt. nicht möglich. Abhilfe würde ein neues
  78.     Header-Format schaffen, oder eine Erweiterung des alten, welche
  79.     wenigestens zum Teil kompatibel sein würde.
  80.     
  81.     Mein Vorschlag wäre die beiden Felder
  82.       uword   wProcessed;    /* uword mailer[7] */
  83.       uword   wSize;
  84.     zu einem Feld "ulong lSize" zusammenzufassen. Tools, die davon nichts
  85.     davon wissen, würden zu lange Msgs wie bisher behandeln (LED scheibt
  86.     bis zur Version 1.25 immer die "Länge mod 2^16" in das Feld Size!).
  87.  
  88.     Tosser wie IOSmail, ECU und ACS würden wie bisher nur einen Teil
  89.     der Msg exportieren (genauer: Size mod 2^16) und den Rest nicht
  90.     beachten. LED 1.26 schreibt bei zu langen Msgs jetzt immer den
  91.     Wert 65534 in das Feld Size, so daß wenigstens immer die ersten 64kb
  92.     exportiert werden.
  93.  
  94.     Utilities, die das Feld "mailer[7]" bzw. "wProcessed" für eigene
  95.     Zwecke verwenden, dürften dann nicht mehr benutzt werden, da LED
  96.     sonst eine falsche Msglänge bekommen würde. Zwar ist es möglich ein
  97.     weiteres Flag (XF_LONGMSG) zu definieren, welches anzeigt, daß nun
  98.     "mailer[7] und wSize" zusammen ein Langwort enthalten, damit der LED
  99.     Msgs<64kb korrekt lesen kann, auch wenn irgendein Utility "mailer[7]"
  100.     verändert hat, aber bei Msgs>64kb gäbe es dennoch Probleme, so daß
  101.     ich hier auf ein weiteres Flag lieber verzichten möchte.
  102.     
  103.     Da JetMail "wProcessed" benötigt, würde ich Vorschlagen, "wProcessed"
  104.     ggf. auf "mailer[6]" zu verlagern, wobei Änderung 1) entfallen muß.
  105.  
  106.     Vielleicht ist der Sinn von Msg>64KB nicht sofort einsichtigt. Wer
  107.     allerdings Mails (Files) aus dem UseNet über ein Gate als UUEcode
  108.     bezieht, weiß wovon ich rede ;-)
  109.  
  110. Änderung 6)
  111.  
  112.     Momentan benötigt die Userliste ziemlich viel Speicher, wenn sie
  113.     komplett eingelesen wird. Ich könnte die Userliste ca. 10 bis 12%
  114.     platzsparender einlesen, allerdings würde dieses auch ca. 10% mehr
  115.     Zeit kosten.
  116.     Anstelle von 2MB würden also nur 1.7 bis 1.8MB benötigt werden und
  117.     anstelle von 4 min. (TT) bräuchte der LED dann 4 1/2 min.
  118.  
  119.  
  120. ========================================================================
  121.                             T E I L   I I
  122. ========================================================================
  123.  
  124. Document: AFTS-000
  125.   Status: Version 1 Release 2, Official
  126.     Date: 17.01.1995
  127.  
  128. List of existing AFTS (Atari-Fido-Technology-Standard) documents:
  129.  
  130.   AFTS-000  Index of all AFSC documents (this document)
  131.   AFTS-001  New header format for local msg bases (XHD)
  132.   AFTS-002  Extended outbound and flow file format
  133.   AFTS-003  Old headerformat with 5D extension (HDR)
  134.  
  135. List of existing AFTP (Atari-Fido-Technology-Proposal) documents:
  136.  
  137.   AFTP-001  Proposal: New package format
  138.  
  139.  
  140. Members of AFSC (Atari-Fido-Standard-Committee) in alphabetical order:
  141.  
  142.   Kriesten, Jan (2:244/4344, 90:400/1002)
  143.   Roesen, Daniel (2:2454/114, 90:400/602)
  144.   Slabihoud, Stephan (2:2446/110.6, 90:400/410)
  145.   Spilker, Joerg (2:243/6007, 90:400/100)
  146.  
  147.  
  148. <EOF>
  149.  
  150. ========================================================================
  151.  
  152. /*
  153. **  Document: AFTS-003   Old headerformat with 5D extension
  154. **    Status: Version 1 Release 2, Official
  155. **      Date: 30.01.1995
  156. **  Proposal: St.Slabihoud
  157. **
  158. **  This file descripes the <*.HDR> headerfile format used by most
  159. **  fido software.
  160. */
  161.  
  162. #ifndef __FIDO__
  163. #define __FIDO__
  164.  
  165. typedef
  166.   struct HEADERtag             
  167.     { char    sFrom[36];           /* User who created msg (0-terminated)  */
  168.       char    sTo[36];             /* User who may read msg (0-terminated) */
  169.       char    sSubject[72];        /* Subject (0-terminated)               */
  170.       char    sDate[20];           /* Date/Time string of message          */
  171.       ulong   lDate;               /* Date when msg was imported (UTC)     */
  172.       ulong   lStart;              /* Start offset of message              */
  173.       ulong   _reserved_1;         /* res. by AFSC (was QBBS reply link)   */
  174.       uword   wFlags;              /* Message flags                        */
  175.  
  176.       ulong   lMsgidcrc;           /* LED comment ^MSGID crc               */
  177.       ulong   lReplycrc;           /* LED comment ^REPLY crc               */
  178.       uword   wMFlags;             /* Maus message flags (XF_MAUSMSG set)  */
  179.       uword   wXFlags;             /* Extended message flags               */
  180.       uword   _reserved_3;         /* wAddress: Origin address (1)         */
  181.       uword   wProcessed;          /* bitfield used by JetMail             */
  182.  
  183.       uword   wSize;               /* Length of msg                        */
  184.  
  185.       ulong   _reserved_2;         /* res. by AFSC (was QBBS: Reads/Cost)  */
  186.  
  187.       uword   wFromZone;           /* Zone of sender                       */
  188.       uword   wFromNet;            /* Net...                               */
  189.       uword   wFromNode;           /* Node...                              */
  190.       uword   wFromPoint;          /* Point...                             */
  191.       uword   wToZone;             /* Zone of receiver                     */
  192.       uword   wToNet;              /* Net...                               */
  193.       uword   wToNode;             /* Node...                              */
  194.       uword   wToPoint;            /* Point...                             */
  195.     } HDR_HEADER;
  196.  
  197. /*
  198. ** (1) Description of "wAddress"
  199. **
  200. ** LED stores in the lower byte the number of the "Address"-line used
  201. ** for the origin address. e.g. (BINKLEY.CFG or LED.CFG)
  202. **   Address   2:2446/110.6@fidonet.org
  203. **   Address   51:601/7.6@atarinet.ftn
  204. **   Address   90:400/410@nest.ftn
  205. **   Address   90:400/404.6@nest.ftn
  206. ** Writing a mail with the origin address 90:400/410 sets "wAddress=3".
  207. ** "wAddress" is zero when LED could not find the correct address or the
  208. ** msg was not written on your own system (e.g. move msg, move msg with
  209. ** forward).
  210. ** WARNING: Do not change the addresses in your config before all mail
  211. ** was scanned. Otherwise a wrong address could be taken by the tosser.
  212. ** The upper byte of "wAddress" is reserved and should be zero.
  213. */
  214.  
  215. /*
  216. ** Flags: wProcessed
  217. ** Write to AFSC for others...
  218. */
  219.  
  220. #define PROC_JETMAIL            (1U << 0)
  221. #define PROC_AU_MSGCHECK        (1U << 1)
  222. #define PROC_AU_FILEMGR         (1U << 2)
  223. #define PROC_CHARMODIFY         (1U << 3)
  224. #define PROC_CONNECTR           (1U << 4)
  225. #define PROC_DOORMAIL           (1U << 5)
  226. #define PROC_ARCED              (1U << 6)
  227. #define PROC_FIFO               (1U << 7)
  228.  
  229. /*
  230. ** Flags: wFlags
  231. */
  232.  
  233. #define F_PRIVATE               (1U << 0)
  234. #define F_CRASH                 (1U << 1)
  235. #define F_RECEIVED              (1U << 2)
  236. #define F_SENT                  (1U << 3)
  237. #define F_FILEATTACH            (1U << 4)
  238. #define F_INTRANSIT             (1U << 5)
  239. #define F_ORPHAN                (1U << 6)
  240. #define F_KILLSENT              (1U << 7)
  241. #define F_LOCAL                 (1U << 8)
  242. #define F_HOLD                  (1U << 9)
  243. #define F_RESERVED              (1U << 10)
  244. #define F_FILEREQ               (1U << 11)
  245. #define F_RETRECREQ             (1U << 12)
  246. #define F_ISRETREC              (1U << 13)
  247. #define F_AUDITREQ              (1U << 14)
  248. #define F_DELETED               (1U << 15)
  249.  
  250. /*
  251. ** Flags: wXFlags
  252. ** Write to FTSC for others...
  253. */
  254.  
  255. #define XF_READ                 (1U << 0)
  256. #define XF_ARCHIVSENT           (1U << 1)
  257. #define XF_TRUNCFILESENT        (1U << 2)
  258. #define XF_KILLFILESENT         (1U << 3)
  259. #define XF_DIRECT               (1U << 4)
  260. #define XF_ZONEGATE             (1U << 5)
  261. #define XF_HOSTROUTE            (1U << 6)
  262. #define XF_LOCK                 (1U << 7)
  263. #define XF_MAUSMSG              (1U << 8)
  264. #define XF_GATED                (1U << 9)
  265. #define XF_CREATEFLOWFILE       (1U << 10)
  266. #define XF_RESERVED11           (1U << 11)
  267. #define XF_RESERVED12           (1U << 12)
  268. #define XF_SIGNATURE            (1U << 13)
  269. #define XF_IMMEDIATE            (1U << 14)
  270. #define XF_FIXEDADDRESS         (1U << 15)
  271.  
  272. /*
  273. ** Flags: wMFlags
  274. ** Write to ATSC for others...
  275. */
  276.  
  277. #define MF_NICHTGELESEN         (1U << 0)
  278. #define MF_NOTREAD              (1U << 0)
  279. #define MF_ZURUECK              (1U << 1)
  280. #define MF_RETURN               (1U << 1)
  281. #define MF_BEANTWORTET          (1U << 2)
  282. #define MF_ANSWERED             (1U << 2)
  283. #define MF_GELESEN              (1U << 3)
  284. #define MF_READ                 (1U << 3)
  285. #define MF_WEITER               (1U << 4)
  286. #define MF_CONTINUE             (1U << 4)
  287. #define MF_MAUSNET              (1U << 5)
  288. #define MF_ANGEKOMMEN           (1U << 6)
  289. #define MF_RECEIVED             (1U << 6)
  290. #define MF_GATEWAY              (1U << 7)
  291. #define MF_KOPIERT              (1U << 8)
  292. #define MF_COPIED               (1U << 8)
  293. #define MF_MAUSTAUSCH           (1U << 9)
  294. #define MF_UNBEKANNT            (1U << 10)
  295. #define MF_UNKNOWN              (1U << 10)
  296. #define MF_INTERESTING1         (1U << 11)
  297. #define MF_INTERESTING2         (1U << 12)
  298. #define MF_VERERBEN             (1U << 13)
  299. #define MF_HEREDITARY           (1U << 13)
  300.  
  301. #endif
  302.  
  303.  
  304.  
  305. Format of date/time string of message in sDate[20] (ascii format):
  306.  
  307.   DAY [ ] MONTH [ ] JEAR [ ][ ] HOUR [:] MINUTE [:] SECOND [0]
  308.         
  309.     DAY: [00] ... [31]
  310.   MONTH: [Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec]
  311.    JEAR: [00] ... [99]
  312.    HOUR: [00] ... [23]
  313.  MINUTE: [00] ... [59]
  314.  SECOND: [00] ... [59]
  315.  
  316.  
  317.  
  318. Calculation of Msgidcrc (and Replycrc):
  319.  
  320.   ===== SOURCE =======================================================
  321.   ulong get_msgid(...)
  322.   { static word count;
  323.     byte crc_msgid[256],msgid[256];
  324.     byte *cp;
  325.     ulong msgidcrc;
  326.  
  327.     sprintf(msgid,"\x1MSGID: %s %8.8lx\n",
  328.                         mergeaddr(zone,net,node,point,domain),
  329.                         time(NULL)+count);
  330.     [...]
  331.     strcpy(crc_msgid,msgid+8);
  332.     cp=strchr(crc_msgid,'\n');
  333.     cp=EOS;
  334.     msgidcrc = crc32str(crc_msgid);
  335.  
  336.     count++;
  337.     return(msgidcrc);
  338.   }
  339.   ====================================================================
  340.  
  341.  
  342.  
  343. Calculation of 32-BIT ANSI X3.66 CRC checksum:
  344.  
  345.   ===== CRC-32 Tab removed (see FTSC for more information) ===========
  346.   The polynomial is
  347.   X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
  348.  
  349.   static ulong crc_32_tab[] = { /* CRC polynomial 0xedb88320 */
  350.      0x00000000L, 0x77073096L, [...], 0x5a05df1bL, 0x2d02ef8dL };
  351.  
  352.   ===== SOURCE =======================================================
  353.   #define UPDC32(octet, crc) \
  354.                (crc_32_tab[((crc) ^ (octet)) & 0xff] ^ ((crc) >> 8))
  355.  
  356.   unsigned long crc32str(char *s)
  357.   { register ulong crc32;
  358.     crc32 = 0xFFFFFFFFL;
  359.     while (*s)
  360.       crc32 = UPDC32((int) *s++, crc32);
  361.     crc32 = ~crc32;
  362.     return (crc32);
  363.   }
  364.   ====================================================================
  365.  
  366. <EOF>
  367.  
  368.  
  369.  
  370. ========================================================================
  371.   Die Weiterentwicklung vom LED liegt jetzt bei:
  372.  
  373.     Stephan Slabihoud, Johannesstr.5, D-46240 Bottrop
  374.        FidoNet: 2:2446/110.6@fidonet.org
  375.       AtariNet: 51:601/7.6@atarinet.ftn
  376.      NetworkST: 90:400/410@nest.ftn, 90:400/404.6@nest.ftn
  377.       Internet: slabbi@kali.rhein-ruhr.de
  378.                 slabih00@marvin.informatik.uni-dortmund.de
  379.  
  380.   Wünsche, BugReports, Kritik usw. bitte direkt an mich senden.
  381.  
  382. ========================================================================
  383.