Dead Guests
(Redirected from DeadGuests)

Main Page | About | Help | FAQ | Special pages | Log in

Categories: Visual BASIC | Archive
Printable version | Disclaimers | Privacy policy

Final Version 3.0 Rev 29

Please Note: The Dead Guests Project is officially:

  1. Complete
  2. Dead

After moving away from Netware DG3 was obsoleted. This page maintained for nostalgia.


Contents

What is Dead Guests 3 (DG3)?

DG3 Main Form
DG3 Main Form
DG3 Systray Icon
DG3 Systray Icon

Dead Guests 3 (frequently referred to as DG3) is the once-simple, now-gargantuan solution to a very vexing problem that we used to have here at SUNY Potsdam... Too many connections to our main Netware server.

The point of all of the DG's (DG1,2, and 3) is to parse the user list on a Novell Netware server, and kick off GUEST connections, that have been logged in too long. They are run from a Windows 95-based PC, that is connected to the Netware server in question with a supervisor-equivalent account.

The Original Dead Guests (DG1) was a simple userlist parser, that kicked users off after 30 minutes. Period. It ran invisibly on the client.

The Next-Generation of Dead Guests (DG2) had a user interface! It also had a system tray icon, that users could right-click on to set properties such as how often Dead Guests got booted, and if they wanted to send a message in advance to the users who were being booted, and at what interval. DG2 also started the system log, that logs all messages sent, and connections killed.

The Mother-of-all-Dead Guests (DG3) is by-far one of the silliest long-term projects in my life. DG2 was fine. It did almost everything that SUNY Potsdam needed.. But I wanted more. I had a vision of Zones... DG3 has Zones and an enhanced UI.

Dead Guests 3 Concepts

DG3 Edit Form
DG3 Edit Form

The architecture of Dead Guests 3 revolves around zones. Zones are objects that DG3 uses to determine what it should do. Zones have the following properties:

  • Maximum number of concurrent guest connections (integer)DG3 Zone Editor
  • Time limit for guest connections - Measured in minutes (integer)
  • Warning message sending flag (boolean)
  • Interval before connection closes, that message is sent - Measured in minutes (integer)
  • Starting time (e.g. 16:00) (string)
  • Ending time (e.g. 23:59) (string)
  • Silly binary day string (explained later) (string)

The aforementioned "Silly binary day string" takes the form "0000000"... Or "1111111".. Or "0101010" .. Or whatever 7-digit binary string you can think of! Each binary digit is a boolean value representing a day of the week (Sunday though Monday). Thus if a zone has the day string "1111111" it is applicable every day of the week, whereas a zone with string "0111110" is only applicable Monday through Friday. If this confuses you email me.

DG3 saves all zone information in a file called ZoneList.ini ... It is a hybrid text/binary file that I DO NOT RECOMMEND you edit. Look at maybe, but edit... No.

Zone Rules

The rules of Zones is pretty logical. The default zone is hardcoded into the program, and is set to 2 guests, with a 30 minute time limit, and a 5 minute message delay.

DG3 Popup
DG3 Popup

User created zones are parsed at startup, and every 5 minutes (at the same time the guest list is parsed), and the Current Zone is then changed to reflect the zone that is most applicable.

The zonelist is parsed sequentially, and the Current Zone is set to THE FIRST ZONE that meets the necessary day/time criteria. So if you have two zones declared with overlapping times on the current day, the first of the two zones will be chosen.

To disable the message option, simply set the Message Time to nothing (blank the box).

Leaving start times, stoptimes or time limits blank is ILLEGAL and will cause Dead Guests to crash, or the zones to act erratically.. To disable a zone without deleting it, simply uncheck all of the day boxes.

The only times that the menu options for changing message delays and boot times are useful, is when there are no zones, or you temporarily want to change the current zone setting. Any options you change via the menus will get reset the next time the userlist/zonelist is parsed, unless there are no applicable zones.

A Zone is considered "applicable" if it is enabled for the current day, and the current time falls between the start and stop times in the zone.

You can have up to 20 zones defined.. The only reason I set the limit to 20, is because it was a nice round number.. If anyone needs more, I can easily bump that up.

Zones have a 00:00 - 23:59 life. So do the right thing when it comes to time logic.. DG3 assumes all times are applicable to the current day, not lapsing days.

Obtaining Dead Guests

Now that I've told you all of these wonderful things about DG3.. I have to inform you that you can't have it. DG3 was linked against some non-free libraries that prevented releasing DG3, usably, as open-source software, and as such was only available locally.

Known Bugs

Two of the Laws of Computer Programming say that:

  1. Any non-trivial program contains at least one bug.
  2. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.

I'm sure this is applicable to DG3 as well.. I just haven't found any yet.

Retrieved from "http://mattwork.potsdam.edu/projects/wiki/index.php/Dead_Guests"

This page has been accessed 2,533 times. This page was last modified 17:37, 14 October 2006.