Known Bugs/Features to be Implemented
Updated February 26, 2006
- MAJOR FIX: User-Room message pointers. Currently, the room pointers are mis-designed. Currently, a user's "new" message pointer is based on the message quantity of the room. It simply was mis-designed. The effect was that if a room has 256 or more messages in it, every time the user went to that room, each message is determined to be 'new'. Priority: Utmost highest!!!
- IMPLEMENT: Add a user configuration that will allow the user to refuse pages from another user
- IMPLEMENT: Add a message # listing to the message itself, to show what message number it is in order
- BUG: Moderator (not aide) pulls a message from a moderated room; user's connection goes into an undefined state and forces a reconnection. Priority: Medium
- BUG: The system tells a user that they have mail waiting in Mail> room, when they have already read those messages -- the flag is not reset after having read it.(absinthe, czardom, jetrock) Priority: High
- BUG: 'Off-color' room header in certain reading message situation. Priority: Low
- IMPLEMENT: 'Last-Message-read', bring room prompt up immediately instead of the last message pause prompt. Priority: Medium
- IMPLEMENT: "Ungoto" feature. When ungoto is invoked, the system is supposed to bring you back through a LIFO stack of the previous rooms "Goto"ed. Pretty standard in Citadels. Priority: Medium
- IMPLEMENT: "Lazy-man's" Space Bar being the same as Goto and Read New to allow for users to easily and lazily lurk. :) Priority: Medium
- IMPLEMENT: End-of-string space filter (for citadel-type message formatting) Priority: Medium
- BUG: Page weirness: A page from a user didn't necessarily come from the 'correct' user. Priority: High
- IMPLEMENT: Console screen showing connections. Priority: Very Low
Bug Fixes and Updates
August 15, 2007
February 26, 2006
Yes! I am starting to work on the software again. I just decided to take a year and a half break; my worklife got hectic, I had other hobbies that needed my time (our backyard and my brick barbecue are looking great!! :) ) I'll be fighting with the user log/new-message pointers next. It will very likely require a reset of the user-log, but that'll be a small price to pay for actually having it work correctly.
- IMPLEMENTED: The ability to connect the STEem emulator, through ppp, into the host linux box. This allows me to do all my compilation and work on the emulator (at blazing fast 2.4 GHz speeds) instead of having to do all my programming on the actual ST (at 0.008 GHz [heh]), not to mention the ability to do programming work and not take the board -- or worse, hose it!!
July 30, 2005
- IMPLEMENTED: Time Zone information on the date/time stamp while reading a message.
- IMPLEMENTED: Reduced the time it takes to 'flush' all output waiting for a client.. This will have the illusion of speeding the board up, when in reality, it is just taking less time in between buffer-flushes. I am tentatively hopeful that this fixes the Chat bug in which the cursor would not correctly reset when a chat message came through.
- IMPLEMENTED: Separate list of rooms with new messages in 'Known Rooms' command from room with no new messages.
- IMPLEMENT: The Ping that's Not a Ping: To ensure connection, every five minutes of inactivity, send a space-backspace combination. STinG does know about disconnections if it tries to send something and the client does not respond. (Thanks, georbit!)
- IMPLEMENTED: An internal client's "counter" mechanism that will allow one client to do through a long loop (such as the reading of a userlog) and let other clients have their time slice.
July 27, 2005
- IMPLEMENTED: Core of the "Extended Commands" subsystem. Will allow stuff like extended message entry commands in the future (e.g., held messages, non-citadel-formatted ascii dumps, etc.
- IMPLEMENTED: Read Userlog. Gives a listing of all users having accounts in the system and their last date of login. Utilizes the extended command "U" (read userlog)
July 23, 2005
- IMPLEMENTED: "novice" text blurbs, for non-experts of Citadel-like boards.
- IMPLEMENTED: "Mail" should have another prompt after reading a message 'to' a user: "[R]eply" so that the user doesn't have to type the name of the mailee every time. (Czardom)
- IMPLEMENTED: Sysop-Configurable Connections-Per-IP address.
- BUG FIXED: the 'Again' command from the message reading 'pause' prompt was not working. It showed the first word of a message and stops.
July 21, 2005
- BUG FIXED: A 'goto' in certain situations was causing the software to go into an infinite loop, effectively locking up the board.
July 11, 2005
(All fixes this day had to be reverted and will be reimplemented at a later date)
July 9, 2005
- BUG FIXED: Reading last # will really read the last number, not the last number entered minus one.. heh
- BUG FIXED: In message entry mode, if a too-long line was entered, it locked up the connection, forcing the user to disconnect and re-connect (and thus losing all message entered)
- IMPLEMENTED: If a login occurs on a different connection than one that's already logged in with a user, it will disconnect the old and use the new, with a 'reconnecting'-type message.
- IMPLEMENTED: "Read last old on read new" -> Configurable with the Configure (Z) command
- BUG FIXED: Show roomname prompt again when someone pages a user. (If you were paged, the room prompt didn't show up immediately afterwards.)
- BUG FIXED: Page user problem: comparison shouldn't matter if it's capitalized or not.
- IMPLEMENTED: 'N' for Space/CR (next msg)
- BUG FIXED: Mailing a user required case-sensitive user name entry. No longer
July 7, 2005
- BUG FIXED: A 'flood' of telnet connections will kill the board, and it wouldn't come back up. Discovered that it would disconnect a connection too quickly; set it up so that if it found no listener connections available/alive, it would activate a new listener.. This would happen during a flood. Also, limited the number of connections per IP address to one.
- IMPLEMENTED: Changed all disk access information to open and close the files as needed, rather than leaving open, hanging files. What would happen is, if the board was un-stoppable, I would have to reset it, which meant that the disk writes would be lost... This would have the effect of killing all message indexes. Bad juju. Incredible, no noticable speed loss due to this! (A *very* cool thing!!!)
July 1, 2005
- BUG FIXED: Crash due to the new '-'/'+' commands.
- IMPLEMENTED: Configurable IP Ports to listen on. While it defaults to the standard telnet port of 23, a request was made in comp.sys.atari.st to make the port sysop-configurable. Defaults to port 23
June 30, 2005
- FIXED: Bug in which a user could fake logging in to someone else's account and actuall change *THEIR* name. Ew!
- ADDED: Timeout of 30 seconds after initial connection if no user login
- IMPLEMENTED: '+' and '-' methods of moving from known room to known room.
- July 21, 2005 Heh. Had some quirky bug that wouldn't have shown up in testing.. In certain situations, a [G]oto command would have placed the software into an interminable loop, effectively bringing the board down. That was fixed; thanks to absinthe for pointing the way.
- July 11, 2005 Ouch. Had my first real setback today. The things I tried to add into the system ended up hosing how messages were entered into rooms and how they were being read from rooms. I had to restore from last backup and overwrite everything I did.. Fortunately, the last backup was just the last one I'd done anything with (after July 9's work). So, backups save my ass tonight. :) Sorry, Nick, for summarily dropping your conn tonight - had to get the backup in so that I could sleep tonight. heh
- July 9, 2005 Did some work on the board this morning. Bug fixes, some smaller implementations (and at least one or two relatively large ones).
- July 7,2005 Looks like the board is refusing connections right now. Unfortunately, it looks like it'll be down all day 'til I get home and can reset it. Sorry about that, folks. Thanks, Dylan, for the heads-up!
- July 4, 2005 The stability of the BBS is starting to show well. It's been up since Friday night and hasn't crashed once. I've still got quite a bit to do (see the Bug Fixes & Additions link), but I'm close to being ready for releasing in a semi-stable first-edition state. :)
- June 30, 2005 @ 33:33 Added "Bug fixes and additions" to the menu on the left. I will list all fixes and additions made to the bbs software in that link from now on.
- June 29, 2005 @ 23:32 Whew! I *COMPLETELY* revamped the telnet command interpreter this evening. It now will handle *any* telnet preprocessing command that people can throw at it, and it will disallow any 'type-ahead.' Unfortunately, because it allowed a blank name to be entered, I had to reset the user, room, and message bases. But, since we only had three users and few messages, that didn't hurt too bad. Hope I don't have to do it too often, though!! heh
- June 29, 2005 @ 09:32 BBS crashed at about 9:15 today.. I am able to talk to the user that was online on Lambdamoo, so I know how and why. The user's telnet terminal asked for "line mode", and the bbs responded "yes" when it should have said "no". In addition, he was able to create a user with a blank name (BAD juju!!!), so I'll have to check for blank entries in critical junctures. I'm at work now, so I won't be able to get to it 'til this evening, but I'll be on it once I get home.
- June 28, 2005 @ 21:50 YES!!!! I've done it!!! I was able to discover the packet-reading problems, which was causing no end of errors. I've succeeded in figuring out what I needed to figure out. CWK BBS is officially IN BETA!!!! :) :) :) Please, for those who care, log in, thrash, and try to crash!! The more you crash it, the more I can figure out how to fix it, the more stable it is, and the faster I can release STinGadel!!
- June 28, 2005 @ 07:34 Gonna have to revamp how I'm polling the TCP/IP telnet reception stack. The keys being input by users are not being placed in the correct order via the top-most (trnsport.h) layer of the STinG stack. I'm going to have to go lower and write my own Packet Handler so as to guarantee telnet packet receipt sequencing. Started last night, but as it will most-likely require an entire connection layer re-write, it may be a while. I'm going to build a small telnet receiver tonight to study the packets as they come in.
- June 27, 2005 @ 09:26 (-0700) Well, good news and bad news. The good news was that I figured out how to get the translator working. I had a Lambdamoo cohort try to telnet in -- and he saw the login screen.. and procededed to get one character echoed before losing the rest of the packets -- and then the software crashed! (*HUH!?!?*) It hasn't crashed in at least a week now, with all my login testing. *sighs* Well, I guess beta will have to be scheduled later.
- June 26, 2005 @ 22:39 That's it! It's all ready for Beta version now! Now, I'm trying like made to get the bloody DNAT mechanism working so as to forward the telnet requests and packets from my firewall/NAT router to the Atari ST. Heh.. The most bloody difficult part of this thing tonight!!!
- June 26, 2005 @ 16:29 PST (-0700) Got Chat complete. Now finalizing the page command that goes along with the Chat substructure. Now configuring the Beta-sized BBS (2 megs of message space, 768K Message RAM cache, 500-sized user log... Once this version has completed compiling, I'll run it and see if I'm not overloading the memory!! :) ) Getting close -- patience, pretty please.
- June 26, 2005 @ 12:46 PST (-0700)Working hard at the chat subsystem right now. I'm having some initial success, but it's definitely coming slowly. I'll need to put the page command in, as well -- should be a breeze, all things considered. Still worried about the input queue, though. If it shows up to be a nasty problem in Beta, I may have to work on it before I'm really able to put the board up in earnest.
- June 25, 2005 @ 14:20 PST (-0700)Woot!!!! That's something nice right there. Got the ANSI/VT100/XTERM negotiation *right* on track! Next up, working on the Chat command!
- June 25, 2005 Okay! Working on some ANSI/VT100 subnegotiation right now. This will be necessary to have color, graphics, and terminal stuff that will allow the Chat command to be working. Without it, chat just wouldn't be feasible. I have completed the Aide/Moderator Pull message routines.. I just might not do an Ungoto command. It depends on how much patience I have for it. I *do* have an idea to negotiate lag, however.. Right now, it's first packet in performs the command (which is bad; that means that if, due to lag, your last keystroke comes in prior to a previously entered keystroke, your input would be received out of order.. I *believe* there's a way in TCP/IP to handle that -- if so, I'll be adding that feature this weekend.) BTW, a request was made to put up some screenshots -- I hope to have some up soon!
- June 22, 2005 I hope to have some time to work on the system tomorrow. Monday night is my usual 3-on-3 basketball league, last night, my wife and I went out with my best friend to look at TVs, and tonight we're going out to see Batman Begins. :) I definitely will have time to work on it tomorrow.. ALthough, just in some testing I did last night, I discovered two bugs based on the search-and-replace features of message entry, so I get to hunt them down first. (One was pretty severe, the other more cosmetic in nature). I am still confident I can get it going in Beta starting this weekend, however. Look for it!
- June 20, 2005 Woot! Last night, after everyone had gone home, I completed half of that list.. Implemented the Read Latest #, Mail room and mail messages, made an 'aide message' for pertinent events (creation of rooms, moderators doing anything, etc.), and implemented Max Connections. So, if all connections are used, a last connection will be made that tells the next connector, 'sorry; max connections atm.. Try again in a few minutes'.. or something like that. Actually, now that I think about it, that should be a bbs-specific message. I'll make it so it can be a message file changeable by the sysop. So, all that's left now are the Chat/Page, message pulling, and the 'Ungoto' command, then some easy cosmetic changes and I'll put it up in Beta mode!!! :)
- June 19, 2005 Woohoo!!! Got a HUGE amount of work done. Now have Aide menus complete: Rooms can now have moderators, can be invite-only or just hidden. Moderators will be allowed to rename their room, edit it to be invite-only and thus invite users, and delete messages. Rooms can be created, deleted, and renamed. The main commands are almost complete; Goto, Read New, Read Reverse, Skip, Who's Online, and several smaller commands are complete. I now have a complete list of that which is left to do before I can stick a fork in it and call it done! The last bits are:
- Implement IRC-style chat
- Implement Read Latest #
- Implement Page (request to chat)
- Implement the personal Mail/Mail room
- Implement Moderator/Aide delete message scheme
- Implement an aide message
- Ensure max connections+1 will log someone off with a kind 'too many connections', log them off, and set it up to do it again should someone else log in.. Plus, to check for a disconnection from max connections so as to set up the next one.
I expect to have the Beta version up and going by the end of next week (On or about June 26th!!!)
Heh, okay, just did a little more -- Got goto/new working perfectly. I'm stokin'!! That main stream of 'goto-new-enter' is now entirely implemented!! That's like the absolute *core* of a Citadel proggy.
- June 17, 2005 Could only get a little bit done here and there. Worked heavily on Aide Menus (allowing Aides to be able to create, delete, rename, and edit rooms); it's almost complete. Added an old Citadel feature to the message entry menu, the 'Replace text' feature (the only true 'edit' a user can do to a message besides abort and start over.) I should have more time to work on it this evening and tomorrow morning, although I need to work on my dad's Father's Day gift tomorrow. <:)>
- June 13, 2005 Woot! User logs are now installed. Last night, for about four hours, I worked on the state machine and some tweaks to the message entry and client-reading subsystems. I am now able to telnet in, create a new account, enter messages, and read-forward all the messages in a room! Next up is user configuration, then aide utilities (allow creation of rooms, grant user write privileges, etc.). After that, the hardest pieces remaining are the 'ungoto' stack and how to determine if a user has mail waiting in Mail>. Finally, the remaining 'easy' commands - known rooms, menu listing, etc. And yes, I *will* put a chat subsystem in it - loosely based on a very VERY stripped-down IRC method.
- June 11, 2005 Rooms are done! The storage, handling, manipulation, and message-indexing in rooms is complete. It's now on to User Logs! Might be a little more difficult than Rooms.. Actually, they'll be more complex and have more things to do with them, so yeah, they'll be a bit more work... Still, progress is progress!!!
- June 10, 2005 In the last two days, I've completed the message loading and cacheing. Tonight, I put down the first (working) version of the room-message-indexing system.. Room tables will all be in memory with a very rapid update-rewrite to disk. I'm going to smash and trash the room tables until I'm convinced that they are impervious to my beating on them; if I can't get them to break, then I can move right on to the user log system: creation of new accounts, logging in, user configuration, etc.
- June 8.5, 2005 Okay, so I decided to stay up late tonight to get the cache/message system completed. I succeeded. :) :) The system now reads, writes, and caches messages as it is supposed to. I'm going to do a little more stress-testing to ensure it's doing what it's supposed to, but if I can't break it, I'm going to wrap that module up and call it a nice 'n nifty black box to use forever more. And whoa-nelly is it a lot faster than the old BBS read and wrote!! Keeping everything in memory is DEFINITELY the way to go!
Next up, rooms!
- June 8, 2005 Spent literally the *entire* day yesterday programming. Got the message board system - cacheing, indexing, saving, loading, and garbage collection - almost entirely complete. Also fixed up the configuration program so that I can work with more-realistic data. Had the trash the old message base, thuogh. I was kinda hoping I'd be able to start the board with old, 1996-era messages. *grin* Next time I'll be able to work on it may be this weekend, but not sure. A few bugs still in the message cache storage/manipulation to work out.
- June 5, 2005 Did a lot of re-programming this weekend. I did quite a bit of designwork for message and room handling, plus stored and tested out the client 'state' handler. Finalized the method of state-based system handling (menus, what the user will do next, etc.) (6/5/2005). Completed design of the messages handler. Will be using every single available byte of memory; I'm designing in a message cache system that will keep messages in memory as long a possible -- minimal disk retrieval. Room table will be completely and entirely in memory - definite advantages there.