Rewrite the project
The previous project architecture was far too complicated and hard to maintain. The new one is much more simple. Although procedural macros are cools, they are a no-go on Rust-OpenSMTPD. Reports and filter are implemented (except data-line) but untested.
This commit is contained in:
parent
fc072743ad
commit
a6d4dd21c1
48 changed files with 1723 additions and 1493 deletions
|
@ -1,13 +0,0 @@
|
|||
use opensmtpd::entry::Entry;
|
||||
use opensmtpd::{register_no_context, report, simple_filter};
|
||||
|
||||
register_no_context!();
|
||||
|
||||
#[report(v1, smtp_in, match(all))]
|
||||
fn echo(entry: &Entry) {
|
||||
log::info!("New entry: {:?}", entry);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
simple_filter!([echo]);
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
use opensmtpd::entry::Entry;
|
||||
use opensmtpd::{register_no_context, report, simple_filter};
|
||||
|
||||
register_no_context!();
|
||||
|
||||
#[report(v1, smtp_in, match(link_connect))]
|
||||
fn hello(entry: &Entry) {
|
||||
log::info!("Hello {}!", entry.get_session_id());
|
||||
}
|
||||
|
||||
fn main() {
|
||||
simple_filter!([hello]);
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
use log;
|
||||
use opensmtpd::entry::Entry;
|
||||
use opensmtpd::{register_contexts, report, simple_filter};
|
||||
|
||||
#[derive(Clone, Default)]
|
||||
struct MyCounter {
|
||||
nb: usize,
|
||||
}
|
||||
|
||||
register_contexts!(MyCounter, MyCounter);
|
||||
|
||||
#[report(v1, smtp_in, match(all))]
|
||||
fn on_report(entry: &Entry, total: &mut MyCounter, session: &mut MyCounter) {
|
||||
total.nb += 1;
|
||||
session.nb += 1;
|
||||
log::info!(
|
||||
"Event received for session {}: {} (total: {})",
|
||||
entry.get_session_id(),
|
||||
session.nb,
|
||||
total.nb
|
||||
);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
simple_filter!(MyCounter, MyCounter, [on_report]);
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
report|1|1546681202.276920|smtp-in|link-connect|dbd829906c50e764|localhost|pass|127.0.0.1:34818|127.0.0.1:25
|
||||
report|1|1546681202.277715|smtp-in|filter-response|dbd829906c50e764|connected|proceed
|
||||
report|1|1546681202.276920|smtp-in|link-connect|4b0148c60f798628|localhost|pass|127.0.0.1:34818|127.0.0.1:25
|
||||
report|1|1546681202.277715|smtp-in|filter-response|4b0148c60f798628|connected|proceed
|
||||
report|1|1546681202.277761|smtp-in|protocol-server|dbd829906c50e764|220 laptop.home ESMTP OpenSMTPD
|
||||
report|1|1546681232.283049|smtp-in|timeout|dbd829906c50e764
|
||||
report|1|1546681202.277761|smtp-in|protocol-server|4b0148c60f798628|220 laptop.home ESMTP OpenSMTPD
|
||||
report|1|1546681232.283049|smtp-in|timeout|4b0148c60f798628
|
||||
report|1|1546681232.283083|smtp-in|link-disconnect|dbd829906c50e764
|
||||
report|1|1546681232.283083|smtp-in|link-disconnect|4b0148c60f798628
|
|
@ -1,29 +0,0 @@
|
|||
report|1|1562870145.607116|smtp-in|link-connect|4c8aad137c3de7cb|localhost|pass|127.0.0.1:21438|127.0.0.1:25
|
||||
report|1|1562870145.607395|smtp-in|filter-response|4c8aad137c3de7cb|connected|proceed
|
||||
report|1|1562870145.607402|smtp-in|protocol-server|4c8aad137c3de7cb|220 mx.example.org ESMTP OpenSMTPD
|
||||
report|1|1562870149.811367|smtp-in|protocol-client|4c8aad137c3de7cb|HELO localhost
|
||||
report|1|1562870149.813732|smtp-in|filter-response|4c8aad137c3de7cb|helo|proceed
|
||||
report|1|1562870149.813744|smtp-in|link-identify|4c8aad137c3de7cb|localhost
|
||||
report|1|1562870149.813763|smtp-in|protocol-server|4c8aad137c3de7cb|250 mx.example.org Hello localhost [127.0.0.1], pleased to meet you
|
||||
report|1|1562870154.283507|smtp-in|protocol-client|4c8aad137c3de7cb|MAIL FROM:<derp@toto.example.com>
|
||||
report|1|1562870154.286255|smtp-in|filter-response|4c8aad137c3de7cb|mail-from|proceed
|
||||
report|1|1562870154.288148|smtp-in|tx-begin|4c8aad137c3de7cb|20ec19f5
|
||||
report|1|1562870154.288165|smtp-in|tx-mail|4c8aad137c3de7cb|20ec19f5|<derp@toto.example.com>|ok
|
||||
report|1|1562870154.288181|smtp-in|protocol-server|4c8aad137c3de7cb|250 2.0.0: Ok
|
||||
report|1|1562870159.284269|smtp-in|protocol-client|4c8aad137c3de7cb|RCPT TO:<elsa@localhost>
|
||||
report|1|1562870159.286969|smtp-in|filter-response|4c8aad137c3de7cb|rcpt-to|proceed
|
||||
report|1|1562870159.291856|smtp-in|tx-envelope|4c8aad137c3de7cb|20ec19f5|20ec19f543927eb5
|
||||
report|1|1562870159.291907|smtp-in|tx-rcpt|4c8aad137c3de7cb|20ec19f5|<elsa@localhost>|ok
|
||||
report|1|1562870159.291925|smtp-in|protocol-server|4c8aad137c3de7cb|250 2.1.5 Destination address valid: Recipient ok
|
||||
report|1|1562870163.451339|smtp-in|protocol-client|4c8aad137c3de7cb|DATA
|
||||
report|1|1562870163.453789|smtp-in|filter-response|4c8aad137c3de7cb|data|proceed
|
||||
report|1|1562870163.455790|smtp-in|tx-data|4c8aad137c3de7cb|20ec19f5|ok
|
||||
report|1|1562870163.455811|smtp-in|protocol-server|4c8aad137c3de7cb|354 Enter mail, end with "." on a line by itself
|
||||
report|1|1562870224.765630|smtp-in|protocol-client|4c8aad137c3de7cb|.
|
||||
report|1|1562870224.767139|smtp-in|filter-response|4c8aad137c3de7cb|commit|proceed
|
||||
report|1|1562870224.767275|smtp-in|tx-commit|4c8aad137c3de7cb|20ec19f5|562
|
||||
report|1|1562870224.770499|smtp-in|protocol-server|4c8aad137c3de7cb|250 2.0.0: 20ec19f5 Message accepted for delivery
|
||||
report|1|1562870229.128193|smtp-in|protocol-client|4c8aad137c3de7cb|QUIT
|
||||
report|1|1562870229.130522|smtp-in|filter-response|4c8aad137c3de7cb|quit|proceed
|
||||
report|1|1562870229.130547|smtp-in|protocol-server|4c8aad137c3de7cb|221 2.0.0: Bye
|
||||
report|1|1562870229.131314|smtp-in|link-disconnect|4c8aad137c3de7cb
|
|
@ -1,5 +0,0 @@
|
|||
report|1|1546681202.276920|smtp-in|link-connect|dbd829906c50e764|localhost|pass|127.0.0.1:34818|127.0.0.1:25
|
||||
report|1|1546681202.277715|smtp-in|filter-response|dbd829906c50e764|connected|proceed
|
||||
report|1|1546681202.277761|smtp-in|protocol-server|dbd829906c50e764|220 laptop.home ESMTP OpenSMTPD
|
||||
report|1|1546681232.283049|smtp-in|timeout|dbd829906c50e764
|
||||
report|1|1546681232.283083|smtp-in|link-disconnect|dbd829906c50e764
|
Reference in a new issue