Files
kumomta/Makefile
T
Wez Furlong d489f738f3 fix an issue around mx_list and config refreshing
If you have two scheduled queues with the same mx_list and then one of
those domains is updated to use a different mx_list, depending on the
ordering of the updates and subsequent traffic, the changed domain may
continue to have traffic route through the old mx_list.

The reason for this is that protocol configuration for that egress path
comes from the scheduled queue configuration, and there is no explicit
dependency between the two pieces of configuration.

This commit resolves this by adding a sanity check that the protocol
information is consistent with the ready queue instance.  If it is no
longer consistent we'll remove the association between the rq name and
the instance, then wind down any associated dispatchers.
2026-03-02 15:13:01 +00:00

108 lines
3.8 KiB
Makefile

# pick up env vars from an optional .make-env file.
# On ubuntu you probably want ROCKSDB_LIB_DIR=/usr/lib/x86_64-linux-gnu
# in .make-env to make it faster to build the rocksdb crate
-include .make-env
export $(shell test -f .make-env && sed 's/=.*//' .make-env)
check:
cargo check
build:
cargo build $(BUILD_OPTS) -p kumod
cargo build $(BUILD_OPTS) -p tsa-daemon
cargo build $(BUILD_OPTS) -p kcli
cargo build $(BUILD_OPTS) -p validate-shaping
cargo build $(BUILD_OPTS) -p proxy-server
cargo build $(BUILD_OPTS) -p spool-util
cargo build $(BUILD_OPTS) -p tailer
cargo build $(BUILD_OPTS) -p traffic-gen
cargo build $(BUILD_OPTS) -p toml2jsonc
cargo build $(BUILD_OPTS) -p tls-probe
# Check compilation with all possible feature combinations
# Requires: cargo install --locked cargo-feature-combinations
fc:
RUSTFLAGS="--cfg tokio_unstable -D warnings" cargo fc check --fail-fast
test-lua:
cargo run -p run-lua-tests
test: build test-lua
./docs/update-openapi.sh
RUST_BACKTRACE=1 cargo nextest run --no-fail-fast
test-adhoc: build
cargo nextest run --no-fail-fast --no-capture -p integration-tests -- mx_list_refresh
test-kumod:
cargo nextest run --no-fail-fast -p kumod
expand-kumod:
cargo expand -p kumod metrics_helper
macro-kumod:
RUSTFLAGS="-Z macro-backtrace --cfg tokio_unstable" cargo +nightly check -p kumod
clippy:
cargo clippy -- \
-A clippy::assertions_on_constants \
-A clippy::upper_case_acronyms \
-A clippy::collapsible_if \
-A clippy::comparison_chain \
-A clippy::drop_non_drop \
-A clippy::if_same_then_else \
-A clippy::inherent_to_string \
-A clippy::int_plus_one \
-A clippy::len_without_is_empty \
-A clippy::manual_c_str_literals \
-A clippy::manual_flatten \
-A clippy::manual_strip \
-A clippy::match_like_matches_macro \
-A clippy::multiple_bound_locations \
-A clippy::module_inception \
-A clippy::needless_bool \
-A clippy::needless_borrow \
-A clippy::needless_lifetimes \
-A clippy::needless_option_as_deref \
-A clippy::needless_range_loop \
-A clippy::needless_return \
-A clippy::option_map_unit_fn \
-A clippy::redundant_closure \
-A clippy::redundant_guards \
-A clippy::self_named_constructors \
-A clippy::single_match \
-A clippy::to_string_trait_impl \
-A clippy::too_many_arguments \
-A clippy::type_complexity \
-A clippy::unnecessary_map_or \
-A clippy::unnecessary_mut_passed \
-A clippy::unnecessary_to_owned \
-A clippy::useless_format \
-A clippy::while_let_on_iterator \
-A clippy::wrong_self_convention \
fmt:
cargo +nightly fmt
cd crates/mod-smtp-response-normalize/codegen && cargo +nightly fmt
stylua --config-path stylua.toml .
black docs/generate-toc.py docs/update-metrics.py assets/ci/build-builder-images.py assets/ci/emit-builder-dockerfile.py assets/bt assets/log-filter.py
sink: unsink
sudo iptables -t nat -A OUTPUT -p tcp \! -d 192.168.1.0/24 --dport 25 -j DNAT --to-destination 127.0.0.1:2026
sudo iptables -t nat -L -n
KUMO_NODE_ID=906fd326-34e6-4405-a086-971017bf0f10 ./target/release/kumod --user `id -un` --policy sink.lua
#smtp-sink 127.0.0.1:2026 2000 || exit 0
smartsink: unsink
sudo iptables -t nat -A OUTPUT -p tcp \! -d 192.168.1.0/24 --dport 25 -j DNAT --to-destination 127.0.0.1:2026
sudo iptables -t nat -L -n
KUMO_NODE_ID=053227a3-8663-4f4e-97f4-a91e9bcd022b SINK_PORT=2026 SINK_HTTP=8002 SINK_SPOOL=/tmp/kumo-sink SINK_DATA=`pwd`/examples/smart-sink-docker/policy/responses.toml ./target/release/kumod --user `id -un` --policy `pwd`/examples/smart-sink-docker/policy/init.lua
hugesink: unsink
sudo iptables -t nat -A OUTPUT -p tcp \! -d 192.168.1.0/24 --dport 25 -j DNAT --to-destination 192.168.1.54:2026
sudo iptables -t nat -L -n
#smtp-sink 127.0.0.1:2026 2000 || exit 0
unsink: # float?
while sudo iptables -t nat -D OUTPUT -p tcp \! -d 192.168.1.0/24 --dport 25 -j DNAT --to-destination 127.0.0.1:2026 ; do true ; done