-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDetailedLogDealer.cpp
61 lines (53 loc) · 2.06 KB
/
DetailedLogDealer.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
// Created by 92798 on 2021/7/7.
//
#include "DetailedLogDealer.h"
#include <utility>
void
DetailedLogDealer::receiveLocal(int len, struct sockaddr_in receive_in, Message message, const std::string &server_ip,
int server_port, char *ptr, int ptr_len) {
std::cout << "\n\n-----------------------------------NEW QUERY----------------------------------------"
<< std::endl;
readLocalAddr(len, receive_in, server_ip, server_port);
MessageDealer::printDetailedInfo(std::move(message));
printBinaryInfo(ptr, ptr_len);
}
void DetailedLogDealer::readLocalAddr(int len, struct sockaddr_in receive_in, const std::string &server_ip,
int server_port) {
long q = receive_in.sin_addr.s_addr;
char s[40];
time_t now = time(0);
std::string dt = ctime(&now);
sprintf(s, "%ld", q);
std::cout << "Received from local:" << MessageDealer::charToIpv4(s)
<< ":" << receive_in.sin_port
<< " Send to:" << server_ip
<< ":" << server_port
<< " (" << len
<< " bytes)" << " Time:" << dt << std::endl;
}
void DetailedLogDealer::receiveExternal(Message message, char *ptr, int ptr_len) {
std::cout << "----------EXTERN RESPONSE---------" << std::endl;
MessageDealer::printDetailedInfo(std::move(message));
printBinaryInfo(ptr, ptr_len);
}
void DetailedLogDealer::receiveInternal(const Message &message, char *ptr, int ptr_len) {
std::cout << "----------INTERNAL RESPONSE---------" << std::endl;
MessageDealer::printDetailedInfo(message);
if (MessageDealer::isIntercept(message)) {
std::cout << "++++++++THIS QUERY IS INTERCEPTED++++++++" << std::endl;
}
printBinaryInfo(ptr, ptr_len);
}
void DetailedLogDealer::printBinaryInfo(char *ptr, int ptr_len) {
int count = 0;
for (int i = 0; i < ptr_len; ++i) {
printf("%02x ", (uint8_t) ptr[i]);
++count;
if (count == 16) {
printf("\n");
count = 0;
}
}
std::cout << std::endl;
}