Ignore:
Timestamp:
02/12/08 22:05:03 (5 years ago)
Author:
eko
Message:

new smaller ttraff

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/router/rc/ttraff.c

    r9026 r9027  
    1 /* ttraff.c by Eko: 11.feb.2008 
     1/* ttraff.c by Eko: 12.feb.2008 
    22   
    33  used for collecting and storing WAN traffic info to nvram 
     
    1515#include <syslog.h> 
    1616#include <utils.h> 
    17 #include <wlutils.h> 
    1817 
    1918 
    20 unsigned long get_todays_rcvd (int day, int month, int year) 
     19 
     20void  
     21write_to_nvram (int day, int month, int year, unsigned long rcvd, unsigned long sent) 
    2122{ 
    22 //fprintf (stderr, "entering get_todays_rcvd\n"); 
    23 char *next; 
    24 char var[80]; 
    25 char tq[32]; 
    26 int i = 1; 
    27 unsigned long rcvd = 0; 
    28  
    29   sprintf (tq, "traff-%02u-%u", month, year); 
    30   char *tdata = nvram_safe_get (tq); 
    31   if (tdata != NULL || strlen(tdata)) 
    32    { 
    33     foreach (var, tdata, next) 
    34     { 
    35      if (i == day) 
    36             sscanf (var, "%lu:%*lu", &rcvd); 
    37          i++; 
    38     } 
    39    } 
    40 //fprintf (stderr, "leaving get_todays_rcvd: rcvd=%lu\n", rcvd); 
    41   return rcvd; 
    42 } 
    43  
    44 unsigned long get_todays_sent (int day, int month, int year) 
    45 { 
    46 //fprintf (stderr, "entering get_todays_sent\n"); 
    47 char *next; 
    48 char var[80]; 
    49 char tq[32]; 
    50 int i = 1; 
    51 unsigned long sent = 0; 
    52  
    53   sprintf (tq, "traff-%02u-%u", month, year); 
    54   char *tdata = nvram_safe_get (tq); 
    55   if (tdata != NULL || strlen(tdata)) 
    56    { 
    57     foreach (var, tdata, next) 
    58     { 
    59      if (i == day) 
    60             sscanf (var, "%*lu:%lu", &sent); 
    61          i++; 
    62     } 
    63    } 
    64 //fprintf (stderr, "leaving get_todays_sent: sent=%lu\n", sent); 
    65   return sent; 
    66 } 
    67  
    68 int write_to_nvram (int day, int month, int year, unsigned long rcvd, unsigned long sent) 
    69 { 
    70 //fprintf (stderr, "entering write_to_nvram\n"); 
    7123char *next; 
    7224char var[80]; 
    7325char tq[32]; 
    7426char temp[64] = ""; 
     27char sbuff[256] = ""; 
    7528char buffer[2048] = ""; 
    76 int i; 
    77 int days = daysformonth (month, year); 
     29int i = 1, d = 1; 
     30unsigned int days = daysformonth (month, year); 
     31unsigned long old_rcvd; 
     32unsigned long old_sent; 
     33char *tdata; 
    7834 
    7935  sprintf (tq, "traff-%02u-%u", month, year); 
     36  tdata = nvram_safe_get (tq); 
     37   
     38  if (tdata == NULL || strlen (tdata) == 0) 
     39  { 
     40   for (d = 0; d < days; d++) 
     41   { 
     42    strcat (sbuff, "0:0 "); 
     43   } 
     44   nvram_set (tq, sbuff); 
     45   tdata = nvram_safe_get (tq); 
     46  } 
    8047 
    81   for (i = 1; i <= days; i++) 
    82   { 
    83    if (i == day)           
    84    {  
    85         sprintf (temp, "%lu:%lu", rcvd, sent); 
    86    } 
    87    else 
    88    { 
    89         sprintf (temp, "%lu:%lu", get_todays_rcvd (i, month, year) , get_todays_sent (i, month, year)); 
    90    } 
    91    strcat (buffer, temp); 
    92    if (i < days) strcat (buffer, " "); 
    93   } 
    94    
    95   nvram_set (tq, buffer); 
    96 //fprintf (stderr, "leaving write_to_nvram\n"); 
    97   return 1; 
     48    foreach (var, tdata, next) 
     49    { 
     50     if (i == day) 
     51     { 
     52          sscanf (var, "%lu:%lu", &old_rcvd, &old_sent); 
     53          sprintf (temp, "%lu:%lu ", old_rcvd + rcvd, old_sent + sent);      
     54          strcat (buffer, temp); 
     55     } 
     56     else 
     57     { 
     58          strcat (buffer, var); 
     59          strcat (buffer, " "); 
     60      }     
     61         i++; 
     62    }      
     63 
     64    nvram_set (tq, buffer); 
     65 
     66  return; 
    9867} 
     68 
    9969 
    10070int 
     
    174144    out_dev_last = out_dev; 
    175145    needbase = 0; 
    176     sleep (2); 
    177146    continue; 
    178147   } 
     
    181150   { 
    182151         needbase = 1; 
    183          sleep (2); 
    184152         continue; 
    185153   } 
     
    192160   
    193161   if (in_diff || out_diff) 
    194    {  
    195     write_to_nvram (day, month, year, get_todays_rcvd (day, month, year) + in_diff, get_todays_sent (day, month, year) + out_diff); 
     162   { 
     163    write_to_nvram (day, month, year, in_diff, out_diff); 
     164     
    196165    in_dev_last = in_dev_last + (in_diff << 20); 
    197166    out_dev_last = out_dev_last + (out_diff << 20);     
     
    212181     commited = 1; 
    213182     needcommit = 0; 
    214      syslog (LOG_DEBUG, "ttraff: data for %d-%d-%d commited to nvram\n", year, month, day); 
     183     syslog (LOG_DEBUG, "ttraff: data for %d-%d-%d commited to nvram\n", day, month, year); 
    215184   } 
    216185    
Note: See TracChangeset for help on using the changeset viewer.