mirror of
https://github.com/EFForg/rayhunter.git
synced 2026-07-31 19:23:06 -07:00
fixed log config stage, now getting actual logs
This commit is contained in:
+16
-7
@@ -132,15 +132,14 @@ pub fn build_log_mask_request(log_type: u32, log_mask_bitsize: u32, accepted_log
|
|||||||
for i in 0..log_mask_bitsize {
|
for i in 0..log_mask_bitsize {
|
||||||
let log_code: u32 = (log_type << 12) | i;
|
let log_code: u32 = (log_type << 12) | i;
|
||||||
if accepted_log_codes.contains(&log_code) {
|
if accepted_log_codes.contains(&log_code) {
|
||||||
println!("enabling {:x}", log_code);
|
|
||||||
current_byte |= 1 << num_bits_written;
|
current_byte |= 1 << num_bits_written;
|
||||||
}
|
}
|
||||||
num_bits_written += 1;
|
num_bits_written += 1;
|
||||||
|
|
||||||
if num_bits_written == 8 || i == log_mask_bitsize - 1 {
|
if num_bits_written == 8 || i == log_mask_bitsize - 1 {
|
||||||
|
log_mask.push(current_byte);
|
||||||
current_byte = 0;
|
current_byte = 0;
|
||||||
num_bits_written = 0;
|
num_bits_written = 0;
|
||||||
log_mask.push(current_byte);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,6 +152,7 @@ pub fn build_log_mask_request(log_type: u32, log_mask_bitsize: u32, accepted_log
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
|
use crate::diag_device::LOG_CODES_FOR_RAW_PACKET_LOGGING;
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -175,11 +175,20 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_build_log_mask_request() {
|
fn test_build_log_mask_request() {
|
||||||
let accepted = vec![0x412f];
|
let log_type = 11;
|
||||||
assert_eq!(build_log_mask_request(0, 1, &accepted), Request::LogConfig(LogConfigRequest::SetMask {
|
let bitsize = 513;
|
||||||
log_type: 0,
|
let req = build_log_mask_request(log_type, bitsize, &LOG_CODES_FOR_RAW_PACKET_LOGGING);
|
||||||
log_mask_bitsize: 1,
|
assert_eq!(req, Request::LogConfig(LogConfigRequest::SetMask {
|
||||||
log_mask: vec![0x01],
|
log_type: log_type,
|
||||||
|
log_mask_bitsize: bitsize,
|
||||||
|
log_mask: vec![
|
||||||
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||||
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||||
|
0x1, 0x0, 0x0, 0x0, 0xc, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||||
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||||
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||||
|
0x0, 0x0, 0x0, 0x0, 0x0,
|
||||||
|
],
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -119,7 +119,6 @@ impl DiagDevice {
|
|||||||
let mut buf = vec![0; BUFFER_LEN];
|
let mut buf = vec![0; BUFFER_LEN];
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
println!("waiting to read");
|
|
||||||
let _ = self.file.read(&mut buf)?;
|
let _ = self.file.read(&mut buf)?;
|
||||||
let ((_, leftover_bytes), res_container) = MessagesContainer::from_bytes((&buf, 0))?;
|
let ((_, leftover_bytes), res_container) = MessagesContainer::from_bytes((&buf, 0))?;
|
||||||
if leftover_bytes > 0 {
|
if leftover_bytes > 0 {
|
||||||
@@ -176,7 +175,6 @@ impl DiagDevice {
|
|||||||
|
|
||||||
fn set_log_mask(&mut self, log_type: u32, log_mask_bitsize: u32) -> DiagResult<()> {
|
fn set_log_mask(&mut self, log_type: u32, log_mask_bitsize: u32) -> DiagResult<()> {
|
||||||
let req = build_log_mask_request(log_type, log_mask_bitsize, &LOG_CODES_FOR_RAW_PACKET_LOGGING);
|
let req = build_log_mask_request(log_type, log_mask_bitsize, &LOG_CODES_FOR_RAW_PACKET_LOGGING);
|
||||||
println!("setting log mask {} {:?}", log_type, &req);
|
|
||||||
self.write_request(&req)?;
|
self.write_request(&req)?;
|
||||||
|
|
||||||
for msg in self.read_response()? {
|
for msg in self.read_response()? {
|
||||||
@@ -199,11 +197,9 @@ impl DiagDevice {
|
|||||||
pub fn config_logs(&mut self) -> DiagResult<()> {
|
pub fn config_logs(&mut self) -> DiagResult<()> {
|
||||||
println!("retrieving diag logging capabilities...");
|
println!("retrieving diag logging capabilities...");
|
||||||
let log_mask_sizes = self.retrieve_id_ranges()?;
|
let log_mask_sizes = self.retrieve_id_ranges()?;
|
||||||
println!("log mask sizes: {:?}", log_mask_sizes);
|
|
||||||
|
|
||||||
for (log_type, &log_mask_bitsize) in log_mask_sizes.iter().enumerate() {
|
for (log_type, &log_mask_bitsize) in log_mask_sizes.iter().enumerate() {
|
||||||
if log_mask_bitsize > 0 {
|
if log_mask_bitsize > 0 {
|
||||||
println!("setting logging for log_type {}", log_type);
|
|
||||||
self.set_log_mask(log_type as u32, log_mask_bitsize)?;
|
self.set_log_mask(log_type as u32, log_mask_bitsize)?;
|
||||||
println!("enabled logging for log type {}", log_type);
|
println!("enabled logging for log type {}", log_type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ fn main() -> std::io::Result<()> {
|
|||||||
dev.config_logs().unwrap();
|
dev.config_logs().unwrap();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
println!("waiting for message...");
|
|
||||||
for msg in dev.read_response().unwrap() {
|
for msg in dev.read_response().unwrap() {
|
||||||
println!("msg: {:?}", msg);
|
println!("msg: {:?}", msg);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user