While any normal crashes should already remove the pid file
if one was created mumo can still be killed in ways which
make it unable to clean up after itself. This patch adds
a basic heuristic which checks if the pid mentioned in the
pid file belongs to a running process. If so we assume this
is actually mumo and terminate. If not we assume mumo isn't
running and break the lock. This approach is not 100% reliable
and it break the acquire timeout properties we had before
but should do the trick.
This patch adds support for adding context menu entries
to connected users. As these callbacks are - in contrast
to all others in mumo - user specific they do not fit
well with the existing mumo architecture. To cope with
this creating these callbacks is now handled directly
inside the manager on behalf of the remote manager.
The remote manager then handles forwarding any context
menu actions to a user selected handler.
This patch also removes the vestigial parts of context
menu handling already present but unused in mumo as they
were an architectural dead end.
- Using default values now instead of NULL to signal empty field
because NULL values are considered distinct in the context of
UNIQUE table constraints in sqlite
- Introduced new table for mappings from sid, game, server and team
to channel name i preparation for new functionality
- Updated and expanded unit test