Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | packet: Define a global default maximum size for IKE packets | Tobias Brunner | 2014-10-10 | 1 | -0/+5 |
| | |||||
* | stream-service: Prevent race conditions due to blocking call to destroy() | Tobias Brunner | 2014-09-09 | 1 | -5/+62 |
| | | | | | | | | In the previous implementation queued jobs could prevent a service from getting destroyed. This could have lead to a deadlock when the processor is cancelled. Now destroy() still blocks, but waits only for actually running tasks. The service instance is reference counted so that queued jobs can safely be destroyed. | ||||
* | stream-service: Do not accept or re-register when service is terminated | Tobias Brunner | 2014-09-09 | 1 | -2/+10 |
| | |||||
* | stream-service: Restart accepting without blocking | Tobias Brunner | 2014-09-09 | 1 | -2/+7 |
| | | | | | | | | | | | | Calling on_accept() sometimes lead to deadlocks when service->destroy() was called concurrently. That is, two threads waiting in on_accept() but the last worker would only wake one due to the call to signal(). Calling broadcast() wouldn't help either as that could lead to crashes if the thread that called destroy() is woken first. This is also more efficient as a constant pool of concurrent workers can be maintained, otherwise peaks at the limit were followed by only a single worker being active. | ||||
* | stream: Separate TCP/Unix stream helpers from stream/service implementations | Martin Willi | 2014-06-04 | 13 | -300/+503 |
| | | | | | | This allows us to disable Unix sockets cleanly on Windows. Replaces some read/write calls with recv/send counterparts, as Winsock does not like read/writes. | ||||
* | tun-device: Rearrange headers to build properly when tun devices not supported | Martin Willi | 2014-06-03 | 1 | -19/+13 |
| | |||||
* | windows: Add a common Windows header for platform specific wrappers | Martin Willi | 2014-06-03 | 2 | -5/+1 |
| | | | | | Include some more basic system headers in utils.h, so we can use that common header on the different platforms. | ||||
* | tun-device: Use SIOCAIFADDR to set IP address on FreeBSD 10 | Tobias Brunner | 2014-04-25 | 1 | -2/+90 |
| | | | | | | | | FreeBSD 10 deprecated the SIOCSIFADDR etc. commands, so we use this newer command to set the address and netmask. A destination address is now also required. Fixes #566. | ||||
* | lookip: Disconnect asynchronously to avoid dead-locking watcher unregistration | Martin Willi | 2014-02-17 | 1 | -3/+2 |
| | | | | | | | | | While it really would be desirable to allow stream destruction during on_read() callbacks, this does not work anymore since e49b2998. Until we have a proper solution for this issue, use asynchronous disconnects for the only user doing so. Fixes #518. | ||||
* | lib: All settings use configured namespace | Tobias Brunner | 2014-02-12 | 1 | -4/+4 |
| | |||||
* | stream: Make sure no watcher callback is active while changing stream callbacks | Martin Willi | 2014-01-22 | 1 | -14/+3 |
| | | | | | | | | | | | When changing async callbacks on streams, we have to make sure the watcher callback is not currently active and has temporarily disabled callbacks. This could have been the case, as we didn't explicitly removed any pending watcher registration if both callbacks are NULL. By enforcing the watcher unregistration, we are sure the watcher callback is not active and currently is not mangling the callback hooks. This should make sure we avoid any races for the callback variables. | ||||
* | tun-device: Include system headers before our own | Tobias Brunner | 2013-12-20 | 2 | -3/+5 |
| | | | | | | | | | | | | | On CentOS 6.5 the sys/capability.h header file defines _LINUX_TYPES_H without actually including that header, preventing its later inclusion here. As library.h (via which the capabilities headers are included) is not actually required in tun_device.[ch], moving the inclusion of tun_device.h would not strictly be necessary. But it's probably a good idea to include our own headers after system headers anyway, for if one of the recursively included files at a later point includes library.h we'd have the same problem again. | ||||
* | tun-device: Include <linux/types.h> before <linux/if_tun.h> | Martin Willi | 2013-11-22 | 1 | -0/+1 |
| | | | | Fixes a build error on CentOS 6.4. | ||||
* | Use exact mask when calling umask(2) | Tobias Brunner | 2013-10-29 | 1 | -1/+1 |
| | | | | | | Due to the previous negation the high bits of the mask were set, which at least some versions of the Android build system prevent with a compile-time check. | ||||
* | tun_device: Add warning if TUN devices are not supported by platform | Tobias Brunner | 2013-09-12 | 1 | -2/+16 |
| | |||||
* | 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. | ||||
* | stream: Ensure UNIX socket path is null terminated | Tobias Brunner | 2013-07-24 | 1 | -0/+1 |
| | |||||
* | host: Prevent overflow in host_create_netmask() if mask is 0 or 32/128 | Tobias Brunner | 2013-07-24 | 1 | -5/+7 |
| | |||||
* | Fix various API doc issues and typos | Tobias Brunner | 2013-07-18 | 1 | -2/+3 |
| | | | | Partially based on an old patch by Adrian-Ken Rueegsegger. | ||||
* | 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. | ||||
* | 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 |
| | |||||
* | 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 | 3 | -5/+2 |
| | |||||
* | stream: add a manager to dynamically register streams and services | Martin Willi | 2013-07-18 | 2 | -0/+386 |
| | |||||
* | stream: add a stream service class abstracting services using BSD sockets | Martin Willi | 2013-07-18 | 2 | -0/+235 |
| | |||||
* | stream: add a stream class abstracting BSD sockets | Martin Willi | 2013-07-18 | 2 | -0/+202 |
| | | | | | Currently only synchronous operation is supported, but this will be extended with asynchronous methods using the new watcher. | ||||
* | tun-device: Packets sent over utun devices on Mac OS X have the protocol ↵ | Tobias Brunner | 2013-06-21 | 1 | -0/+11 |
| | | | | family prepended | ||||
* | tun-device: Avoid opening /dev/tunX multiple times (e.g. on FreeBSD) | Tobias Brunner | 2013-06-21 | 1 | -2/+6 |
| | |||||
* | host-resolver: don't try to resolve a plain v4 address to an IPv6 address | Volker Rümelin | 2013-05-16 | 1 | -3/+17 |
| | | | | | Suppress 'Address family for hostname not supported' errors if a IPv6 client connects in a mixed IPv4/IPv6 environment. | ||||
* | tun_device: add a getter for the address previously passed to set_address() | Martin Willi | 2013-05-06 | 2 | -0/+32 |
| | |||||
* | tun_device: add a getter for the underlying file descriptor | Martin Willi | 2013-05-06 | 2 | -0/+14 |
| | |||||
* | tun-device: use host_create_netmask() to calculate interface netmask | Martin Willi | 2013-05-06 | 1 | -49/+12 |
| | |||||
* | host: add a netmask constructor taking the number of network bits | Martin Willi | 2013-05-06 | 2 | -0/+57 |
| | |||||
* | host: remove unused host_t.get_differences() method | Martin Willi | 2013-05-06 | 2 | -39/+0 |
| | |||||
* | host: print %#H format specifiers not as %any, but with the port | Martin Willi | 2013-05-06 | 1 | -1/+1 |
| | |||||
* | host: initialize sockaddr->sa_len if it is available | Martin Willi | 2013-05-06 | 1 | -0/+14 |
| |