| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | | |
This will notify the IRMd when the IPCP is initialized and ready to
receive messages. Previously a bootstrap could fail since the IPCP was
not listening to the socket yet.
|
| |\ \
| | | |
| | | |
| | | | |
Several small fixes and enhancements
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the admin tries to bootstrap an IPCP that does not yet exist, it
will first create the IPCP, then bootstrap it since it has all
required information.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If an IPCP crashes (due to a segfault for instance), it is removed
from the spawned apis list. However, if it was an IPCP it should also
be removed from the IPCPs list, since else on shutdown, the irmd will
try to destroy the IPCP that crashed.
|
| | |/
| | |
| | |
| | |
| | | |
A lock was not being taken to check the state, but then it was
released if the state was not IPCP_NULL, resulting in a segfault.
|
|/ /
| |
| |
| |
| |
| | |
Threads from the threadpool will now check the state of the IRMd and
exit gracefully without a need to cancel them. This avoids the unsafe
call of pthread_cancel in the signal handler.
|
|/
|
|
| |
registry_sanitize_apis should be called under write locked reg_lock.
|
| |
|
|
|
|
| |
Cleanup handlers were not always popped.
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
lib: Various fixes
|
| |
| |
| |
| |
| | |
Fix missing set of api upon flow_alloc.
Various locking fixes.
|
|\|
| |
| |
| | |
lib: shm_ap_rbuff: Fix cleanup of locks
|
| | |
|
|\ \
| |/
|/|
| | |
ipcpd: Fix locking of shim-eth-llc
|
| |
| |
| |
| |
| |
| | |
This changes the amount of time the shim-eth-llc will hold the IPCP
state lock when sending and receiving frames. Before it was holding
the lock for too long.
|
|/
|
|
| |
Locks should be kept before calling cond_wait.
|
|
|
|
|
|
|
| |
Refactors the IRMd to extract reg_api and irm_flow structures to their
own sources.
Fixes some locking bugs.
|
| |
|
| |
|
|
|
|
|
| |
When the rbuff was empty, the blocking read would wait forever for a
read.
|
|
|
|
|
|
| |
This adds the functionality of exchanging the static DIF information
between 2 DIF members. After exchange the enrollment is stopped, and
the IPCP that initiated enrollment transitions to the enrolled state.
|
|
|
|
|
| |
Sometimes the POSIX version was not set in source files. This caused
the compiler to not find the timespec struct, since we are using C89.
|
| |
|
| |
|
|
|
|
| |
Padding was miscalculated, causing lockups in the fast path.
|
|
|
|
| |
The req_ae_name is freed when the unpacked message is cleaned up.
|
|
|
|
| |
The entry from the ringbuffer was never freed, causing memleak per SDU.
|
|
|
|
| |
The check whether the du map is empty should be first.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
When cancelled in read() the fd should be closed and the allocated
memory freed.
|
|
|
|
| |
The server should cleanup whenever the listen thread exits.
|
|
|
|
| |
The server should cleanup whenever the listen thread exits.
|
| |
|
| |
|
|
|
|
| |
If ap_init() fails, the program should exit.
|
|
|
|
| |
The server apn is a client-only option. Also fixes some indentation.
|
| |
|
|
|
|
|
| |
When killing the oping client before it sent an SDU, some bad
operations were being performed.
|
| |
|
|
|
|
|
| |
When a flow was in FLOW_ALLOCATED state, it would not change to NULL
state and irm_flow_destroy would hang forever.
|
|
|
|
| |
ipcp-data was not correctly destroyed.
|
|
|
|
| |
The cleanup was trying to close a pointer to the file descriptor.
|
|
|
|
|
|
|
|
|
| |
Blocking I/O now uses condition variables in the shared memory instead
of busy waiting. Timeouts can be specified. This requires the size of
the rbuffs and du_map to be the same, to guarantee that when the
shm_du_map is not full, the ap_rbuffs can't be full either.
Added the timeout option to the flow for future use.
|
|
|
|
|
| |
Ouoroboros ping application mimics the GNU ping application.
do "oping --help" for options.
|
|
|
|
|
|
|
| |
This adds a flow_select() call that will sleep until an SDU can be
read on a flow. It returns the file descriptor for which an SDU is
ready. It takes as optional argument a timespec struct to specify a
timeout.
|