Commit Graph

676 Commits

Author SHA1 Message Date
Gunnar Beutner b8669d67ca Fix inheritance for config types. 2013-06-06 11:26:00 +02:00
Gunnar Beutner 99220a00c8 Windows build fix. 2013-06-04 10:16:11 +02:00
Gunnar Beutner 92edb85489 Rename 'path_prefix' option to 'perfdata_path'. 2013-06-04 09:52:37 +02:00
Gunnar Beutner 8e754b085e Implement notification escalations. 2013-05-13 13:44:57 +02:00
Gunnar Beutner f4d04f8172 Fix ThreadPool exception on shutdown.
Fixes #3891
2013-05-13 09:58:24 +02:00
Gunnar Beutner 36a45059f9 Fix infinite loop in LegacyTimePeriod::FindNthWeekday(). 2013-05-08 12:48:45 +02:00
Gunnar Beutner 5aeafb9f03 Make error message about invalid object names more verbose. 2013-05-08 10:50:56 +02:00
Gunnar Beutner b4fa556ac6 Fix: ConfigItem types and names are not case-insensitive
Fixes #4044
2013-05-08 10:46:50 +02:00
Gunnar Beutner aaac957ad5 Disallow colons in user-defined objects. Use colons for auto-generated object names. 2013-05-07 09:35:36 +02:00
Gunnar Beutner 7e16c77375 Don't allow config items to inherit from themselves.
Fixes #4045
2013-05-07 09:14:23 +02:00
Gunnar Beutner 1d6e1c205f Fix uninitialized variables. 2013-05-03 12:44:27 +02:00
Gunnar Beutner 1e9dcb35b4 Fix parsing <MONTH> <DAY> time defs (e.g. "december 25").
Fixes #4040
2013-05-03 12:31:11 +02:00
Gunnar Beutner 3457e2d476 Fix DST bug in LegacyTimePeriod::ParseTimeSpec(). 2013-05-03 12:30:57 +02:00
Gunnar Beutner 10dff1d8c1 Removed dependency on boost/uuid. 2013-05-03 11:26:18 +02:00
Gunnar Beutner 288a877625 Implement new validation type: name(Type) 2013-05-03 10:48:28 +02:00
Gunnar Beutner fbbcaeac31 Update documentation. 2013-04-24 14:15:08 +02:00
Gunnar Beutner 4db8b09ff7 Build fix. 2013-04-22 11:39:23 +02:00
Gunnar Beutner 0fcbfdb236 Windows build fix. 2013-04-19 15:28:34 +02:00
Gunnar Beutner d86767e8e3 Fix memory leak in the StdioStream class. 2013-04-19 15:06:45 +02:00
Gunnar Beutner fe4fd67405 Bugfixes for the BufferedStream class. 2013-04-19 14:47:41 +02:00
Gunnar Beutner 5db55ea384 Fix 'make distcheck'. 2013-04-19 13:17:17 +02:00
Gunnar Beutner fcdb690b48 Even more unit tests. 2013-04-19 12:58:16 +02:00
Gunnar Beutner d0113e33da Add more unit tests. 2013-04-19 11:27:18 +02:00
Gunnar Beutner c9fa320379 Remove debug code. 2013-04-18 09:39:08 +02:00
Gunnar Beutner 654954c64c Fix incorrect variable name. 2013-04-18 08:24:22 +02:00
Gunnar Beutner b40c0995ad Unify parsing weekday definitions. 2013-04-18 08:20:16 +02:00
Gunnar Beutner 8a1d24042d Implement complex 1.x timeperiod definitions. 2013-04-17 14:26:04 +02:00
Gunnar Beutner 2e600a7810 More bugfixes for timeperiods. 2013-04-16 10:55:23 +02:00
Gunnar Beutner 836c26da66 Bugfixes for the timeperiod feature. 2013-04-16 10:12:53 +02:00
Gunnar Beutner 9fa628af82 Implemented Icinga 1.x time period parser. 2013-04-15 12:48:12 +02:00
Gunnar Beutner 9a12bbb6f9 Implement host check commands
Fixes #3674
2013-04-15 10:23:06 +02:00
Gunnar Beutner ada9f634dd Don't link items after we've encountered a compiler error.
Fixes #3930
2013-04-08 10:09:27 +02:00
Gunnar Beutner 23b75fd30d Fix crash when application config item is missing. 2013-04-08 10:02:06 +02:00
Gunnar Beutner 4e5e488b17 Remove unused #include. 2013-04-08 09:49:53 +02:00
Gunnar Beutner 6ef5d2deba Fix FIFO bug. 2013-04-08 09:44:12 +02:00
Gunnar Beutner 06839ba4b0 Fix case where all threadpool threads are killed. 2013-04-05 14:32:16 +02:00
Gunnar Beutner 1682ff2839 Optimize replication messages. 2013-04-05 14:05:00 +02:00
Gunnar Beutner d9730f5b83 Bugfixes for the replication component. 2013-04-05 12:09:26 +02:00
Gunnar Beutner 09f395a7de Refactor the socket subsystem. 2013-04-04 16:08:40 +02:00
Gunnar Beutner ca4157ea24 Fix memory leaks in the config parser. 2013-04-04 13:51:36 +02:00
Gunnar Beutner 8ac0a80101 Bugfixes for the socket subsystem. 2013-04-02 11:08:35 +02:00
Gunnar Beutner 49c6c358b1 Bugfixes for the JSON-RPC sub-system. 2013-04-01 16:25:23 +02:00
Gunnar Beutner b0c8f3f626 Make thread pool utilization calculation more accurate. 2013-03-28 12:14:39 +00:00
Gunnar Beutner 2e051ad9e2 Minor performance tweaks. 2013-03-27 18:02:51 +00:00
Gunnar Beutner 0c9f635c46 Build fix. 2013-03-27 16:08:58 +01:00
Gunnar Beutner 4c04c2665c Add missing NUL terminator in lb_steal(). 2013-03-27 16:03:43 +01:00
Gunnar Beutner f1c57ce3a0 Significantly speed up the config lexer. 2013-03-27 16:03:43 +01:00
Gunnar Beutner c14aaf3d29 Optimize lb_append_char(). 2013-03-27 16:03:39 +01:00
Gunnar Beutner 83ff08340b Remove some static vars from the config compiler (in an effort to make it re-entrant). 2013-03-27 13:50:53 +01:00
Gunnar Beutner 96b1bd1943 Add some debug output in the config compiler. 2013-03-27 13:49:58 +01:00
Gunnar Beutner b9ded4a851 Python build fix. 2013-03-27 06:27:44 +00:00
Gunnar Beutner 34d6b42b38 Remove unused #include. 2013-03-27 06:27:33 +00:00
Gunnar Beutner babc948cd0 Performance improvements for Value -> double conversions. 2013-03-27 06:26:42 +00:00
Gunnar Beutner 604b57da43 Fixed double-free in the config parser. 2013-03-26 17:26:31 +00:00
Gunnar Beutner 5d73b69342 Fix return type for PluginCheckTask::ScriptFunc. 2013-03-25 19:58:34 +00:00
Gunnar Beutner 70e96aa2f0 Refactor ScriptFunctions. 2013-03-25 19:47:02 +00:00
Gunnar Beutner ba152d6dc4 Windows build fix. 2013-03-25 18:01:02 +00:00
Gunnar Beutner fd3e92ea0c Refactor AsyncTasks. 2013-03-25 17:36:15 +00:00
Gunnar Beutner e739dfd88f EventQueue: Further changes to how we determine the optimal number of threads. 2013-03-25 16:12:25 +01:00
Gunnar Beutner 167be058f0 More EventQueue tuning. 2013-03-23 20:38:41 +01:00
Gunnar Beutner 8b065b36df Process class: Pipe FD should be blocking. 2013-03-23 18:36:28 +01:00
Gunnar Beutner 6b6be8eec3 Even more tuning. 2013-03-23 15:58:21 +01:00
Gunnar Beutner dc2efae421 More tuning. 2013-03-23 12:54:14 +01:00
Gunnar Beutner 7ac65b0a47 Tune thread spawning behavior. 2013-03-23 12:50:07 +01:00
Gunnar Beutner d04a04d897 Make the event queue adaptive. 2013-03-23 12:23:13 +01:00
Gunnar Beutner 27ceabf3c0 Process class: Use the global EventQueue instead of a custom queue. 2013-03-23 00:26:56 +01:00
Gunnar Beutner 28335db4ba Windows build fix. 2013-03-22 16:05:48 +01:00
Gunnar Beutner 19cc034665 Add validator for the PerfdataWriter type. 2013-03-22 15:32:57 +01:00
Gunnar Beutner 11282b875e Fix syntax error in type validators. 2013-03-22 14:45:24 +01:00
Gunnar Beutner 82f63d7eda Add missing validator for Host -> Service -> notifications. 2013-03-22 14:42:20 +01:00
Gunnar Beutner 6d69d6c639 Refactor the macro resolver
Fixes #3884
2013-03-22 14:42:14 +01:00
Gunnar Beutner 97fee26289 Remove @threadsafety doc strings
Fixes #3889
2013-03-22 12:02:20 +01:00
Gunnar Beutner c63684a72f Shell-escape macros. 2013-03-22 10:58:47 +01:00
Gunnar Beutner db064d3ce9 Removed the '#' prefix for the config statements 'include' and 'library'. 2013-03-21 14:35:10 +01:00
Gunnar Beutner 99bd0f0189 Implement the 'notification_period' attribute. 2013-03-21 13:42:46 +01:00
Gunnar Beutner 8037612e72 Implement 'force' option for SEND_CUSTOM_*_NOTIFICATION. 2013-03-21 13:23:56 +01:00
Gunnar Beutner db8ac1431c More bugfixes for notifications. 2013-03-21 11:37:34 +01:00
Gunnar Beutner e60c04f4bd Fix another bug related to recovery notifications. 2013-03-20 16:27:38 +01:00
Gunnar Beutner f278181b8b Fix recovery notifications for (SOFT-OK -> HARD-OK).
Fixes #3876
2013-03-20 15:25:53 +01:00
Gunnar Beutner 1f570ea9f7 Implement Icinga1.x-style compat log file rotation
Fixes #3874
2013-03-20 11:11:46 +01:00
Gunnar Beutner 8b53735cc9 Move the notification_interval option to the Notification class.
Fixes #3821
2013-03-20 10:08:27 +01:00
Gunnar Beutner 80c3a70107 Implement the CheckResultReader type. 2013-03-19 16:20:46 +01:00
Gunnar Beutner 8e4cc0de25 Reschedule timers even if the OnTimerExpired handler threw an exception. 2013-03-19 16:12:28 +01:00
Gunnar Beutner bf27aad234 Fix cloning attributes for service notifications. 2013-03-19 15:15:57 +01:00
Gunnar Beutner 711a8cb5e0 Use Expression::Extract* for notifications. 2013-03-19 14:47:19 +01:00
Gunnar Beutner 45e24e4729 Fix Expression::Extract. 2013-03-19 14:13:58 +01:00
Gunnar Beutner 969458b480 Build dependant services using extracted expression lists. 2013-03-19 13:37:09 +01:00
Gunnar Beutner a21cf21d52 Implement the CompatLog type. 2013-03-19 13:04:30 +01:00
Gunnar Beutner 7e9a5e647d *NIX build fix. 2013-03-19 07:12:16 +01:00
Gunnar Beutner 6df051fad3 Fix: The order in which config items are defined should not matter
Fixes #3733
2013-03-19 07:09:06 +01:00
Gunnar Beutner 734f76af96 Windows build fix. 2013-03-18 22:40:40 +01:00
Gunnar Beutner 5cd387016d Refactored #includes (Part 6). 2013-03-18 19:02:42 +01:00
Gunnar Beutner 2a8bc3ca0f Refactor #includes (Part 5). 2013-03-18 17:39:40 +01:00
Gunnar Beutner 0744397427 Implement downtime notifications. 2013-03-18 12:55:41 +01:00
Gunnar Beutner 9e1f48049e Implement += operator for arrays. 2013-03-18 12:55:32 +01:00
Gunnar Beutner 7005c17cf1 Python: Fix a compiler warning. 2013-03-18 12:36:02 +01:00
Gunnar Beutner 6e251251f0 Fix example time period. 2013-03-18 11:59:26 +01:00
Gunnar Beutner e6553a7140 Fix unit tests. 2013-03-18 11:15:46 +01:00
Gunnar Beutner c3975af6ec Refactor #includes (Part 4). 2013-03-18 11:02:18 +01:00
Gunnar Beutner 19726d2429 Linux build fix. 2013-03-17 22:14:40 +01:00
Gunnar Beutner 949b4c6356 Add missing file. 2013-03-17 20:22:41 +01:00
Gunnar Beutner 9d076c3c03 Refactor #includes (Part 3). 2013-03-17 20:19:29 +01:00
Gunnar Beutner 0bb0711d72 Refactor #includes (Part 2). 2013-03-16 21:18:53 +01:00
Gunnar Beutner 3073200b53 Cleaned up #includes (Part 1). 2013-03-15 18:21:29 +01:00
Gunnar Beutner 4e765c58de Another windows build fix. 2013-03-15 13:53:50 +01:00
Gunnar Beutner b404798234 Implement support for Exception::GetLastStackTrace on OS X. 2013-03-15 13:44:45 +01:00
Gunnar Beutner 8d52535fad Windows build fix. 2013-03-15 13:39:53 +01:00
Gunnar Beutner 27e1d311de Fix dependencies for mkembedconfig. 2013-03-15 13:35:39 +01:00
Gunnar Beutner 6d5339574a Fix perfdata macros. 2013-03-15 13:30:30 +01:00
Gunnar Beutner 14c837a208 Fix crash in TimePeriod::UpdateRegion(). 2013-03-15 13:29:25 +01:00
Gunnar Beutner e683de5ab8 Build fix for libpython. 2013-03-15 13:29:02 +01:00
Gunnar Beutner fae83d2ef6 Fix symbol visibility issue for REGISTER_CONFIG_FRAGMENT(). 2013-03-15 12:27:03 +01:00
Gunnar Beutner 4d5e924bc6 Add mkembedconfig as a dependency for the .conf -> .cpp build step. 2013-03-15 11:56:30 +01:00
Gunnar Beutner 9a05e2b269 Windows build fix. 2013-03-15 11:52:10 +01:00
Gunnar Beutner ee46731f41 Fix --disable-shared
Fixes #3852
2013-03-15 11:21:16 +01:00
Gunnar Beutner 9ac731ba8e Change log level for some debug messages. 2013-03-15 11:18:56 +01:00
Gunnar Beutner 4e7c43c8c8 TimePeriod update function should return an array of time segments
Fixes #3857
2013-03-15 09:54:06 +01:00
Gunnar Beutner 0f9acdffbb Fix: Only take one work item from the event queue per iteration. 2013-03-15 09:10:57 +01:00
Gunnar Beutner 876519034c Build fix for OS X. 2013-03-15 09:07:50 +01:00
Gunnar Beutner 7c46bb4f7d Use 'explicit' for constructors. 2013-03-14 23:52:52 +01:00
Gunnar Beutner 49620ef0ed XNU build fixes. 2013-03-14 15:14:07 +01:00
Gunnar Beutner 77461e650a Fix invalid type in PythonLanguage::m_NativeMethodDef. 2013-03-14 14:12:57 +01:00
Gunnar Beutner 016a881634 Python: implement support for marshalling arrays
Fixes #3858
2013-03-14 14:06:07 +01:00
Gunnar Beutner 5b0a413f32 Implement array validation
Fixes #3701
2013-03-14 13:24:07 +01:00
Gunnar Beutner 1ef7399cea Remove support for anonymous dictionary items. 2013-03-14 12:40:02 +01:00
Gunnar Beutner 2a2e2ca4e6 Bug fix: missing lock for TimePeriod::PurgeSegments call. 2013-03-14 12:21:10 +01:00
Gunnar Beutner 07421751ad Implement config support for arrays. 2013-03-14 12:17:46 +01:00
Gunnar Beutner 58f0c863a6 Build fix for Clang. 2013-03-14 08:18:19 +01:00
Gunnar Beutner d99671ba0e Implement TimePeriod::RemoveSegment(). 2013-03-14 07:29:53 +01:00
Gunnar Beutner 442a2dbc7d Implement timeperiods. 2013-03-13 16:04:53 +01:00
Gunnar Beutner 67fe31c78b Fix type definitions (rename alias to display_name). 2013-03-13 11:25:38 +01:00
Gunnar Beutner 5b662b3c76 Fix: Deleting downtimes doesn't work
Fixes #3825
2013-03-12 22:49:11 +01:00
Gunnar Beutner 5608b3c0d3 Fix the REMOVE_SVC_ACKNOWLEDGEMENT command. 2013-03-12 22:00:35 +01:00
Gunnar Beutner 98ab009b91 Cleaned up VS project files. 2013-03-12 19:49:24 +01:00
Gunnar Beutner c594ee7c30 Fix compiler warnings on Windows. 2013-03-12 18:56:13 +01:00
Gunnar Beutner 98f7515eee Fix writing the PID file if there is no previous PID file. 2013-03-12 16:02:35 +01:00
Gunnar Beutner 5fcdc51e3c Windows build fix. 2013-03-12 15:35:51 +01:00
Gunnar Beutner 62cb4e14a6 Make mode variable const. 2013-03-12 14:50:40 +01:00
Gunnar Beutner 9ea0cb4353 Truncate the PID file before writing the new PID. 2013-03-12 14:06:59 +01:00
Gunnar Beutner fc337a51e7 Add missing default implementation for DynamicObject::Stop(). 2013-03-12 14:01:11 +01:00
Gunnar Beutner d7492ab823 Remove libpopen_noshell. 2013-03-12 14:01:01 +01:00
Gunnar Beutner 69a2842d4e Implement DynamicObject::Stop(). 2013-03-12 13:48:37 +01:00
Gunnar Beutner 3c363499bb Eliminate the Component class.
Fixes #3832
Fixes #3840
2013-03-12 13:45:54 +01:00
Gunnar Beutner 91c82263a5 Fix some deadlocks in the TlsStream class. 2013-03-12 11:56:14 +01:00
Gunnar Beutner 4b2d828b99 Refactor the init script and remove the -d option.
Fixes #3666
2013-03-12 11:48:45 +01:00
Gunnar Beutner 412a44e697 Windows build fix. 2013-03-11 14:08:55 +01:00
Gunnar Beutner d8edd98e41 Add more information to exceptions. 2013-03-11 13:47:17 +01:00
Gunnar Beutner 0029bc30b7 Fix null pointer dereference in ConfigItem::Commit(). 2013-03-11 13:07:21 +01:00
Gunnar Beutner 4bb808e0fa ConfigType: Use ConfigItem::IsAbstract() to check if items are abstract. 2013-03-11 13:05:32 +01:00
Gunnar Beutner 6f51230a79 Don't instantiate abstract objects.
Fixes #3669
2013-03-11 12:04:10 +01:00
Gunnar Beutner c728e85c8c Implement attribute filters. 2013-03-10 15:11:32 +01:00
Gunnar Beutner 98ba1424b5 Implement proper support for JSON arrays. 2013-03-10 09:08:59 +01:00
Gunnar Beutner a38263b3c8 Implement livestatus commands. 2013-03-10 05:10:51 +01:00
Gunnar Beutner 27505536f9 Add livestatus component. 2013-03-10 03:09:01 +01:00
Gunnar Beutner 375746d710 Fix deadlocks in the Socket/Stream classes. 2013-03-09 15:56:56 +01:00
Gunnar Beutner 5a861b0de0 Fix race condition in Process::WorkerThreadProc. 2013-03-09 15:41:07 +01:00
Gunnar Beutner bac7495f49 Check for invalid value type. 2013-03-09 12:57:26 +01:00
Gunnar Beutner 84fcf24fa3 Add missing return value. 2013-03-09 12:57:07 +01:00
Gunnar Beutner 56dc7c4e0a Add missing "*/". 2013-03-09 12:56:40 +01:00
Gunnar Beutner 9b44a5c35d Fixed incorrect macro name. 2013-03-09 12:53:04 +01:00
Gunnar Beutner cf4397873c Fix another deadlock. 2013-03-08 16:36:26 +01:00
Gunnar Beutner 4371649064 Fix deadlock when adding/removing acknowledgements. 2013-03-08 16:32:29 +01:00
Gunnar Beutner 16b0722cbc Added more templates. 2013-03-08 16:02:33 +01:00
Gunnar Beutner c7f9a78f4d Revert "Remove redundant check for valid task object."
This reverts commit 8337795ff7.
2013-03-08 14:56:23 +01:00
Gunnar Beutner 4668e458ce Update validator for services dictionary. 2013-03-08 14:44:03 +01:00
Gunnar Beutner fb82b73bc9 Fix: Set last state/state type before executing service checks. 2013-03-08 14:43:48 +01:00
Gunnar Beutner 8337795ff7 Remove redundant check for valid task object. 2013-03-08 14:43:28 +01:00
Gunnar Beutner 13436cb536 Catch exceptions in EventQueue::QueueThreadProc. 2013-03-08 14:43:07 +01:00
Gunnar Beutner 756d465ca9 Use TLS for last exception stack trace. 2013-03-08 14:42:41 +01:00
Gunnar Beutner cada2abeb3 Implement automated stacktraces for exceptions. 2013-03-07 19:44:39 +01:00
Gunnar Beutner e2416b5b54 Check return values of SymGetLineFromAddr64 and SymFromAddr. 2013-03-07 16:00:10 +01:00
Gunnar Beutner 4595e4ce5f Fixed retention timer interval 2013-03-07 15:19:26 +01:00
Gunnar Beutner e54604c0e3 *NIX build fix. 2013-03-07 15:16:01 +01:00
Gunnar Beutner fa3f01667f Implemented stacktrace support for Windows. 2013-03-07 15:00:26 +01:00
Gunnar Beutner 5a166f83d7 Move pidfile and command pipe to /var/run/icinga2 rather than /var/run
Fixes #3670
2013-03-07 12:23:43 +01:00
Gunnar Beutner 02be9010e7 Implemented LAST*STATE* macros. 2013-03-07 12:04:20 +01:00
Gunnar Beutner 68bd651195 Improve check latency. 2013-03-07 09:48:00 +01:00
Gunnar Beutner d2a27eb521 Fixed some more compiler warnings. 2013-03-07 09:47:51 +01:00
Gunnar Beutner 97dd87ab96 Fixed compiler warnings. 2013-03-07 08:14:55 +01:00
Gunnar Beutner 659fcf8fa3 Fix cppcheck warnings. 2013-03-06 15:41:13 +01:00
Gunnar Beutner 6f7b553acd Bugfixes for the *:Invalidate*Cache() calls. 2013-03-06 13:01:51 +01:00
Gunnar Beutner 70fa21dfbc Various bugfixes. 2013-03-06 11:04:20 +01:00
Gunnar Beutner be95f3171d Even more code refactoring. 2013-03-04 15:52:42 +01:00
Gunnar Beutner a6d26a2dc1 Windows build fix. 2013-03-02 14:21:13 +01:00
Gunnar Beutner 4cecbfa01e Fixed deadlock in ConfigItem::Commit(). 2013-03-02 14:11:12 +01:00
Gunnar Beutner 48485c5f26 More lock refactoring. Yay. 2013-03-02 09:07:47 +01:00
Gunnar Beutner 572a477da3 Refactored object locking code. 2013-03-01 12:07:52 +01:00
Gunnar Beutner 959b7fa16a Implement support for deserializing JSON arrays. 2013-02-28 14:06:30 +01:00
Gunnar Beutner 3a99842f90 Implement the PerfdataWriter class. 2013-02-28 11:45:47 +01:00
Gunnar Beutner 5228d7f10b Implemented compat support for users and user groups. 2013-02-28 10:50:20 +01:00
Gunnar Beutner b674d46557 Implemented the LONGDATETIME, SHORTDATETIME, DATE and TIME macros. 2013-02-28 10:27:33 +01:00
Gunnar Beutner 5300bf8473 Added missing object locks in the MacroProcessor class. 2013-02-28 10:27:20 +01:00
Gunnar Beutner ee4c8a5755 Fixed incorrect lock in Notification::BeginExecuteNotificationHelper(). 2013-02-28 10:26:53 +01:00
Gunnar Beutner cb907f4f3b Fix crash in Service::IsReachable(). 2013-02-28 10:26:33 +01:00
Gunnar Beutner e9d32eeada Implemented user groups. 2013-02-27 21:49:03 +01:00
Gunnar Beutner 6bf086dc91 Implemented notification_interval attribute for hosts. 2013-02-27 18:15:01 +01:00
Gunnar Beutner 39b0806778 Fixed reachability calculation for host checks. 2013-02-27 17:20:22 +01:00
Gunnar Beutner a960237139 Fixed recovery notifications (again). 2013-02-27 16:57:06 +01:00
Gunnar Beutner e98fd3e3eb Bug fixes for the new cache code. 2013-02-27 16:04:49 +01:00
Gunnar Beutner d666960fa0 Refactor the cache code... again. 2013-02-27 15:23:25 +01:00