Skip to content

Commit a6dbdf3

Browse files
added get ip from the sender
1 parent 27e8c70 commit a6dbdf3

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/client/client_connection.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ pub trait ClientConnection: Copy {//: 'static + Sized + Send + Sync + Unpin
1010
timeout:Duration) -> Self;
1111

1212
//Sends query
13-
fn send(self,dns_query:DnsMessage) -> Result<Vec<u8>, ClientError>;
14-
13+
fn send(self, dns_query: DnsMessage) -> Result<(Vec<u8>, IpAddr), ClientError>;
1514
fn get_ip(&self) -> IpAddr;
1615
}
1716

src/client/tcp_connection.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use super::client_error::ClientError;
44

55

66
use std::io::{Write, Read};
7-
use std::net::{TcpStream,SocketAddr,IpAddr};
7+
use std::net::{TcpStream,SocketAddr,IpAddr, Ipv4Addr};
88
use std::time::Duration;
99
use std::io::Error as IoError;
1010
use std::io::ErrorKind;
@@ -34,7 +34,7 @@ impl ClientConnection for ClientTCPConnection {
3434
}
3535

3636
/// creates socket tcp, sends query and receive response
37-
fn send(self, dns_query: DnsMessage) -> Result<Vec<u8>, ClientError>{
37+
fn send(self, dns_query: DnsMessage) -> Result<(Vec<u8>, IpAddr), ClientError>{
3838

3939
let timeout: Duration = self.get_timeout();
4040
let bytes: Vec<u8> = dns_query.to_bytes();
@@ -58,6 +58,7 @@ impl ClientConnection for ClientTCPConnection {
5858

5959
let tcp_msg_len: u16 = (msg_size_response[0] as u16) << 8 | msg_size_response[1] as u16;
6060
let mut vec_msg: Vec<u8> = Vec::new();
61+
let ip = self.get_server_addr();
6162

6263
while vec_msg.len() < tcp_msg_len as usize {
6364
let mut msg = [0; 512];
@@ -69,7 +70,7 @@ impl ClientConnection for ClientTCPConnection {
6970
vec_msg.extend_from_slice(&msg[..number_of_bytes_msg]);
7071
}
7172

72-
return Ok(vec_msg);
73+
return Ok((vec_msg, ip));
7374
}
7475
}
7576

@@ -186,7 +187,7 @@ mod tcp_connection_test{
186187
0,
187188
false,
188189
1);
189-
let response = conn_new.send(dns_query).unwrap();
190+
let (response, ip) = conn_new.send(dns_query).unwrap();
190191

191192
assert!(DnsMessage::from_bytes(&response).unwrap().get_answer().len() > 0);
192193
// FIXME:

0 commit comments

Comments
 (0)