diff --git a/ping-report/ping-report b/ping-report/ping-report new file mode 100755 index 0000000..39cf0ba 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..ee43589 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..4b33689 100644 --- a/ping-report/src/stats.c +++ b/ping-report/src/stats.c @@ -32,9 +32,6 @@ regex_t *p_reg; regmatch_t* pmatch; char* ping = NULL; - int start; - int end; - size_t size_ping; /* regex struct memory allocation */ p_reg = (regex_t *) malloc(sizeof(*p_reg)); @@ -51,9 +48,9 @@ /* Construct regex to get ping from log file */ if(regcomp(p_reg,"time=(.*) ms",REG_EXTENDED) != 0){ - if(p_reg != NULL){ + //if(p_reg != NULL){ free(p_reg); - } + //} (void) fclose(fd); return ping; /* NULL */ } @@ -67,6 +64,28 @@ return ping; /* NULL */ } + ping = find_ping(read_line, n, fd); + + /* free allocated memory */ + regfree(p_reg); + free(p_reg); + free(pmatch); + //if(read_line != NULL){ + //free(read_line); + //} + + (void) fclose(fd); + + /* ping may be null, then it must mean that the ping request was lost */ + return ping; +} + +char* find_ping(char* read_line, size_t n, FILE* fd){ + int start; + int end; + size_t size_ping; + char* ping2 = NULL; + /* Read file */ while(getline(&read_line,&n,fd) != -1){ @@ -84,8 +103,8 @@ size_ping = (size_t) (end - start); /* ping string memory allocation */ - ping = malloc(sizeof(char) * (size_ping+2)); - if(ping == NULL){ + ping2 = malloc(sizeof(char) * (size_ping+2)); + if(ping2 == NULL){ free(read_line); read_line = NULL; n = 0; @@ -93,9 +112,9 @@ } /* Create ping string */ - (void) strncpy(ping, &read_line[start], size_ping); - ping[size_ping]='\n'; - ping[size_ping+1]='\0'; + (void) strncpy(ping2, &read_line[start], size_ping); + ping2[size_ping]='\n'; + ping2[size_ping+1]='\0'; /* Free memory */ free(read_line); @@ -107,20 +126,8 @@ free(read_line); read_line = NULL; n = 0; + return ping2; } - - /* free allocated memory */ - regfree(p_reg); - free(p_reg); - free(pmatch); - if(read_line != NULL){ - free(read_line); - } - - (void) fclose(fd); - - /* ping may be null, then it must mean that the ping request was lost */ - return ping; } /*