Introduce a force_update flag to force pend_prefix_add() calls
in adjout_prefix_update().
peer_dump() can be called with a preloaded Adj-RIB-Out and in that case
the code needs to force updates out. This is done instead of walking the
table twice -- once with peer_dump() and then with peer_blast().
Using the force_update flag there ensures that all entries are properly
sent to the peer.
OK tb@
sndiod: Allow control slots to have NULL opt pointer
This case is not encoutered yet, but to control non-audio properties
the control slots must work with no opt structure.
Adjust last commit, the loop termination was not quite correct.
Set pte to NULL before the inner pt_get loop so that the outer
loop terminates correctly on (!found && pte != NULL).
Since pte is NULL now plen needs to be set earlier as well.
OK tb@
Use clearer semantics on how rde_generate_updates is called.
Adjust prefix_evaluate and prefix_evaluate_nexthop so that
rde_generate_updates() is only called with a few options.
Either new is valid or old is valid. If both are invalid then
there is no need to call rde_generate_updates(). If both are
valid only new matters and old_pathid_tx is set to 0.
In prefix_evaluate() most calls are with either new or old set to NULL.
If both are set then new->path_id_tx == old->path_id_tx.
In prefix_evaluate_nexthop() if old was valid then new becomes invalid
but if old was invalid new may still be invalid.
OK tb@
Respect RTR min-version in the implicit downgrade path and release
activity lock when closing the connection.
Check min_version in the implict downgrade case and error out if the
suggested version is too low. Also trigger the RTR_EVNT_NEGOTIATION_DONE
event only after parsing all of the header. If the PDU was bad don't
trigger this event.
In the rtr_fsm() when closing a connection check the state of the
active_lock and if the lock is held, reset the cache, release the lock and
recalculate the sets. The internal state is corrupt if a connection error
triggerd during an exchange so it makes no sense to carry a bad cache
around.
OK tb@
sndiod: Add a reference counter to the port structure
Using a counter is simpler than (ab-)using the midi endpoint bitmaps
to figure out if the port is in use. In turn this allows holding a
reference to the port without involving midi endpoint
connections. This change also reduces the differences between MIDI
ports and audio devices: less logic, less bugs.
sndiod: Save a pointer to the struct opt associated to the midi endpoint
As the socket code holds a reference to the struct opt, it's simpler
to just save it and release it when the socket is closed. This avoids
iterating over the full set of midi endpoint structures.
No behavior change
sndiod: Unlink the MIDI port from the socket when its closed
Not unlinking the port is bad style and might keep the port open after
the socket is closed.
sndiod: Add the server.mode control making the setting dynamic
The default mode remains "-m play,rec" but now it can be changed with
sndioctl(1). If the server is switched to play-only mode, then
existing clients will start recording silence. Similarly if it's
switched to rec-only mode, clients are muted.
ok armani, deraadt, rsadowski
Increase escape delay if the buffer contains a partial paste end, fixes
issues with at least Windows Terminal. From jing dot empty at gmail.com
GitHub issue 5088.
Walk all covering routes for bgpctl show rib out <IP>
If a more specific route is filtered in the Adj-Rib-Out than the
initial pt_lookup() call will return a route that does not match.
By walking up if nothing was found the exported route is eventually
found.
OK tb@
Do not zeroize already zeroed buffer in sysctl_sysvipc(). The
KERN_SYSVIPC_SEM_INFO case was a part of the big semaphores diff,
KERN_SYSVIPC_SHM_INFO case to the next one.
ok deraadt
Implement bounce buffers for arm64. Almost identical to the riscv64
version, but for now this strips the BUS_DMA_64BIT flag since the DMA
constraints on arm64 also include bus constraints. This will be fixed
in a future diff.
(files missed in the previous commit)
Implement bounce buffers for arm64. Almost identical to the riscv64
version, but for now this strips the BUS_DMA_64BIT flag since the DMA
constraints on arm64 also include bus constraints. This will be fixed
in a future diff.