diff --git a/TP2.txt b/TP2.txt new file mode 100644 index 0000000..17dfdb8 --- /dev/null +++ b/TP2.txt @@ -0,0 +1,33 @@ +TP2 David AKAGUNDUZ Bamba TOP + +Nous allons analyser lesfichier et trouver leur nombre de compléxité cyclonique : + +Fichier daemon.c : + +Fonction create_deamon : 4 +Fonction ping_request : 2 +Fonction send_check : 4 +Fonction check_keep_working : 4 +Fonction daemon_work : 3 + +Fichier db-sqlite.c : + +Fonction db_connect : 1 +Fonction db_disconnect : 1 +Fonction insert_hourly_report : 1 + +Fichier ping-report.c : + +Focntion main : 4 + +Fichier stats.c : +Fonction get_ping_from_temp_log : 15 +Fonction write_ping_log : 5 +Fonction set_stats_ping : 17 + +Fichier utils.c : + +Fonction write_pid_file : 2 +Fonction remove_file : 1 + + diff --git a/get_ping_from_temp_log.pdf b/get_ping_from_temp_log.pdf new file mode 100644 index 0000000..cbf7e32 Binary files /dev/null and b/get_ping_from_temp_log.pdf differ diff --git a/ping-report/ping-report b/ping-report/ping-report new file mode 100755 index 0000000..a20d1fc Binary files /dev/null and b/ping-report/ping-report differ diff --git a/ping-report/ping-report.db b/ping-report/ping-report.db new file mode 100644 index 0000000..3f9da66 Binary files /dev/null and b/ping-report/ping-report.db differ diff --git a/ping-report/src/stats.c b/ping-report/src/stats.c index 5b343e8..e37fbe8 100644 --- a/ping-report/src/stats.c +++ b/ping-report/src/stats.c @@ -22,6 +22,59 @@ Return value : Ping value as a string or NULL if an error occured */ +void whil(FILE* fd, + char* read_line, + size_t n , + size_t nmatch, + regex_t *p_reg, + regmatch_t* pmatch, + char* ping, + int start, + int end, + size_t size_ping){ + + + while(getline(&read_line,&n,fd) != -1){ + + if(read_line == NULL){ + break; + } + + /* Exec regex to find ping */ + + if(regexec(p_reg,read_line,nmatch,pmatch,0) == 0){ + + /* Extract ping position from read line */ + start = (int) pmatch[1].rm_so; + end = (int) pmatch[1].rm_eo; + size_ping = (size_t) (end - start); + + /* ping string memory allocation */ + ping = malloc(sizeof(char) * (size_ping+2)); + if(ping == NULL){ + free(read_line); + read_line = NULL; + n = 0; + break; + } + + /* Create ping string */ + (void) strncpy(ping, &read_line[start], size_ping); + ping[size_ping]='\n'; + ping[size_ping+1]='\0'; + + /* Free memory */ + free(read_line); + read_line = NULL; + n = 0; + break; + } + + free(read_line); + read_line = NULL; + n = 0; + } +} /*@null@*/char* get_ping_from_temp_log(){ /* Variables */ @@ -68,46 +121,16 @@ } /* Read file */ - while(getline(&read_line,&n,fd) != -1){ - - if(read_line == NULL){ - break; - } - - /* Exec regex to find ping */ - - if(regexec(p_reg,read_line,nmatch,pmatch,0) == 0){ - - /* Extract ping position from read line */ - start = (int) pmatch[1].rm_so; - end = (int) pmatch[1].rm_eo; - size_ping = (size_t) (end - start); - - /* ping string memory allocation */ - ping = malloc(sizeof(char) * (size_ping+2)); - if(ping == NULL){ - free(read_line); - read_line = NULL; - n = 0; - break; - } - - /* Create ping string */ - (void) strncpy(ping, &read_line[start], size_ping); - ping[size_ping]='\n'; - ping[size_ping+1]='\0'; - - /* Free memory */ - free(read_line); - read_line = NULL; - n = 0; - break; - } - - free(read_line); - read_line = NULL; - n = 0; - } + whil(FILE* fd, + char* read_line, + size_t n , + size_t nmatch, + regex_t *p_reg, + regmatch_t* pmatch, + char* ping, + int start, + int end, + size_t size_ping); /* free allocated memory */ regfree(p_reg); diff --git a/set_stats_ping.pdf b/set_stats_ping.pdf new file mode 100644 index 0000000..ae625dc Binary files /dev/null and b/set_stats_ping.pdf differ