summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* ipcpd: Fix strict aliasing warning0.15.1Dimitri Staessens2019-03-181-1/+1
| | | | | | | | | | | | | Some versions of gcc seem to give a positive on the strict aliasing rule. It's absent from newer gcc versions or clang. However, rather than disabling the check for older version, this small rewrite seems to temporarily fix the false positive. Apparently, it's undefined behaviour to simply cast a char/uint8_t buffer to a variable type pointer and then dereference the type. A more elaborate patch to fix the undefined behaviour is needed. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* build: Fix CMake policy settingDimitri Staessens2019-03-181-1/+1
| | | | | | | | | The CMake policy setting was set to 3.13, which doesn't work on older CMake versions. The setting is now set to use the default policy of the installed version. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* version: Ouroboros 0.15.00.15.0Sander Vrijders2019-03-181-1/+1
| | | | Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* doc: Update documentation to new website URLDimitri Staessens2019-03-181-2/+2
| | | | | | | | The documentation and package point to the imec site, which is now moved to ouroboros.rocks Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* build: Fix build error with swigDimitri Staessens2019-03-181-0/+1
| | | | | | | | | | There is an unsafe strncpy() in the swig compilation process, which has been fixed a while back but is still not in the release version. This disables the compiler warning. It also fixes an unspecified option. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* lib: Fix reading tx queue length0.14.0Dimitri Staessens2018-12-071-1/+1
| | | | | | | The fccntl call was reading from the RX queue instead of the TX queue. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* tools: Specify QoS cube for data transfer flows0.13.0Dimitri Staessens2018-10-191-2/+2
| | | | | | | | | The ipcp connect command can now set a specific qos cube for data transfer flows. For management flows, the tool ignores this and defaults to raw until data flows are stable enough. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* ipcpd: Send link state message before lsdb update0.12.3Dimitri Staessens2018-10-121-1/+1
| | | | | | | | | | When a new link is added, the link state update will be sent before the database update, so the network is a little bit more quickly aware. This improves odds of the DHT successfully enrolling at its first attempt, reducing bootstrap time of a network. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* lib: Fix padding in rdrbuff0.12.2Dimitri Staessens2018-10-091-1/+1
| | | | | | | | Multiblock writes that require wrapping will now correctly pad unuseable space at the end of the rdrbuff. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* lib: Define QoS specs inside header file0.12.1Sander Vrijders2018-10-091-1/+1
| | | | | | | | | The QoS specs were defined in the source file instead of in the header file, which resulted in uninitialized structs being used, which gave rise to weird behavior in the library. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* version: Ouroboros 0.120.12.0Dimitri Staessens2018-10-061-2/+2
| | | | Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* ipcpd: Check if mgmt flow event is FLOW_PKT0.11.12Sander Vrijders2018-07-271-1/+1
| | | | | | | | | The management flows were considering every event to be a FLOW_PKT event, when in fact it could also be a flow down or up event, resulting in indefinite reads. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* ipcpd: Fix sequence number check for link state0.11.11Sander Vrijders2018-07-251-1/+1
| | | | | | | | | Commit a3903da659e introduced sequence number for the LSAs to make it more robust, but the check was not done properly, and the seqno was always changed regardless of whether it was an old LSA or not. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* tools: Enhance irm connect and disconnect command0.11.10Sander Vrijders2018-07-231-1/+1
| | | | | | | | | | This enhances the irm connect and irm disconnect command to allow creating connections between IPCPs based on wildcard matching for the component name. In case no component was specified it sets up connections between all possible components. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* lib: Use macros for all time utility functions0.11.9Dimitri Staessens2018-06-131-1/+1
| | | | | | | | | This replaces the time utility functions with macros. This avoids using library functions in the tools and also slightly speeds up the implementation. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* ipcpd: Include string for memset in graph.c0.11.8Dimitri Staessens2018-05-291-1/+1
| | | | | | | | The memset function was used without including <string.h>, which some compilers complain about. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Update default values0.11.7Sander Vrijders2018-05-291-1/+1
| | | | | | | | | | | This sets updated default values for the default build. A higher connect timeout until we have asynchronous local IPC. Disabled SWIG since the lastest gcc reports an error. IPCP flow stats enabled by default since their impact on the performance is very limited. Waiting for the directory to enroll before returning to increase stability. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* build: Check for variable length arraysDimitri Staessens2018-05-281-0/+1
| | | | | | | | | | The clang and gcc compilers don't complain about variable length arrays using the -c89 flag unless the flag -Wvla or -Wpedantic is set. This also fixes a memleak and two false positive uninitialized variable warnings reported by the clang static analyzer in graph.c. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* ipcpd: Fix check build for DHT0.11.6Dimitri Staessens2018-05-081-1/+1
| | | | | | | | The DHT test failed on the use of IPCP-specific calls. These calls are now guarded by the correct defition checks. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* ipcpd: Include ipcp-dev header in DHT0.11.5Dimitri Staessens2018-05-081-1/+1
| | | | | | | | The DHT called ipcp_sdb_release without including ipcp-dev, causing compiler errors on some machines. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* ipcpd: Limit number of returned query addresses0.11.4Dimitri Staessens2018-05-031-1/+1
| | | | | | | | | The query returned all addresses where a name was registered, causing some scaling problems. Now it will return at most DHT_RETR_ADDR, which is currently set at 1 (anycast). Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* lib: Make UNIX socket buffer size configurable0.11.3Sander Vrijders2018-05-031-1/+1
| | | | | | | | | | This makes the buffer size used by the UNIX sockets configurable. In case of a lot of IPCPs in the system it might become too small with the default value, resulting in irm command failures. The user can now easily configure it with an adequate value. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* tools: Fix hash algorithm in ipcp_bootstrap0.11.2Dimitri Staessens2018-04-051-1/+1
| | | | | | | A bad check caused failure to set the hash algorithm for IPCPs. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* irmd: Fix unreachable statement0.11.1Dimitri Staessens2018-03-281-1/+1
| | | | | | | The unreachable statement was missed by some compilers. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* version: Ouroboros 0.110.11.0Dimitri Staessens2018-03-281-2/+2
| | | | | Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* ipcpd: Fix reading LSAs in link-state policy0.10.7Dimitri Staessens2018-03-161-1/+1
| | | | | | | | | | | The read buffer had the exact length of a link-state message. With the partial read implemented, we should then do another read() to check if there are more parts of the message (which will return 0). To avoid the additional read() call every time, the buffer was extended by 1 byte. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* lib: Use PTHREAD_COND_CLOCK for blocking reads0.10.6Dimitri Staessens2018-03-101-1/+1
| | | | | | | | | | | The rbuff uses the PTHREAD_COND_CLOCK for its condition variables, but the flow_read was passing a time it got from the CLOCK_REALTIME_COARSE clock. This causes the blocking reads not to timeout correctly. The oping was updated to detect server timeouts and finish gracefully. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* tools: Don't cancel reader thread in oping0.10.5Dimitri Staessens2018-03-051-1/+1
| | | | | | | | The reader thread was cancelled as soon as the writer was finished, which resulted in missed responses and misreported packet loss. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* lib: Fix FUSE access for non-root users0.10.4Dimitri Staessens2018-02-261-1/+1
| | | | | | | | | | This fixes the access to the RIB for non-root users. Thanks to Sitri and Dagger from the ##fuse channel for their assistance. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Enable debug symbols for debug buildsDimitri Staessens2018-02-261-0/+2
| | | | | | | | This sets the "-g" compiler flag if the build is not "Release" so that the sanitizers correctly display line numbers in their output. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* irmd: Cleanup flow datastructures on exit0.10.3Dimitri Staessens2018-02-241-1/+1
| | | | | | | | | The irmd was not cleaning up non-deallocated flows upon exit. This bug was probably introduced with the introduction of the threadpool managers. Also fixes a missing rwlock_destroy(). Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* ipcpd: Fix malformed sprintf in dt component0.10.2Dimitri Staessens2018-02-241-1/+1
| | | | | | | | The sprintf was missing a format string. Some compilers did not complain about this. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Deprecate version generation from git tag0.10.1Dimitri Staessens2018-02-231-3/+4
| | | | | | | | | | This deprecates the version generation from git tags. The version is now set in the CMakeLists.txt. This avoids wrong versions when checking out old commits and building the repository inside another repository. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Use GNUInstallDirs instead of hardcoded values0.9.9Sander Vrijders2018-02-061-7/+7
| | | | | | | | This changes the build to use GNUInstallDirs instead of hardcoded values. Package maintainers can then override these defaults by passing the correct value to cmake on the command line. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Add patchlevel to versionDimitri Staessens2018-01-101-1/+3
| | | | | | | This adds a patchlevel to the Ouroboros version. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Install system-wide on OS XDimitri Staessens2017-11-201-1/+1
| | | | | | | | OS X should disable the system integrity protection system so ouroboros can be install system-wide. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Set correct rpath in non-sandboxed buildSander Vrijders2017-11-161-3/+9
| | | | | | | | After the previous commits, the rpath was not being correctly set anymore for the sandboxed and non-sandboxed build. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* build: Fix setting default build typeSander Vrijders2017-11-151-3/+4
| | | | | | | | This adds a check and sets the FORCE parameter to override the cmake default build type. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* build: Set defaults for prefix and build typeDimitri Staessens2017-11-151-0/+8
| | | | | | | | This defaults the CMAKE install prefix to "/". It also sets the default build type to "Release". Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Set CMAKE_REQUIRED_FLAGS in CompilerUtilsSander Vrijders2017-11-141-3/+3
| | | | | | | | | This sets the cmake variable CMAKE_REQUIRED_FLAGS to the compiler flags that are being tested so that the linker doesn't fail when trying the compile flag. Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
* build: Add options for debug builds with sanitizerDimitri Staessens2017-11-141-0/+7
| | | | | | | | | This adds three build types, DebugASan, DebugTSan and DebugLSan that enable the Address, Thread and Leak Sanitizer by setting the fsanitize flag to the compiler. This option is supported by both gcc and clang. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Set compiler optimization for release buildDimitri Staessens2017-11-131-0/+3
| | | | | | | This automatically sets the -O3 compiler flag for release builds. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* build: Set bugreport URLdimitri staessens2017-10-141-1/+1
|
* lib: Deprecate ouroboros_init and ourboros_finidimitri staessens2017-10-141-4/+10
| | | | | | | | | | | | | | This commit deprecates ouroboros_init and ouroboros_fini and adds them as a constructor or destructor, causing these function to be run automatically when a program that links to the library calls and exits main(). For this to fully work, the library had to be split so that we can avoid the irmd calling these functions (the IRMd has to create the shm structures on which these calls depend). The library is split in 3 parts: libouroboros-dev, libouroboros-irm and libouroboros-common. The latter is linked to the other two so that including libouroboros-dev or libouroboros-irm will also link libouroboros-common.
* build: Clean up output with missing ProtobufCdimitri staessens2017-09-131-1/+6
|
* build: Fix DDNS tool detection for shim-udpdimitri staessens2017-09-131-1/+1
| | | | | | This fixes output when detecting DDNS tools and homogenizes output and the APIs used to pass variables between the build system and the sources. Fixes some minor issues and typos).
* build: Add systemd unit on installSander Vrijders2017-09-051-0/+8
| | | | This adds a systemd unit for the irmd on installation of Ouroboros.
* build: Revise the build systemdimitri staessens2017-08-211-21/+11
| | | | | | | | | | This revises the build system to have configuration per system component. System settings can now be set using cmake. The standard compliance defines were removed from configuration header and are set in the sources where needed. Also some small code refactors, such as moving the data for shims out of the ipcp structure to the respective shims were performed.
* build: Fix compilation on OS X Sierradimitri staessens2017-08-111-2/+9
|
* build, lib, ipcpd, irmd: Add support for libgcryptdimitri staessens2017-08-091-6/+0
| | | | | | | | | | | | | | | | This adds support for libgcrypt. If at least version 1.7.0 of libgcrypt is present, it may be used for secure random number generation and is used for hashing in the irmd/ipcp. The hash definitions are moved to the internal hash.h header, and defined independently of the hashes that are defined as part of the directory policy for the normal IPCP. The translation is moved from the IRMd to ipcpd/ipcp.h. The bootstrap call from the IRMd expects the IPCP to return the correct hash algorithm with a dif_info struct, which is in line with the behavior of the enroll call. This also improves how some platform checks in the build system are handled.