chg: [pibs] added callback mechansims for matched packets

master
Gerard Wagener 2019-07-15 16:15:32 +02:00
parent 4770c2f197
commit a6e70c500f
3 changed files with 18 additions and 0 deletions

View File

@ -36,6 +36,11 @@ void usage(void)
printf("<directory>/port/year/month/year-month-day.txt\n"); printf("<directory>/port/year/month/year-month-day.txt\n");
} }
void frame_to_bgpr(pibs_t* pibs, wtap *wth, uint8_t* eth,
struct ip* ipv4, struct tcphdr* tcp)
{
}
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
pibs_t* pibs; pibs_t* pibs;
@ -55,6 +60,9 @@ int main(int argc, char* argv[])
} }
} }
//Set call back function
pibs->synseen_callback = &frame_to_bgpr;
if (pibs->filename[0]) { if (pibs->filename[0]) {
process_file(pibs); process_file(pibs);
} }

View File

@ -111,6 +111,7 @@ typedef struct pibs_s {
pcap_dumper_t* dumper; pcap_dumper_t* dumper;
pcap_t* outcap; pcap_t* outcap;
uint32_t redisdb; uint32_t redisdb;
void* synseen_callback;
} pibs_t; } pibs_t;
int load_shmid_file(pibs_t* pibs); int load_shmid_file(pibs_t* pibs);
@ -127,4 +128,8 @@ void synseen_process_frame(pibs_t *pibs, wtap *wth, uint8_t* eth,
struct ip* ipv4, struct tcphdr* tcp); struct ip* ipv4, struct tcphdr* tcp);
int synseen_init(pibs_t* pibs); int synseen_init(pibs_t* pibs);
pibs_t* init(void); pibs_t* init(void);
typedef void (* synseen_callback_t)(pibs_t* pibs, wtap *wth, uint8_t* eth,
struct ip* ipv4, struct tcphdr* tcp);
#endif #endif

View File

@ -140,6 +140,7 @@ void pibs_dump_stats(pibs_t* pibs)
void synseen_process_frame(pibs_t *pibs, wtap *wth, uint8_t* eth, void synseen_process_frame(pibs_t *pibs, wtap *wth, uint8_t* eth,
struct ip* ipv4, struct tcphdr* tcp) struct ip* ipv4, struct tcphdr* tcp)
{ {
synseen_callback_t synseen_callback;
int_fast64_t lastseen; int_fast64_t lastseen;
uint32_t ip; uint32_t ip;
struct pcap_pkthdr pchdr; struct pcap_pkthdr pchdr;
@ -174,6 +175,10 @@ void synseen_process_frame(pibs_t *pibs, wtap *wth, uint8_t* eth,
pchdr.len = wth->rec.rec_header.packet_header.len; pchdr.len = wth->rec.rec_header.packet_header.len;
pcap_dump((u_char*)pibs->dumper, &pchdr, eth); pcap_dump((u_char*)pibs->dumper, &pchdr, eth);
} }
if (pibs->synseen_callback) {
synseen_callback = pibs->synseen_callback;
synseen_callback(pibs, wth, eth, ip, tcp);
}
} }
int synseen_init(pibs_t* pibs) int synseen_init(pibs_t* pibs)