Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | host: Properly initialize struct sockaddr_in[6] when parsing strings | Tobias Brunner | 2013-07-31 | 1 | -0/+2 |
| | | | | | Otherwise struct members like sin6_flowinfo or sin6_scope_id might be set to bogus values. | ||||
* | asn1: Fix handling of invalid ASN.1 length in is_asn1() | Tobias Brunner | 2013-07-31 | 1 | -0/+5 |
| | | | | Fixes CVE-2013-5018. | ||||
* | keychain: be less verbose when loading certificates | Martin Willi | 2013-07-31 | 1 | -2/+5 |
| | |||||
* | utils: add round_up/down() helper functions | Martin Willi | 2013-07-29 | 2 | -0/+49 |
| | |||||
* | watcher: Made notify array initialization compatible with older GCC versions | Tobias Brunner | 2013-07-25 | 1 | -2/+1 |
| | |||||
* | unit-tests: Add additional tests for host_t | Tobias Brunner | 2013-07-25 | 1 | -3/+551 |
| | |||||
* | array: Number of items in get_size() is unsigned | Tobias Brunner | 2013-07-25 | 1 | -1/+1 |
| | | | | | | Otherwise, array->esize is promoted to int and if array->esize * num results in a value > 0x7fffffff the return value would be incorrect due the implicit sign extension when getting cast to size_t. | ||||
* | stream: Ensure UNIX socket path is null terminated | Tobias Brunner | 2013-07-24 | 1 | -0/+1 |
| | |||||
* | pkcs5: Add missing break statements when checking crypto primitives | Tobias Brunner | 2013-07-24 | 1 | -0/+2 |
| | |||||
* | unit-tests: Add test for host_create_netmask() | Tobias Brunner | 2013-07-24 | 4 | -1/+100 |
| | |||||
* | host: Prevent overflow in host_create_netmask() if mask is 0 or 32/128 | Tobias Brunner | 2013-07-24 | 1 | -5/+7 |
| | |||||
* | capabilities: Proper error handling when reading groups | Tobias Brunner | 2013-07-24 | 1 | -1/+8 |
| | |||||
* | 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. |