webrtc_turn/allocation/
five_tuple.rs1#[cfg(test)]
2mod five_tuple_test;
3
4use crate::proto::*;
5
6use std::fmt;
7use std::net::{Ipv4Addr, SocketAddr};
8
9#[derive(PartialEq, Clone)]
16pub struct FiveTuple {
17 pub protocol: Protocol,
18 pub src_addr: SocketAddr,
19 pub dst_addr: SocketAddr,
20}
21
22impl Default for FiveTuple {
23 fn default() -> Self {
24 FiveTuple {
25 protocol: PROTO_UDP,
26 src_addr: SocketAddr::new(Ipv4Addr::new(0, 0, 0, 0).into(), 0),
27 dst_addr: SocketAddr::new(Ipv4Addr::new(0, 0, 0, 0).into(), 0),
28 }
29 }
30}
31
32impl fmt::Display for FiveTuple {
33 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
34 write!(f, "{}_{}_{}", self.protocol, self.src_addr, self.dst_addr)
35 }
36}
37
38impl FiveTuple {
39 pub fn fingerprint(&self) -> String {
41 self.to_string()
42 }
43}