# -----------------------------------------------------------------------
#  Copyright 2003-2006 by Alex Peeters [alex.peeters@citap.be]
# -----------------------------------------------------------------------

# General - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Author       : Alex Peeters [alex.peeters@citap.be]
Latest update: xx xxx 2006
Version      : 3.000.012


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# TODO  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# TODO CURRENT VERSION  - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# VERIFY  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

+ SSL version!
  _SSLversion         => 3,
  $objectPlugins->SSLversion(23); $objectPlugins->_init_proxy_and_client_certificate ();

+ SSL sessions include a session-ID

  LWP auto-detects Crypt::SSLeay versus IO::Socket::SSL and does the appropriate thing.

  'SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0' Apache 'httpd.conf' directive.

  [Sun Nov 26 18:27:54 2006] [debug] ssl_engine_kernel.c(1586): Inter-Process Session Cache: request=SET status=OK id=A2909058B6C808A6E2B7F1B4BF4D5E355F3098F096197F49513AC2D7AEAED77B timeout=289s (session caching)
  [Sun Nov 26 18:27:54 2006] [debug] ssl_engine_kernel.c(1586): Inter-Process Session Cache: request=GET status=FOUND id=A2909058B6C808A6E2B7F1B4BF4D5E355F3098F096197F49513AC2D7AEAED77B (session reuse)
  ...
  [Sun Nov 26 18:27:57 2006] [debug] ssl_engine_kernel.c(1586): Inter-Process Session Cache: request=GET status=FOUND id=A2909058B6C808A6E2B7F1B4BF4D5E355F3098F096197F49513AC2D7AEAED77B (session reuse)

  IO::Socket::SSL
    SSL_reuse_ctx
      If you have already set the above options (SSL_version through SSL_check_crl; this does not include SSL_cipher_list yet) for a previous instance of IO::Socket::SSL, then you can reuse the SSL context of that instance by passing it as the value for the SSL_reuse_ctx parameter. You may also create a new instance of the IO::Socket::SSL::SSL_Context class, using any context options that you desire without specifying connection options, and pass that here instead.
      If you use this option, all other context-related options that you pass in the same call to new() will be ignored unless the context supplied was invalid. Note that, contrary to versions of IO::Socket::SSL below v0.90, a global SSL context will not be implicitly used unless you use the set_default_context() function.
    SSL_session_cache_size
      If you make repeated connections to the same host/port and the SSL renegotiation time is an issue, you can turn on client-side session caching with this option by specifying a positive cache size. For successive connections, pass the SSL_reuse_ctx option to the new() calls (or use set_default_context()) to make use of the cached sessions. The session cache size refers to the number of unique host/port pairs that can be stored at one time; the oldest sessions in the cache will be removed if new ones are added.

+ 500 SSL negotiation failed
  openssl s_client -connect www.citap.be:443 -state -debug
  http://www.securityfocus.com/infocus/1818
  http://tud.at/programm/apache-ssl-win32-howto.php3
  my $tries = 0; SSL: { if ( $response->status_line =~ /SSL negotiation failed/ ) { sleep 1; redo SSL unless $tries++ == 3; } }

+ PDFs gaan over de marge heen!
  upgrade to HTMLDOC 1.8.27 and verify parameters

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# ASAP  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

+ chmod 644 for new Collector or Display script
  -rw-r--r--    1 nagios   nagios       2543 Dec 14 08:38 DisplayCT-bipt.sh 

+ generateConfig.pl: onderdrukken van de desactivated elementen ?

+ select ukey, title, arguments from plugins
  where environment = 'P' and activated = 1
    and test not in (select test from plugins where environment = 'A' and activated = 1)
  order by title, uKey

+ ASNMTAP::Asnmtap::Plugins::WebTransact
  remove password from URL before putting into database!
  ook voor run command on demand, ...
  (http|https)//...:...@

+ OnDemand versus Display
  OnDemand
    CRITICAL - WebService Odysseus (Production): 500 read timeout - 200 OK - getVersion (umbriel:9108): 4.20063.13 - 200 OK - ping (cordelia:9110): OK - 200 OK - monitorControls (cordelia:9110): OK - 200 OK - getVersion (cordelia:9110): 4.20063.13 - Odysseus: WARNING|'ping (dmfacsprod:8080)'=172ms;;;; 'monitorControls (dmfacsprod:8080)'=29682ms;;;; 'getVersion (dmfacsprod:8080)'=25ms;;;; 'ping (umbriel:9108)'=25ms;;;; 'monitorControls (umbriel:9108)'=30022ms;;;; 'getVersion (umbriel:9108)'=24ms;;;; 'ping (cordelia:9110)'=24ms;;;; 'monitorControls (cordelia:9110)'=18898ms;;;; 'getVersion (cordelia:9110)'=23ms;;;; Status=2;1;2;0;3 Compilation=1523ms;;;0; Trendline=79.039s;;;; Execution=80579ms;;;0; 
  Display: afkapping op 254 characters
    CRITICAL - WebService Odysseus (Production): 500 read timeout - 200 OK - getVersion (umbriel:9108): 4.20063.13 - 200 OK - ping (cordelia:9110): OK - 200 OK - monitorControls (cordelia:9110): OK - 200 OK - getVersion (cordelia:9110): 4.20063.13 - Odysseus

+ yyyymmdd-test-ukey.sql-LOAD-DATA-FAILED unless ($deleted eq '0' and $skipped eq '0' and $warnings eq '0')
  LOAD DATA LOW_PRIORITY LOCAL INFILE '$path/$filename' INTO TABLE events FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\\n'
  -> 'statusMessage' > 254 characters: 'statusMessage' varchar [254] & 'perfdata' blob, to solve this problem ofwel alleen wat voor '|' staat in database stockeren ?
  -> alle 'yyyymmdd-test-ukey.sql-LOAD-DATA-FAILED' opzoeken en weergeven, zodat oplossing kan worden gezocht voor het geval er nog andere problemen mochten zijn
  -> hoe perfdata aan Perfparse toevoegen van 'yyyymmdd-test-ukey.sql' en/of 'yyyymmdd-test-ukey.sql-LOAD-DATA-FAILED' data?

      if ($updateEntryDBI) {
        $updateString = 'UPDATE ' .$SERVERTABLEVENTS. ' SET uKey="' .$uniqueKey. '", test="' .$test. '", title="' .$title. '", status="' .$status.' ", startDate="' .$startDate. '", startTime="' .$startTime.'", endDate="' .$endDate. '", endTime="' .$endTime. '", duration="' .$duration. '", statusMessage="' .$statusMessage. '", step="' .($interval*60). '", timeslot="' .get_timeslot ($currentDate). '", persistent="' .$persistent. '", downtime="' .$downtime. '", filename="' .$filename. '" where uKey = "' .$uniqueKey. '" and step <> "0" and timeslot = "' . get_timeslot ($currentDate) . '" order by id desc';
        $dbh->do ( $updateString )  or $rv = errorTrapDBI($currentDate, $uniqueKey, $test, $title, $status, $startDate, $startTime, $endDate, $endTime, $duration, $statusMessage, $interval, $filename, "Cannot dbh->do: $updateString");
      } elsif ($insertEntryDBI) {
        $insertString = 'INSERT INTO ' .$SERVERTABLEVENTS. ' SET uKey="' .$uniqueKey. '", test="' .$test. '", title="' .$title. '", status="' .$status.' ", startDate="' .$startDate. '", startTime="' .$startTime.'", endDate="' .$endDate. '", endTime="' .$endTime. '", duration="' .$duration. '", statusMessage="' .$statusMessage. '", step="' .($interval*60). '", timeslot="' .get_timeslot ($currentDate). '", persistent="' .$persistent. '", downtime="' .$downtime. '", filename="' .$filename. '"';
        $dbh->do ( $insertString ) or $rv = errorTrapDBI($currentDate, $uniqueKey, $test, $title, $status, $startDate, $startTime, $endDate, $endTime, $duration, $statusMessage, $interval, $filename, "Cannot dbh->do: $insertString");
      }

+ validation error regarding URLs '&'
  URLs: replace '&' with '&amp;' because & is reserved character

+ ASNMTAP::Asnmtap::Applications
  awstats icon onderdrukken dmv element in de config voorzien?

+ debug dump soms in twee bestanden!
  heb meer informatie nodig (openAppend, write_debugfile en _write_debugfile zijn op het eerste zicht ni de oorzaak)

+ SOAP debug toevoegen en extra testing on failure:
  telnet hostname 80 and/or wget wsdl?
  Zouden wij meer debug kunnen krijgen, ik zou het leuk vinden om de url te zien waar we de test op connecteerd, welke xml, paramters :)
  Zodat in een long debug alle info zit die werkelijk uitgevoerd wordt, dat is handig als je het daarna es wil doen in soapui :) 

+ views.pl - remove [] from title?

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

? Makefile.pl -> Maken van backup van oude versie (de files die je wil overschrijven van de vorige installatie)
  heb momenteel nog geen idee hoe dit moet, kan hierover niets terugvinden

? INSTALL file op het einde van de installatie weergeven
  heb momenteel nog geen idee hoe dit moet, kan hierover niets terugvinden

? No problems but I was a little bit wary of the perl Makefile.PL wanting to create directories and copy files across at that stage.
? I suppose normally I wouldnt expect any changes apart from local directory changes until I do a make install.

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Menu voor Moderator, Admin en Sadmin aanpassen ingeval van Distributed Servers. Hier moeten sommige menuonderdelen onderdrukt worden.

Display & Collector startup script: hostname = Central FQDN Database Server by default. For a probe must this be the central database server

alias toevoegen bij servers.pl ?

generateCollectorCrontabSchedulingReport.pl, generateCollectorDaemonSchedulingReport.pl & generatePluginCrontabSchedulingReport.pl
- 'Problem regarding finding master or slave' in grafieken. Misschien beter in menu onderdukken.

collectorCrontabSchedulingReports.pl & collectorDaemonSchedulingReports.pl
- ipv alle collectors, deze laten kiezen waarvoor nodig!
- lijst laten zien van welke collectors we willen zien per probe!

Windows Internet Explorer 7.0 & Firefox
- ipv een nieuw window te openen, zou dit een nieuwe tabblad moeten zijn

perl /opt/asnmtap/applications/sbin/purge_table.pl -H dtbs.citap.be -D odbc -T 'qpasa-archive' -u asnmtap -p asnmtap --ago='-14 days'
- table 'snmptt_archive' and 'snmptt_unknown_archive': archivetime toevoegen
  Cannot dbh->do: DELETE FROM `snmptt_unknown_archive` WHERE archivetime < "1161727200"

Trendline Correction Reports (for the Collector):
- Steekproefgemiddelde berekenen
  - http://www.let.leidenuniv.nl/history/res/stat/html/les8.html
  - trendline email -> no automatically updates -> table plugins: field trendlineAutoUpdate []
- De beste manier is volgens mij lineair te gaan interpoleren en te gaan kijken naar de richtingscofficint van de rechte.

# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Makefile.pl -> SIGN 
  When true, perform the generation and addition to the MANIFEST of the SIGNATURE file in the distdir during 'make distdir', via 'cpansign -s'.
  Note that you need to install the Module::Signature module to perform this operation.
  Defaults to false.

updated ASNMTAP::Asnmtap::Plugins::NPTest v1.13
  all *.t scripts need to be modified, is now also object oriented!

Update version from CPAN
                               Makefile.PL
                               ? NEW            Bundle::CPANPLUS::Dependencies    : 2 Dec 2006
                               ? version update CGI::Session 4.13 -> 4.14         : 2 Dec 2006
                               ? version update Net::IMAP::Simple 1.14 -> 1.16	  : 2 Dec 2006

Perl modules en SSL (ex. Crypt::OpenSSL::Random), Makefile.PL:
- replace
  'LIBS' => ['-lssl -lcrypto'],
- with
   my $INCLUDE = "/opt/asnmtap/ssl/include";
  'LIBS' => ['-L/opt/asnmtap/ssl/lib -lssl','-L/opt/asnmtap/ssl/lib -lcrypto'],
- or verify the the next can do the same ?
  perl Makefile.PL INSTALL_BASE=/opt/supervision/cpan-shared/ INC=-I/opt/supervision/ssl/include LIBS=-L/opt/supervision/ssl/lib LDFLAGS='-lssl -lcrypto'
  
# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

smoothline (spline layers) for trendline and bar statistics

update into all tables the numeric int where needed: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

database-purge-perfdata, archiver.pl, generateCollectorDaemonSchedulingReports.pl, generateReports.pl 
& holidayBundleSetDowntimes.pl laten uitvoeren door de enkelvoudig crontab script.

Rsync: KeyRsync kan verschillend zijn per server

# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

set foreign_key_checks=0;
delete from perfdata_host where host_name not in (select concat( LTRIM(SUBSTRING_INDEX(plugins.title, ']', -1)), ' (', environment.label, ')' ) as title from plugins, environment where plugins.environment=environment.environment and activated=1);
delete from perfdata_service where host_name not in (select concat( LTRIM(SUBSTRING_INDEX(plugins.title, ']', -1)), ' (', environment.label, ')' ) as title from plugins, environment where plugins.environment=environment.environment and activated=1);
delete from perfdata_service_bin where host_name not in (select concat( LTRIM(SUBSTRING_INDEX(plugins.title, ']', -1)), ' (', environment.label, ')' ) as title from plugins, environment where plugins.environment=environment.environment and activated=1);
delete from perfdata_service_metric where host_name not in (select concat( LTRIM(SUBSTRING_INDEX(plugins.title, ']', -1)), ' (', environment.label, ')' ) as title from plugins, environment where plugins.environment=environment.environment and activated=1);
delete from perfdata_service_raw where host_name not in (select concat( LTRIM(SUBSTRING_INDEX(plugins.title, ']', -1)), ' (', environment.label, ')' ) as title from plugins, environment where plugins.environment=environment.environment and activated=1);
set foreign_key_checks=1;

# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

http://search.cpan.org/~dbrobins/Net-SSH2-0.09/
or
http://search.cpan.org/~cbarratt/File-RsyncP-0.52/lib/File/RsyncP.pm
or
http://www.cis.upenn.edu/~bcpierce/unison/


# BUGS  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

It's not a bug, it's a feature!

1) malformed header from script. Bad header=: generateChart-new.pl, referer: http://asnmtap.citap.be/cgi-bin/detailedStatisticsReportGenerationAndCompareResponsetimeTrends-new.pl

2) generateReports.sh: error undefined value wanneer er geen records zijn :)


# NEW VERSION 3.001.xxx - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ASNMTAP MySQL Injection bug prevention?
- SQL Injection is very critical.
  solution: dbh->quote($user)
  $sql = 'select * from users where username='. dbh->quote($user);

ASNMTAP Cross-site scripting (XSS) prevention?
- We need to verify that all strings are encoded( html_textencode() )


# General - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

fixRights.sh
- automatisch aanmaken
- launch script before restart daemon

ondemand voor testen op probes zoals RAS, DMZ, ...

http://asnmtap.citap.be/asnmtap/nav/index/reports-index.html 
- hier een url naar de plugin times plaatsen, is makkelijker om te onthouden 

Generate XML for monitoring by Nagios, ...


# Plugins - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Indien een mailtest offline is -> intresseert het resultaat ons niet, display offline, plugin toch draaien maar die mails deleten.
MAW bij plugin moet dit kunnen worden opgegeven als plugintype of iets dergelijks!!!

voor plugins, ook optie delete voorzien voor plugins dewelke door acrhiver na x maanden mogen opgekuist worden

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

http://search.cpan.org/~tonvoon/Nagios-Plugin-0.10

  Warning and Critical: checking threshold range format

  Performance Data: checking the expected format
  - 'label'=value[UOM];[warn];[crit];[min];[max]
  - /lib/Nagios/Plugin/Performance.pm


# Display - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Correcte werking van toggle button & environment switch.

Restart Collector and Display: Ledig geworden collector moet overal worden verwijderd !!!

multioffline, status in database offline -> in display als nog te testen weergaven

offline door holiday of scheduling niet in condenced view

offline door comment in condenced view

proxy caching statische pagina's

.cache files                                                     <- sound

applications/custom/display.pm-orig                    <- custom function

On demand run icoontje naar de hamertjes & vraagtekens.

Openen van 'Help en Commands' into new window!


# Reports - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

reports, deselecteren wat niet geselecteerd mag worden voor de datum keuze

mogelijkheid om bepaalde applicaties niet in de view te steken gedurende bepaalde uren. 

Statistics: Monthly Average <- ASAP

Ingeven downtimes, inetctrl, ..., die niet aangekondigd werden, ingeven op 
een later tijdstip.  Dit zou moeten mogelijk zijn om bv de statistieken te 
kunnen corrigeren.

Oproepen van voorgedefineerde stats:
-> http://asnmtap.citap.be/cgi-bin/detailedStatisticsReportGenerationAndCompareResponsetimeTrends.pl?pagedir=test&pageset=index&debug=F&CGISESSID=9d47b3a72238e67381c46df51b903baa&detailed=on&uKey1=DUMMY-T5&uKey2=none&uKey3=none&startDate=2005-12-31&endDate=&inputType=fromto&year=2005&week=52&month=12&quarter=4&statuspie=on&errorpie=off&bar=off&hourlyAvg=off&dailyAvg=off&details=off&topx=off&pf=off&htmlToPdf=1


# Applications  - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

chromeless function update for MSIE 7.0 en Firefox !!!

Algemeen: Navigatie A..Z en laten zoeken naar item mogelijk maken.

Email mailtemplates om mailboodschappen taalonafhangkelijk te maken
-> "Geachte, Cher,\n\n$header\n\n$CcommentData\n\n-- $APPLICATION\n$DEPARTMENT\n$BUSINESS\n"

Comments kunnen zetten op een groep testen via multiselect
# update comments set activationTime='hh:mm:ss', activationTimeslot='1149836400', suspentionDate='yyyy-mm-dd',  suspentionTimeslot='hh:mm:ss', suspentionTimeslot='1149854400', downtime=1 where entryDate='yyyy-mm-dd' and remoteUser='...'

rename uKey of andere key plus overal waar gebruikt en delete plugin, ... met alle dependencies,

delete user gaat niet omwille van de contrains met comments en events -> delete waarbij contrain tijdelijk afzetten!

In view.pl -> selecteer + groeptitle toevoegen

In view.pl -> omvormen naar multiselect 'Display Daemon'

sending email to moderator/admin/sadmin
- collector                       : $SENDEMAILTO
- display                         : $SENDEMAILTO
- contact                         : $SENDEMAILTO
- error_trap_DBI                  : $SENDEMAILTO
- check_nagios-comments-cleanup.pl: $SENDEMAILTO


# NEW VERSION 4.xxx.xxx - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Atom 1.0 feeds versus RSS 2.0 feeds
- http://www.intertwingly.net/wiki/pie/Rss20AndAtom10Compared
- http://www.nimblecode.com/articles/2005/07/17/rss-as-an-error-reporting-mechanism

RSS feeds as an Error Reporting Mechanism, 0.91, 1.0 and 2.0
- cpan XML::RSS @ http://search.cpan.org/~abh/XML-RSS-1.20/
- rss4nagios-1.1.tar.gz @ http://altinity.blogs.com/dotorg/2006/07/lessons_in_rss.html


# General - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

depricate --httpdump & --dumphttp: tijdelijk voor backwards compatibiliteit !!!

icon environment, missing plugin parameters; omdat er niet meer informatie aanwezig is in de Display config file?

Implementation from 'HTML::HTMLDoc::PDF ' located at 'http://search.cpan.org/~mfrankl/HTML-HTMLDoc-0.10/'

http://search.cpan.org/~bmorrow/PerlInterp-0.03/Perl.pm

Innodb Tranasction, bij mislukking is csv bestand wegschrijven en via archiver.pl importeren.

omwille van de netwerktrafiek, resultatien in groep doorgegeven aan de database!

user.pl
- Sending email for: Downtime Scheduling Generated Reports, nagaan of de gebruiker dit zelf moet kunnen aanpassen en/of zien?

Sound (nog problemen met window voor <OBJECT DATA= ...):
- display.pl
  Replace: "<embed src=\"$HTTPSURL/sound/", $SOUND{$playSoundStatus}, "\" alt=\"\"  hidden=\"true\" autostart=\"true\">\n"
  With   : "<OBJECT DATA=\"$HTTPSURL/sound/", $SOUND{$playSoundStatus}, "\" TYPE=\"audio/x-wav\" ALT=\"\" TITLE=\"\"><PARAM NAME=autostart VALUE=true></OBJECT>\n"
- Applications.pm
  Replace: "      document.getElementById('LegendSound').innerHTML='<embed src=\"$HTTPSURL/sound/' + sound + '\" width=\"\" height=\"\" hidden=\"true\" autostart=\"true\">'\n"
  With   : "      document.getElementById('LegendSound').innerHTML='<OBJECT DATA=\"$HTTPSURL/sound/' + sound + '\" TYPE=\"audio/x-wav\" ALT=\"\" TITLE=\"\"><PARAM NAME=autostart VALUE=true></OBJECT\">'\n"

Embedded Perl ASNMTAP ondersteuning aangaande de plugins, gebasseerd op EPN!
- ExtUtils::Embed, which is a collection of utilities for embedding perl

SNMP compatibility regarding the return status off the plugins

http://www.hswn.dk/hobbitsw/

Big Brother / Hobbit compatibility for easy addaptation off these plugins


# Applications  - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Debug files into glob field database.


# Collector - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nieuwe crontab optie: seconds om een crontab te kunnen verschuiven

Debug file for UNKNOWN !!!

  
Sending 'Notifications'
-----------------------

CREATE TABLE `timeperiods` (
  `timeperiod` varchar(15) NOT NULL default '',
  `name` varchar(64) NOT NULL default '',
  `sunday` varchar(15) default '',
  `monday` varchar(15) default '00:00-24:00',
  `tuesday` varchar(15) default '00:00-24:00',
  `wednesday` varchar(15) default '00:00-24:00',
  `thursday` varchar(15) default '00:00-24:00',
  `friday` varchar(15) default '00:00-24:00',
  `saturday` varchar(15) default '',
  `activated` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`timeperiod`)
) TYPE=InnoDB;

# 00:00-24:00 or 00:00-09:00,17:00-24:00 or 00:00-09:00,12:00-44:00,17:00-24:00

plugins -> `timeperiod`, `notificationEnabled`, `notificationOptions`
users   -> `timeperiod`, `notificationEnabled`, `notificationOptions`, `notificationFormat`, `notificationWhen`,
                          [0|1]                   [1|2|3] or [W|C|U]    email to start ?      [n fails], after
                                          [WARNING|CRITICAL|UNKNOWN]    email, pager, sms     test fails n times
                         `notificationInterval`,                       `notificationRecovered`
                          [0|n min], 0 once                             [0|n|F], 
                          repeat every n min until problem solved       n: send notification when problem is solved after after n times ok, 
						                                                f: send notification when problem is solved using formule
                                                                           formule: min 3 <= (30 min / interval) <= max 9


Notification send where plugins->`notificationEnabled` is set
  to the users where users->`notificationEnabled` is set
  for the users->`pagedirs` into the range from plugins->`pagedirs`
    /<pagedir 1>/<pagedir 2>/<pagedir n>/ into the range from /<pagedir 1>/<pagedir 2>/<pagedir m>/
  for the plugins->`timeperiod` into the range from users->`timeperiod`


# /cgi-bin/admin/titles.pl  - - - - - - - - - - - - - - - - - - - - - - -
Webinterface to add, edit and delete titles


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Weetjes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Here is patch to the Net_SSLeay.pm-1.30 that will allow the IO-Socket-SSL-1.01 to work with OpenSSL-0.9.8ab. 
It may not be needed with 0.9.8c.

--- SSLeay.xs_ORIG      2006-11-08 14:36:19.546828000 -0600
+++ SSLeay.xs   2006-11-08 14:36:58.538142000 -0600
@@ -815,7 +815,7 @@
 #endif
        if (strEQ(name, "OP_ALL"))
 #ifdef SSL_OP_ALL
-           return SSL_OP_ALL;
+           return (SSL_OP_ALL & ~SSL_OP_TLS_BLOCK_PADDING_BUG);
 #else
            goto not_there;
 #endif

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

