aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2004-08-21 01:19:36 +0000
committerGuy Harris <guy@alum.mit.edu>2004-08-21 01:19:36 +0000
commit747f63150b44eb32bc8e0bdff66f82ef70f86ce9 (patch)
treeca9db58f92cea9567604e1ea0047f91ec18c6a86
parentfe876099567b7641a731f129e0d5b5f26be9fb5e (diff)
"localtime()" returns a value that might not survive a subsequent call
to "localtime()" (it might, for example, be static - and *is* static in a lot of implementations). Don't call it twice and expect both values to be useful. Clean up white space. svn path=/trunk/; revision=11783
-rw-r--r--capinfo.c110
1 files changed, 51 insertions, 59 deletions
diff --git a/capinfo.c b/capinfo.c
index 6ef3ad70c9..c39cccd621 100644
--- a/capinfo.c
+++ b/capinfo.c
@@ -97,24 +97,20 @@ print_stats(capture_info *cf_info)
{
const gchar *file_type_string;
time_t start_time_t;
- struct tm *start_time_tm;
time_t stop_time_t;
- struct tm *stop_time_tm;
/* Build printable strings for various stats */
file_type_string = wtap_file_type_string(cf_info->file_type);
- start_time_t = (long)cf_info->start_time;
- stop_time_t = (long)cf_info->stop_time;
- start_time_tm = localtime (&start_time_t);
- stop_time_tm = localtime (&stop_time_t);
+ start_time_t = (time_t)cf_info->start_time;
+ stop_time_t = (time_t)cf_info->stop_time;
if (cap_file_type) printf("File Type: %s\n", file_type_string);
if (cap_packet_count) printf("Number of packets: %u \n", cf_info->packet_count);
if (cap_file_size) printf("File Size: %" PRIu64 " bytes\n", cf_info->filesize);
if (cap_data_size) printf("Data Size: %" PRIu64 " bytes\n", cf_info->packet_bytes);
if (cap_duration) printf("Capture duration: %f seconds\n", cf_info->duration);
- if (cap_start_time) printf("Start time: %s", asctime (start_time_tm));
- if (cap_end_time) printf("End time: %s", asctime (stop_time_tm));
+ if (cap_start_time) printf("Start time: %s", ctime (&start_time_t));
+ if (cap_end_time) printf("End time: %s", ctime (&stop_time_t));
if (cap_data_rate_byte) printf("Data rate: %.2f bytes/s\n", cf_info->data_rate);
if (cap_data_rate_bit) printf("Data rate: %.2f bits/s\n", cf_info->data_rate*8);
if (cap_packet_size) printf("Average packet size: %.2f bytes\n", cf_info->packet_size);
@@ -140,30 +136,30 @@ process_cap_file(wtap *wth)
/* Tally up data that we need to parse through the file to find */
while (wtap_read(wth, &err, &err_info, &data_offset)) {
phdr = wtap_phdr(wth);
- cur_time = secs_usecs(phdr->ts.tv_sec, phdr->ts.tv_usec);
- if(packet==0) {
- start_time = cur_time;
- stop_time = cur_time;
- }
- if (cur_time < start_time) {
- start_time = cur_time;
- }
- if (cur_time > stop_time) {
- stop_time = cur_time;
- }
- bytes+=phdr->len;
+ cur_time = secs_usecs(phdr->ts.tv_sec, phdr->ts.tv_usec);
+ if(packet==0) {
+ start_time = cur_time;
+ stop_time = cur_time;
+ }
+ if (cur_time < start_time) {
+ start_time = cur_time;
+ }
+ if (cur_time > stop_time) {
+ stop_time = cur_time;
+ }
+ bytes+=phdr->len;
packet++;
}
if (err != 0) {
fprintf(stderr, "Error after reading %i packets\n", packet);
- exit(1);
+ exit(1);
}
/* File size */
if (fstat(wtap_fd(wth), &cf_stat) < 0) {
wtap_close(wth);
- return 1;
+ return 1;
}
cf_info.filesize = cf_stat.st_size;
@@ -178,7 +174,7 @@ process_cap_file(wtap *wth)
cf_info.start_time = start_time;
cf_info.stop_time = stop_time;
cf_info.duration = stop_time-start_time;
-
+
/* Number of packet bytes */
cf_info.packet_bytes = bytes;
@@ -199,7 +195,7 @@ static void usage(gboolean is_error)
if (!is_error) {
output = stdout;
- /* XXX - add capinfo header info here */
+ /* XXX - add capinfo header info here */
}
else {
output = stderr;
@@ -239,45 +235,45 @@ int main(int argc, char *argv[])
switch (opt) {
- case 't':
- cap_file_type = TRUE;
- break;
+ case 't':
+ cap_file_type = TRUE;
+ break;
- case 'c':
- cap_packet_count = TRUE;
- break;
+ case 'c':
+ cap_packet_count = TRUE;
+ break;
- case 's':
- cap_file_size = TRUE;
- break;
+ case 's':
+ cap_file_size = TRUE;
+ break;
- case 'd':
- cap_data_size = TRUE;
- break;
+ case 'd':
+ cap_data_size = TRUE;
+ break;
- case 'u':
- cap_duration = TRUE;
- break;
+ case 'u':
+ cap_duration = TRUE;
+ break;
- case 'a':
- cap_start_time = TRUE;
- break;
+ case 'a':
+ cap_start_time = TRUE;
+ break;
- case 'e':
- cap_end_time = TRUE;
- break;
+ case 'e':
+ cap_end_time = TRUE;
+ break;
- case 'y':
- cap_data_rate_byte = TRUE;
- break;
+ case 'y':
+ cap_data_rate_byte = TRUE;
+ break;
- case 'i':
- cap_data_rate_bit = TRUE;
- break;
+ case 'i':
+ cap_data_rate_bit = TRUE;
+ break;
- case 'z':
- cap_packet_size = TRUE;
- break;
+ case 'z':
+ cap_packet_size = TRUE;
+ break;
case 'h':
usage(FALSE);
@@ -288,9 +284,7 @@ int main(int argc, char *argv[])
usage(TRUE);
exit(1);
break;
-
}
-
}
if (optind < 2) {
@@ -307,12 +301,11 @@ int main(int argc, char *argv[])
cap_data_rate_byte = TRUE;
cap_data_rate_bit = TRUE;
cap_packet_size = TRUE;
-
}
if ((argc - optind) < 1) {
usage(TRUE);
- exit(1);
+ exit(1);
}
wth = wtap_open_offline(argv[optind], &err, &err_info, FALSE);
@@ -330,7 +323,6 @@ int main(int argc, char *argv[])
break;
}
exit(1);
-
}
status = process_cap_file(wth);