Fairly major commit. This will break the current version of ihost, but this had to be done really to give Pete something to test the new ihost against. The main change here is removal of the TCP Heartbeat functionality from the filter. This meant the following features stopped working :- - Heartbeat testing - Configuration checking - Service checks The heartbeat testing, specifically the monitor, now looks at the presence of UDP packets instead. Before it just looked for the presence of a TCP heartbeat packet, so the change their is fairly negligible. Of course this means heartbeat testing now relies on the UDP working... but I don't see this as a problem. Configuration checking has been repositioned in to the filtermanager. This is a backwards compatible change - the filtermanager should still perform as it should for older hosts. But now there's an extra command to check the configuration is up-to-date, with a similar format to the old TCP protocol in the filter. (although we may optimise this soon) The service checks are broken. This isn't a major issue for us as they were pretty useless in the first place. The concept is good, but the checks are just far too primitive. I expect at some point I'll work on a seperate component that just monitors services, which will replace this function. Further changes in the server include removal of the key checking code, as this relied on a bolt on to the TCP heartbeat protocol to ship the key. This got more akward than originally planned, so I'm happy to drop the idea. In the long term we hope to replace this with a public key systems for signing and even encryption. Finally, general tidy up to remove other bits of code that check for TCP heartbeat packets when they don't need to any more.
Initial work on host authentication for the server. Until I can get ihost doing it's side of the host authentication I can't really test any further. It seems to work, as in it filters data which isn't authenticated when told to do so in the config :)
New filter plugin to remove packets that don't match a given ACL. This allows filtering to be done based on ACL's at any point during a filter chain (rather than just the ends). This also semi-solves the problem of not being able to do an ACL on the CORBA input to a Filter (well, not easily afaik).
Major change in the java package naming. This has been held off for some time now, but it really needed doing. The future packaging of all i-scream products will be; uk.org.iscream.<product>.<subpart>.* In the case of the central monitoring system server this will be; uk.org.iscream.cms.server.* The whole server has been changed to follow this structure, and tested to a smallish extent. Further changes in other parts of the CMS will follow.
The whole server package structure has been changed. Old Package: uk.ac.ukc.iscream.* New Package: uk.org.iscream.*
Made an abstract skeleton class for the service checks. They all do very similar things, so it seemed worth putting all the behaviour in one place. This also has another advantage, namely that service checks are now much quicker to produce, and that in the future the checks could even be moved to a general checker that reads from the configuration.
Added a selection of new Service Checks. These are basic, and only get back a simple line from the server. This could probably better be done with an abstract class. Actually, it needs to be considered whether it matters what is sent back, because maybe we just care about the fact a service exists.
Added SMTP Service Checker
now compiles HTTP__ServiceCheck.java
now compiles the test service check
Added new TypeChecker plugin.
MERGE: Merged the SERVER_PACKAGEBUILD branch back into the HEAD trunk.
Done some more tidying on all the Makefiles. This should have solve the current dependency problem that seemed to be occuring with the java source files. The only dependency that's now not quite in place is the IDL stuff. This should be easily fixable.
Attempted to improve the dependencies, and tidied up the code Makefiles a bit better. Getting there... slowly.
All Makefiles in the made code now make use of includes. This has dramatically reduced the size and complexity of each file. Future improvements centre around checking of dependencies better.
Changed the Makefile to place compiled class files in a seperate directory further down the directory structure. Also supplied the following switches to the javac compiler. -g:none -O The first make sure no debugging information is supplied, and the second makes the compiler optimise the code.
Makefile for the Filter plugins.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.