Changeset 9027 for src/router/rc/ttraff.c
- Timestamp:
- 02/12/08 22:05:03 (5 years ago)
- File:
-
- 1 edited
-
src/router/rc/ttraff.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/router/rc/ttraff.c
r9026 r9027 1 /* ttraff.c by Eko: 1 1.feb.20081 /* ttraff.c by Eko: 12.feb.2008 2 2 3 3 used for collecting and storing WAN traffic info to nvram … … 15 15 #include <syslog.h> 16 16 #include <utils.h> 17 #include <wlutils.h>18 17 19 18 20 unsigned long get_todays_rcvd (int day, int month, int year) 19 20 void 21 write_to_nvram (int day, int month, int year, unsigned long rcvd, unsigned long sent) 21 22 { 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");71 23 char *next; 72 24 char var[80]; 73 25 char tq[32]; 74 26 char temp[64] = ""; 27 char sbuff[256] = ""; 75 28 char buffer[2048] = ""; 76 int i; 77 int days = daysformonth (month, year); 29 int i = 1, d = 1; 30 unsigned int days = daysformonth (month, year); 31 unsigned long old_rcvd; 32 unsigned long old_sent; 33 char *tdata; 78 34 79 35 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 } 80 47 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; 98 67 } 68 99 69 100 70 int … … 174 144 out_dev_last = out_dev; 175 145 needbase = 0; 176 sleep (2);177 146 continue; 178 147 } … … 181 150 { 182 151 needbase = 1; 183 sleep (2);184 152 continue; 185 153 } … … 192 160 193 161 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 196 165 in_dev_last = in_dev_last + (in_diff << 20); 197 166 out_dev_last = out_dev_last + (out_diff << 20); … … 212 181 commited = 1; 213 182 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); 215 184 } 216 185
Note: See TracChangeset
for help on using the changeset viewer.
