mandos-client: Try to start a plugin to add and remove a local route.
* debian/mandos-client.README.Debian: Add setting of environment variable MANDOSPLUGINHELPERDIR to command line testing mandos-client. * mandos-client.c (raise_privileges): Moved to top of file. (raise_privileges_permanently): - '' - (lower_privileges): - '' - (lower_privileges_permanently): - '' - (add_remove_local_route, add_local_route, remove_local_route): New. (start_mandos_communication): Set SOCK_CLOEXEC flag on socket. Run the above functions to add (and remove) local route, if the conditions indicates it could help. (run_network_hooks): Use O_DIRECTORY, O_PATH, and O_CLOEXEC flags when opening network hook directory. Do TEMP_FAILURE_RETRY around opening of /dev/null and network hook executables. Move redirecting of stdout and stderr to as late as possible before fexecve(). (main): Use O_DIRECTORY and O_PATH when opening temporary directory. * plugins.d/mandos-client.xml (ENVIRONMENT): Document usage of the MANDOSPLUGINHELPERDIR environment variable.
Watch this directory and add/remove/update clients?
70
65
+ Approve(False) -> Close client connection immediately
71
66
** TODO [#C] python-parsedatetime
72
67
** TODO Separate logging logic to own object
73
** TODO [#B] Limit approval_delay to max gnutls/tls timeout value
68
** TODO [#A] Limit approval_delay to max gnutls/tls timeout value
74
69
** TODO [#B] break the wait on approval_delay if connection dies
75
70
** TODO Generate Client.runtime_expansions from client options + extra
76
71
** TODO Allow %%(checker)s as a runtime expansion
77
72
** TODO Use python-tlslite?
78
73
** TODO D-Bus AddClient() method on server object
79
74
** TODO Use org.freedesktop.DBus.Method.NoReply annotation on async methods. :2:
75
** TODO Support [[http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager][org.freedesktop.DBus.ObjectManager]] interface on server object :2: