ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/network_stats.c
(Generate patch)

Comparing projects/libstatgrab/src/libstatgrab/network_stats.c (file contents):
Revision 1.8 by pajs, Tue Mar 11 16:16:20 2003 UTC vs.
Revision 1.13 by pajs, Mon Mar 31 13:24:12 2003 UTC

# Line 25 | Line 25
25   #include <stdlib.h>
26   #include <string.h>
27   #include "statgrab.h"
28 < #include "time.h"
28 > #include <time.h>
29   #ifdef SOLARIS
30   #include <kstat.h>
31   #include <sys/sysinfo.h>
# Line 90 | Line 90 | network_stat_t *get_network_stats(int *entries){
90  
91   #ifdef LINUX
92          FILE *f;
93 <        /* Horrible big enough, but it should be quite easily */
93 >        /* Horrible big enough, but it should be easily big enough */
94          char line[8096];
95          regex_t regex;
96          regmatch_t line_match[4];
# Line 183 | Line 183 | network_stat_t *get_network_stats(int *entries){
183  
184                  interfaces++;
185          }
186 +        fclose(f);
187 +        regfree(&regex);
188  
189   #endif
190          *entries=interfaces;
# Line 197 | Line 199 | long long transfer_diff(long long new, long long old){
199   #define MAXVAL 18446744073709551616
200   #endif
201          long long result;
202 <        if(new>old){
202 >        if(new>=old){
203                  result = (new-old);
204          }else{
205                  result = (MAXVAL+(new-old));
# Line 245 | Line 247 | network_stat_t *get_network_stats_diff(int *entries){
247          for(x=0;x<sizeof_net_stats_diff;x++){
248  
249                  if((strcmp(network_stats_diff_ptr->interface_name, network_stats_ptr->interface_name))==0){
250 <                        network_stats_diff_ptr->tx = network_stats_ptr->tx - network_stats_diff_ptr->tx;
251 <                        network_stats_diff_ptr->rx = network_stats_ptr->rx - network_stats_diff_ptr->rx;        
250 >                        network_stats_diff_ptr->tx = transfer_diff(network_stats_ptr->tx, network_stats_diff_ptr->tx);
251 >                        network_stats_diff_ptr->rx = transfer_diff(network_stats_ptr->rx, network_stats_diff_ptr->rx);
252                          network_stats_diff_ptr->systime = network_stats_ptr->systime - network_stats_diff_ptr->systime;
253                  }else{
254                          
255                          network_stats_ptr=network_stats;
256                          for(y=0;y<ifaces;y++){
257                                  if((strcmp(network_stats_diff_ptr->interface_name, network_stats_ptr->interface_name))==0){
258 <                                        network_stats_diff_ptr->tx = network_stats_ptr->tx - network_stats_diff_ptr->tx;
259 <                                        network_stats_diff_ptr->rx = network_stats_ptr->rx - network_stats_diff_ptr->rx;        
258 >                                        network_stats_diff_ptr->tx = transfer_diff(network_stats_ptr->tx, network_stats_diff_ptr->tx);
259 >                                        network_stats_diff_ptr->rx = transfer_diff(network_stats_ptr->rx, network_stats_diff_ptr->rx);  
260                                          network_stats_diff_ptr->systime = network_stats_ptr->systime - network_stats_diff_ptr->systime;
261                                          break;
262                                  }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines