From a68dc52870fe1f9964d05917499f6aaf16b94d5d Mon Sep 17 00:00:00 2001 From: Gerard Wagener Date: Thu, 11 Apr 2019 09:28:10 +0200 Subject: [PATCH] chg: [pibs] isolated pibs main functions to have multiple ones --- bin/Makefile | 8 ++- bin/{pibs.c => libpibs.c} | 111 -------------------------------------- 2 files changed, 6 insertions(+), 113 deletions(-) rename bin/{pibs.c => libpibs.c} (57%) diff --git a/bin/Makefile b/bin/Makefile index 1a1801e..79d1f39 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -1,5 +1,9 @@ -pibs: pibs.o memutils.o synseen.o - gcc -Wall -o pibs pibs.o memutils.o synseen.o -lwiretap `pkg-config --libs glib-2.0` -lpcap -lhiredis -ggdb +pibs: pibs.o memutils.o synseen.o libpibs.o + gcc -Wall -o pibs pibs.o memutils.o synseen.o libpibs.o -lwiretap `pkg-config --libs glib-2.0` -lpcap -lhiredis -ggdb + +libpibs.o: libpibs.c + gcc -D HASHDEBUG=0 -Wall -c libpibs.c `pkg-config --cflags glib-2.0` -I /usr/include/wireshark/wiretap -I /usr/include/wireshark/wsutil -I /usr/include/wireshark `pkg-config --libs glib-2.0` -I /usr/local/include/hiredis -ggdb + memutils.o: memutils.c gcc -Wall -c memutils.c `pkg-config --cflags glib-2.0` -I /usr/include/wireshark/wiretap -I /usr/include/wireshark/wsutil -I /usr/include/wireshark `pkg-config --libs glib-2.0` -I /usr/local/include/hiredis -ggdb diff --git a/bin/pibs.c b/bin/libpibs.c similarity index 57% rename from bin/pibs.c rename to bin/libpibs.c index 72b7b29..c92f11c 100644 --- a/bin/pibs.c +++ b/bin/libpibs.c @@ -141,114 +141,3 @@ void process_redis_list(pibs_t* pibs) } } } - - -int main(int argc, char* argv[]) -{ - - int opt; - pibs_t* pibs; - - pibs = init(); - - fprintf(stderr, "[INFO] pid = %d\n",(int)getpid()); - - while ((opt = getopt(argc, argv, "r:dbsni:au:z:p:w:y:")) != -1) { - switch (opt) { - case 'r': - strncpy(pibs->filename, optarg, FILENAME_MAX); - break; - case 'd': - pibs->should_dump_table = 1; - break; - case 'b': - pibs->show_backscatter = 1; - break; - case 's': - pibs->show_stats = 1; - break; - case 'n': - pibs->should_create_shm = 1; - break; - case 'i': - strncpy(pibs->shmid_file, optarg, FILENAME_MAX); - break; - case 'a': - pibs->should_attach = 1; - break; - case 'u': - strncpy(pibs->uuid, optarg, SZUUID); - break; - case 'z': - strncpy(pibs->server,optarg, SZSERVER); - break; - case 'p': - pibs->port=atoi(optarg); - break; - case 'w': - strncpy(pibs->outputfile,optarg, FILENAME_MAX); - pibs->should_writepcap = 1; - break; - case 'y': - pibs->redisdb = atoi(optarg); - break; - - default: /* '?' */ - - fprintf(stderr, "[ERROR] Invalid command line was specified\n"); - } - } - if (pibs->should_create_shm) { - pibs_shmget(pibs); - if (pibs->shmid >0){ - printf("Create a new shared memory segment %d\n", pibs->shmid); - } else { - printf("Failed to get shared memory segment. Cause = %s\n", - strerror(pibs->errno_copy)); - } - } - if (pibs->should_attach) { - if (pibs_shmat(pibs) > 0 ) { - printf("Attached to shared memory segment %d\n", pibs->shmid); - } else { - printf("Failed to attach to shared memory segment. System error:%s\n", - strerror(pibs->errno_copy)); - return EXIT_FAILURE; - } - } - if (pibs->uuid[0]) { - if ((pibs->server[0] == 0) || (pibs->port == 0)) { - fprintf(stderr,"Redis parameter server and port are incomplete. Use -z and -p options.\n"); - return EXIT_FAILURE; - } - process_redis_list(pibs); - } - - //FIXME Add proper error handling for writecap - if (pibs->should_writepcap) { - pibs->outcap = pcap_open_dead(DLT_EN10MB, 65535); - pibs->dumper = pcap_dump_open(pibs->outcap, pibs->outputfile); - if (pibs->dumper == NULL) { - printf("Failed to open outputfile. Reason=%s\n", pcap_geterr(pibs->outcap)); - return EXIT_FAILURE; - } - } - - if (pibs->show_backscatter) - printf("#timestamp, source IP, TCP flags, source port\n"); - if (pibs->filename[0]) { - process_file(pibs); - } - if (pibs->should_dump_table){ - pibs_dump_raw(pibs); - pibs_dump_raw(pibs); - } - if (pibs->show_stats){ - pibs_dump_stats(pibs); - } - if (pibs->should_writepcap) { - pcap_dump_close(pibs->dumper); - printf("[INFO] Created pcap file %s\n", pibs->outputfile); - } - return EXIT_FAILURE; -}