2020-02-08 09:43:52 +00:00
|
|
|
|
mod common;
|
|
|
|
|
|
2021-12-21 17:40:01 +00:00
|
|
|
|
pub use common::*;
|
2020-02-08 09:43:52 +00:00
|
|
|
|
|
2023-01-18 09:23:21 +00:00
|
|
|
|
use indymilter_test::*;
|
|
|
|
|
use std::net::Ipv4Addr;
|
|
|
|
|
|
2022-02-21 17:58:24 +00:00
|
|
|
|
#[tokio::test]
|
|
|
|
|
async fn loopback_connection() {
|
|
|
|
|
let milter = SpamAssassinMilter::spawn(LOCALHOST, Default::default())
|
|
|
|
|
.await
|
|
|
|
|
.unwrap();
|
2020-02-08 09:43:52 +00:00
|
|
|
|
|
2023-01-18 09:23:21 +00:00
|
|
|
|
// 1) A connection from the loopback IP address is accepted.
|
2020-02-08 09:43:52 +00:00
|
|
|
|
|
2023-01-18 09:23:21 +00:00
|
|
|
|
let mut conn = TestConnection::open(milter.addr()).await.unwrap();
|
|
|
|
|
|
|
|
|
|
let status = conn.connect("localhost", Ipv4Addr::LOCALHOST).await.unwrap();
|
|
|
|
|
assert_eq!(status, Status::Accept);
|
|
|
|
|
|
|
|
|
|
conn.close().await.unwrap();
|
|
|
|
|
|
|
|
|
|
// 2) A connection from an ‘unknown’ IP address (for example, from a UNIX
|
|
|
|
|
// domain socket) is also accepted.
|
2020-02-08 09:43:52 +00:00
|
|
|
|
|
2023-01-18 09:23:21 +00:00
|
|
|
|
let mut conn = TestConnection::open(milter.addr()).await.unwrap();
|
|
|
|
|
|
|
|
|
|
let status = conn.connect("localhost", SocketInfo::Unknown).await.unwrap();
|
|
|
|
|
assert_eq!(status, Status::Accept);
|
|
|
|
|
|
|
|
|
|
conn.close().await.unwrap();
|
|
|
|
|
|
|
|
|
|
milter.shutdown().await.unwrap();
|
2020-02-08 09:43:52 +00:00
|
|
|
|
}
|