| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | | |
frct_clear was called in ouroboros_fini instead of ouroboros_init.
|
|\| |
| | |
| | |
| | | |
lib: Fix CRC check and add frct_clear
|
|/ /
| |
| |
| |
| |
| | |
This adds the CRC check by default on outgoing SDUs. It fixes some
errors in the serialization and deserialization of the SDU. frct_clear
was added to avoid bad initialization of the array of FRCT instances.
|
|\ \
| | |
| | |
| | | |
Be tw
|
| | |
| | |
| | |
| | |
| | |
| | | |
This turns the timerwheel into a passive component since it is used by
application using the library. The user of the timerwheel now has to
call timerwheel_move to advance the timerwheel.
|
| | |
| | |
| | |
| | |
| | | |
There was an else clause matched with the wrong if statement,
resulting in robust mutexes being enabled even in glibc 2.25.
|
|\ \ \
| |/ /
|/| |
| | | |
ipcpd: Improve locking in connmgr
|
| | | |
|
|/ / |
|
|\ \
| | |
| | |
| | | |
build: Revise the build system
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| |/ /
|/| /
| |/ |
|
| |\
| | |
| | |
| | | |
ipcpd, irmd: Fix data races
|
| |/
| |
| |
| |
| |
| | |
Fixes a data race in the IRMd when IPCPs bail immediately after being
created (e.g. due to an error). Fixes a race between the acceptor
threads and the threads managed by threadpool manager upon shutdown.
|
|\ \
| |/
|/|
| | |
lib: Add basic FRCT mechanisms
|
|/
|
|
|
|
|
|
|
|
| |
This adds the basic FRCT mechanisms to the library. Upon flow alloc or
accept an FRCT instance is now created and used when reading or
writing to the flow. The timerwheel has been refactored to allow
recharging timers and removing them and is now part of the
library. The first SDU sent over the connection has the DRF set and
this initializes the connection. Sender and receiver inactivity timers
are added.
|
|\
| |
| |
| | |
Be llc bpf
|
| | |
|
| |
| |
| |
| |
| | |
This adds support reading Ethernet frames using the Berkeley Packet
Filter (BPF). Ouroboros now fully runs on OS X Sierra.
|
|/
|
|
| |
The build failed on OS X if an old version of libgrypt is installed.
|
|\
| |
| |
| | |
irmd, ipcpd: Signal acceptor only
|
|/
|
|
|
| |
This adds an extra condvar so the mainloops can signal the acceptor
thread without waking up all mainloops.
|
|\
| |
| |
| | |
Be single accept
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The IRMd and IPCPs will now call accept on their command sockets from
a single thread that will dispatch work to the other threads.
This solves a problem on OS X and FreeBSD where accept() doesn't time
out when setting SO_RCVTIMEO on the socket. Calling kqueue or select()
on that socket to wait for events before calling accept() didn't solve
it since select() or kqueue() might wake up multiple threads, with the
non-working threads again blocked on the accept() on shutdown.
|
|\|
| |
| |
| | |
build: Replace fsf snail mail with contact URL
|
| | |
|
|\|
| |
| |
| | |
Be lib fixes
|
| |
| |
| |
| |
| |
| | |
This locks the process when allocating and destroying flow_sets. The
flows_lock has been renamed to lock. Refactors and fixes a memleak in
ouroboros_init.
|
|/ |
|
|\
| |
| |
| | |
lib: Fix instability in threadpool manager
|
| |
| |
| |
| |
| |
| | |
The DHT failed when receiving multiple responses in a short
timeframe. The lookup struct now keeps track of the number of
outstanding requests.
|
| |
| |
| |
| |
| |
| | |
The threadpool manager now tracks threads to prevent cyclic behaviour
where too many threads shut down and the TPM responds with creating
additional threads.
|
|\ \
| | |
| | |
| | | |
irmd: Fix mainloop timeout on OS X
|
| | | |
|
|\| |
| |/
|/|
| | |
build: Fix compilation on OS X Sierra
|
|/ |
|
|\
| |
| |
| | |
lib, ipcpd, tools: Fix enum assignments
|
|/
|
|
| |
This fixes several assignments to the wrong enum type.
|
|\
| |
| |
| | |
build: Simplify GitVersionGen
|
|/
|
|
|
| |
This simplifies the macro GitVersionGen so that it doesn't need to
rely on the sort executable.
|
|\
| |
| |
| | |
build: Reset LIBGCRYPT_LIBRARIES when not found
|
|/ |
|
|\
| |
| |
| | |
build, lib, ipcpd, irmd: Add support for libgcrypt
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| | |
ipcpd: Fix assignment of fd's in flow allocator
|
|/ |
|
|\
| |
| |
| | |
irmd: Specify timeout per command
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The DHT lookup would stop if a node returned no new useful information
(i.e. the value for the key or unknown nodes closer to the key)
without waiting for other pending requests that could still return
useful information. Now it correctly tracks the number of outstanding
requests or returns if it doesn't get a response for KAD_T_RESP
seconds. This fixes multi-hop flow allocation over the normal.
|