Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | processor: force synchronous execute_job() if set_threads(0) has been called | Martin Willi | 2013-07-19 | 1 | -1/+1 |
| | | | | | | During daemon shutdown, some idle threads might be lingering around even if set_threads(0) already has been called. To avoid any races, we enforce synchronous execution of the job. | ||||
* | keychain: Use AM_CPPFLAGS instead of INCLUDES | Tobias Brunner | 2013-07-19 | 1 | -1/+1 |
| | |||||
* | Fix various API doc issues and typos | Tobias Brunner | 2013-07-18 | 6 | -9/+10 |
| | | | | Partially based on an old patch by Adrian-Ken Rueegsegger. | ||||
* | identification: parse identities having a "@@" prefix as ID_RFC822_ADDR | Martin Willi | 2013-07-18 | 1 | -11/+10 |
| | | | | Original patch by Gerald Richter. | ||||
* | stream-service: move CAP_CHOWN check from plugins to service constructor | Martin Willi | 2013-07-18 | 1 | -0/+5 |
| | | | | | A plugin service can be a TCP socket now, so it does not make much sense to strictly check for CAP_CHOWN. | ||||
* | processor: remove the now unused get_threads() method again | Martin Willi | 2013-07-18 | 2 | -17/+0 |
| | |||||
* | watcher: use processors new execute_job() to notify FDs | Martin Willi | 2013-07-18 | 1 | -9/+1 |
| | | | | | Just queueing is problematic, as all threads might be busy waiting for events that the queued (but never executed) job delivers. | ||||
* | processor: add an execute_job() method to directly execute an important job | Martin Willi | 2013-07-18 | 2 | -0/+36 |
| | | | | | | | If all worker threads are busy and waiting for an event, we must ensure that a job delivering that event gets executed. This new method has this property for CRITICAL jobs, using a worker if we have one, but executing the job directly if not. | ||||
* | watcher: properly support multiple watch callback types for the same FD | Martin Willi | 2013-07-18 | 2 | -36/+45 |
| | |||||
* | watcher: read multiple notifications if available | Martin Willi | 2013-07-18 | 1 | -2/+15 |
| | | | | | Use non-blocking I/O on the read end of the notify pipe. This also makes sure the read does not block should select() signal data while there is none. | ||||
* | credmgr: introduce a hook function to catch trust chain validation errors | Martin Willi | 2013-07-18 | 5 | -6/+110 |
| | |||||
* | stream: allow async read/write callback to destroy the stream explicitly | Martin Willi | 2013-07-18 | 2 | -10/+15 |
| | |||||
* | stream: don't close underlying socket when creating a stream from it | Martin Willi | 2013-07-18 | 1 | -1/+6 |
| | |||||
* | watcher: add some debugging statements | Martin Willi | 2013-07-18 | 1 | -0/+12 |
| | |||||
* | watcher: if the processor has no threads, execute the job with watcher thread | Martin Willi | 2013-07-18 | 1 | -11/+19 |
| | | | | | This is important during shutdown, where we might need to signal some FDs while all idle threads are gone already. | ||||
* | processor: add a getter for the threads passed to set_threads() | Martin Willi | 2013-07-18 | 2 | -1/+17 |
| | |||||
* | watcher: unregister a watcher FD if its thread gets cancelled | Martin Willi | 2013-07-18 | 1 | -0/+13 |
| | |||||
* | watcher: release threads waiting in remove() when watcher thread gets cancelled | Martin Willi | 2013-07-18 | 1 | -0/+24 |
| | | | | | | | During daemon shutdown, users might call remove() after processor.set_threads(0) has been called. This gets problematic, as a watch event might be unable to signal completion when no threads are available anymore. Work around this issue by cancelling waiters once processor.cancel() has been called. | ||||
* | stream: support keeping the service alive outside of service callback | Martin Willi | 2013-07-18 | 2 | -4/+5 |
| | |||||
* | stream: add read/write_all() methods to stream | Martin Willi | 2013-07-18 | 2 | -2/+73 |
| | |||||
* | stream: support cancellation of stream service callback | Martin Willi | 2013-07-18 | 1 | -2/+3 |
| | |||||
* | stream: use a service constructor to create services | Martin Willi | 2013-07-18 | 2 | -77/+8 |
| | | | | | | It does not make much sense to reference running services in the manager, especially as unregistration would need the URI (which a user would have to store instead of the service reference). | ||||
* | stream: replace print/vprint() convenience functions by a FILE* getter | Martin Willi | 2013-07-18 | 2 | -51/+20 |
| | | | | | While this will complicate the implementation of streams not based on a fd, it allows us to unleash the full power of FILE based convenience functions. | ||||
* | stream: add a concurrency option to services, limiting parallel callbacks | Martin Willi | 2013-07-18 | 4 | -7/+71 |
| | |||||
* | stream: add a job priority option to stream services | Martin Willi | 2013-07-18 | 4 | -7/+24 |
| | |||||
* | stream: add backlog option to stream services, forward to listen() | Martin Willi | 2013-07-18 | 4 | -11/+15 |
| | |||||
* | stream: add support for TCP stream services | Martin Willi | 2013-07-18 | 3 | -0/+53 |
| | |||||
* | stream: add support for TCP streams | Martin Willi | 2013-07-18 | 3 | -2/+108 |
| | |||||
* | stream: add support for UNIX stream services | Martin Willi | 2013-07-18 | 3 | -0/+61 |
| | |||||
* | stream: add support for UNIX streams | Martin Willi | 2013-07-18 | 3 | -0/+77 |
| | |||||
* | stream: support async operation using watcher | Martin Willi | 2013-07-18 | 2 | -0/+142 |
| | |||||
* | stream: add printf()-style covenience functions | Martin Willi | 2013-07-18 | 2 | -1/+60 |
| | |||||
* | stream: create library instance of stream-manager | Martin Willi | 2013-07-18 | 5 | -5/+13 |
| | |||||
* | stream: add a manager to dynamically register streams and services | Martin Willi | 2013-07-18 | 4 | -3/+389 |
| | |||||
* | stream: add a stream service class abstracting services using BSD sockets | Martin Willi | 2013-07-18 | 4 | -0/+238 |
| | |||||
* | stream: add a stream class abstracting BSD sockets | Martin Willi | 2013-07-18 | 4 | -3/+205 |
| | | | | | Currently only synchronous operation is supported, but this will be extended with asynchronous methods using the new watcher. | ||||
* | watcher: add a centralized an generic facility to monitor file descriptors | Martin Willi | 2013-07-18 | 6 | -3/+504 |
| | |||||
* | capabilities: Add function to check if a capability is held, without keeping it | Tobias Brunner | 2013-07-18 | 2 | -45/+75 |
| | | | | | This can be useful if capabilities are not required anymore after dropping privileges. | ||||
* | automake: replace INCLUDES by AM_CPPFLAGS | Martin Willi | 2013-07-18 | 45 | -147/+194 |
| | | | | | | INCLUDES are now deprecated and throw warnings when using automake 1.13. We now also differentiate AM_CPPFLAGS and AM_CFLAGS, where includes and defines are passed to AM_CPPFLAGS only. | ||||
* | soup: omit deprecated g_type_init() when using >= GLIB 2.36 | Martin Willi | 2013-07-18 | 1 | -0/+2 |
| | |||||
* | keychain: flush certificate cache after reloading System keychain | Martin Willi | 2013-07-18 | 1 | -0/+2 |
| | |||||
* | keychain: monitor changes in the system keychain, reload when necessary | Martin Willi | 2013-07-18 | 1 | -0/+65 |
| | |||||
* | keychain: use SearchCopyNext keychain enumeration for System certs as well | Martin Willi | 2013-07-18 | 1 | -71/+12 |
| | | | | | | | SecItemCopyMatching seems to be problematic regarding memory management. And as there does not seem to be a good alternative to enumerate the System Roots keychain using the SecItemCopyMatching API, we stick to the deprecated enumeration functions for now. | ||||
* | keychain: load certificates from System Roots Keychain | Martin Willi | 2013-07-18 | 1 | -0/+65 |
| | |||||
* | keychain: load certificates only once during startup, improving performance | Martin Willi | 2013-07-18 | 3 | -111/+78 |
| | |||||
* | keychain: support on-the-fly enumeration of trusted/untrusted certificates | Martin Willi | 2013-07-18 | 2 | -1/+118 |
| | |||||
* | keychain: add a stub for a credential plugin using OS X Keychain Services | Martin Willi | 2013-07-18 | 6 | -0/+254 |
| | |||||
* | credmgr: stop querying for secrets once we get a perfect match | Martin Willi | 2013-07-18 | 1 | -0/+4 |
| | |||||
* | credmgr: don't use pointers for id_match_t enum values | Martin Willi | 2013-07-18 | 1 | -2/+2 |
| | |||||
* | openssl: parse X.509 extended key usage from extension parsing loop | Martin Willi | 2013-07-18 | 1 | -33/+38 |
| | | | | | Otherwise parsing gets aborted if unknown critical extensions are handled as error. |