                                                            -*- ChangeLog -*-
2009-07-13  Matthew Mundell <mmundell@intevation.de>

	Ensure that if a CREATE_TASK fails half way, the new task is removed
	from the database.  Probably the task should be added to the database
	at the end of the CREATE_TASK instead of at the beginning.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Where necessary, buffer the XML output for a command before queuing it,
	in case there is an error later on in the command.  This way an error
	response could be sent to the client, instead of half a success response
	with a closed connection.  An example is the CLIENT_GET_STATUS case of
	omp_xml_handle_end_element where send_reports could fail after the initial
	part of <get_status_response...> is queued.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Look into the memory fault that occurs when running openvasmd under
	gdb.  The gdb process reports the fault and exits.  The openvasmd process
	carries on running OK.  Sometimes running the tests under load hangs my
	laptop, which is perhaps related.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Switch to logging via libopenvas.  Add function names to log and error
	messages.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Convert data coming in from the server to utf-8 and going out to the
	server to 8859-1.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Handle the situation where the OMP response is bigger than the available
	space in to_client.  At present the manager just closes the connection if
	this happens.  One solution would be to try write to the client when
	out of space in order to free some space.  This could conflict with the
	entry above about buffering an entire response before queuing it.  Some of
	the responses, like get_nvt_details_response, can be big if the plugin set
	is big.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Handle errors from the SQL properly.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Check carefully that removing a running task works OK.  An OTP SCAN_END
	can arrive at any time, and if the task has been marked for removal the
	SCAN_END handler will remove the task and associated reports immediately.
	This could cause problems if an OMP command is accessing the task or
	reports.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Use Glib everywhere and use it consistently.  For example, some parts
	of the manager use char* while other parts use gchar*.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Consider the effects of Glib's out of memory handling.  Of special concern
	is the main manager process, where it may be better to try release memory
	than to exit the manager entirely.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Test the build system when SQLite is missing.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Consider dropping the file system based task storage backend entirely,
	as the file system tasks are already out of date (nvti*, initial run
	state) and would need considerable additional work to handle
	simultaneous access to the task	information.  Looking at the openvasd
	storage/backend/IPC may be a source of inspiration.  In either case use
	a better mechanism than including tasks_sql.h and tasks_fs.h in manage.c.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Clear the "FIX"es out of the code.  Either resolve the issue or convert
	the FIX into a (longer term) FIXME or (long term) TODO.  There are about
	120 of these.  Some of them are duplicates.  Many are about the code
	organisation.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Move the approximately 25 TODOs in the code into here.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Add a check for the UUID library to the build system.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Check the memory management.  A quick valgrind reported memory leaks.
	There is initial work present for splint coverage which could be
	completed.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Match the OMP specification.

	Rethink the GET_STATUS behaviour when the client gives the ID of a task
	that is running.  OMP specifies special output in this case.  The manager
	simply responds as usual.

	Consider using separate words for the task STATUS (the state of the	task,
	like "Done") and the request STATUS (like "404").  Perhaps the request
	status could be called CODE, as in "HTTP error code".

	Match authentication scope.  Manager authentication is per connection.

	Match authentication response.  At present if AUTHENTICATE fails
	then the manager responds to the AUTHENTICATE with
	<authenticate_response status="400"/>.  The following command will then
	get <omp_response status="404"/> (syntax error).

	Name checksum entities consistently.  get_nvt_feed_checksum_response
	has checksum, while get_nvt_all_response has feed_checksum.

	Implement MODIFY_TASK PARAMETERS.

	Implement OIDs for GET_PREFERENCES and GET_DEPENDENCIES.

	Implement GET_REPORT FORMAT.

	Ajust the MODIFY_TASK and MODIFY_REPORT implementations to expect at
	least one parameter.

	Remove ID attributes from all responses in the specification.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Consider moving tests to openvas-manager/tests/, at least so that src/
	compiles quicker.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Switch the tests to the libopenvas connection handling (in
	libopenvas/openvas_server.c).

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	* src/tests/common.c (wait_for_task_delete): Properly check get_status
	response.

2009-06-12  Matthew Mundell <mmundell@intevation.de>

	Make the test style uniform, especially the exit style (some tests goto,
	others duplicate code).

2009-06-16  Matthew Mundell <mmundell@intevation.de>

	In libmanage (src/manage.c), consider separating functions that
	communicate with the server (start_task, stop_task, request_*,
	acknowlegde_bye) from data storage and manipulation functions (like
	make_task, next_task, task_name and delete report).

	This could make it easier to use the library outside the manager.
