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